小编T. *_*ron的帖子

从 X 会话中更改键盘 LED 的状态,无需 root 访问

我正在尝试强制开启大写锁定。xset对我不起作用,所以我试图使用setleds.

在图形控制台中,此命令返回:

> LANG=C setleds -L +caps
KDGKBLED: Inappropriate ioctl for device
Error reading current flags setting. Maybe you are not on the console?
Run Code Online (Sandbox Code Playgroud)

在虚拟终端中,它起作用,但是效果是该虚拟终端本地的。据我了解,运行

> setleds -L +caps < /dev/tty1
Run Code Online (Sandbox Code Playgroud)

从虚拟终端(我的 X 服务器位于 tty1 上)应该可以工作。但是,这需要 root 访问权限。

有没有办法将命令发送到 X 服务器下的控制台,无论是来自所述 xserver 还是来自另一个 VT,而无需 root?

编辑:根据 Mark Plotnik 的建议,并根据此处找到的代码,我编写并编译了以下内容:

#include <X11/Xlib.h>
#include <X11/XKBlib.h>

#define SCROLLLOCK 1
#define CAPSLOCK 2
#define NUMLOCK 16

void setLeds(int leds) {
   Display *dpy = XOpenDisplay(0);
   XKeyboardControl values;
   values.led_mode = …
Run Code Online (Sandbox Code Playgroud)

linux xorg io-redirection x11 console

10
推荐指数
1
解决办法
8277
查看次数

标签 统计

console ×1

io-redirection ×1

linux ×1

x11 ×1

xorg ×1