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

问题描述 投票:9回答:3

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

keyboard xserver capslock
3个回答
12
投票

在root下执行:

setleds -D +caps < /dev/console

哈金,但对我有用:)


1
投票

它需要是xset吗?你有没有用过setleds

setleds -D +caps
setleds -D -caps

简要概述:Linux / Unix Command: setleds


0
投票

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'
© www.soinside.com 2019 - 2024. All rights reserved.