x11-将整个屏幕设置为单色

x11-将整个屏幕设置为单色

我想知道如何将整个屏幕设置为单一颜色(在我的例子中为白色)。

我正在尝试制作一个原始的唤醒灯脚本(使用我的笔记本电脑屏幕)。我会使用 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. 由于不活动,您的屏幕已关闭
  2. 您的屏幕已打开且屏幕保护程序正在运行
  3. 您的屏幕已打开,您的桌面可见,并且零个或多个应用程序可见

对于情况 #1,请考虑使用rtcwake任何 APM 子系统工具来在所需的时间唤醒系统。您可能还必须acpi=off apm=off在内核命令行中执行操作,或者使用gsettingsGNOME 来调整对电源管理的理解。请注意,有许多不同的电源管理子系统:GNOME、X Server、内核、固件和硬件。他们所有人都必须达成一致,所以这可能会很繁琐。

对于情况#2,您可以用来pkill终止xscreensaver当前正在运行的任何进程。在基于 GNOME 的系统上,可能有gnome_screensaver,在这种情况下您需要检查它(pkill如果是的话)。

最后,对于情况#3,您想要在所有其他白色窗口上绘制一个窗口。我想到的方法是使用xv -root all-white.png,确保传递 Xresource 值以最大化窗口。

相关内容