---
description: 'Функции для настройки цветов'
next: books/accessibility/lowvision
params:
  path: /books/accessibility/colors/
part: 'Часть II. Зрение'
prev: books/accessibility/virtual-terminal
showBookMenu: 'true'
tags: ["Accessibility", "High contrast", "Color blindness", "Theming"]
title: 'Глава 3. Цвета'
weight: 6
---

[[colors]]
= Высокая контрастность
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 3
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/accessibility/colors/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[colors-intro]]
== Введение

Эта глава объясняет, как настроить цвета для элементов на экране, включая:

- Настройку цветовых схем с высокой контрастностью в графических средах.
- Адаптацию цветовой температуры экрана для оптимального просмотра в условиях дневного и ночного освещения.
- Выбор цветов для конфигурационных меню портов.

[[high-contrast-theme]]
== Тема с высокой контрастностью

Графические среды позволяют легко устанавливать и настраивать графические темы. Этот параграф описывает, как настроить темы с высокой контрастностью для окон.

[[kde-high-contrast]]
=== KDE Plasma

Запустите модуль `Глобальная тема (Global Theme)`:

[source, shell]
....
% kcmshell6 kcm_lookandfeel
....

В окне отображаются текущие установленные темы. Нажмите на значок "Получить новые... (Get New..)" в правом верхнем углу. Новое окно покажет дополнительные темы, доступные для установки. В поле поиска в правом верхнем углу вы можете искать новые темы для установки. Можно выполнить поиск по запросам "высокая контрастность (high contrast)" или "Acrilic Dark".

[[xfce-high-contrast]]
=== XFCE

Скачать по ссылке https://www.xfce-look.org/p/2289345[Темы высокой контрастности Windows 11]:

- _Adwaita-Dusk.tar.bz2_
- _Adwaita-Desert.tar.bz2_
- _Adwaita-Aquatic.tar.bz2_
- _Adwaita-NightSky.tar.bz2_

Пример приведен для темы _NightSky_, но, конечно, вы можете выбрать любую тему, которая вам больше нравится.

[source, shell]
....
% tar xzvf Adwaita-NightSky.tar.bz2 <1>
% mkdir ~/.themes <2>
% cp -a Adwaita-NightSky ~/.themes/ <3>
% rm Adwaita-NightSky.tar.bz2 <4>
% xfconf-query -c xfwm4 -p /general/theme -s 'Adwaita-NightSky' <5>
% xfconf-query -c xsettings -p /Net/ThemeName -s 'Adwaita-NightSky' <6>
....

<.> Извлеките файлы из архива загруженной темы.
<.> Создайте каталог [.filename]#~/.themes#, если он еще не существует.
<.> Скопируйте извлеченные темы в [.filename]#~/.themes#.
<.> При необходимости удалите исходный сжатый файл для экономии места.
<.> Примените тему Adwaita-NightSky для окружения рабочего стола XFCE.
<.> Примените тему Adwaita-NightSky для приложений GTK.

Выбор темы (шаги 5 и 6) также можно выполнить с помощью графических диалогов настройки в XFCE:

[source, shell]
....
% xfwm4-settings
% xfce4-appearance-settings
....

[[high-contrast-icon]]
== Высококонтрастные иконки

Графические среды позволяют легко устанавливать и настраивать темы иконок. Этот параграф описывает, как настроить иконки с высокой контрастностью.

[[kde-icon-high-contrast]]
=== KDE Plasma

Откройте модуль `_Icons_`:

[source, shell]
....
% kcmshell6 kcm_icons
....

В окне отображаются установленные в данный момент темы иконок. Чтобы установить новую тему, нажмите значок `_Получить новую (Get New)..._` в правом верхнем углу. Появится новое окно, позволяющее просматривать и устанавливать дополнительные темы иконок. В качестве предложения, вы можете найти `Treepata` с помощью строки поиска в правом верхнем углу. Хотя изначально созданная для XFCE и впоследствии адаптированная для KDE Plasma, Treepata была разработана как тема с высокой контрастностью для улучшения доступности.

