Отключение клиентских декораций GTK3 в Ubuntu
Что такое клиентские декорации (CSD)
Коротко: клиентские декорации — это когда само приложение рисует заголовок окна и кнопки управления (свернуть/развернуть/закрыть), а не делает это оконный менеджер. Термин CSD (client-side decorations) означают перенос части оформления окна в код приложения.
Почему это важно: когда приложение использует CSD, его заголовок и кнопки могут не соответствовать остальным окнам в XFCE, LXDE, MATE и других окружениях, отличных от Gnome Shell.
Важно: CSD — функциональное решение для единого дизайна в Gnome Shell, но в смешанной среде оно часто выглядит неуместно.
Почему многие хотят отключить CSD вне Gnome
- Визуальная несогласованность: приложения Gnome могут выглядеть «чужими» в вашем рабочем столе.
- Управление окнами: некоторые оконные менеджеры ожидают, что у них будет контроль над заголовком окна.
- Совместимость тем и расширений: CSD-приложения не всегда наследуют системные рамки и тени.
Контрпример: если вы используете чистый Gnome Shell, CSD часто делает интерфейс чище и компактнее — там это преимущество, а не дефект.
Как отключить клиентские декорации GTK3 на Ubuntu — пошагово
- Откройте терминал и добавьте PPA, где поддерживается gtk3-nocsd:
sudo add-apt-repository ppa:nilarimogard/webupd8- Обновите списки пакетов:
sudo apt-get update- Установите пакет gtk3-nocsd:
sudo apt-get install gtk3-nocsd
- Откройте файл ~/.profile в вашем текстовом редакторе (пример для gedit):
gedit ~/.profile- Вставьте две строки и сохраните файл:
export GTK_CSD=0
export LD_PRELOAD=/usr/lib/gtk3-nocsd/gtk3-nocsd.so
Примечание: путь к библиотеке LD_PRELOAD может отличаться в зависимости от архитектуры системы и пакета (в некоторых системах это /usr/lib/x86_64-linux-gnu/…). Если не уверены, найдите файл через dpkg -L gtk3-nocsd или команду locate.
Выйдите из сессии и войдите снова (или перезагрузите систему), чтобы переменные окружения вступили в силу.
Откройте любое GTK3-приложение (Gedit, Evince, файлообозреватель Nautilus/Files) и убедитесь, что заголовки теперь обрабатываются оконным менеджером.

Важно: в Unity метод может работать нестабильно. Под Wayland LD_PRELOAD может не срабатывать так же, как в X11.
Когда это может не сработать
- Если вы используете Wayland: многие механизмы перехвата через LD_PRELOAD не работают под Wayland так же, как под X11. В этом случае решение может не отключить CSD.
- В Unity возможны глюки: авторы отмечали нестабильность при использовании gtk3-nocsd в Unity.
- Если библиотека установлена в другом пути и вы указали неверный LD_PRELOAD.
- Если приложение не основано на GTK3 (например, GTK4 или Qt) — это не затронет такие программы.
Альтернативные подходы и советы
- Темы и настройки оконного менеджера: в некоторых случаях можно настроить тему или оконный менеджер так, чтобы CSD выглядели менее чуждо.
- Использовать чистый Gnome Shell для приложений Gnome, чтобы CSD выглядели корректно.
- Обратиться к разработчикам приложений с просьбой поддерживать опцию переключения между CSD и серверными декорациями.
- Для продвинутых: написать небольшую wrapper-скрипт/alias, который запускает конкретные приложения с LD_PRELOAD локально (не глобально через ~/.profile), например:
LD_PRELOAD=/usr/lib/gtk3-nocsd/gtk3-nocsd.so geditЭто полезно, если вы хотите отключать CSD только для отдельных приложений.
Риски и предосторожности
- LD_PRELOAD вмешивается в загрузку библиотек: это мощный механизм, и он может влиять на стабильность или безопасность, если подставлены неподходящие бинарные библиотеки. Используйте только проверенные пакеты из надежных репозиториев.
- Всегда делайте резервную копию ~/.profile перед изменением.
- Тестируйте на небольшом наборе приложений перед применением на рабочей машине.
Критерии приёмки
- После перезагрузки выбранные GTK3-приложения отображают системный заголовок (рамку/панель управления окном) вместо собственных CSD.
- Окна корректно реагируют на управление (перетащить, свернуть, развернуть, закрыть) через оконный менеджер.
- Отсутствуют критические ошибки или крахи приложений при запуске.
Роль-ориентированные контрольные списки
Пользователь:
- Сделать резервную копию ~/.profile.
- Установить пакет и добавить экспорт в ~/.profile.
- Перезагрузиться и проверить пару приложений.
Системный администратор:
- Оценить влияние на рабочие станции в сети.
- Тестировать совместимость с корпоративными темами и автозагрузкой.
- Документировать изменения и иметь план отката.
Разработчик приложения:
- Рассмотреть возможность опции запуска без CSD.
- Документировать поведение под различными оконными менеджерами.
Мини-методология тестирования
- Установить gtk3-nocsd в тестовой среде (виртуальная машина или отдельный аккаунт).
- Добавить экспорт переменных только в тестовый профиль.
- Перезапустить сессию, открыть 5–10 приложений GTK3 и проверить отображение заголовков.
- Оценить поведение окон (фокус, перетаскивание, кнопки управления).
- При проблемах — вернуть файл ~/.profile из резервной копии.
Краткий глоссарий
- CSD: клиентские декорации, заголовки окон, рисуемые приложением.
- LD_PRELOAD: переменная окружения для предварительной загрузки библиотеки.
- PPA: Personal Package Archive — репозиторий для Ubuntu.
Резюме
Отключение клиентских декораций в GTK3 на Ubuntu возможно и относительно просто с помощью gtk3-nocsd и установки переменных окружения. Решение лучше тестировать в X11-сессии; под Wayland и Unity возможны ограничения. Всегда делайте резервные копии и тестируйте на отдельных системах, прежде чем вносить изменения глобально.
Часто задаваемые вопросы
Работает ли этот метод под Wayland?
В большинстве случаев LD_PRELOAD-решения менее надежны под Wayland, и gtk3-nocsd может не работать как в X11.
Как вернуть всё назад?
Удалите добавленные строки из ~/.profile или восстановите файл из резервной копии, затем перезагрузите сеанс.
Можно ли отключать CSD только для некоторых приложений?
Да. Вместо глобального экспорта можно запускать отдельные приложения с LD_PRELOAD в одной команде: LD_PRELOAD=/usr/lib/gtk3-nocsd/gtk3-nocsd.so gedit
Похожие материалы
Чат в Mozilla Thunderbird: настройка и советы
Приоритет Ethernet в macOS: как поменять порядок сетей
Установка драйвера Radeon без Adrenalin
Расширения «Поделиться» и действия на iPhone и iPad
Рисовать в письмах Windows 10 Mail