我已经设置了一个 MQTT 程序来控制我的 Debian 服务器。我的服务器机柜中有一个运动传感器,我希望当我走进机柜时(甚至在我移动鼠标或触摸键盘之前)屏幕自动打开。我仍然希望屏幕在 5 分钟后关闭不活动。
我能够跑去sudo vbetool dpms off
关闭显示器,然后sudo vbetool dpms on
再次打开它。但是,我注意到即使显示器关闭,我仍然可以通过 VNC 访问服务器。
我在“设置”中有这些省电选项,“黑屏”设置似乎破坏了一切:
如果激活“黑屏”,sudo vbetool dpms on
则会打开屏幕,但屏幕保持黑屏。我也无法再通过 VNC 连接。
如何从命令行停用 Debian 的“黑屏”?我可以运行一些东西来模拟摆动鼠标吗?或者我应该禁用“黑屏”设置并使用其他东西在不活动后关闭屏幕? (x屏保?)
我正在使用 Wayland,所以我似乎无法运行xset
我在网上找到的任何命令或 Xorg 的其他东西。
这是我拥有的包含“会话”的所有进程:
# ps ax | grep session
24510 ? Ss 0:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
27420 ? Sl 0:00 gdm-session-worker [pam/gdm-password]
27451 ? Ss 0:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
27475 ? S<l 0:00 /usr/bin/pipewire-media-session
27480 tty3 Ssl+ 0:00 /usr/libexec/gdm-wayland-session /usr/bin/gnome-session
27487 tty3 Sl+ 0:00 /usr/libexec/gnome-session-binary --systemd
27541 ? Ssl 0:00 /usr/libexec/gnome-session-ctl --monitor
27546 ? Ssl 0:00 /usr/libexec/gnome-session-binary --systemd-service --session=gnome
27708 ? Sl 0:00 /usr/libexec/at-spi2-registryd --use-gnome-session
28262 pts/1 S+ 0:00 grep --color=auto session
答案1
我终于找到了一个可靠的解决方案。有一个名为“ydotool”的命令行工具,您可以使用它来移动鼠标或发送击键。
您可以使用 apt 安装的版本太旧并且有很多错误,因此我需要从 GitHub 克隆它并从源代码编译它。这是我为此运行的所有命令:
git clone https://github.com/ReimuNotMoe/ydotool
cd ydotool
mkdir build
cd build
cmake ..
make -j `nproc`
sudo make install
cp ydotool.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable ydotool.service
systemctl start ydotool.service
现在您将拥有一个ydotool
可以使用的命令。
这是我编写的一个简单的“摆动鼠标”脚本,用于唤醒屏幕:
#!/bin/bash
set -eu
ydotool mousemove --absolute -- 355 0
sleep 0.1
ydotool mousemove --absolute -- 350 0
这对我来说效果很好,我可以继续使用 Debian 省电设置中的内置“黑屏”功能。