[[xfce-icon-high-contrast]]
=== XFCE

Выполните следующие команды, чтобы использовать тему иконок _Treepata - High Contrast_ с XFCE.

Скачайте _Treepata.zip_ с https://www.xfce-look.org/p/1015854[Treepata - Высокая контрастность]. Затем выполните:

[source, shell]
....
# pkg search zip <1>
% unzip Treepata.zip <2>
% mkdir ~/.icons <3>
% cp -a Treepata ~/.icons/ <4>
% rm Treepata.zip <5>
% xfconf-query -c xsettings -p /Net/IconThemeName -s Treepata <6>
....

<.> Установите пакет package:archivers/zip[]:
<.> Извлеките содержимое загруженного архива.
<.> Создайте каталог [.filename]#~/.icons#, если он еще не существует.
<.> Скопируйте извлечённую тему в [.filename]#~/.icons#.
<.> При желании удалите загруженный архивный файл, чтобы освободить место.
<.> Установите тему иконок _Treepata_.

Тема иконок (шаг 6 выше) также может быть установлена графически через диалоговое окно `_Внешний вид (Appearance)_` на вкладке `_Иконки (Icons)_`. Для этого откройте диалоговое окно и выберите предпочитаемую тему иконок:

[source, shell]
....
% xfce4-appearance-settings
....

[NOTE]
====
Если у вас возникли проблемы с темой иконок, установите пакеты package:misc/hicolor-icon-theme[] и package:graphics/gtk-update-icon-cache[]:

[source, shell]
....
# pkg install hicolor-icon-theme gtk-update-icon-cache
....

Запустите man:gtk-update-icon-cache[1] для создания или обновления кэша иконок:

[source, shell]
....
% gtk-update-icon-cache -f -t ~/.icons/treepata
....

====

[[colors-temperature]]
== Цветовая температура

Этот параграф объясняет различные утилиты, которые настраивают цвета экрана в зависимости от температуры, циклов дня/ночи и настроек гаммы. Эти утилиты позволяют как интерактивно регулировать цвета, так и автоматически изменять их в зависимости от местного времени и географического положения. Некоторые утилиты совместимы с extref:{handbook}x11[X Window System], другие поддерживают extref:{handbook}wayland[Wayland], а некоторые работают на обоих дисплейных серверах.

.Утилиты для настройки цветовой температуры
[options="header", cols="1,1,1,1"]
|===
| Имя | Автоматическое обновление | Графическая среда | Пакет

| darkman
| Да
| X11
| package:accessibility/darkman[]

| gammastep
| Да
| X11
| package:accessibility/gammastep[]

| Night Light
| Да
| extref:{handbook}desktop/#kde-environment[KDE Plasma]
| package:x11/kde[]

| redshift
| Да
| X11, Wayland
| package:accessibility/redshift[]

| sct
| Нет
| X11
| package:accessibility/sct[]

| sctd
| Да
| X11
| package:accessibility/sctd[]

| wlsunset
| Да
| Wayland
| package:accessibility/wlsunset[]

|===

Остальная часть данного раздела подробно описывает шаги по установке, настройке и запуску утилит.

[[colors-darkman]]
=== darkman

man:darkman[1] — это демон, который автоматически управляет переходами между тёмным и светлым режимами. Он работает в основном в фоновом режиме, переключая цветовую схему экрана в зависимости от местного времени текущего местоположения. Для установки выполните:

[source, shell]
....
# pkg install darkman
....

Создайте файл [.filename]#~/.config/darkman/config.yaml# и запишите в него ваши широту и долготу. Пример:

[.programlisting]
....
lat: 37.52
lng: 122.16
....

