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

16

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

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

  • Наутилус с GtkHeaderBar

  • Наутилус без GtkHeaderBar

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

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

pomsky
источник

Ответы:

15

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

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

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

Василис
источник
8

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

В 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 даже не соответствует активному «родному» окну Цвет заголовка.
Guss
источник
1
Из вопроса: «Я слышал о пакете gtk3-nocsd, но не смог заставить его работать с GNOME для всех приложений».
Муру
Хм ... Пропустил это, извини. @pomsky: с какими проблемами вы столкнулись gtk3-nocsd?
Гусс
Это не сработало с Наутилусом, например, в прошлый раз, когда я пытался.
Помский
У меня это работает правильно на Kubuntu 17.10. Я не уверен, когда Nautilus загружается под сеансом Unity, но если это происходит до gtk3-nocsdсценария XSession, то это может быть причиной. Если это все еще не работает для вас - пингуйте меня.
Гусс
4

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

$ sudo apt-get install gtk3-nocsd
$ gtk3-nocsd evince
MPB
источник
Похоже, gtk3-nocsd теперь автоматически отключает панели заголовков на рабочих столах без GNOME без какой-либо конфигурации для всех приложений gtk, включая Evince. webupd8.org/2014/08/how-to-disable-gtk3-client-side.html