Зміна клавіші Mod у Awesome WM


9

Я спробував змінити клавішу мод у дивовижній з клавіші Windows на Пауза, Блокування прокрутки та Втеча.

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

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

Чи є розумний спосіб змінити таку поведінку?

Відповіді:


2

У мене вдома є файл із цими двома рядками:

clear lock 
keysym Caps_Lock = Super_L

Його дзвонять з мого rc.lua так:

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

Я не хочу використовувати caplock як моді. то clear lockкоманда скидає зміщуватися замок, і там не повинно бути блокування перемикання або для ключів , зазначених у першому рядку мого питання.
Арчі

2

Шлях пізно, але для довідок інших:

Проблема, здається, полягає в тому, що xmodmap не ідентифікує жодну з клавіш, які ви вказали як ключі-модифікатори. Тому AwesomeWM не дозволяє використовувати їх як модифікаційні ключі.

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

Ви помітите ім'я ключового слова 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. Я б запропонував замість цього спробувати Блокування прокрутки або Пауза, оскільки це менш ймовірно виникнення великих конфліктів. Насправді AwesomeWM, здається, припускає, що Esc зарезервований для скасування поточної операції.

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

Я б запропонував спробувати це за допомогою ключа, як-от клавіша Numpad 0, або щось, що зазвичай не розроблено як ключ блокування стану, підтвердіть, що він працює, а потім спробуйте перейти на потрібний ключ.


0

Я знаю, що я запізнююсь на 3 роки, але якщо це комусь допоможе, переключись

modkey = "Mod4"

з

modkey = "Mod1"

Це основна концепція, але конкретні ключі, які він перераховував, не можна використовувати з такою простою модифікацією, як, наприклад, у rc.lua. Налаштування modkey в rc.lua, очевидно, може бути встановлено лише для клавіш, які xmodmap розглядає як модифікаційні клавіші (наприклад, shift або ctrl), і не може бути встановлено на щось на зразок "x".
mtalexan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.