30.26 Цвета текстового терминала

Текстовые терминалы обычно поддерживают лишь небольшое количество цветов, и компьютер использует небольшие целые числа для выбора цветов в терминале. Это означает, что компьютер не может надежно определить, как выглядит выбранный цвет; вместо этого вы должны сообщить своему приложению, какие небольшие целые числа соответствуют каким цветам. Однако Emacs знает стандартный набор цветов и попытается использовать их автоматически.

Функции, описанные в этом разделе, контролируют, как Emacs использует цвета терминала.

Некоторые из этих функций используют или возвращают значения rgb, описанные в Имена цветов.

Эти функции принимают дисплей (фрейм или имя терминала) в качестве необязательного аргумента. Мы надеемся в будущем сделать так, чтобы Emacs поддерживал разные цвета в разных текстовых терминалах; тогда этот аргумент будет указывать, с каким терминалом работать (по умолчанию это терминал выбранного фрейма; см. Фокус ввода). На данный момент, однако, аргумент frame не имеет эффекта.

Функция: tty-color-define name number &optional rgb frame

Эта функция связывает имя цвета name с номером цвета number в терминале.

Необязательный аргумент rgb, если он указан, является значением rgb — списком из трех чисел, которые определяют, как на самом деле выглядит цвет. Если вы не указываете rgb, то этот цвет не может быть использован функцией tty-color-approximate для аппроксимации других цветов, потому что Emacs не будет знать, как он выглядит.

Функция: tty-color-clear &optional frame

Эта функция очищает таблицу определенных цветов для текстового терминала.

Функция: tty-color-alist &optional frame

Эта функция возвращает alist, содержащий известные цвета, поддерживаемые текстовым терминалом.

Каждый элемент имеет вид (name number . rgb) или (name number). Здесь name — имя цвета, number — номер, используемый для его указания терминалу. Если присутствует, rgb — это список из трех значений цвета (для красного, зеленого и синего), которые описывают, как на самом деле выглядит цвет.

Функция: tty-color-approximate rgb &optional frame

Эта функция находит ближайший цвет среди известных цветов, поддерживаемых для display, к тому, который описан значением rgb (списком значений цвета). Возвращаемое значение — элемент tty-color-alist.

Функция: tty-color-translate color &optional frame

Эта функция находит цвет, наиболее близкий к color среди известных цветов, поддерживаемых для display, и возвращает его индекс (целое число). Если имя color не определено, значение равно nil.