我已经设置了一个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发布于 2022-11-22 10:41:30
我终于找到了一个可靠的解决方案。有一个命令行工具,名为"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节电设置中内置的“空白屏幕”功能。
https://unix.stackexchange.com/questions/725862
复制相似问题