Утилита не изменяет напрямую цвета экрана; вместо этого она вызывает внешние утилиты для выполнения переходов цветов. Добавьте скрипты для выполнения на закате, разместив их в [.filename]#$XDG_DATA_DIRS/dark-mode.d/#, и скрипты для выполнения на рассвете, разместив их в [.filename]#XDG_DATA_DIRS/light-mode.d/#. Несколько https://gitlab.com/WhyNotHugo/darkman/-/tree/main/examples[примеров скриптов] доступны в репозитории проекта.

Чтобы запустить darkman вручную, выполните:

[source, shell]
....
% darkman run &
....

Утилита также предоставляет некоторые интерактивные возможности; подробности смотрите на справочной странице man:darkman[1].

[[gammastep]]
=== gammastep

Утилита man:gammastep[1] автоматически регулирует цветовую температуру вашего экрана в зависимости от вашего местоположения. Для установки выполните:

[source, shell]
....
# pkg install gammastep
....

Утилита работает сразу без какой-либо настройки. Просто запустите её, выполнив:

[source, shell]
....
% gammastep &
....

[NOTE]
====
Если у вас возникли проблемы, настройте конфигурацию, адаптировав файл link:https://gitlab.com/chinstrap/gammastep/-/blob/master/gammastep.conf.sample[gammastep.conf.sample] и сохранив его как [.filename]#~/.config/gammastep/conf.ini#. Для устранения неполадок обратитесь к link:https://gitlab.com/chinstrap/gammastep/-/blob/master/README.md[README].
====

[[kde-nightlight]]
=== KDE Plasma

KDE позволяет настроить цветовую температуру экрана в зависимости от географического местоположения и местного времени. Запустите модуль `_Ночной свет (Night Light)_`:

[source, shell]
....
% kcmshell6 kcm_nightlight
....

Включите автоматическую настройку цвета, выбрав нужный вариант из выпадающего меню `_Время переключения_`.

[[redshift]]
=== redshift

Утилита man:redshift[1] определяет ваше местоположение и устанавливает соответствующую цветовую температуру. Для установки выполните:

[source, shell]
....
# pkg install redshift
....

Утилита redshift запускается без какой-либо конфигурации. Для её запуска достаточно выполнить:

[source, shell]
....
% redshift &
....

Утилита может зависнуть при попытке определить местоположение или правильный метод установки цвета. В этом случае укажите их явно, используя `-l _широта:долгота_` и `-m _метод_`. Доступные методы можно вывести, выполнив: `% redshift -m list`.

Пример запуска redshift с явным указанием местоположения и метода:

[source, shell]
....
% redshift -l 37.86:-122.27 -m randr &
....

Чтобы сделать эту настройку постоянной, добавьте следующие строки в файл [.filename]#~/.config/redshift/redshift.conf#:

[.programlisting]
....
[redshift]
adjustment-method=randr
location-provider=manual

[manual]
lat=37.86
lon=-122.27
....

[NOTE]
====
Проект предоставляет файл конфигурации по умолчанию https://github.com/jonls/redshift/blob/master/redshift.conf.sample[redshift.conf.sample]. Для устранения неполадок и получения дополнительной информации обратитесь к https://github.com/jonls/redshift/blob/master/README.md[README].
====

[[sct]]
=== sct

Утилита man:sct[1] представляет собой простой инструмент командной строки для управления цветовой температурой экрана. Она не обновляется автоматически и должна запускаться повторно для постепенной корректировки температуры. Для установки выполните:

[source, shell]
....
# pkg install sct
....

Утилита принимает значения температуры от 1000 до 10000, по умолчанию 6500. Для запуска sct введите: `sct _значение_`:

[source, shell]
....
% sct 8000
....

[TIP]
====
Утилита предлагает 3 стиля:

1) Стиль "Костер"

[source, shell]
....
% sct 4500
....

2) Пыльная буря в стиле Марса

[source, shell]
....
% sct 2000
....

3) Кофе без ограничений в стиле бессонной ночи

[source, shell]
....
% sct 8000
....
====

[[sctd]]
=== sctd

