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

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

Я попытался изменить клавишу mod в Awesome с клавиши Windows на Pause, Scroll Lock и Escape.

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

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

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

решение1

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

clear lock 
keysym Caps_Lock = Super_L

Он вызывается из моегоrc.luaтак:

awful.util.spawn("xmodmap /home/username/your_xmodmap.file")

решение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

Вы заметите, что имя keysym — 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, насколько я могу судить, не может отключить это поведение.

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

решение3

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

modkey = "Mod4"

с

modkey = "Mod1"

Связанный контент