【发布时间】:2011-12-03 19:45:38
【问题描述】:
我编写了一个小 fetchmail 脚本,它检查远程服务器并在我收到新邮件时播放音频文件。当邮件可用时,我还想点亮我的一个键盘灯,但我遇到了问题。我可以用这个点亮滚动锁定灯:
/usr/bin/xset led named "Scroll Lock"
但我不能以同样的方式点亮 Caps 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/tty7' 有效,但运行 'sudo setleds -D +caps/tty7' 给我一个权限被拒绝错误。
xset 命令似乎非常适合我的应用程序,它只是拒绝更改 Caps Lock 灯。
【问题讨论】:
-
描述您的配置:操作系统、机器等
-
好吧,我的大写锁定仍然是大写锁定,运行
xset led on或xset -led on不会打开它,即使文档说它应该打开所有 LED。所以我们可能可以排除键重新映射。 -
你的 sudo 命令失败了,因为你没有用 sudo 封装 shell 重定向。这将起作用... $ sudo sh -c 'setleds -D +caps /tty7'