Утилита sctd вычисляет время восхода и заката на основе широты и долготы, и соответствующим образом регулирует цветовую температуру экрана. Для установки выполните:

[source, shell]
....
# pkg install sctd
....

Для запуска sctd укажите ваше местоположение с помощью параметров `--latitude` и `--longitude`:

[source, shell]
....
% sctd --latitude 40.55 --longitude 14.34 &
....

Чтобы сбросить цвет экрана к значению по умолчанию, выполните:

[source, shell]
....
% sctd --reset
....

[[wlsunset]]
=== wlsunset

Утилита man:wlsunset[1] предназначена для регулировки гаммы день/ночь в композиторах Wayland.

Для установки выполните:

[source, shell]
....
# pkg install wlsunset
....

Для запуска утилиты введите `wlsunset -l _широта_ -L _долгота_`. Пример:

[source, shell]
....
% wlsunset -l 14.34 -L 40.55 &
....

[[colors-ports]]
== Коллекция портов

FreeBSD предоставляет extref:{handbook}ports[Коллекцию портов], которая предлагает простой способ установки приложений. Некоторые порты позволяют настроить параметры перед сборкой и установкой. По умолчанию конфигурация обрабатывается через TUI-меню, создаваемое пакетом:ports-mgmt/portconfig[]. Цвета могут быть настроены несколькими способами:

. Возможности терминала по работе с цветами.
. Переменная окружения $NO_COLOR.
. Переменная окружения $PORTCONFIG_THEMEFILE.
. Глобальный файл [.filename]#/usr/local/etc/portconfig/theme.conf#.

[NOTE]
====
Эти методы перечислены в порядке убывания приоритета и являются взаимоисключающими, что означает, что только один из них может быть активен в любой момент времени.
====

*1. Цвета терминала*

man:portconfig[1] автоматически определяет, поддерживает ли терминал цвета. Если нет, он переключается на черно-белую тему.

*2. NO_COLOR*

Если переменная окружения `$NO_COLOR` установлена и не пуста, portconfig принудительно применяет черно-белую тему

.Пример постоянной настройки `$NO_COLOR`
[example]
====
[.filename]#/etc/make.conf#

[.programlisting]
....
export NO_COLOR=YES
....
====

*3. PORTCONFIG_THEMEFILE*

Если переменная окружения `$PORTCONFIG_THEMEFILE` установлена и указывает на допустимый файл темы, он будет использован. В противном случае применяется тема по умолчанию.

..Пример постоянной настройки `$PORTCONFIG_THEMEFILE`
[example]
====
[.filename]#/etc/make.conf#

[.programlisting]
....
export PORTCONFIG_THEMEFILE=/home/foo/mytheme.conf
....
====

[TIP]
====
Для создания нового файла темы выполните:

[source, shell]
....
% /usr/local/bin/bsddialog --save-theme mytheme.conf --infobox "Saving theme..." 0 0
....
====

*4. Глобальная тема.conf*

Если файл [.filename]#/usr/local/etc/portconfig/theme.conf# существует и является корректным, он будет использован. В противном случае применяется тема по умолчанию.

[TIP]
====
Примеры тем включены в [.filename]#/usr/local/etc/portconfig/#:

- blackwhite.conf
- default.conf
- red-green.conf
- yellow-blue.conf

Для использования темы yellow-blue.conf:
[source, shell]
....
# ln -s /usr/local/etc/portconfig/yellow-blue.conf /usr/local/etc/portconfig/theme.conf
....
====

[[brightness]]
== Яркость

Яркость экрана можно регулировать различными способами. Доступные методы сильно зависят от аппаратного обеспечения, поэтому рекомендуется попробовать функции, описанные в следующих разделах.

[[backlight]]
=== backlight

Утилита man:backlight[8] включена в операционную систему. Она используется для установки яркости устройств, расположенных в [.filename]#/dev/backlight/#.

Команда `backlight -f _устройство_ _значение_` устанавливает яркость _устройства_ в _значение_, где _значение_ — целое число от 0 (тускло) до 100 (ярко). Если устройство не указано, используется устройство по умолчанию [.filename]#/dev/backlight/backlight0#.

