LINUX.ORG.RU

Mode_switch и переключение раскладок: как сделать их независимыми друг от друга?

 ,


0

1

Есть у меня ноутбук маленький (Mint 20, Mate, 5.8.0-38), у которого на клавиатуре нет PgUp/PgDn/Home/End на стрелочках (т.е., конечно, не в гравировке дело — обычный Fn+стрелочки не работает). Ну, дело-то нехитрое вроде бы: сделать правый Alt клавишей Mode_switch и добавить сочетания клавиш:

/usr/bin/xmodmap -e "keycode 108 = Mode_switch"
/usr/bin/xmodmap -e "keycode 113 = Left NoSymbol Home"
/usr/bin/xmodmap -e "keycode 114 = Right NoSymbol End"
/usr/bin/xmodmap -e "keycode 111 = Up NoSymbol Prior"
/usr/bin/xmodmap -e "keycode 116 = Down NoSymbol Next"
/usr/bin/xmodmap -e "keycode 119 = Delete NoSymbol Insert"

Но оказывается, что при переключении раскладки с английской на русскую, клавиша Mode_switch считается нажатой, и стрелочки начинают работать как PgUp/PgDn и т.д., и нажимать левый Alt нужно уже для того, чтобы они работали как стрелочки.

У меня теперь два вопроса: можно ли как-то отвязать поведение Mode_switch от переключения раскладок, и может есть какой-то более вменяемый способ добиться желаемого?

★★★★

Последнее исправление: Smacker (всего исправлений: 1)

С xmodmap такого не сделать. setxkbmap может получится, если что altgr делает level3, а переключение раскладок оставить группами. Чтобы в каждой группе для букв определить по 4 символа, тогда можно будет для клавиш курсора определять разное поведение при разной раскладке и нажатом/отпущенном altgr.

Но только там нужно всю раскладку описывать в файле, одну клавишу с помощью setxkbmap не поменять...

mky ★★★★★
()
Ответ на: комментарий от Smacker

Не уверен, давно разбирался, но если убрать:

Option «XKbOptions» grp:switch

то переключения раскладок по AltGr не будет, но будет ли это за счет изменения виртуальных модификаторов и освобождения Mode_switch (ISO_Level3_Shift) не помню.

mky ★★★★★
()
Ответ на: комментарий от mky

Насколько я понимаю, у меня не задействована опция grp:switch. Во всяком случае в выводе setxkbmap -print -verbose 10 её не показывает (а скажем compose:lwin есть).

Smacker ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.