如何使用xset点亮Caps Lock指示灯?

时间:2011-10-09 04:04:54

标签: keyboard xserver capslock

我写了一个小的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指示灯。

4 个答案:

答案 0 :(得分:12)

在root下执行:

setleds -D +caps < /dev/console

Hackish,但对我有用:)

答案 1 :(得分:1)

是否需要xset?你曾经使用过setleds吗?

setleds -D +caps
setleds -D -caps

简要概述:Linux / Unix Command: setleds

答案 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