Пример установки яркости устройства по умолчанию на 50%:

[source, shell]
....
% backlight 50
....

[NOTE]
====
Если пользователь не принадлежит к группе "video", команду необходимо выполнять от имени суперпользователя.
====

[[acpi_video]]
=== acpi_video

Драйвер man:acpi_video[4], входящий в состав операционной системы, использует расширения ACPI Video для управления переключением дисплеев и яркостью подсветки. Для загрузки модуля ядра выполните:

[source, shell]
....
# kldload acpi_video
....

Настройки яркости могут быть сконфигурированы с помощью extref:{handbook}config/#configtuning-sysctl[sysctl(8)]. Доступны следующие параметры:

- hw.acpi.video._устройство_.levels: Список поддерживаемых уровней яркости.
- hw.acpi.video._устройство_. brightness: Текущий уровень яркости устройства.

_устройство_ - это возможное устройство отображения. Пример для установки яркости на 50% для устройства lcd0:

[source, shell]
....
% sysctl hw.acpi.video.lcd0.brightness <1>
hw.acpi.video.lcd0.brightness: 90
% sysctl hw.acpi.video.lcd0.levels <2>
hw.acpi.video.lcd0.levels: 90 60 2 4 6 8 10 12 14 16
18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52
54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88
90 92 94 96 98 100
# sysctl hw.acpi.video.lcd0.brightness=50 <3>
hw.acpi.video.lcd0.brightness: 90 -> 50
....

<.> `sysctl hw.acpi.video._устройство_. brightness ` для просмотра текущего уровня яркости.
<.> `sysctl hw.acpi.video._устройство_.levels` для просмотра доступных уровней.
<.> `sysctl hw.acpi.video._устройство_.brightness=50` для установки яркости на 50.

[NOTE]
====
man:acpi_video[4] должен быть загружен после любого из модулей ядра extref:{handbook}x11/#x-graphic-card-drivers[DRM].
====

[[xbrightness]]
=== xbrightness

Утилита package:x11/xbrightness[] может изменять яркость через extref:{handbook}x11[систему X Window].

[source, shell]
....
# pkg install xbrightness
....

Утилита man:xbrightness[1] позволяет установить значение от 0 (темнота) до 65535 (полная яркость). Пример установки яркости на 50%:

[source, shell]
....
% xbrightness 32767
....

[[xrandr]]
=== xrandr

Пакет package:x11/xrandr[] является расширением сервера X11, предоставляющим утилиту man:xrandr[1]. Он позволяет настраивать различные свойства дисплея, включая яркость. Для установки выполните:

[source, shell]
....
# pkg install xrandr
....

Команда `xrandr --output _монитор_ --brightness _яркость_` позволяет установить яркость для монитора в значение от 0 до 1.0. Для вывода списка доступных мониторов выполните:

[source, shell]
....
% xrandr --listmonitors
Monitors: 2
 0: +HDMI-1 1920/598x1080/337+0+0  HDMI-1
 1: +eDP-1 1920/344x1080/194+1920+0  eDP-1

....

Пример установки яркости на 50% для HDMI-1:

[source, shell]
....
% xrandr --output HDMI-1 --brightness 0.5
....

[[colorblindness]]
== Дальтонизм

В этом разделе описывается, как использовать утилиты, предназначенные для людей с дальтонизмом.

[[kde-colorblindness]]
=== KDE Plasma

KDE позволяет фильтровать цвета для графических элементов. Запустите модуль `_Доступность (Accessibility)_`:

[source, shell]
....
% kcmshell6 kcm_access
....

В области навигации выберите `_Коррекция дальтонизма (Color Blindness Correction)_`. Включите опцию `_Коррекция дальтонизма (Color blindness correction)_`, затем выберите подходящий режим цветового преобразования из выпадающего меню `_Режим (Mode)_`.
