2

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

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

我尝试了这些方法,但都没有奏效:

  1. xmodmap -e '键码 107 = '
  2. xmodmap -e 'keycode 107 = NoSymbol'
  3. xmodmap -e 'keysym 打印 = '
  4. xmodmap -e 'keysym 打印 = NoSymbol'

(我已经使用showkeyxev来获取 PrintScreen 的键码,即 107)

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

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

我怎样才能做到这一点?

我正在使用 CentOS6.5、Gnome2.x

4

1 回答 1

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 是否会帮助您是任何人的猜测,因为我不知道您的输入设备具有哪些确切功能。

于 2016-05-31T02:47:28.443 回答