gnome

自动亮/暗模式

关于Ubuntu设置中的“窗口主题”(设置→外观窗口主题浅色/标准/深色) ,有没有人找到一种在“浅色”和“深色”模式之间自动切换的方法?

每天早上或晚上深入研究设置是一种真正的痛苦。能在日落时自动切换到“暗”模式,在日出时自动切换到“亮”模式,那就太好了。

对于 GNOME,存在这个 shell 扩展:Night Theme Switcher

它有相当多的选项,而且已经开箱即用,无需配置任何东西,但配置也很直接!

Screenshot of the Schedule tab

Screenshot of the GTK theme tab




改变主题的终端命令是。

gsettings set org.gnome.desktop.interface gtk-theme Yaru-dark

为Yaru-dark主题,以及

gsettings set org.gnome.desktop.interface gtk-theme Yaru-light

为Yaru-light主题。

现在,有一种叫做cron-job的东西用于调度工作(基本上是在特定的时间重复执行某些东西)。因此,你可以写一个cron-job来在指定的时间执行这些命令(比如在晚上9点改成深色主题,早上6点改成浅色主题)。

将以下内容添加到名为 script.sh 的文件中:

#!/bin/bash
echo export DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS > lightscript.sh
echo export DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS > darkscript.sh
echo "gsettings set org.gnome.desktop.interface gtk-theme Yaru-light" >> lightscript.sh
echo "gsettings set org.gnome.desktop.interface gtk-theme Yaru-dark" >> darkscript.sh
chmod 755 lightscript.sh
chmod 755 darkscript.sh

currenttime=$(date +%H:%M)
if [[ "$currenttime" > "21:00" ]] || [[ "$currenttime" < "06:00" ]]; then
  ./darkscript.sh
else
  ./lightscript.sh
fi

使该文件可执行运行。

chmod 755 /path/to/script.sh

or:

chmod +x /path/to/script.sh

在终端中运行 gnome-session-properties 。通过单击右侧的添加添加一个新的启动程序,然后通过浏览选择 script.sh 文件并使用一些名称和注释保存它。这将告诉 GNOME在您通过 GUI 登录时创建 lightscript.shdarkscript.sh

使用以下命令将您的工作(更改主题)添加到 crontab :

crontab -e

并选择合适的编辑器,或者您可以转到 /var/spool/cron/crontabs 并使用您的用户名编辑文件。以这种方式访问​​文件需要 sudo 权限。添加以下两行(将 /path/to/ 替换为实际路径):

0 6 * * * /path/to/lightscript.sh
0 21 * * * /path/to/darkscript.sh

它将说。

crontab: installing new crontab

在退出命令后。你也可以用以下方法检查。

crontab -l

这应该这样做。上面两行告诉 cron 每天早上6:00执行 lightscript.sh ,晚上 9:00执行 darkscript.sh

我们正在走这段弯路,而不是仅仅增加。

0 6 * * * gsettings set org.gnome.desktop.interface gtk-theme Yaru-light

crontab ,因为这需要正确设置 DBUS_SESSION_BUS_ADDRESS 变量。