9

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

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

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

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

3 ответа3

2

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

clear lock 
keysym Caps_Lock = Super_L

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

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

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

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

Вы можете попробовать добавить ключ, который вы хотите использовать в качестве Mod3 (который, кажется, не используется ни для чего на большинстве систем, которые я видел), тогда ваш rc.lua может перечислить ключ modk как "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, или с чем-то, что обычно не предназначено для блокировки состояния, подтвердите его работу, затем попробуйте переключиться на нужную клавишу.

0

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

modkey = "Mod4"

с

modkey = "Mod1"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .