Как заставить мои клавиши Super (Windows Key) вести себя так же, как Ctrl / Alt / Shift в Linux

После использования клавиш Ctrl + «со стрелками» в течение 13 лет, чтобы переключать виртуальные рабочие столы в X-окнах, я недавно убедился, чтобы вместо этого использовать клавиши Super (ключ окна и ключ контекстного меню, который я переделал) , Все это прекрасно работает по большей части. Тем не менее, что-то все еще набирает ключевые события, которые эти ключи отправляют, как если бы они были обычным буквенно-цифровым ключом.

Например, я впервые заметил это в электронной таблице Документов Google, что, если я нажимаю только один ключ окна поверх ячейки, он начинает редактировать эту ячейку. Он ничего не вставляет, он просто отправляет ключевое событие, которое Firefox видит и начинает редактировать ячейку. Это вызвало проблемы с совместным документом, над которым я работал, как с документами Google, и это привело к случайному стиранию данных в нескольких областях, прежде чем я понял, что происходит.

Мне нравится использовать супер-ключи, но я хочу, чтобы они больше походили на клавиши Ctrl или Alt в этом ключе модификатора и ничего не посылали до тех пор, пока не будет нажата вторая клавиша.

Моя настройка такова:

  • Ubuntu 10.10
  • XFCE 4
  • Клавиатура Microsoft Natural Ergo 4000 (с логотипом, поцарапанным, конечно)
  • Ниже приведен мой файл .Xmodmap:

Удалить Lock = Caps_Lock

Keycode 66 = Escape

! На приведенном ниже рисунке отображается другое окно контекстного меню Windows.

Keycode 135 = Super_R

Изменить: по запросу, вот соответствующий вывод от xev для нажатия клавиши и keyrelease моего Super_L (левый ключ окна)

KeyPress event, serial 34, synthetic NO, window 0x8200001, root 0x15d, subw 0x0, time 2428849342, (177,174), root:(182,228), state 0x10, keycode 133 (keysym 0xffeb, Super_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 34, synthetic NO, window 0x8200001, root 0x15d, subw 0x0, time 2428849430, (177,174), root:(182,228), state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False 

    One Solution collect form web for “Как заставить мои клавиши Super (Windows Key) вести себя так же, как Ctrl / Alt / Shift в Linux”

    Материал, не относящийся к XFCE

    Это не будет точно ответом на вашу проблему, извините за это, но все равно должно быть полезно для кого-то, по крайней мере. В Gnome это было исправлено в недавнем Ubuntus. Под этим я подразумеваю обращение с Win не как ключ-модификатор. В старые времена, например, в Ubuntu 9.04, вам нужно было сделать следующее изменение:

    Перейдите в System -> Preferences -> Keyboard , на вкладке « Layouts » нажмите кнопку « System -> Preferences -> Keyboard Layout options... и в списке Alt/Win key behavior выберите « Meta is mapped to Win keys (или Meta is mapped to Left Win ) вместо Default .

    Что это на самом деле? Изменяет параметр altwin в altwin $HOME/.gconf/desktop/gnome/peripherals/keyboard/kbd/%gconf.xml (или создает его, если он не существует):

     <?xml version="1.0"?> <gconf> <entry name="options" mtime="1298496603" type="list" ltype="string"> <li type="string"> <stringvalue>altwin altwin:meta_win</stringvalue> </li> </entry> </gconf> 

    Если вы выбрали Left Win , тогда будет следующее строковое значение:

     altwin altwin:left_meta_win 

    В Ubuntu 10.10 это не нужно, поскольку по Default видимому, изменилось.

    Но у вас есть XFCE, а не Gnome, так что это вам не поможет.

    Материал, связанный с XFCE

    Я загрузил Xubuntu (9.10), немного поиграл с ним и, наконец, нашел решение.

    Во-первых, я должен сказать, что настройки клавиатуры действительно ввернуты в XFCE. В Settings -> Keyboard вкладке « Layout » у вас не слишком много опций. Вы не можете изменить XkbOptions там, и даже если вы сделаете это вручную в ~/.config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xml , он будет перезаписан. Поэтому я изменил /etc/default/console-setup , добавив altwin:meta_win в XKBOPTIONS (используйте запятую как разделитель, если есть еще какие-то другие XKBOPTIONS ). Тем не менее, не повезло.

    ТЛ; др

    Какое решение?

    Не волнует способ XFCE по работе с клавиатурой, потому что он, по-видимому, сломан. Используйте setxkbmap напрямую:

     setxkbmap -option altwin:meta_win 

    (Или left_meta_win , независимо от того, что вы предпочитаете)

    Теперь вы должны проверить, что это действительно решило вашу проблему. 🙂

    Как применять его на постоянной основе?

     echo -option altwin:meta_win >>~/.Xkbmap 

    Он также может быть выполнен для всех пользователей, вместо этого вместо этого записывается в /etc/X11/Xkbmap .

    Как я могу быстро проверить, altwin:meta_win ли altwin:meta_win или altwin:left_meta_win ?

     setxkbmap -print 

    Строка с xkb_symbols должна иметь нечто вроде altwin(meta_win) .

    Interesting Posts

    Как перенести видео с iPhone 3GS на компьютер?

    Каков наилучший способ полностью удалить все с компьютера без переустановки?

    Когда выполняется конструктор пользовательского атрибута?

    Изменение языка в Windows 8

    Связь с компилятором и controllerом

    Корневая причина высокой загрузки процессора; Какое измерение больше доверять: диспетчер задач Windows или Process Explorer?

    Как обеспечить доступ в Интернет только через VPN

    SQL Server – Столбец “недействителен в списке выбора, поскольку он не содержится ни в агрегатной функции, ни в предложении GROUP BY”

    преобразовать большой endian в little endian в C

    Как получить полный URL в Express?

    Список сортировки с использованием функции сортировки STL

    Основной вопрос * nix (Mac OS X): Где мой путь установлен?

    Печенье домена для субдомена

    .NET Framework 4.5.2 в Windows 7 w SP1, не отображающийся в списке функций Windows

    PC Boots на черный экран с курсором мыши

    Давайте будем гением компьютера.