X compose и русский [РЕШЕНО]

vasek
bash для определения текущей раскладки, то такая возможность
Для трех раскладок?
vasek
Если нужна команда bash для определения текущей раскладки, то такая возможность имеется.
Нет такой возможности если в setxkbmap указано больше одной раскладки.
Состояние led:scroll и т.д. бесполезно в случае трех и более раскладок.
Итого: https://archlinux.org.ru/forum/post/202592/
Aivar
Нет такой возможности если в setxkbmap указано больше одной раскладки.
С двумя определяется нормально, с тремя не пробовал - нужно пробовать.
Для этого используется параметр LED mask в выводе команды xset q
Пример
en
xset q | grep -Po 'LED mask:\s*\K\d+'
00000000
и зная это, используйте любую команду, например, эту
xset -q | awk 'BEGIN { a[1]="ru"; a[0]="en"; } /LED/ { print a[$10 && 32]; }'
en
ru
xset q | grep -Po 'LED mask:\s*\K\d+'
00001001
и зная это, используйте любую команду, например, эту
xset -q | awk 'BEGIN { a[1]="ru"; a[0]="en"; } /LED/ { print a[$10 && 32]; }'
ru
UPD - вместо xset -q | awk 'BEGIN { a[1]="ru"; a[0]="en"; } /LED/ { print a[$10 && 32]; }'
встречались и такие команды
test `xset -q | grep LED | awk {' print $10 '} | cut -c5` -eq 1 && echo "ru" || echo "en"
xset -q | awk 'BEGIN { a[1]="ru"; a[0]="en" } /LED/ { print a[substr($10,5,1)]; }'

EDIT 1 - но в принципе достаточно вывода xset q | grep -Po 'LED mask:\s*\K\d+', чтобы использовать это значение далее
и забыл указать, что у меня раскладка установлена так - setxkbmap -layout 'us,ru' -option 'grp:caps_toggle,grp_led:caps'
Ошибки не исчезают с опытом - они просто умнеют
vasek
с тремя не пробовал - нужно пробовать.
Могу только пожелать удачи. Тема избита, результата нет.
Вообще, иксовой утилиты, которая бы возвращала значение текущей раскладки (если их больше одной), а не состояние светодиода с последующим преобразованием && echo ru || echo en нет. В результате, если с двумя раскладками еще можна выкрутиться, то с тремя на одном светодиоде - никак. Все что гуглилось - skb 1. Впрочем, сейчас меня это мало интересует. Чем меньше ориентируешься на стандартные решения - тем меньше возникает стандартных вопросов. )
Aivar
Впрочем, сейчас меня это мало интересует
Меня тем более, мне вполне достаточно 2 раскладок, а знание текущей раскладки мне тоже не требуется.
Был символичекий вопрос - я ответил.
Ошибки не исчезают с опытом - они просто умнеют
Aivar
а не состояние светодиода
Как то пробовал ctrl_shift + grp_led - раскладка показывалась, но светодиод при этом не горел (ни в en ни в ru) .... (у меня он только на caps)
Ошибки не исчезают с опытом - они просто умнеют
akorop
Поставил ru,us,ua
Можно us,ru,us,ua будет переключать с русского или украинского на английский.
От
задумываться о том, на какой я сейчас раскладке
конечно не избавит.

Можно еще посмотреть типографские раскладки, там одинаковое расположение на третьем уровне.
Но придется переучиваться - значки по другому расположены(буквы стандартно), имеет смысл если часто используются символы
yaourt -S rukbi
sudo /usr/share/X11/xkb/rukbi/install/install
setxkbmap -layout "rukbi_en, rukbi_ru, rukbi_uk" -option "grp_led:scroll, lv3:ralt_switch"
градус ralt+d на любой раскладке
Я сейчас не помню всех грязных подробностей, но вы копаете хоть и в правильном направлении, но не совсем правильными инструментами.

Я тоже использую Xcompose, только не по Caps (она у меня переключает на русский), а по AltGr.
Настраивалось это у меня командой
setxkbmap -option compose:ralt
и всё работало, пока однажды не поломалось при обновлении.

Вскрытие показало, что проблему принес пакет xorg-setxkbmap, в который один (русский) разработчик внёс замечательное "усовершенствование" – захардкодил на AltGr какое-то другое действие, причём только для русской раскладки, на английской всё работало по-прежнему!
А когда я копнул ещё глубже, оказалось, что а английскую (американскую) раскладку тоже когда-то вносилось подобное "улучшение", но более многочисленные англоязычные юзеры линукса воспротивились нововведению гораздо раньше, и его отменили.

После долгих препирательств в багтреккере мне удалось убедить разработчика убрать хардкод из русской раскладки, но "осадочек остался", и теперь Xcompose у меня настраивается более низкоуровневой коммандой, для AltGr она выглядит так:
xmodmap -e "keycode 108 = Multi_key NoSymbol Multi_key"

К чему я это всё пишу – setxkbmap это довольно нестабильная и ненадёжная надстройка над другими утилитами. В ней много хардкода, и периодически могут возникать подобные "багофичи". Если у вас что-то перестало работать с setxkbmap – или пишите багрепорты, или пользуётесь низкоуровневыми утилитами, вроде xmodmap, так вы меньше будете зависеть от метаний разработчиков, и возможности по настройке у вас будут шире.
Natrio
что-то перестало работать с setxkbmap
Тут не в setxkbmap дело. А в том что не прописаны compose последовательности для стандартной русской раскладки(ru). В результате вы не можете ввести например градус если включена раскладка ru.

Ну а дальше обсуждение обхода этого и желание иметь временное переключение именно на английскую раскладку при нажатой клавише и возврат на старую раскладку при ее отпускании
Aivar
а не состояние светодиода
Aivar, значение параметра LED mask меняется при переключении раскладки как со светодиодом, так и без него - только принимает разные значения
- без светодиода - 00001000
- со светодиодом - 00001001
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.