GNOME заработал репутацию "закрытого" окружения почти незаслуженно. Среди линуксоидов давно ходит убеждение: хочешь настроить всё под себя, иди в KDE или собирай тайлинг-менеджер из i3 с нуля. GNOME якобы слишком "opinionated", слишком стерильный, слишком негибкий. Это мнение живёт в сообществах, передаётся от новичка к новичку и воспринимается как аксиома.

Проблема только в том, что оно неверное.

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

Три уровня настройки и почему стандартного GUI недостаточно

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

Второй уровень, GNOME Tweaks, открывает то, что команда разработчиков GNOME посчитала "продвинутым", но всё ещё достаточно безопасным для GUI: управление кнопками заголовка окна, переключение фокуса при наведении курсора, контроль шрифтов на системном уровне, поведение анимаций.

Третий уровень, dconf, это уже настоящий нижний слой. Здесь хранится каждая настройка GNOME и всех GTK-приложений в виде иерархической базы данных ключ-значение. Именно здесь живут параметры, которые разработчики либо забыли вынести в GUI, либо намеренно туда не добавили. И именно здесь начинается настоящая кастомизация.

Архитектурно dconf работает как бэкенд для GSettings, API который используют все современные GNOME-приложения для хранения конфигурации. Когда пользователь меняет что-либо в стандартных "Настройках", под капотом GSettings записывает изменение в dconf-базу. Следовательно, напрямую работая с dconf, можно менять всё, что теоретически можно поменять в системе, включая параметры, для которых GUI просто не существует.

Extension Manager и официальный каталог расширений

Прежде чем погружаться в базы данных конфигурации, разумно добавить функциональность через расширения. Официальный каталог extensions.gnome.org содержит тысячи расширений, но способ их установки через браузерный плагин давно устарел и нередко вызывает проблемы совместимости. Профессиональный подход сегодня, это GNOME Extension Manager, отдельное приложение с удобным GUI для поиска, установки, обновления и управления расширениями без браузерной интеграции.

Extension Manager разделяет все расширения на системные (установленные из репозитория дистрибутива) и пользовательские (установленные через каталог). Это важно: при обновлении GNOME Shell системные расширения обновляются пакетным менеджером вместе с системой, пользовательские потребуют ручной проверки совместимости.

Отдельного упоминания заслуживает принципиальный момент совместимости. Начиная с GNOME 40, расширения привязаны к конкретной версии Shell. Расширение, написанное для GNOME 45, может отказаться загружаться на GNOME 47 даже если технически прекрасно работает. Это ограничение можно обойти через dconf:

dconf write /org/gnome/shell/disable-extension-version-validation true

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

Тайлинг в GNOME без смены окружения

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

Tiling Shell закрывает этот пробел наиболее элегантно среди всех доступных решений. Расширение реализует концепцию "snap assistant": при перетаскивании окна вверху экрана появляется визуальная сетка зон, достаточно навести окно на нужную ячейку и отпустить. Поддерживаются множественные мониторы с разными масштабами, кастомные раскладки через встроенный редактор, автоматический тайлинг по образцу Pop!_OS, а также FancyZones из Windows PowerToys для пользователей, которые пришли с этой системы.

Forge предлагает другую философию: это настоящий тайловый менеджер, встроенный в GNOME Shell. Деревовидный тайлинг с вертикальными и горизонтальными разделителями, vim-подобные привязки клавиш для навигации и перемещения окон, вкладки для группировки приложений внутри одного тайла, поддержка X11 и Wayland. Для тех, кто привык к i3 или Sway и не хочет терять функциональность GNOME, Forge остаётся наиболее близким приближением. Конфигурация переопределений хранится в ~/.config/forge/config/windows.json, что позволяет добавить настройки в систему контроля версий.

Кроме тайлинга, несколько расширений существенно меняют повседневную работу. Dash to Panel переносит лаунчер приложений в единую горизонтальную панель в стиле традиционных рабочих столов, убирая докстрашку из Activities. Clipboard Indicator добавляет полноценную историю буфера обмена с поиском. Auto Move Windows автоматически отправляет выбранные приложения на заданные виртуальные рабочие столы при запуске.

dconf-editor как реестр GNOME

Если расширения добавляют функциональность поверх существующего интерфейса, dconf-editor позволяет изменить саму ткань окружения. Инструмент намеренно сравнивают с реестром Windows, и сравнение точное: та же иерархическая структура, тот же принцип "всё хранится здесь", те же последствия при неосторожном изменении незнакомых параметров.

Визуально dconf-editor представляет три зоны. Верхняя строка показывает текущий путь в базе данных. Боковая панель содержит "папки" (схемы), и кнопку поиска. Центральная область отображает ключи с их текущими значениями, допустимыми типами и, в большинстве случаев, описанием на английском языке. Перед изменением каждого ключа редактор предупреждает о возможных последствиях и показывает значение по умолчанию.

