LINUX.ORG.RU

Разное поведение GTK приложений (Управление окном)

 , , , ,


0

1

Использую 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% возможности однозначного переключения поведения. В целом ничего страшного, но осадочек остаётся, в том плане что пока по сути это ещё не готово это нельзя полностью выключить, вернее можно, но с явными проблемами.


Спасибо @neocrust

★★★★★

Последнее исправление: LINUX-ORG-RU (всего исправлений: 4)

Это называется Client-side decoration.

Была такая штука, как gtk3-nocsd - попробуй поставить и перелогиниться.

neocrust ★★★★★
()
Последнее исправление: neocrust (всего исправлений: 1)

Боже, ну и зоопарк. Верните мне мой 2005й. Тогда тоже был зоопарк, но я ещё не знал, что это навсегда.

Deleted
()
Ответ на: комментарий от neocrust

Спасибо большое!, меня аж торкнуло пографоманить :D Удалил я отключалку CSD, сейчас вот так стало https://i.ibb.co/Yp3qHwb/2020-03-17-14-23-47.png Норм. Пойдёт.

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от Deleted

))) Ну чё поделать. Штабильности нема. и походу не будет никогда. Кто то там сказал что линукс технологическая проститутка. Вот оно и. )))))))))))))))))))))))) Зато если ты одинокий мачё которому не дают всегда есть возможность потрахаться с линуксом :D

LINUX-ORG-RU ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.