Использую cinnamon. И на самом деле давно у меня появилась вот такая шляпа https://i.ibb.co/P4ygTnL/2020-03-17-13-33-15.png на скрине nautilus
dconf
tilix
Ну так вот Nautilus использует Декоратор muffin
на котором отображаются кнопки закрыть/раскрыть/свернуть в dconf
не используется декоратор, а управляющая кнопка одна и она в топ-баре окна совместно с другими элементами управления. А в tilix вообще нихрена нет.
Для скрина убрал обоину, тему поставил дефолтную тёмную адвайду на ней лучше видно.
Я помню что gtk приложения научили отображать кнопки скрыть/закрыть/свернуть на самом окне минуя декоратор вовсе (мне это нравится именно в gtk приложениях) И как я понимаю (правильно?) можно указать приложению и декоратору как себя вести. Или сейчас кнопки управления вкомпиливают как виджеты и всё зависит от приложения?
Вот например в убунте https://2.bp.blogspot.com/-dF_oD85AMrU/WuG6XmnP5EI/AAAAAAAAAWM/ravb1cxGEjwi5-ekNj5p98KSL7MKeYmVgCLcBGAs/s640/nautilus-new-document.png кнопки уппавления на одном уровне с элементами другими, что годнота. Эта хрень на уровне настроек или на уровне патчей?
Я ооочень давно не тыкал ничего и не ковырялся в кишках. Кто знает как всей этой кухней с заголовками/декораторами рулить?
И что я сломал такого для tilix?
Linux gnu 5.4.0-4-amd64 #1 SMP Debian 5.4.19-1 (2020-02-13) x86_64 GNU/Linux
dron@gnu:~$ tilix --version
Версии
Версия Tilix: 1.9.1
Версия VTE: 0.60
Версия GTK: 3.24.14
Особые возможности Tilix
Уведомления включены=0
Триггеры включены=0
Значки включены=1
dron@gnu:~$
dron@gnu:~$ nautilus --version
GNOME nautilus 3.34.1
dron@gnu:~$
dron@gnu:~$ cinnamon --version
Cinnamon 4.4.8
dron@gnu:~$
UDP: Которое лучше чем UDP ниже
Там всё написано, но вдруг нет, тогда export GTK_CSD=1
или 0 для глобальной настройки и ничего удалять не надо будет, после чего перезайти в графическую сессию.
dron@gnu:~$ sudo vim /etc/X11/Xsession.d/01gtk3-nocsd
UDP: Решено
- Суть
Client-side decoration по сути находится в руках разработчика и определяется именно им, будет ли приложение уметь его использовать и самое важное будет ли оно использовать системный декоратор посредством поддержки gtk3-nocsd. Так что глобально и принудительно задать всем приложениям единственный вид вроде как получается невозможно, gnome же продвигает именно Client-side decoration как единственное решение.
- Что это значит
Это значит что например некоторые приложения будут работать как на скиншоте сверху, тоесть не будет консистентности, одни приложения будут подчинятся nocsd , другие игнорировать его, а третьи вообще могут лишатся элементов управления (Или у меня ещё где косяк)
- Что делать?
Лично для себя я решил что уже если нельзя всем приложениям которые по умолчанию для себя хотят Client-side decoration но в отношении nocsd ведут себя по разному то я удалил пакет gtk3-nocsd apt purge gtk3-nocsd
и затем перезашёл в систему
Теперь окна которые используют CSD просто используют его, а те окна которые не используют CSD управляются посредством декоратора. Это хорошо видно на снимке ниже https://i.ibb.co/Yp3qHwb/2020-03-17-14-23-47.png
Иной вариант, всё же оставить gtk3-nocsd
, большая часть приложений всё же будет ему подчинятся, но, декоратор будет не у всех. Порой это очень неудобно, например диалог «Свойства» по правой кнопке nautilus при наличии gtk3-nocsd
вовсе не будет иметь кнопки «закрыть» (Как и многие иные диалоговые окна или даже вообще окна). Закрыть можно только нажав «esc» или правой кнопкой мышки во всплывающем меню. Причина этому гвоздями прибитое Client-side decoration (как я понял)
В целом CSD не плохая штука, даже нет, это хорошая штука. Но. Плохо то что пока что нет 100% возможности однозначного переключения поведения. В целом ничего страшного, но осадочек остаётся, в том плане что пока по сути это ещё не готово это нельзя полностью выключить, вернее можно, но с явными проблемами.
- Доп. Инфо https://wiki.gnome.org/Initiatives/CSD
Спасибо neocrust