Перестал работать Alt+Printscreen, как найти процессы, слушающие события

Очень странная проблема сегодня. Я собирался опубликовать тему о другой проблеме и хотел сделать скриншот окна терминала. Я все подготовил, нажал Alt + Printscreen и ничего не произошло.

Я пошел в Сочетания клавиш, чтобы увидеть, работает ли переопределение ярлыка. Это сделал. Я попытался установить его обратно на Alt + Printscreen, но окно просто сидело там, слушая нажатие клавиши. Как будто я никогда не нажимал клавишу.

Клавиши Alt и Printscreen работают независимо друг от друга просто отлично... Я также попытался посмотреть на вывод xev как я нажимаю клавиши. Он слышит Alt press, но потом не слышит экран печати.

Я пробовал это как в Compiz, так и в простом метасити. У меня также есть запасная клавиатура, и она показывает идентичное поведение (одна клавиатура - PS/2, запасная - USB - поэтому не проблема с портом).

Как будто что-то сидит в цепочке событий, плюет на событие, чтобы никто другой не мог его услышать. Мой вопрос в основном: как вы можете найти процессы, реагирующие на определенные события?

Как просили:

oli@bert:~$ xmodmap -pke | grep -i mode
keycode  82 = KP_Subtract XF86_Prev_VMode KP_Subtract XF86_Prev_VMode
keycode  86 = KP_Add XF86_Next_VMode KP_Add XF86_Next_VMode
keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
keycode 203 = Mode_switch NoSymbol Mode_switch

А также

oli@bert:~$ xmodmap -pke | grep -i print
keycode 107 = Print Sys_Req Print Sys_Req
keycode 218 = Print NoSymbol Print

Изменить: Когда я опубликовал это, я был на Lucid с самодельным ядром 2.6.35. Оказывается, моя проблема связана с ядром, а не с X.

Кто-то где-то решил, что alt-printscreen должен обработать событие SysRq. С технической точки зрения, возможно, так и должно быть, но это ломает то, что должно быть за десятилетие "известного поведения" Linux и Windows.

4 ответа

Решение

Согласно моим изменениям, это напрямую связано с версией ядра 2.6.35 (и, возможно, последующими ядрами), в результате чего alt+prscr отображает событие sysrq.

SysRq, кажется, не может быть привязан (по крайней мере, из-за того, что я возился), но вы можете отключить глупое новое поведение, добавив следующее в /etc/sysctl.conf:

kernel.sysrq = 0

Отмеченная ошибка есть. https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/642792

Поскольку вы указываете, что PrintScreen работает, а alt + printscreen - нет, это может быть связано с вашим отображением модификатора.

Если у вас есть 2 клавиши Alt, можете ли вы попробовать оба и посмотреть, одинаковое ли поведение?

Кроме того, вы можете запустить команду xmodmap -pke | grep -i mode в терминале и проверьте, означает ли это, что одна из клавиш alt отображается как клавиша "Переключатель режима"? Обычно вы видите 1 или более строк клавиатуры, содержащих коды, назначенные клавише переключения режимов.

Также беги xmodmap -pke | grep -i print в терминале и посмотрите, совпадают ли коды, напечатанные справа от знака равенства, со строкой ниже.

keycode 107 = Print Sys_Req Print Sys_Req

Смотрите эту страницу для объяснения синтаксиса строки keysym.

Вы пробовали просто использовать Print Screen? Я никогда не слышал об использовании Alt с ним.

Другие вопросы по тегам