Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Регулировка яркости внешнего монитора в GNOME, как в KDE: что есть, что выбрать и почему я начал контрибьютить

Дата публикации: 23-10-2026 15:08:38

Год я закрывал монитор куском вуали на ночь после перехода на Wayland, т.к. из коробки GNOME, в отличие от KDE, не умеет управлять внешними дисплеями.Решение нашлось в расширениях для работы с DDC/CI.В статье я детально сравнил 4 варианта: удобство интерфейса и архитектуру под капотом (почему фоновый сервис отзывчивее вызовов CLI), популярность, активность разработки и прочее.Также приложил сводную таблицу с плюсами и минусами и рассказал, почему в итоге стал контрибьютором одного из проектов, а не сделал форк. Сорвать вуаль...

Основное содержимое страницы с новостью.

Уровень сложностиСредний

Время на прочтение10 мин

Охват и читатели1.4K

Обзор

Если у вас ноутбук с внешним монитором и вы переключаетесь на GNOME из KDE, то быстро замечаете: экран ноутбука по яркости регулируется, а внешний монитор по HDMI или DisplayPort нет. В KDE в трее есть ползунки и для встроенного, и для внешнего мониторов, тогда как в GNOME о внешних мониторах в интерфейсе никаких упоминаний. Остаются кнопки на самом мониторе и его экранное меню, которые уступают в удобстве и редко используются.

Как пользователь GNOME, я долгое время решал эту проблему программно - расширением, которое рисовало полупрозрачный чёрный слой поверх картинки через xrandr. В сентябре 2025, после перехода GNOME на Wayland с отключением X11-сессии, мой способ перестал работать, и почти год я ночью закрывал монитор с YouTube куском полупрозрачной ткани. Вставать с постели, попадать в темноте, с песком в глазах, по неподсвеченным кнопкам на спине монитора мне не хотелось. Вникать в непрозрачную и очень специфическую нишу решений над протоколом DDC/CI - тогда тоже. Тем более, что спецификации в интернете указывали отсутствие поддержки DDC/CI моим монитором (это было неправдой).

Недавно поставил Fedora с KDE на второй диск и внезапно обнаружил, что там мой внешний монитор регулируется из коробки.

Короткий ответ

Если вам нужно просто получить ползунок яркости внешнего монитора в GNOME 46–51:

  1. Установите ddcutil-service (команды для Debian/Ubuntu, Arch, Fedora, openSUSE и сборка из исходников есть в README расширения).

  2. Установите Multi Display Adjustment с extensions.gnome.org.

Дальше в статье разбираюсь, почему именно так, какие есть альтернативы и чем они отличаются.

Сразу раскрою: я контрибьютор этого расширения. С 3 октября 2026 года в него влиты 14 pull моих request’ов. Но сначала я был обычным пользователем, который искал расширение для себя и сравнивал. Сравнение ниже построено так, чтобы его можно было проверить: одинаковые критерии, скриншоты по одной схеме, ссылки на исходники.

Почему в KDE это есть, а в GNOME нет

В KDE за яркость отвечает системный сервис PowerDevil, который работает с внешними мониторами через библиотеку libddcutil. Отдельный ползунок для каждого дисплея появился в Plasma 6.2 (рассказ разработчика).

В GNOME такой функции нет, и насколько я знаю, в планах её тоже нет. Моя интерпретация: GNOME Shell стремится к минимуму внешних зависимостей, а KDE устроен как набор модулей, где ещё одна зависимость не проблема.

У встроенного решения есть и цена. Внедрение DDC/CI в KDE шло непросто, сбои ddcutil в KDE неоднократно приводили к проблемам: зависание после обновления ddcutil до 3.0.0, мерцание монитора при старте PowerDevil. Для таких случаев в PowerDevil была создана специальная переменная окружения POWERDEVIL_NO_DDCUTIL=1, которая отключает работу с ddcutil (README PowerDevil). С расширением GNOME проще: его можно выключить в приложении «Расширения», а если gnome-shell падает вскоре после загрузки расширений, специальный сервис сам отключает пользовательские расширения (коммит в gnome-shell).

