Как правильно установить Alt для работы в качестве клавиши Win (Super)?

11

Хотя есть много разных статей о том, как изменить левый Alt для симуляции выигрыша, я хочу отобразить правый Alt для этого. Я хочу перейти на 11.10, я возвращаюсь к единице 2d и не имею ключа победы. Я даже не могу получить ключевой код в найденных статьях ... Любая помощь или хорошие предложения?

deckoff
источник

Ответы:

12

Вы можете использовать xmodmap для переназначения любой клавиши на клавиатуре; в частности, вы можете переназначить правый Alt, чтобы действовать как ключ Super / Win .

Создайте файл с именем .Xmodmapв вашем домашнем каталоге со следующим содержанием:

! free up right-Alt for remapping
remove mod1 = Alt_R

! Right-Alt remapped to Super
clear mod4
keycode 108 = Super_R
add mod4 = Super_R

Когда вы выходите из системы, а затем снова входите в нее, GNOME должен спросить вас, хотите ли вы загрузить .Xmodmapфайл; ответьте "да", и вы готовы идти. (Вы спросите только один раз.)

Кроме того, вы можете загрузить .Xmodmapконфигурацию из терминала в любое время:

xmodmap .Xmodmap

Есть несколько вещей, которые могут варьироваться в зависимости от версии сервера X и модели клавиатуры. Следующие пункты могут помочь вам адаптировать .Xmodmapфайл к вашей конкретной среде.

  1. Убедитесь, что ваша правая клавиша Alt изначально находится на mod1 : введите команду xmodmapв окне терминала, и вы должны получить вывод, подобный следующему:

    xmodmap:  up to 3 keys per modifier, (keycodes in parentheses):
    
    shift       Shift_L (0x32),  Shift_R (0x3e)
    lock        Caps_Lock (0x9),  Caps_Lock (0x4e)
    control     Control_L (0x25),  Control_R (0x69)
    mod1        Alt_L (0x40),  Alt_R (0x6c),  Alt_L (0xcc)
    mod2      
    mod3        Mode_switch (0xcb)
    mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce)
    mod5      
    

    Если Alt_Rтег появляется не в строке mod1, а в другой, настройте его .Xmodmapсоответствующим образом.

  2. Убедитесь, что вашей правой клавишей Alt является код клавиши 108: в окне терминала введите команду xev , затем сфокусируйтесь на появившемся маленьком квадратном окне. Если вы наберете там правую клавишу Alt , вы должны увидеть строки, появляющиеся в окне терминала. Ищите строфу как этот:

    KeyPress event, serial 25, synthetic NO, window 0x5000001,
        root 0xbd, subw 0x5000002, time 867397196, (53,48), root:(54,49),
        state 0x0, keycode 108 (keysym 0xffea, Alt_R), same_screen YES,
        XLookupString gives 0 bytes: 
        XmbLookupString gives 0 bytes: 
        XFilterEvent returns: False
    

    Число после keycodeслова - это то, что вам нужно в вашем .Xmodmapфайле для переназначения справа. Alt .

Риккардо Мурри
источник
Спасибо. Я могу оставить все, что мне нужно.
deckoff
странно, хотя решение раньше работало, теперь оно остановилось ??? Когда я перезагружаю ПК и воссоздаю решение, оно работает до следующей перезагрузки ...
deckoff
1
@deckoff Это означает, что ваш .Xmodmapфайл не читается в начале сеанса X. Попробуйте добавить xmodmap ~/.Xmodmapв свой .gnomerc(или эквивалентный) файл.
Риккардо Мурри
Я попробую. Кажется, он не работает, когда пароль отключен. Если я увижу экран входа в систему (независимо от того, выйду ли я из системы и войду ли я в систему, или если я включил пароль при входе, он будет работать). Пожалуйста, посмотрите здесь, если хотите помочь. Кажется, файл загружен, но не выполняется должным образом.
deckoff
1
Да, добавление xmodmap ~ / .Xmodmap в .gnomerc сработало
deckoff
3

Я нашел это просто:

remove mod1 = Alt_R
add mod4 = Alt_R

работает, как и надеялся. Я пропускаю какие-либо "ошибки" с этим методом?

Брайан Харви
источник