![x11-将整个屏幕设置为单色](https://linux22.com/image/215666/x11-%E5%B0%86%E6%95%B4%E4%B8%AA%E5%B1%8F%E5%B9%95%E8%AE%BE%E7%BD%AE%E4%B8%BA%E5%8D%95%E8%89%B2.png)
我想知道如何将整个屏幕设置为单一颜色(在我的例子中为白色)。
我正在尝试制作一个原始的唤醒灯脚本(使用我的笔记本电脑屏幕)。我会使用 cron 来触发它。我已经弄清楚如何以编程方式更改背光 [1],现在我想显示全白屏幕。
我已经xsetroot -solid "#ffffff"
按照建议进行了尝试从终端启动单色全屏但没有明显效果。我也尝试过使用xset s blank
, 再次没有效果。他们都没有改变桌面背景。
我不想使用 python,以保持简洁。
我是否缺少一些论点xsetroot
?最好我还想将整个屏幕变成白色,而不仅仅是背景,但后者也可以。或者也许xset
可以创建一个全白色的全屏屏幕保护程序?找不到任何xset
可以执行此操作的命令。
我使用的 DE 是 Cinnamon 5.2.7,如果相关的话,在 Linux Mint 20.3 上。
[1]写入19200/sys/class/backlight/intel_backlight/brightness
答案1
在现代桌面环境中,桌面环境负责显示背景图像,本质上是在裸露的 X11 桌面背景之上。
也就是说,xsetroot
基本上会出现失败;您将需要使用桌面环境的设置来控制实际的可见背景。
答案2
三重解释了为什么xsetroot
您的设置失败,因此我将概述实现既定目标所需的选项:
将整个屏幕变白,而不仅仅是背景
需要考虑三种情况:
- 由于不活动,您的屏幕已关闭
- 您的屏幕已打开且屏幕保护程序正在运行
- 您的屏幕已打开,您的桌面可见,并且零个或多个应用程序可见
对于情况 #1,请考虑使用rtcwake
任何 APM 子系统工具来在所需的时间唤醒系统。您可能还必须acpi=off apm=off
在内核命令行中执行操作,或者使用gsettings
GNOME 来调整对电源管理的理解。请注意,有许多不同的电源管理子系统:GNOME、X Server、内核、固件和硬件。他们所有人都必须达成一致,所以这可能会很繁琐。
对于情况#2,您可以用来pkill
终止xscreensaver
当前正在运行的任何进程。在基于 GNOME 的系统上,可能有gnome_screensaver
,在这种情况下您需要检查它(pkill
如果是的话)。
最后,对于情况#3,您想要在所有其他白色窗口上绘制一个窗口。我想到的方法是使用xv -root all-white.png
,确保传递 Xresource 值以最大化窗口。