Изменение ключа Mod в Awesome WM

9

Я попытался изменить ключ мод в Awesome от Windows, чтобы сделать паузу, Scroll Lock и Escape.

Для всех ключей я пытался изменить запись в rc.luaфайле конфигурации; Я пытался использовать xmodmap для очистки блокировок иadd mod4 = ...

Однако, кажется, что независимо от того, что я делаю, клавиши «залипают» (иногда странным и непоследовательным образом), а именно, если я нажму их, когда компьютер будет работать, как будто они постоянно нажимаются.

Есть ли разумный способ изменить это поведение?

Арчи
источник

Ответы:

2

У меня есть файл с этими двумя строками в моем доме:

clear lock 
keysym Caps_Lock = Super_L

Он вызывается из моего rc.lua следующим образом:

awful.util.spawn("xmodmap /home/username/your_xmodmap.file")
kioopi
источник
Я не хочу использовать capslock как модкей. то clear lockкоманда сбрасывает смещаться замок, и там не должно быть блокировки переключения либо для ключей , указанных в первой строке моего вопроса.
Арчи
2

Уже поздно, но для справки других:

Кажется, проблема в том, что xmodmap не идентифицирует ни один из ключей, которые вы указали в качестве ключей-модификаторов. Поэтому AwesomeWM не позволяет использовать их в качестве клавиш-модификаторов.

Вы можете попытаться добавить ключ, который вы хотите использовать в качестве Mod3 (который, похоже, не используется ни для чего на большинстве систем, которые я видел), тогда ваш rc.lua может перечислить modkey как «Mod3».

Добавить в качестве клавиши-модификатора

Вы можете увидеть ваши клавиши-модификаторы с xmodmap. По умолчанию вы, вероятно, получите что-то вроде этого:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

При этом xevвы можете увидеть название любой клавиши, которую вы нажимаете во время ее работы, и для Scroll Lock моя отображается как:

KeyPress event, serial 36, synthetic NO, window 0x2200001,
    root 0x225, subw 0x0, time 23086947, (433,729), root:(470,783),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x2200001,
    root 0x225, subw 0x0, time 23087091, (433,729), root:(470,783),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Вы заметите, что имя keyym есть Scroll_Lock.

Чтобы добавить в Mod3, вам нужно создать или добавить в ~/.Xmodmap. Добавление этой строки устанавливает Mod3 только в качестве ключа Scroll_Lock:

add Mod3 = Scroll_Lock

Чтобы проверить изменения и увидеть ошибки в файле .Xmodmap, запустите

xmodmap ~/.Xmodmap

Обновление rc.lua

Как вы уже поняли, в верхней части вашего файла rc.lua (который обычно находится ~/.config/awesome/rc.lua) есть modkey = "Mod4"строка. Измените это на modkey = "Mod3".

Предупреждения

Клавиша Esc используется для ряда сопоставлений клавиш AwesomeWM. Я бы посоветовал вместо этого использовать Scroll Lock или Pause, поскольку вероятность возникновения серьезных конфликтов невелика. Фактически, AwesomeWM предполагает, что Esc зарезервирован для отмены текущей операции.

Scroll Lock, похоже, магически трактуется как блокирующий ключ, очень похожий на Caps Lock. Разница в том, что блокирование Caps Lock относительно просто отключить, а Scroll Lock не позволяет отключить это поведение, насколько я могу судить.

Я бы посоветовал попробовать это с ключом, таким как клавиша Numpad 0, или с тем, что обычно не предназначено для блокировки состояния, подтвердите его работу, затем попробуйте переключиться на нужную клавишу.

mtalexan
источник
0

Я знаю, что я опоздал на 3 года, но если это кому-нибудь поможет

modkey = "Mod4"

с

modkey = "Mod1"
TuxForLife
источник
Это базовая концепция, но конкретные ключи, которые он перечислил, нельзя использовать с такой простой модификацией, как это для rc.lua. Параметр modkey в rc.lua, очевидно, может быть установлен только на те ключи, которые xmodmap рассматривает как клавиши-модификаторы (например, shift или ctrl), и не может быть установлен на что-то вроде 'x'.
Мталексан