今天很奇怪的问题。我打算发布一个关于另一个问题的帖子,并想截取终端窗口的屏幕截图。我做好了一切准备,点击Alt+Printscreen并没有发生任何事情。
我进入了键盘快捷键,看看重新定义快捷键是否有效。它做了。我试图将其设置回Alt+Printscreen但窗口只是坐在那里听按键。就好像我从来没有按过钥匙一样。
Alt和键都Printscreen可以独立工作......我还尝试查看xev
按下键时的输出。它听到 Alt 按下,但之后没有听到 Printscreen。
我已经在 Compiz 和普通的 metacity 中尝试过这个。我还有一个备用键盘,它显示出相同的行为(一个键盘是 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
编辑:当我发布这篇文章时,我正在使用自制的 2.6.35 内核在 Lucid 上。事实证明我的问题与内核有关,而不是 X。
某个地方的某个人决定 alt-printscreen 应该呈现一个 SysRq 事件。从技术上讲,也许应该这样做,但这打破了 Linux 和 Windows 十多年来的“已知行为”。
根据我的编辑,这似乎直接链接到内核版本 2.6.35(可能还有后续内核),由此 alt+prscr 呈现 sysrq 事件。
SysRq 似乎是不可绑定的(至少从我的混乱中),但您可以通过添加以下内容来禁用愚蠢的新行为
/etc/sysctl.conf
:由于您指示 PrintScreen 有效但 alt+printscreen 无效,因此可能与您的修改器映射有关。
如果您有 2 个 Alt 键,您可以同时尝试两个键,看看行为是否相同?
另外,您可以在终端中运行命令
xmodmap -pke | grep -i mode
并检查是否表明其中一个 alt 键被映射为“模式切换”键?通常,您会看到 1 个或多个 keyym 行,其中包含分配给模式切换键的代码。还要
xmodmap -pke | grep -i print
在终端中运行,看看打印在等号右侧的代码是否与下面的行匹配。有关keyym 行语法的说明,请参阅此页面。
报告的错误在那里。 https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/642792
您是否尝试仅使用 Print Screen?我从来没有听说过使用 Alt。