Прочие Linux окружения
  • Cinnamon (Linux Mint): Из коробки ползунок не работает с внешними мониторами. Решается установкой официального апплета DDC/CI Monitor Brightness из настроек. Концептуально это адаптация идей KDE в Cinnamon - трей, меню, ползунки с названиями мониторов, работа через чистый ddcutil. Технологически - похоже на обкатанные в GNOME-расширениях архитектурные решения 2021-2024 годов. В описании и скриншотах есть признаки того, что тестировалась работа только с одним внешним монитором, и не ясно, как оно ведёт себя с несколькими. Тем не менее, у этого окружения есть своё решение.

  • XFCE: Штатный плагин управления питанием не умеет управлять внешними дисплеями. Можно использовать xrandr (программно) либо ddcutil (аппаратно), но оба из терминала либо через внешние скрипты.

  • COSMIC (Pop!_OS): Новое окружение на Wayland. Из коробки поддерживает DDC/CI с мая 2026 (1.0.14), что ставит его наравне с KDE в этом вопросе. До этого пользователи выкручились так же, как везде.

Прочие операционные системы

В macOS система «из коробки» не умеет регулировать яркость не-Apple внешних мониторов, нужно использовать физические кнопки. Это официальная позиция Apple, и их бизнес-логика вполне читаема. Энтузиасты решают это утилитами MonitorControl или BetterDisplay - обе работают через тот же протокол DDC/CI.

Windows по умолчанию так же не умеет отправлять управляющие команды монитору по кабелю. Существуют трей-утилиты Twinkle Tray и Monitorian, а также Power Display из состава Microsoft PowerToys (тоже поверх DDC/CI, но отдельной установкой).

Как это работает

Внешние мониторы (поддерживающие это) управляются по протоколу DDC/CI: команды идут по I²C-каналу прямо в кабеле. Яркость это параметр VCP 0x10. На Linux этим занимается утилита ddcutil. Проверить, видит ли она ваши мониторы:

ddcutil detect
ddcutil getvcp 10        # текущая яркость
ddcutil setvcp 10 50     # поставить 50%

Если это работает от обычного пользователя, дальше нужно только расширение. Если работает только с sudo, см. права доступа к I²C.

Расширения общаются с монитором двумя способами:

Команда ddcutil

ddcutil-service

Как работает

Новый процесс на каждое изменение

Фоновый сервис, общение по D-Bus

Опрос шины I²C

Заново при каждом запуске

Один раз при старте

Задержка и накладные расходы

Выше, зависит от монитора и числа шагов

Ниже архитектурно

Цена

Нет лишних зависимостей

Нужно поставить ещё один пакет

Я не замерял задержки объективно, но разница архитектурная и человеку сразу заметная: для ползунка, который дёргает значение десятки раз в секунду, постоянный сервис подходит лучше, чем “грязный” спавн нового процесса по CLI на каждый шаг.

Что я хотел от расширения

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

  • Отзывчивость (лёгкий бэкенд). Не запускать тяжёлый процесс на каждый шаг ползунка.

  • Нативный вид. Ползунок там, где его ждёшь, выглядящий как родной, без чужеродных значков и обрезанных названий. Отсутствие ощущения “колхоза”.

  • Живой проект. Поддержка текущих версий GNOME, ответы на issues.

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

  • Отсутствие раздутости. Расширение делает одно дело. Проект понимает свои границы и держит скоуп, успешно обслуживается при небольших ресурсах и вовремя адаптируется под новые версии GNOME. Как можно менее инвазивные и хрупкие архитектурные решения. Поставил и забыл.

  • Понятная документация. Чтобы настроить его, не нужно быть инженером.

  • Мелочи, из-за которых страдаешь на практике: поэкранный индикатор уровня и защита от 0%, при котором некоторые мониторы гасят подсветку и потом тяжело вернуть.

