Как отключить глобальное оформление на стороне клиента в GNOME?
Я использую Ubuntu GNOME 17.04. Один сталкивается с украшением на стороне клиента (CSD), так как большинство официальных приложений GNOME (Nautilus, gedit, Evince и т. Д.) Используют GtkHeaderBars (комбинированная строка заголовка и панель инструментов, см. Связанные скриншоты), тогда как другие приложения этого не делают. Эта функция отключена в Unity, все приложения используют традиционные отдельные строки заголовка.
Скриншоты (из этой статьи):
Наутилус с GtkHeaderBar
https://www.omgubuntu.co.uk/wp-content/uploads/2017/02/nautilus-gtk-header-bar-in-ubuntu.jpg
Наутилус без GtkHeaderBar
https://www.omgubuntu.co.uk/wp-content/uploads/2017/02/nautilus-regular-window-in-ubuntu.jpg
Для согласованности я хочу отключить GtkHeaderBars глобально (во всех приложениях, использующих его) и использовать отдельные заголовки. Есть ли способ достичь этого?
Я слышал о gtk3-nocsd пакет, но не может заставить его работать с GNOME для всех приложений.
3 ответа
Боюсь, что это невозможно сделать, если разработчик приложения не позаботится о такой функции. Отображение строки заголовка в верхней части окна не означает, что CDS фактически отключен. По-прежнему отсутствует классическая компоновка окна, т.е. строка заголовка, строка меню, панель инструментов, строка состояния.
Декларации на стороне клиента уничтожили пользовательский интерфейс Linux, а приложения и окружения рабочего стола выглядят ужасно, а не нативно.
Я надеюсь, что каждый разработчик просто проигнорирует руководящие принципы Gnome и сделает его приложение полезным и согласованным для всех сред.
Хотя я согласен с Василисом в том, что ЦДЦБ ужасны - к счастью, он ошибается в возможности их отключения.
В Ubuntu установите gtk3-nocsd пакет, а затем выйдите и войдите снова.
Этот "взлом" приводит к тому, что приложения GTK+ больше не отключают оформление окон менеджера окон. Результат может показаться немного странным - вот как выглядит приложение калькулятора GNOME со стандартным CSD:
И с взломом NOCSD:
Вы можете увидеть несколько примеров того, почему утверждение Вассилиса о том, что CSD - ужасная идея, разрушившая пользовательский интерфейс Linux, верно:
- Заголовок окна, не относящегося к CSD, показывает "<2>", потому что я запустил 2 окна калькулятора одновременно, чтобы сделать снимки экрана, а одно из CSD также называется "Калькулятор", но не показывает его, так что если ваше окно Менеджер имеет интерфейс списка окон (например, "панель задач"), и вы видите там "Калькулятор" в списке, найти его на экране будет несложно.
- В моем оконном менеджере включена функция "тени", которая позволяет мне видеть, какие окна находятся над другими окнами, но окно CSD отключает его без всякой уважительной причины - делая мой экран более сложным для понимания, чем нужно.
- Я часто использую функцию "всегда сверху", поэтому я попросил мой оконный менеджер показать удобную кнопку, чтобы включить ее рядом с другими кнопками управления окнами, но приложение CSD, очевидно, не знает об этом и не не показывать это. Та же проблема с кнопкой "прикрепить к текущему рабочему пространству", хотя здесь ошибка более очевидна, поскольку она находится в конфигурации по умолчанию, и GTK+ должен был это знать.
- Что не отображается (потому что я ленивый), так это меню операций с окнами (щелчок правой кнопкой мыши по заголовку), в котором окно CSD имеет очень ограниченный набор доступных опций (в основном 6 стандартных операций и "всегда сверху"), в то время как мой оконный менеджер предлагает гораздо больше функций, которые я часто использую).
- Еще одна вещь, которая не показана, заключается в том, что окно CSD не меняет цвет заголовка, когда оно не активно, в отличие от всех других окон, которые у меня есть. Это было бы более явной ошибкой, если бы KDE не был такой классной средой рабочего стола и настроил приложение GTK+ на использование правильных цветов заголовка - на других DE активный цвет заголовка GTK+ CSD даже не соответствует активному "родному" окну Цвет заголовка.
Я смог запустить evince Просмотрщик PDF с украшениями, предоставленными моим оконным менеджером (Openbox) в Ubuntu 18.04, выглядит следующим образом:
$ sudo apt-get install gtk3-nocsd
$ gtk3-nocsd evince
