我写了一个小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指示灯。
在root下执行:
setleds -D +caps < /dev/console
哈金,但对我有用:)
xset
without root
privileges使用/usr/share/X11/xkb/compat/ledcaps
编辑sed
一次。无论是否重新启动,此更改都将保持永久性。
$ sudo sed -i 's|\!allowExplicit|allowExplicit|g' /usr/share/X11/xkb/compat/ledcaps
在注销并再次注销后,现在可以使用以下命令控制Caps Lock LED,而无需任何root
权限:
$ xset led named 'Caps Lock'
$ xset -led named 'Caps Lock'