Что есть

Я сравнивал четыре расширения. Скриншоты одинаковые для всех: слева окно настроек (если оно есть), справа панель Quick Settings.

(Quick Settings - что это? См. после сводной таблицы)

Набор кандидатов сформировался естественно - по находимости, актуальности для свежих версий GNOME, хотя бы минимальным признакам жизни у проекта, самобытности (минимальной “форковости”, близости к апстриму).

Сводная таблица

Brightness control using ddcutil

Adjust Display Brightness 2

Display Adjustment

Multi Display Adjustment

Бэкенд

команда ddcutil

команда ddcutil

ddcutil-service

ddcutil-service

Где ползунок

отдельный значок в верхней панели по умолчанию, либо среди системных ползунков

внутри плитки, значок в верхней панели всегда

все ползунки всырую без группировки высыпаются внизу Quick Settings

мимикрия под системный ползунок сразу под ним либо плитка «Displays»

Название плитки

нет

«Display Br…» обрезано

нет

«Displays»

Экранный индикатор (OSD)

опция, выключена по умолчанию, показывает уровень на всех мониторах сразу

опция «Show On-screen Feedback»

нет

есть, на том экране, который регулируют прямо сейчас

Настройки

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

много, с пояснениями

нет

пять, умолчания продуманы

Контраст

нет

есть, RGB тоже

есть, всегда, не скрыть; 2 ползунка на монитор безопционально

есть в плиточном режиме, можно скрыть

Горячие клавиши

есть

есть, колесо мыши тоже

нет

нет собственных (отложены); колесо и стрелки работают штатно, как на любом ползунке GNOME

Откуда ставить

extensions.gnome.org

extensions.gnome.org, иногда локально через cloned-repo/deploy.sh

extensions.gnome.org

extensions.gnome.org

Нужен ddcutil-service

нет

нет

да

да

Активность

переписан в ноябре 2025, поддержка GNOME 50 с апреля 2026; открыто 14 issues и 8 PR с неопределенным ETA*

1 открытый issue (с 2023 года), 10 MR за всю историю

0 открытых issues, 6 MR за всю историю; в 2026 году по истории коммитов только объявление поддержки GNOME 50 и 51 (последняя версия 0.0.9)

6 релизов с 2 октября, 1.5.0 (17 октября); 38 PR, закрыты, включая 14 моих

Загрузки на EGO

119к

35

21к

251

(Данные на 22.10.2026)

Остальные (десятки по “ddcutil”) являются в основном клонами описанных. Это я и имел в виду под “близостью к апстриму”.

Интересным из них показалось “Control monitor brightness and volume with ddcutil”. Хоть основанность на “Brightness control using ddcutil” и видна в названии, автор (Nei) проделал заметную собственную работу: мимикрировал под GNOME на уровне иконок и позиционирования, добавил регулировку звука мониторов - не просто форкнул чужой код с минимальными изменениями и ушёл в закат. Это похвально, но на GNOME 50/51 расширение уже не поддерживается.

Далее идут индивидуальные описания каждого расширения с единообразными скриншотами в ванильном GNOME.

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

Brightness control using ddcutil

Страница на EGO и GitHub. Самое известное. Работает, но вызывает обычный ddcutil на каждое изменение, что приводит к заметным задержкам реакции монитора из-за оверхеда. Из коробки добавляет отдельный значок в верхнюю панель, поэтому стандартный вид нужно сначала перенастраивать: переключить размещение на системное меню, выключить лишние ползунки. Настройки почти без описаний, и понять их без опыта трудно.

Я не смог разобраться, как загружать картинки в новом редакторе Habr так, чтоб иногда они даже рендерились, так что сделал ссылками.

Настройки

Quick Settings

BCU: Настройки

BCU: Панель

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

Проект в режиме поддержки: в ноябре 2025 был большой рефакторинг, после него только поддержка GNOME 50.

