【问题标题】:Unable to disable PrintScreen key in Gnome无法在 Gnome 中禁用 PrintScreen 键
【发布时间】:2016-09-22 15:07:32
【问题描述】:

由于某种原因,我必须在登录后禁用 PrintScreen 键(包括其他键,例如 Alt、Ctrl、F1~F12),所以我编写了一个启动脚本来执行此操作。它必须是:

  1. 当我禁用它时,必须立即禁用它,我不必重新启动或注销/登录。
  2. 当我想在下一个登录会话中使用这些密钥时,我可以从启动中删除脚本。
  3. 必须放入脚本或命令行,我无法打开 gui 应用程序(例如 gnome-keybinding-propertiesgconf-editor)并点击或类似的东西。
  4. 我无法安装额外的应用程序,如 dconf-editor 来执行此操作。

这些方法我都试过了,都不管用:

  1. xmodmap -e 'keycode 107 = '
  2. xmodmap -e 'keycode 107 = NoSymbol'
  3. xmodmap -e 'keysym Print = '
  4. xmodmap -e 'keysym Print = NoSymbol'

(我已经用showkeyxev得到PrintScreen的keycode是107)

在 Gnome 中按 PrintScreen 键触发的 /usr/bin/gnome-screenshot 的重命名、删除或更改权限会在我按下不是我想要的键时弹出一个窗口。

这些 xmodmap 命令可以成功禁用其他键,例如 Alt、Ctrl、F1~F12,但它们不适用于 PrintScreen,按下 PrintScreen 仍会激活 gnome-screenshot 并截取屏幕。

我该怎么做?

我使用的是 CentOS6.5,Gnome2.x

【问题讨论】:

    标签: linux keyboard-shortcuts screenshot gnome xmodmap


    【解决方案1】:

    我在尝试映射鼠标按钮时遇到了类似的问题,发现xinput 能够映射我的鼠标操作——它基本上能够列出和修改输入设备的设置。

    我发现它偶尔会被重置(usb 设备因任何原因而重置?),所以为了让它始终工作,我只是将它放在我的 .bashrc 中的一个 while 循环中,比如;

    (while xinput --set-prop "Logitech USB-PS/2 Trackball"  "Evdev Middle Button Emulation" 1; do sleep 20; done&) >/dev/null 2>&1
    

    您的映射当然会有所不同,因为您尝试完成键盘按键而不是鼠标按键的映射。 xinput 是否对您有帮助是anyone's guess,因为我不知道您的输入设备有哪些具体功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      相关资源
      最近更新 更多