我写了一个小的fetchmail脚本,可以检查远程服务器并在有新邮件时播放音频文件。我还想在邮件可用时点亮其中一个键盘灯,但我遇到了问题。使用以下代码可以点亮滚动锁定灯:
/usr/bin/xset led named "Scroll Lock"
但是我不能以同样的方式点亮大写锁定键:
/usr/bin/xset led named "Caps Lock"
我曾尝试使用数字(1-6)来指定键,但尽管更改了神秘的“LED掩码”(可通过“xset q”查看),灯光却没有任何变化。
这是因为我已将我的Caps Lock键映射为另一个Ctrl键而导致的吗?
在~/.Xmodmap文件中,我写了:
keycode 66 = Control_L
clear Lock
add Control = Control_L
我不想切换大写锁定键,只想控制其指示灯。有没有方法可以做到这一点?
进一步解释
我在一个x86的Kubuntu Lucid机器上进行操作,但稍后将迁移到Debian。我以Python守护程序的非特权用户身份运行脚本。使用root身份运行相同的脚本无法正常工作,因为fetchmail是针对作为用户的自己进行配置的。最后,所有这些都在tmux会话中运行。
当我开始这个过程时,我了解到setleds,但它似乎仅限于非X会话中的终端。
以root身份登录并运行 'setleds -D +caps < /dev/tty7' 可行,但运行 'sudo setleds -D +caps < /dev/tty7' 则会给出权限被拒绝的错误。
对于我的应用程序,xset命令似乎非常完美,只是它拒绝更改大写锁定键的指示灯。
xset led on
或xset -led on
并没有打开它,即使文档说它应该打开所有LED。因此,我们可能可以排除按键重新映射的可能性。 - user719958