Несколько важных путей, которые стоит изучить сразу:

  • /org/gnome/desktop/interface/ хранит параметры интерфейса: масштабирование шрифтов, размер курсора, режим цветовой темы, поведение горячих углов.
  • /org/gnome/desktop/wm/preferences/ управляет оконным менеджером Mutter: расположение кнопок заголовка (button-layout), фокусировка, поведение при двойном клике на заголовке.
  • /org/gnome/shell/extensions/ содержит по подпапке для каждого установленного расширения, включая настройки, вынесенные разработчиком расширения в скрытые ключи, недоступные через его собственный GUI настроек.
  • /org/gnome/settings-daemon/plugins/power/ открывает продвинутые настройки питания: яркость при простое, режим при низком заряде, время до перехода в сон.

Изменение расположения кнопок заголовка, типичная точка входа для новых пользователей dconf, выглядит так. В ключе button-layout по адресу /org/gnome/desktop/wm/preferences/ строка формата appmenu:minimize,maximize,close описывает, что находится слева от двоеточия (левая сторона заголовка) и что справа. Перестановка элементов позволяет воспроизвести любую привычную компоновку.

Работа с gsettings из командной строки

dconf-editor удобен для изучения и точечных изменений, но для автоматизации и воспроизведения конфигурации на нескольких машинах предпочтителен командный интерфейс gsettings. Синтаксис прямолинеен:

gsettings set org.gnome.desktop.interface enable-hot-corners true
gsettings get org.gnome.desktop.wm.preferences button-layout
gsettings reset org.gnome.desktop.interface text-scaling-factor

Сброс к умолчанию через reset доступен для каждого ключа. Полный дамп текущей конфигурации GNOME Shell командой dconf dump /org/gnome/shell/ > gnome-shell-backup.txt создаёт резервную копию, которую можно восстановить командой dconf load. Это разумная практика перед любой серьёзной сессией экспериментов с конфигурацией.

Файлы .desktop и контроль над меню приложений

Расширения и dconf меняют поведение оболочки. Файлы .desktop определяют, как приложения представлены в меню Activities и в лаунчере, что именно запускается при клике на иконку и какие действия доступны при правом клике на иконке в Dock.

Системные файлы .desktop хранятся в /usr/share/applications/. Пользовательские переопределения, которые имеют приоритет над системными, размещаются в ~/.local/share/applications/. Редактирование файла в пользовательской директории не требует прав суперпользователя и не затрагивает системные файлы.

Структура файла минимальна: блок [Desktop Entry] с обязательными ключами Name, Exec, Type и Icon. Ключ Categories управляет группировкой в меню, NoDisplay=true скрывает приложение из списка без его удаления, StartupWMClass помогает GNOME Shell корректно связать запущенное окно с иконкой в Dock.

Практически полезная возможность, ключ Actions. Он позволяет добавить к иконке дополнительные действия через правый клик:

[Desktop Entry]
Name=Terminal
Exec=gnome-terminal
Type=Application
Icon=utilities-terminal

Actions=new-window;root-terminal;

[Desktop Action new-window]
Name=New Window
Exec=gnome-terminal

[Desktop Action root-terminal]
Name=Open as Root
Exec=pkexec gnome-terminal

После сохранения файла в ~/.local/share/applications/ правый клик на иконке терминала в Dock покажет два дополнительных пункта. Аналогично можно создать специализированные запускалки с предустановленными переменными окружения, профилями или рабочими директориями.

Сборка конфигурации под задачу

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

Tiling Shell с кастомной раскладкой, делящей экран на три зоны: узкая панель слева для файлового менеджера, широкая центральная зона для редактора, правая часть для терминала. Dash to Panel переносит лаунчер в нижнюю панель с автоскрытием. В dconf включена фокусировка при наведении курсора (focus-mode='sloppy' по адресу /org/gnome/desktop/wm/preferences/), что убирает необходимость кликать по окну для передачи фокуса. Масштаб шрифта поднят до 1.15 через ключ text-scaling-factor в /org/gnome/desktop/interface/. Анимации оболочки отключены через GNOME Tweaks для субъективного ускорения отклика.

Честный вопрос: не проще ли было с самого начала поставить i3 или Hyprland? Для кого-то да. Но GNOME сохраняет то, что тайловые менеджеры требуют долго собирать вручную: интеграцию со стандартными GTK-приложениями, поддержку Wayland с масштабированием дробного типа на HiDPI-дисплеях, работающие уведомления, системный трей, удобную работу с несколькими мониторами. Добавление тайлинга поверх готовой инфраструктуры оказывается быстрее, чем постройка всей инфраструктуры вокруг тайлинга.

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