Настройка цветов в ubuntu

Обновлено: 02.07.2024

Одно из главных преимуществ Linux заключается в том, что при желании в нём можно настроить всё, что угодно. В этом и выражается преимущество проективных систем, над процедурными. Фактически, это конструктор, состоящий из отдельных блоков, каждый из которых можно настроить по своему желанию.

Особенно интересно, если не просто копируешь чужой "рецепт", а пытаешься разобраться, что и как устроено. И даже решая несерьезную задачу, узнаешь что-то новое.

Раскрашиваем цвета вывода ls

Как-то захотелось мне настроить цвета терминала linux в выводе команды ls. Ну не нравился блекло-фиолетовый цвет для каталогов в Linux Mint. Начал разбираться.

Из документации к ls, выяснил, что установка цветов для вывода осуществляется при помощи утилиты dircolors, которая либо устанавливает параметры цвета из своей собственной базы, либо берет их из файла

/.dircolors. Такого файла в моем домашнем каталоге не было. Также упоминалось, что инициализация использования цветов происходит через

/.bashrc, файл с настройками командной оболочки, а сами параметры определяются через переменную LC_COLORS.

Действительно, в .bashrc обнаружился скрипт следующего содержания:


Его суть сводится к проверке на наличие утилиты dircolors в системе, присваивания значения переменной и, при удачном выполнении, использовании параметра --color=auto при каждом вызове ls.

Если запустить утилиту dircolors, она выводит значение переменной LC_COLOR.


Также возможен вывод значения переменной LC_COLORS в структурированном виде, указанием ключа:

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

/.dircolors, то будет создан структурированный файл, из которого и будут браться настройки цветов. Редактируя данный файл и устанавливаются настройки цвета для вывода ls.

В созданном файле .dircolors есть подсказка:


Устанавливая последовательность через точку с запятой и получаем нужный нам цвет в консоли linux, согласно перечисленным. Цвета терминала linux от 30 до 37 для цвета шрифта, а с 40 до 47 для фона. К примеру:

DIR 01;34 подразумевает, что имена директорий будут выделяться жирным шрифтом и синим цветом.

Но таким способом получается всего восемь цветов, а современные эмуляторы терминала способны выводить как минимум 256! Выяснилось, что существуют и другие способы установки цвета. К примеру, значение EXEC 38;5;208;1 - даёт оранжевый толстый шрифт у исполняемых файлов.

Чтобы не перебирать цвета linux вручную, есть уже готовая таблица цветов:


Подставляя в значение цвета 38;5;x - где x цвет из таблицы, получаем необходимый результат. Получается что-то вроде этого:


