自动亮/暗模式?

Gre*_*era 12 gnome gnome-shell

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

每天早上或晚上深入研究设置是一种真正的痛苦。能够在日落时自动切换到“暗”模式,并在日出时自动切换到“亮”模式会很棒。

Shu*_*ang 12

更改主题的终端命令是:

gsettings set org.gnome.desktop.interface gtk-theme Yaru-dark
Run Code Online (Sandbox Code Playgroud)

对于 Yaru-dark 主题,以及

gsettings set org.gnome.desktop.interface gtk-theme Yaru-light
Run Code Online (Sandbox Code Playgroud)

为 Yaru-light 主题。

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

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

gsettings set org.gnome.desktop.interface gtk-theme Yaru-dark
Run Code Online (Sandbox Code Playgroud)

使文件可执行运行:

chmod 755 /path/to/script.sh
Run Code Online (Sandbox Code Playgroud)

或者:

chmod +x /path/to/script.sh
Run Code Online (Sandbox Code Playgroud)

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

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

crontab -e
Run Code Online (Sandbox Code Playgroud)

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

0 6 * * * /path/to/lightscript.sh
0 21 * * * /path/to/darkscript.sh
Run Code Online (Sandbox Code Playgroud)

它会说:

crontab: installing new crontab
Run Code Online (Sandbox Code Playgroud)

退出命令后。您还可以检查:

crontab -l
Run Code Online (Sandbox Code Playgroud)

这应该可以做到。上面两行告诉我们每天早上 6:00 和晚上 9:00cron执行。lightscript.shdarkscript.sh

我们正在走这个弯路,而不是仅仅添加:

0 6 * * * gsettings set org.gnome.desktop.interface gtk-theme Yaru-light
Run Code Online (Sandbox Code Playgroud)

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


小智 9

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

它有很多选项,并且已经开箱即用,无需配置任何东西,但配置也很简单!

“计划”选项卡的屏幕截图

GTK 主题选项卡的屏幕截图

  • 扩展页面还显示“Ubuntu 不受支持,因为其经过大量修补的 GNOME 组件与扩展冲突” (4认同)