Перестал работать 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 с ним.