Гид по технологиям

Отключение клиентских декораций GTK3 в Ubuntu

5 min read Linux Обновлено 05 Dec 2025
Отключение клиентских декораций GTK3 в Ubuntu
Отключение клиентских декораций 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 — пошагово

  1. Откройте терминал и добавьте PPA, где поддерживается gtk3-nocsd:
sudo add-apt-repository ppa:nilarimogard/webupd8
  1. Обновите списки пакетов:
sudo apt-get update
  1. Установите пакет gtk3-nocsd:
sudo apt-get install gtk3-nocsd

Установка пакета gtk3-nocsd через терминал.

  1. Откройте файл ~/.profile в вашем текстовом редакторе (пример для gedit):
gedit ~/.profile
  1. Вставьте две строки и сохраните файл:
export GTK_CSD=0
export LD_PRELOAD=/usr/lib/gtk3-nocsd/gtk3-nocsd.so

Вставка строк в файл ~/.profile в текстовом редакторе.

Примечание: путь к библиотеке LD_PRELOAD может отличаться в зависимости от архитектуры системы и пакета (в некоторых системах это /usr/lib/x86_64-linux-gnu/…). Если не уверены, найдите файл через dpkg -L gtk3-nocsd или команду locate.

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

  2. Откройте любое GTK3-приложение (Gedit, Evince, файлообозреватель Nautilus/Files) и убедитесь, что заголовки теперь обрабатываются оконным менеджером.

Пример приложения GTK3 без клиентских декораций — заголовок окна оформлен оконным менеджером.

Важно: в 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.
  • Документировать поведение под различными оконными менеджерами.

Мини-методология тестирования

  1. Установить gtk3-nocsd в тестовой среде (виртуальная машина или отдельный аккаунт).
  2. Добавить экспорт переменных только в тестовый профиль.
  3. Перезапустить сессию, открыть 5–10 приложений GTK3 и проверить отображение заголовков.
  4. Оценить поведение окон (фокус, перетаскивание, кнопки управления).
  5. При проблемах — вернуть файл ~/.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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Чат в Mozilla Thunderbird: настройка и советы
Почтовые клиенты

Чат в Mozilla Thunderbird: настройка и советы

Приоритет Ethernet в macOS: как поменять порядок сетей
macOS

Приоритет Ethernet в macOS: как поменять порядок сетей

Установка драйвера Radeon без Adrenalin
Технологии

Установка драйвера Radeon без Adrenalin

Расширения «Поделиться» и действия на iPhone и iPad
iOS

Расширения «Поделиться» и действия на iPhone и iPad

Рисовать в письмах Windows 10 Mail
How-to

Рисовать в письмах Windows 10 Mail

Как отключить оповещения на iPhone
iPhone

Как отключить оповещения на iPhone