prntscrn 按钮在 Ubuntu 16.04 中不起作用(在 14.04 中可以正常工作)

prntscrn 按钮在 Ubuntu 16.04 中不起作用(在 14.04 中可以正常工作)

我在 HP 笔记本电脑上运行 16.04 版本。在 14.04 版本中,该prntscrn按钮可以正常工作(按下它可以截取整个屏幕的屏幕截图,按下它shift + prntscrn可以截取选定区域的部分屏幕截图等)。自从升级到 16.04 版本后,我就无法让它工作了根本

所有快捷方式均设置正确,一切正常。

gnome-screenshot 已安装,并且如果我将其输入到终端中它就可以工作。

xev显示按下+释放prntscrn按钮的情况:

KeyPress event, serial 37, synthetic NO, window 0x4400001,
    root 0x2c2, subw 0x0, time 5325568, (-443,285), root:(346,337),
    state 0x10, keycode 218 (keysym 0xff61, Print), same_screen YES,
    XKeysymToKeycode returns keycode: 107
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x4400001,
    root 0x2c2, subw 0x0, time 5325759, (-443,285), root:(346,337),
    state 0x10, keycode 218 (keysym 0xff61, Print), same_screen YES,
    XKeysymToKeycode returns keycode: 107
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

为了进行比较,它显示了按下 + 释放F12按钮的情况(效果很好):

KeyPress event, serial 37, synthetic NO, window 0x4600001,
    root 0x2c2, subw 0x0, time 5433196, (-509,256), root:(280,308),
    state 0x10, keycode 96 (keysym 0xffc9, F12), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x4600001,
    root 0x2c2, subw 0x0, time 5433406, (-509,256), root:(280,308),
    state 0x10, keycode 96 (keysym 0xffc9, F12), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

答案1

我找到了解决方案这里

我从 xev 输出中注意到,在 HP Pavilion 上按下 prt sc 会返回两个不同的代码:218(按键本身的代码),而 XKeysymToKeycode 返回 107。

我使用 xmodmap -pke 查看了按键映射,发现有 107 绑定到 Print 操作,但没有 218 键码的绑定。因此,我只需添加键码 218 的绑定:

xmodmap -e "keycode 218 = Print"

然后从 107 键码中删除绑定

xmodmap -e "keycode 107 = "

此后,一切都开始正常运转。希望我能够帮助到一些人。

相关内容