После использования Ctrl + "клавиш со стрелками" в течение 13 лет для переключения виртуальных рабочих столов в X-окнах я недавно убедился в том, чтобы вместо этого использовать вместо него клавиши Super (клавиша windows и клавиша контекстного меню, которые я переназначил), Это все работает нормально по большей части. Тем не менее, что-то все еще воспринимает события клавиш, которые отправляют эти клавиши, как будто они являются обычными буквенно-цифровыми клавишами.
Например, я впервые заметил это в электронной таблице Документов Google: если я нажимаю только одну кнопку Windows поверх ячейки, она начинает редактировать эту ячейку. Он ничего не вставляет, он просто отправляет ключевое событие, которое видит Firefox, и начинает редактировать ячейку. Это вызвало проблемы в совместном документе, над которым я работал, поскольку документация Google работает, это привело к тому, что я случайно стер данные в нескольких полях, прежде чем я понял, что происходит.
Мне нравится использовать супер-клавиши, но я хочу, чтобы они вели себя как клавиша Ctrl или Alt в том смысле, что это клавиша-модификатор и ничего не посылает, пока не нажата вторая клавиша.
Моя установка следующая:
- Ubuntu 10.10
- XFCE 4
- Клавиатура Microsoft Natural Ergo 4000 (с выцарапанным логотипом, конечно)
- Следующее мое.Файл Xmodmap:
удалить блокировку = Caps_Lock
код клавиши 66 = Escape
! Ниже приведены другие ключи контекстного меню других окон.
код ключа 135 = Super_R
Изменить: В соответствии с просьбой, вот соответствующие выходные данные из xev для нажатия клавиши и освобождения клавиши моего Super_L (левая клавиша Windows)
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