我写了一个小的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清晰机器上,但我稍后将迁移到debian。我在python守护程序中以非特权用户身份运行脚本。以root身份运行相同的脚本将不起作用,因为fetchmail是为我自己配置为用户的。最后,这都是在tmux会话中运行的。
当我开始这个过程时,我读到了关于setleds但它似乎仅限于非x会话中的终端。
以root身份登录并运行'setleds -D + caps< / dev / tty7'工作但运行'sudo setleds -D + caps< / dev / tty7'给了我一个权限被拒绝的错误。
xset命令似乎非常适合我的应用程序,它只是拒绝更改Caps Lock指示灯。
答案 0 :(得分:12)
在root下执行:
setleds -D +caps < /dev/console
Hackish,但对我有用:)
答案 1 :(得分:1)
答案 2 :(得分:0)
xset
没有root
特权使用/usr/share/X11/xkb/compat/ledcaps
一次编辑sed
。无论重新启动,此更改都将保持不变。
$ sudo sed -i 's|\!allowExplicit|allowExplicit|g' /usr/share/X11/xkb/compat/ledcaps
注销并再次登录后,现在可以使用以下命令在没有任何root
特权的情况下控制 Caps Lock LED:
$ xset led named 'Caps Lock'
$ xset -led named 'Caps Lock'
答案 3 :(得分:0)
大写锁定指示灯(不是功能)关闭
for a in `ls -d /sys/class/leds/*caps*`;do echo 0 >$a/brightness;done
大写锁定指示灯(不是功能)打开
for a in `ls -d /sys/class/leds/*caps*`;do echo 1 >$a/brightness;done