gnome

Автоматический светлый/темный режим

Кто-нибудь нашел способ автоматического переключения между «светлым» и «темным» режимами, что касается «Темы окна» в настройках Ubuntu (Настройки → Внешний видТема окнаСветлая / Стандартная / Темная )?

Копаться в настройках каждое утро или вечер — настоящая боль. Было бы здорово иметь возможность автоматически переключаться в «темный» режим на закате и автоматически переключаться в «светлый» режим на рассвете.

Для GNOME существует это расширение оболочки: Night Theme Switcher

Он имеет довольно много опций и уже работает из коробки,без необходимости что-либо настраивать,но и настройка также проста!

Screenshot of the Schedule tab

Screenshot of the GTK theme tab




Команда терминала для изменения темы следующая:

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

для яру-темной темы,и

gsettings set org.gnome.desktop.interface gtk-theme 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 создавать lightscript.sh и darkscript.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 выполнять lightscript.sh в 6:00 утра и darkscript.sh в 9:00 вечера каждый день.

Мы делаем этот обходной маневр вместо того,чтобы просто добавить:

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

в crontab , потому что для этого требуется, чтобы переменная DBUS_SESSION_BUS_ADDRESS была установлена ​​правильно.



Каковы взаимоотношения между GNU и GNOME
Интеграция подхода к файловой системе на основе тегов в Gnome и Nautilus
Сломанная тема экрана входа в систему
Что такое Xwayland,что если я удалю его из ubuntu 22.04