Но как это работает? Дело в том, что установка цвета вывода информации в эмуляторе терминала осуществляется при помощи ANSI escape-кодов. Это определенная последовательность символов, которая не выводится на экран, однако влияет на вывод. Называется она так, поскольку начинается с \033[ - кода "Esc". Поскольку терминалов и эмуляторов терминалов существует множество, эти управляющие коды стандартизированы. Управлением цветом через последовательность от 30 до 37 - это стандарт ECMA-48. Информация о нем содержится в разделе console_codes. А управление через 38;5;* - определено стандартом T.416. Более подробная информация есть, конечно же, в Википедии.

Раскрашиваем и изменяем строку приглашения:

Разобравшись, как устанавливать цвета linux через esc-коды, не составит труда переделать и раскрасить строку приглашения. За ее вывод отвечает переменная PS1, которая определена в файле

В Linux Mint скрипт ее инициализации имеет следующий вид:


То-есть сперва определяется, запустил ли скрипт root или обычный пользователь. Поскольку в подавляющем большинстве случаев имеет место именно второй вариант, то и редактировать нужно строку, следующую после первого 'else'. Формат строки расшифрован в документации по баш, в разделе "Promting". Из него следует, что esc-последовательность должна начинаться с "\[" и заканчиваться "\]". Таким образом:

  • [\033[01;32m\] - устанавливает зеленый цвет;
  • \u - выводит имя пользователя;
  • \h - выводит имя хоста;
  • [\033[00m\] - очищает установленные атрибуты;
  • [\033[01;34m\] - устанавливает синий цвет;
  • \w - выводит имя рабочей директории;
  • Привет! - пример того, что может быть выведен любой производный текст.

Что ещё можно вывести в строке приглашения:

  • \d - дату, в формате "Wed Dec 28";
  • \A - время в 24-часовом формате;
  • \! - номер текущей команды в истории;
  • \n - перенос вывода на другую строку;

Введем что нибудь поинтереснее:

И строка приглашения примет вид:


Так, не понял, а откуда взялась ёлка-то?

Ну ладно, на самом деле, если в конец .bashrc вставить echo -e "С Новым годом", то поздравление будет выводиться при каждом запуске терминала перед приглашением ввода. Соответственно, вывод можно раскрашивать каким угодно способом. А там уж и ёлку нарисовать не сложно.

Многим знакома проблема избыточности холодных цветов монитора.
Так уж получилось, что 2 из 3 моих мониторов (и это ноутбуки) с этой проблемой. И именно от этих мониторов очень сильно болели глаза.

В итоге, я решил, что с этим нужно что-то делать. Так как моники ноутбучные, то на них нет кнопок для настройки, что усложняло задачу. Немного погуглив, я наткнулся на множество советов (включая данный форум) по решению данной проблемы. Почти все они сводились к неким цветовым схемам, которые невозможно создать без калибратора, что меня совсем не устраивало (дорогое удовольствие, от 1500 грн в Украине). Были и предложения по установке утилиты f.lux, этот вариант был отброшен т.к. утилита ослабляла синий и зелёный оттенки (т.е. я снова получил корявую цветопередачу, на сей раз тёплые цвета). Пока случайно не наткнулся на xcalib которая мне и помогла.

xcalib — консольная утилита для регулировки цветопередачи. Может менять гамму, яркость и контрастность как в целом, так и раздельно по каналам.

Т.к. графического интерфейса для нее нет, я решил его сделать и поделиться разработкой с миром. Кому нужно, качайте зеркало 1, зеркало 2.
Программа разработана на FreePascal в Lazarus. В архиве есть исходник.

Кажется nvidia-settings это то, что ты искал.


Калибровка цветопередачи монитора на глаз

невозможна, так как противоречит сути калибровки.

Калибровка потому и аппаратная, что проводится с целью объективного соответствия цветов оригинала и изображения+копии в случае калибровки сквозного цветового канала. Мозг\глаз цвета воспринимает субъективно, потому и используется объективная железка без мозгов.

Ту субъективщину, которую ты накрутишь той чушью которую ты написал калибровкой называть нельзя. И вообще, это всё отродясь настраивалось через гуйню дров, цветовые профили и гамму. В чём у тебя прорыв - непонятно.

Jameson ★★★★ ( 23.09.16 23:55:14 )
Последнее исправление: Jameson 23.09.16 23:58:06 (всего исправлений: 3)

Постойте, ты написал морду для консольного приложения, которое правит какие-то конфиги в системе? А не лучше посмотреть, что там делать эта прожка на паскале и написать своё с нуля, если так уж хочется?


Спасибо. На линуксе можно мутить NightShift теперь :) Сам на маке на днях ставил чистую ось и создавал теплый белый конфиг для моника - большую часть работы делаю вечером.


избыточности холодных цветов монитора

Gunnar сomputer eyewear.

Кажется у меня не nvidia. Графика от интел в процу

Ну и калибруйте аппаратно. А я своё зрение терять не собираюсь. Лучше сделать так как комфортно. А не лепить цветовой профиль который можно легко потерять, а потом что. Снова просить в сервисном центре новый.

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

Пробовал. Результат тот же что и от f.lux. Из синего превращается в красный. Видимо моник на SAMSUNG N-143Plus столь печален что ему нужен индивидуальный подход.

Класс, очки дороже нетбука. Это определённо то что мне нужно.

ты переписал monica?

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

Граждане, я разрабатывал эту программу потому что за 6 месяцев пользования дебианом не нашел толкового решения моей проблемы (в виндовсе она кстати решалась стандартными средствами). Так же, я не нашел лучшего решения чем xcalib. Но т.к. последний является консольным (что не слишком удобно в использовании), я решил сделать для него графическую надстройку.

С помощью своей разработки, мне удалось выставить комфортные оттенки и это заняло не более 5 секунд (на консольный перебор уходило более 5 минут, потом сдавали нервы). Раз уж я добился желаемого результата, то и решил поделиться своей разработкой, которой, пока еще нет аналогов. Т.к. знаю, что людей с синими мониторами довольно много.

Ps. Не знаю, как обстоят дела у владельцев зелёных и красных видеокарт, а вот у интела нет толковых (с панелью управления) драйверов для линукса. Пытался скачать с офсайта, ничего не вышло.

Раз уж тред о коррекции цветопередачи, то напомню о существовании такого открытого аппаратного обеспечения, как ColorHug (от автора colord).

А если внимательно почитать первый пост, то можно узнать что я не хочу покупать калибратор или платить в сервисном центре. Я просто сделал такую же штуку как та что есть в виндовсе по умолчанию.

Существует ли способ изменить цвет по умолчанию от Оранжевого? То, о чем я говорю, является близкой кнопкой на некоторых программах, я на самом деле не забочусь об оранжевом цвете, и я задавался вопросом, потому что я знаю, что Windows может, как то, каждый раз, когда я перемещаю программы со своего Флеш-накопителя на компьютер или что-то как этот, существует только что-то об оранжевом цвете, это не приятно к моему глазу, я хочу изменить его на синий, и я выполняю последнюю версию Ubuntu.

3 ответа

Установка gnome-tweak-tool . Установите различные темы после проведения исследований в то, на что они похожи и являются ли они complete1 и текущий.

Используя полную тему важно так, чтобы даже художественные оформления окна (такие как кнопки минуты/макс./завершения) были тематическими. Некоторые темы gtk2 - только!

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

Если Вы плохо знакомы с игрой, остаетесь с темами из стандартного программного обеспечения repositories2 .

Открытый Tweaks , который является что gnome-tweak-tool появляется как в Тире, и выберите из того, что Вы установили. Изменения непосредственны.

В приложенном изображении я использовал Темноту Adwaita.

Change themes

1 процесс установки для некоторых тем может также обеспечить icon themes так, чтобы полный последовательный взгляд был доступен Вам. Обратите внимание, что можно выбрать использование знаковой темы Tweak , иначе значение по умолчанию остается.

2 Примечания, что при поиске тем в Центре программного обеспечения Вам можно предложить snap версии, а также стандартные версии. Читайте на snaps и их функции.

ответ дан Justice for Monica 3 December 2019 в 07:23

Существует много тем, доступных для Ubuntu, которые изменяют Ваши цвета и появление. Эта статья подводит итог 20 лучших в 2017. От той статьи я суммировал статью с изображениями лучших двух избранных. Я также добавил номер 10, который Вы могли бы любить на основе "синего" предпочтения, и это - подобие Ubuntu по умолчанию с легким добавленным Mac OS..

1. Windows 10 Тема

Если Вы восхищаетесь появлением последней операционной системы Редмонда, можно подражать теме на рабочем столе Ubuntu. Если Вы ищете что-то действительно преобразование и предотвращаете нежелательное внимание, темами Windows 10 единиц могла бы просто быть та.

enter image description here

2. Тема Macubuntu

Прямо из Редмонда и в Купертино. MacOS Apple всегда была довольно ошеломляющей и если Вы хотите свое настольное сходство с Ubuntu который, существует доступная тема. Тема Macbuntu позволяет Вам устанавливать свой рабочий стол с обоями, оболочками, значками и шрифтами, которые будут иметь Вас определяющий Mac на “не Mac”.

enter image description here

10. Yosembiance

Yosembiance добавляет мягкое прикосновение гладкости и плоскости к типичной теме Окружения, которая поставлется с Ubuntu. Таким образом, если Вы хотите тему очень Ubuntu только с легкой MacOS, Yosembiance является просто тем. Yosembiance входит Атомарный, Кракен и Ubuntu все с опциями Синего и Оранжевого цвета.

enter image description here

В первую очередь, существует два способа сделать так:

Однако Вы не можете найти цветную тему, которую Вы хотите, но это, по крайней мере, изменит оранжевую цветовую схему (Кроме того, не, каждая тема оболочки изменяет оранжевый цвет по умолчанию).

Таким образом, существует иначе. (Только предложенный, если Вы способны к CSS.)

Второй путь состоит в том, что необходимо отредактировать ubuntu.css файл в:

/usr/share/gnome-shell/theme/ubuntu.css Этот файл позволит Вам изменять почти что-либо на Вас ПК. От Вашего входа в систему экранируют для завершения работу меню. Однако это займет время для понимания ubuntu.css файла, но onceyou понимают это, можно настроить ПК путем, Вам нравится.

Но не забудьте сохранять резервное копирование исходного ubuntu.css файла перед внесением любых изменений. Используйте следующую команду на терминале для создания резервного копирования:

Затем откройте ubuntu.css файл следующей командой:

Внесите желаемые изменения в файл и сохраните. Помните, что любое изменение, которое Вы вносите в этот файл, будет применено глобально т.е. ко всем профилям пользователей. Если Вы хотите внести изменения в свою учетную запись только затем, необходимо отредактировать файл гнома-shell.css в:

После этого откройте инструмент тонкой настройки гнома и нажмите Appearance. Выберите тему оболочки, в которую Вы внесли изменения. Если у Вас есть какие-либо проблемы с меню темы оболочки в инструменте тонкой настройки гнома, см.: Почему тема Shell отключена в Инструменте Тонкой настройки Gnome?

Записная книжка рассеянного [в пространстве и времени] программиста

01-intro

Есть такая штука под названием “уветовые профили”. Казалось бы все о них слышали, но немногие умеют их использовать и понимают, зачем это вообще надо.

То, что мы воспринимаем как свет - это лишь электромагнитные колебания с длиной волны от 380-400 нм до 760-780 нм. В этом диапазоне смешались все цвета от красного к филетовому.

02-spectrum

Когда мы видим радугу, то мы видим весь спектр цветов. А вот несовершенные электронные приборы могут отобразить лишь определенные цвета радуги. Называется это цветовым охватом - множество доступных для восприятия человеческим глазом цветов, которые способно воспроизвести устройство. У всей техники разные диаграммы цветопередачи.

Именно поэтому для каждого устройства в системе нужно задать цветовой профиль, который как раз и описывает диапазон цветового охвата.

Почему это важно? Можно пояснить на примере двух инженеров у одного из которых линейка метрическая, а у второго дюймовая. Если один другому скажет, что нужно начертить линию длиной два, то случится нечто странное: линия будет иметь длину два, но в той системе измерений, в которой работает человек.

То же самое с техникой. Если для нас цвето RGB(200, 0, 0) - это красный с каким-то уровнем насыщенности, то для принтера он может быть совершенно другим. Поэтому перед печатью все должно быть сконвертировано с учетом цветового профили устройства.

Подводя итог: цветовой профиль - это правила конвертации цвета из общепризнанной цветовой модели в ту, с которой работает ваша техника.

Когда мы просто печатаем текст на компьютере, то нас не сильно волнует, как это се конвертируется, но когда при печати фотографии мы получим цвета, которых на экране не видели, то пора что-то менять. :)

Управление цветом.

Предварительная настройка

Описываемые ниже шаги рассказывают о том,как реализованы подобные настройки на нижнем уровне. Если вы используете DE, в которых есть механизмы управления мониторами, то нижеописанные действия по настройке вам не нужны.

Всю работу по настройке связки устройство-профиль в никсах берет на себя демон colord. Именно он управляет базой данных цветовых профилей.

Будем рассматривать как это работает на примере Fedora GNU/Linux.

Если демона нет в списке юнитов, то его надо поставить и добавить в список автоматически-запускаемых (В большинстве сборок федоры все уже сделано до вас и эти шаги не требуются).

Проверим, что сервис установлен.

Для gnome и kde все уже сделано и в панели управления есть подраздел управления цветовыми профилями, но для lxde (xmonad, i3, etc.) нужно добавить менеджер управления цветом ибо встроенных средств у этих средств нету.

Единственным на сегодня механизмом является демон xiccd. Компилить его из исходников нет надобности - можно поставить через corp.

После установки нужно перезайти в систему (софт прописывается в автостарт автоматически), либо запустить xiccd руками.

Проверить правильность работы можно командой

Если все хорошо, то среди устройств должен быть ваш монитор.

Можно посмотреть переменную _ICC_PROFILE (именно она хранит интересующие нас данные).

Вывод будет выглядить как-то так:

У иксов есть баг, который не позволяет устанавливать профили монитора для интеловских видеокарт,

Решается принудительным прописыванием информации о драйвере в конфиг иксов /etc/X11/xorg.conf.d/20-intel.conf.

Монитор(ы)

Для удобства нам потребуется поставить систему управления agryllcms - в ней есть удобная команда dispwin.

Не будем затрагивать процесс калибровки - это тема хорошо расписана в вики арча.

В первую очередь нужно добыть цветовые профили для своих мониторов и принтеров (и сканеров). Их можно скачать на сайте производителя или найти в интернете на сайтах подобных tftcentral.

Для добавления файла в базу вводим простую команду импорта.

Если все прошло хорошо, то команда выдаст нам несколько строк, среди которых будет Profile ID. Её нужно запомнить так как именно по этому идентификатору мы будем ассоциировать файл с оборудованием.

Повторяем так для каждого скачанного профиля. Все они будет импортированы в каталог

Теперь нужно найти монитор при помощи команды

На экране будет отображен список устройств и нам нужно запомнить параметр device id для каждого монитора.

Ассоциирование устройства и профиля выполняется командой

А установка профиля по-умолчанию

Применить профиль без перезагрузки машины можно командой

Номер монитора можно узнать в справке dispwin.

Важно отметить, что далеко не все профили от производителей идут с заполненными lut-таблицами (это таблицы кривых rgb, который загружаются в память видиокарты).

Это есть настройки гаммы, которую всегда можно осуществить вручную.

С мониторами разобрались. При следующей загрузке будут применены корректные профили.

Принтер(ы)

С принтерами все несколько сложнее. Не все поддерживают демон настроек colord. Gutenprint поддерживает :). От него и будем отталкиваться (да и большинство hp при растеризации используют цветовые профили).

Как вообще это происходит: изображение отправляется на печать, а cups выполняет растеризацию и преобразование изображения в нужное цветовое пространство (настройки самого пространства берутся из colord).

И тут кроется один нюанс. Выполним просмотр доступных профилей при помощи colormgr.

У всех мы видим строку с характеристикой system wide. Настройки принтера обязаны быть system wide иначе он просто откажется работать.

А для этого нам нужно положить все icc\icm в /usr/share/color/icc/ (можно и нужно создать подкаталог, например printerProfiles). А затем на все дать права чтения и установить владельца root.

Но при этом файл будет лежать по указанному пути. Все дело в контексте SeLinux. Посмотрим внимательнее на содержимое каталога.

Было добавлен файл XP330.icm. Мы видим, что контекст файла сильно отличается от того, что у всех остальных. Это и есть причина, по которой cups (а конкретно gutenprint) не может открыть профиль.

Поправим это при помощи restorecon.

Поправили и теперь нужно перезагрузить colord.

В выводе устройств colormgr get-devices находим наш принтер, связываем его и icc.

Читайте также: