使用 cron ubuntu 18.04 按计划更改 gtk 主题

使用 cron ubuntu 18.04 按计划更改 gtk 主题

大家好...作为一名开发人员,我经常更换主题,白天和晚上,我有 2 个主题“Light & Dark”。我编写了一个 bash 脚本来从 cli 更改 gtk 主题和 shell 主题,它运行良好。但是,当我通过 crontab 发布脚本时,它无法运行并报告无法连接到显示器和 Dbus 问题

这是我的 crontab

  * *   *   *   *    DISPLAY=:0.0 /home/newton/scripts/dark-mode.sh

这是我的脚本

#!/bin/bash
export DISPLAY=:0.0
export WAYLAND_DISPLAY=wayland-0

/usr/bin/gsettings set org.gnome.desktop.interface gtk-theme 'Vimix-Dark-Laptop-Ruby' 
/usr/bin/gsettings set org.gnome.shell.extensions.user-theme name 'Vimix-Dark-Laptop-Ruby' 

请帮我解决这个问题,我认为这对很多人都有帮助。问候 Mohammed Gritli

答案1

谢谢@Kristopher Ives

我之前尝试过这个答案,但是 PID 作为目录出现并且 DBUS_SESSION_BUS_ADDRESS 再次变空。

我和朋友想出了一个解决方法,在 crontab 文件顶部添加以下内容:

DISPLAY=:0
WAYLAND_DISPLAY=wayland-0
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus

我从环境输出中获取了变量

之后,一切都很顺利,我还设法通过“sed”命令更改了我的“vscode 主题”,方法是将主题名称替换为

这是我的完整文件“crontab -e”

#changing theme based on day-light 
DISPLAY=:0
GNOME_SHELL_SESSION_MODE=ubuntu
USER=newton
DESKTOP_SESSION=ubuntu-wayland
WAYLAND_DISPLAY=wayland-0
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XAUTHORITY=/home/newton/.Xauthority

# m   h  dom mon dow   command
  */5   19-05   *   *    *   DISPLAY=:0.0 /home/newton/scripts/dark-mode.sh
  */5 06-18   *   *    *   DISPLAY=:0.0 /home/newton/scripts/light-mode.sh

“dark-mode.sh 的内容”

#!/bin/bash

/usr/bin/gsettings set org.gnome.desktop.interface gtk-theme 'Vimix-Dark-Laptop-Ruby' 
/usr/bin/gsettings set org.gnome.shell.extensions.user-theme name 'Vimix-Dark-Laptop-Ruby' 
sed -i 's/Atom One Light/Ubuntu Style Theme/g' /home/newton/.config/Code/User/settings.json

“light-mode.sh 的内容”

#!/bin/bash

/usr/bin/gsettings set org.gnome.desktop.interface gtk-theme 'Vimix-Light-Laptop-Ruby' 
/usr/bin/gsettings set org.gnome.shell.extensions.user-theme name 'Vimix-Light-Laptop-Ruby' 
sed -i 's/Ubuntu Style Theme/Atom One Light/g' /home/newton/.config/Code/User/settings.json

问候 Mohammed Gritli

答案2

请参阅有关更改桌面背景以及如何连接到的答案DBUS_SESSION_BUS_ADDRESS

使用 cron 中的 gsettings 时背景没有改变

相关内容