Adjust Display Brightness 2

GitLab, недавно прошёл ревью и вышел на EGO. Сначала удалось установить через EGO, но в дальнейшем (перелогин - делался) он перестал устанавливаться оттуда. Для перетестов и пересъёмов скриншотов мне пришлось ставить его через deploy.sh из папки склонированного репозитория.

Больше всего функций: контраст, RGB, горячие клавиши, колесо мыши, выбор раскладки ползунков, раздел диагностики. Настройки хорошо описаны. В репозитории хорошая, обновляемая документация, совсем недавно актуализировалась и переписывалась.

Настройки

Quick Settings

ADB2: настройки

ADB2: панель

Настройки

Quick Settings

Минусы с точки зрения вида, умолчаний и настраиваемости: ползунок спрятан в плитке, название которой обрезается, а значок в верхней панели виден всегда. Тоже вызывает обычный ddcutil, отзывчивость воспринимается ниже, чем у «Brightness control using ddcutil», из-за того, что управляющий сигнал к монитору уходит только при отжиме ЛКМ по ползунку. OSD (наэкранный индикатор) имеет выбивающийся из GNOME (цвет, вёрстка, шрифт) вид. Ползунки в плитке выглядят аляповато.

Display Adjustment

Страница на EGO и GitLab. Использует ddcutil-service, ставится в один клик. Два ползунка, яркость и контраст, добавляются внизу панели. Настроек нет: на скриншоте слева окно с информацией о расширении, и всё. Контраст нельзя скрыть, подписей у ползунков нет. Иконка контраста подобрана неудачная; пусть я и понимаю, как он к этому пришёл.

«Настройки» (окно информации)

Quick Settings

DA: информация о расширении

DA: панель

Multi Display Adjustment

Страница на EGO и GitHub. Основано на Display Adjustment (оригинальный автор указан в README и CHANGELOG), автор развития Samuel Cecilio. Использует ddcutil-service. Название монитора как в системных настройках, значение в процентах, поэкранный индикатор. Плитка называется просто «Displays», без подзаголовка, чтобы длинное название плитки и/или монитора не обрезалось.

Размещение выбирается: ползунки среди системных, рядом с ползунком яркости GNOME (выше или ниже него) либо плитка «Displays». Настроек пять: тип размещения, положение, минимум яркости 1%, контрастные ползунки, общий ползунок для всех внешних мониторов. Окно настроек продумано: все пункты имеют описания и меняют своя значения, доступность и описания в зависимости от значений и доступности пунктов, от которых они зависят, с целью сделать UX самообъясняющимся.

Настройки

Среди системных ползунков

Плитка

MDA: настройки

MDA: inline

MDA: плитка

Чего в нём нет:

  • Собственных горячих клавиш. Однако, благодаря политике минимальной инвазивности, они не настолько сильно нужны. Нативное поведение GNOME распространяется и на элементы расширения: колесо при наведении крутит значение по 2 единицы, а стрелки клавиатуры меняют его на 10. Это работает и в режиме плитки, и среди системных ползунков.

  • Подробной RGB-регулировки.

  • Контраст только в режиме плитки.

  • Как и у остальных, нужно установить бекэнд-зависимость, тут это ddcutil-service: для Arch (AUR) и openSUSE есть пакеты, для Fedora есть мой COPR-пакет, для Ubuntu/Debian есть CI-пакеты стороннего автора.

  • Цели сделать “швейцарский нож”. Добавки идут по веским причинам, если могут быть протестированы на имеющемся железе и если не нарушают границы проекта.

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

Как я стал контрибьютором

Когда я сравнивал, меня зацепил не столько набор функций, сколько то, где лежит код - это влияет на сложность донесения своих предложений до автора. Два из четырёх расширений на GitLab (и такой процент по моему опыту редкость), два на GitHub: одно из них в режиме поддержки, а Multi Display Adjustment молодое, с живым репозиторием, прямо открытый к вкладам, с ближайшим к моему видением (конситентный дизайн, минималистичность). Для меня это был сигнал открытости: на GitHub проще написать issue и отправить PR, а активная разработка говорит, что на них ответят.

