
Есть ли способ определить ассоциацию конкретногофизическийклавишу клавиатуры для какого-либо действия, независимо от буквы, с которой эта клавиша связана в какой-либо раскладке?
Пример: В большинстве стандартных сочетаний клавиш Gnome нажатие Alt+ Ctrl+ Tоткрывает терминал. Но только в латинской раскладке клавиатуры. Делая то же самоефизическийдействие в то время как в греческой раскладке не работает, так как соответствующая буква тогда является"Греческий T", не"Латинский T".
Поэтому сначала нужно переключиться на латинскую раскладку, а затем нажать клавишу быстрого доступа, что может быть неприятно, поскольку никогда не знаешь наверняка, была ли клавиша нажата правильно с самого начала, поэтому, вероятно, придется пробовать несколько раз, пока не поймете, что проблема была в раскладке.
Решением может быть определение одной и той же ассоциации для одной и той же клавиши во всех используемых раскладках, но тогда это придется делать для всех сочетаний клавиш, поэтому это решение плохо масштабируется.
решение1
Я часто переключаюсь между английской и греческой раскладкой, и это было небольшим раздражением в течение некоторого времени. Ваш вопрос подтолкнул меня к решению этой проблемы, так что спасибо!
Я нашел программу, которая может это сделать:xbindkeys
. Процедура, которой я следовал (адаптирована изздесь) был:
Установить
xbindkeys
. На моем Debian это делается с помощьюsudo apt-get install xbindkeys
Вы также сможете достаточно легко выполнить установку с помощью эквивалентных yum install
или pacman -S
любых других команд.
Создайте файл настроек по умолчанию:
xbindkeys --defaults > ~/.xbindkeysrc
Получите правильные коды клавиш для ваших клавиш. Запустите
xbindkeys -k
и нажмите нужную комбинацию клавиш. С моей клавиатурой по крайней мере (хотя она должна быть стандартной),xbindkeys -k
сообщает, что CtrlTэтоm:0x14 + c:28 Control+Mod2 + t
Создайте соответствующий ярлык, добавьте следующие строки
~/.xbindkeysrc
:"xterm" m:0x14 + c:28
Запустить
xbindkeys
. Ярлык теперь работает даже в греческой раскладке. Чтобы сделать его постоянным, добавьте это в свой~/.Xsession
:xbindkeys