Немного предыстории: я слежу за кодом обработки ключа в программном обеспечении Kodi media center , и я пытаюсь выявить скрытую ошибку, о которой сообщил пользователь. Они имеют пульт дистанционного управления, имитирующий клавиатуру и для определенной кнопки отправляет комбинацию клавиш Ctrl kbd> + Shift kbd> + Alt kbd> + b < / KBD>. Проблема в том, что нажатие клавиши, которое получает Kodi, составляет Ctrl kbd> + Shift kbd> + Meta kbd> + b kbd>.
Я обнаружил, что это также происходит, когда я нажимаю эту комбинацию клавиш на клавиатуре, и фактически любая комбинация, включающая shift kbd> и Alt kbd>, делает подобные вещи. Похоже, общим фактором является одновременное нажатие клавиш Shift kbd> и Alt kbd>.
Я понимаю, что клавиша Meta kbd> была клавишей-модификатором на старой клавиатуре, которая больше не используется, но Ubuntu можно настроить для генерации нажатий клавиш Meta kbd>. Интересно, есть ли где-нибудь в Ubuntu параметр, который вызывает комбинацию Shift kbd> + Alt kbd> для отправки клиентам X в виде нажатия Meta kbd>.
Это с Ubuntu 14.04, и я получаю то же поведение в стандартной оболочке и при использовании оболочки LXDE.
Пожалуйста, кричите, если я пропустил какую-либо важную информацию - я разработчик для Windows и немного разбираюсь в Unix. Я не вдавался в детали системных вызовов, которые использует Kodi для получения нажатий клавиш, так как я подозреваю, что это больше подходит для сайта разработки. Что меня в первую очередь интересует, так это некоторые настройки, настраиваемые пользователем, которые могут вызывать такое поведение.
Я заметил, что, если я нажимаю Сдвиг + Высокий звук + X , система видит Meta + X , но если я нажимаю Высокий звук + Сдвиг + X , система видит Сдвиг + Высокий звук + X , таким образом нажимая Высокий звук сначала и , Сдвиг второй может работать вокруг проблемы.
Можно отключить это поведение путем выполнения следующей команды перекарты: xmodmap -e "keycode 64 = Alt_L"
. Это определяет Высокий звук как просто Высокий звук и не Meta при смещении.