Почему я не сделал свой форк? Я не хотел создавать «ещё одно» решение. Эта ниша “в кризисе” именно из-за распыления усилий, когда работа не соединяется, а дробится и дублируется. Мне захотелось взять чужое готовое и довести его до нужного мне состояния, чтобы оно в моих глазах превзошло остальных; помочь проекту с брендингом, UX и инструкциями. Плюс это тренировка работы в команде с людьми из разных часовых поясов.

Я написал два issue. #2 просил минимум яркости 1%, чтобы монитор не гас в ноль. Через три дня это вышло в версии 1.2.0. #8 просил экранный индикатор при регулировке, и он вошёл в 1.3.0 в тот же день, 2 октября. После такого я решил не просто пользоваться, а помогать.

Дальше работал слоями, по возможности один PR на одну идею:

  1. #16: вынес чтение и запись яркости и контраста из пункта меню в отдельный класс VcpController, чтобы им мог пользоваться другой виджет. Поведение не менялось.

  2. #17: ползунки среди системных, без плитки (режим Inline). #18: выше или ниже ползунка GNOME. #19: минимум 1% сделан опцией, настройки приведены в порядок.

  3. Всё это вошло в версию 1.4.0 (7 октября).

Потом оформление и документация: новый скриншот в стандартном виде GNOME (#28), короткое описание списком (#30), плитка показывает только заголовок (#31), пошаговая инструкция по установке (#34), уведомление с кнопкой «Open instructions», если не установлен ddcutil-service (#36), пакет для Fedora, чтоб стали покрыты все большие дистрибутивы (#38).

Последний слой инструменты для разработки: разделение на src/ и docs/ (#39), эмулированные мониторы для отладки без железа (#40), планы ручного тестирования для каждой версии GNOME (#44). Поддержку GNOME 51 добавил сам мейнтейнер, результат 1.5.0 от 17 октября.

Итого: 14 влитых PR, возможно, сделаю ещё несколько, стали приходить новые контрибьюторы. Скачиваний на EGO было 45 за 2 месяца к концу сентября, сейчас более 250 (на 22 октября 243), темп выглядит ускорившимся.

Итог

Что я считаю законченным для первого этапа: плитка или родной ползунок на выбор, названия мониторов, экранный индикатор, защита от 0%, документация для основных дистрибутивов, тест-планы. Чего нет, перечислено выше, и это честный список.

Если нужен ползунок яркости внешнего монитора в GNOME 46–51:

  1. Установка ddcutil-service

  2. Расширение «Multi Display Adjustment» на extensions.gnome.org

Если что-то не работает или хотите рассмотрения новой функции, пишите issue в репозиторий.

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Единственный координатор уязвимостей GNOME покинет проект на фоне роста числа ИИ-отчётов018.6931-07-2026
2KDE Plasma 6.7 X11 vs. Wayland Session Gaming Performance For NVIDIA On CachyOS0710-07-2026
3Окно в свет: почему Windows названа Windows, а иконки — иконками06.5706-10-2026
4Wallpapi gives you a cooler way to change wallpaper on GNOME014.922-09-2026
5Контекстное обучение пользователей в интерфейсах: как фокусировка растит метрики продукта5708-07-2026
6Считаем пакеты на Rust09.8704-07-2026
7ИИ-Автопилот: замкнутый цикл разработки на C++ — от тикета до проверки в живом GUI08.2229-07-2026
8Я думал, что устаю от работы. А виновата комната06.5616-09-2026
9Контрастные пятна в дизайне: как фокус управляет вниманием и смыслом07.5121-09-2026
10Vodka, или почему nginx.exe у нас в шесть раз быстрее, чем под Wine06.8410-10-2026

Классификация: Мнения. Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 6.67. Источник: habr.com.