Как отключить глобальное оформление на стороне клиента в GNOME?

Я использую Ubuntu GNOME 17.04. Один сталкивается с украшением на стороне клиента (CSD), так как большинство официальных приложений GNOME (Nautilus, gedit, Evince и т. Д.) Используют GtkHeaderBars (комбинированная строка заголовка и панель инструментов, см. Связанные скриншоты), тогда как другие приложения этого не делают. Эта функция отключена в Unity, все приложения используют традиционные отдельные строки заголовка.

Скриншоты (из этой статьи):

Для согласованности я хочу отключить GtkHeaderBars глобально (во всех приложениях, использующих его) и использовать отдельные заголовки. Есть ли способ достичь этого?

Я слышал о gtk3-nocsd пакет, но не может заставить его работать с GNOME для всех приложений.

3 ответа

Боюсь, что это невозможно сделать, если разработчик приложения не позаботится о такой функции. Отображение строки заголовка в верхней части окна не означает, что CDS фактически отключен. По-прежнему отсутствует классическая компоновка окна, т.е. строка заголовка, строка меню, панель инструментов, строка состояния.

Декларации на стороне клиента уничтожили пользовательский интерфейс Linux, а приложения и окружения рабочего стола выглядят ужасно, а не нативно.

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

Хотя я согласен с Василисом в том, что ЦДЦБ ужасны - к счастью, он ошибается в возможности их отключения.

В Ubuntu установите gtk3-nocsd пакет, а затем выйдите и войдите снова.

Этот "взлом" приводит к тому, что приложения GTK+ больше не отключают оформление окон менеджера окон. Результат может показаться немного странным - вот как выглядит приложение калькулятора GNOME со стандартным CSD:

И с взломом NOCSD:

Вы можете увидеть несколько примеров того, почему утверждение Вассилиса о том, что CSD - ужасная идея, разрушившая пользовательский интерфейс Linux, верно:

  1. Заголовок окна, не относящегося к CSD, показывает "<2>", потому что я запустил 2 окна калькулятора одновременно, чтобы сделать снимки экрана, а одно из CSD также называется "Калькулятор", но не показывает его, так что если ваше окно Менеджер имеет интерфейс списка окон (например, "панель задач"), и вы видите там "Калькулятор" в списке, найти его на экране будет несложно.
  2. В моем оконном менеджере включена функция "тени", которая позволяет мне видеть, какие окна находятся над другими окнами, но окно CSD отключает его без всякой уважительной причины - делая мой экран более сложным для понимания, чем нужно.
  3. Я часто использую функцию "всегда сверху", поэтому я попросил мой оконный менеджер показать удобную кнопку, чтобы включить ее рядом с другими кнопками управления окнами, но приложение CSD, очевидно, не знает об этом и не не показывать это. Та же проблема с кнопкой "прикрепить к текущему рабочему пространству", хотя здесь ошибка более очевидна, поскольку она находится в конфигурации по умолчанию, и GTK+ должен был это знать.
  4. Что не отображается (потому что я ленивый), так это меню операций с окнами (щелчок правой кнопкой мыши по заголовку), в котором окно CSD имеет очень ограниченный набор доступных опций (в основном 6 стандартных операций и "всегда сверху"), в то время как мой оконный менеджер предлагает гораздо больше функций, которые я часто использую).
  5. Еще одна вещь, которая не показана, заключается в том, что окно CSD не меняет цвет заголовка, когда оно не активно, в отличие от всех других окон, которые у меня есть. Это было бы более явной ошибкой, если бы KDE не был такой классной средой рабочего стола и настроил приложение GTK+ на использование правильных цветов заголовка - на других DE активный цвет заголовка GTK+ CSD даже не соответствует активному "родному" окну Цвет заголовка.

Я смог запустить evince Просмотрщик PDF с украшениями, предоставленными моим оконным менеджером (Openbox) в Ubuntu 18.04, выглядит следующим образом:

$ sudo apt-get install gtk3-nocsd
$ gtk3-nocsd evince
Другие вопросы по тегам