Dark mode switching (Русский) - ArchWiki

Jump to content
From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Dark mode switching. Дата последней синхронизации: 24 января 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Приятно иметь возможность переключения между светлой и тёмной темой. Существуют варианты переключения по заходу солнца или по сочетанию клавиш.

Переключение тем может быть произведено как для запущенных программ (возможно, требуется работа демона), так и для программ ещё не запущенных. В статье рассматривается переключение для запущенных программ.

Для переключения требуется поддержка от приложения или использование приложением GTK или Qt.

## Инструменты

- darkman — Инструмент, позволяющий автоматизировать переход в тёмную тему на закате и возврат к светлой теме на восходе. Он позволяет разместить drop-in скрипты, которые будут автоматически выполняться в нужное время.

  https://gitlab.com/WhyNotHugo/darkman/ || darkmanAUR

- Yin-Yang — Другой инструмент с похожими возможностями, однако запуск произвольных скриптов ещё не поддерживается.

  https://github.com/oskarsh/Yin-Yang || yin-yang-gitAUR

### GTK

Для переключения между светлым и тёмным вариантами нужно менять используемую тему.

Большинство тем GTK имеют тёмный вариант, обычно они обозначены суффиксом `-dark`. Например, стандартная тема для GTK называется `Adwaita`, а тёмный вариант называется `Adwaita-dark`.

Чтобы постоянно использовать только тёмный вариант, смотрите GTK (Русский)#Вариант тёмной темы.

Чтобы мгновенно сменить тему уже работающих приложений, требуется или демон, предоставляющий xsettings spec, или gsettings. Для окружений, работающих в Xorg нужен демон xsettings. Для Wayland нужен gsettings.

#### Демон xsettings

xsettings нужен для сеансов Xorg.

Демон xsettings для Xfce — xfsettingsd, доступен в пакете xfce4-settings.

Получить текущую используемую тему:

    $ xfconf-query -c xsettings -p /Net/ThemeName

Установить тему:

    $ xfconf-query -c xsettings -p /Net/ThemeName -s "new-theme"

Изменения применяются мгновенно и влияют на все приложения, использующие GTK.

#### gsettings

gsettings нужен для сеансов Wayland.

Получить текущую используемую тему:

    $ gsettings get org.gnome.desktop.interface gtk-theme

Установить тему:

    $ gsettings set org.gnome.desktop.interface gtk-theme "new-theme"

Изменения применяются мгновенно и влияют на все приложения, использующие GTK.

### Qt

Qt имеет механизм поддержки тем, похожий на GTK.

Один из вариантов — использовать GTK для стилизации Qt-приложений. Тогда изменение темы GTK повлияет и на Qt-приложения тоже.

Другой способ — использовать родную тему Qt, например adwaita-qt5. Для переключения тем смотрите Qt (Русский)#Настройка приложений Qt5 в окружениях, отличных от KDE Plasma.

### Xfce

Смена темы в Xfce происходит похожим образом через xsettingsd, который распространяется в виде пакета xfce4-settings.

## Приложения

### Firefox

Firefox автоматически подхватывает текущую тему GTK и адаптирует свой интерфейс. Смотрите раздел Firefox (Русский)#Тёмные темы, чтобы узнать больше.

Для изменения темы веб-страниц в магазине расширений Firefox рекомендуется расширение Dark Reader.

### Thunderbird

Thunderbird применяет текущую тему GTK, но рекомендуются некоторые самостоятельные действия.

Смотрите Thunderbird (Русский)#Установка темы.

### Visual Studio Code

Для Visual Studio Code может пригодиться этот скрипт.

### Alacritty

Alacritty поддерживает множество тем. Примеры конфигурации можно найти на странице color schemes на вики в GitHub репозитории проекта. Например, известная в IDEA тема Darkula есть в разделе Dracula на этой же странице.

Чтобы быстро сменить тему, требуется определить указатель для каждой цветовой схемы. Например, укажите `&black` после названия. После этого просто выполните `colors: *black`. Изменение в файле конфигурации применится мгновенно и затронет все запущенные экземпляры. Если нет, то, возможно, понадобится прописать `live_config_reload: true`.

Границы окна и тайтлбар подчиняются теме GTK, но можно форсировать собственное поведение, установив настроку `gtk_theme_variant` в положение `None`.

Category:

- Eye candy (Русский)