Jak globalnie wyłączyć dekorację po stronie klienta w GNOME?

16

Używam Ubuntu GNOME 17.04. Można napotkać dekorację po stronie klienta (CSD), ponieważ większość oficjalnych aplikacji GNOME (Nautilus, gedit, Evince itp.) Używa GtkHeaderBars (połączonego paska tytułu i paska narzędzi, patrz połączone zrzuty ekranu), podczas gdy inne aplikacje tego nie robią. Ta funkcja jest wyłączona w Unity, wszystkie aplikacje używają tradycyjnych oddzielnych pasków tytułowych.

Zrzuty ekranu (z tego artykułu ):

  • Nautilus z GtkHeaderBar

  • Nautilus bez GtkHeaderBar

Dla spójności chcę wyłączyć GtkHeaderBars globalnie (we wszystkich aplikacjach, które go używają) i używać osobnych pasków tytułowych. Czy istnieje sposób na osiągnięcie tego?

Słyszałem o gtk3-nocsdpakiecie, ale nie mogłem go uruchomić z GNOME dla wszystkich aplikacji.

pomsky
źródło

Odpowiedzi:

15

Obawiam się, że nie da się tego zrobić, chyba że twórca aplikacji zajął się taką funkcją. Wyświetlanie paska tytułu u góry okien nie oznacza, że ​​CDS jest faktycznie wyłączony. Nadal brakuje klasycznego układu okna, tj. Paska tytułu, paska menu, paska narzędzi, paska stanu.

Dekoracje po stronie klienta zniszczyły interfejs użytkownika systemu Linux i sprawiły, że aplikacje i środowiska komputerowe wyglądają brzydko i nie są natywne.

Mam nadzieję, że każdy programista po prostu zignoruje linie prowadzące Gnome i sprawi, że jego aplikacja będzie użyteczna i spójna dla wszystkich środowisk.

Vassilis
źródło
8

Chociaż zgadzam się z Vassilisem, że dyski CDP są okropne - na szczęście myli się co do możliwości ich wyłączenia.

W Ubuntu zainstaluj gtk3-nocsdpakiet, a następnie wyloguj się i zaloguj ponownie.

Ten „hack” powoduje, że aplikacje GTK + nie wyłączają już dekoracji okna menedżera okien. Wynik może wyglądać nieco dziwnie - oto jak wygląda aplikacja kalkulatora GNOME ze standardowym CSD:

wprowadź opis zdjęcia tutaj

A dzięki hakowi NOCSD:

wprowadź opis zdjęcia tutaj

Można zobaczyć kilka przykładów, dlaczego twierdzenie Vassilisa, że ​​dyski CDP są okropnym pomysłem, który zniszczył interfejs użytkownika systemu Linux, jest prawdziwe:

  1. Tytuł okna innego niż CSD pokazuje „<2>”, ponieważ uruchomiłem 2 okna kalkulatora w tym samym czasie, aby zrobić zrzuty ekranu, a jedno CSD jest również zatytułowane „Kalkulator”, ale go nie pokazuje, więc jeśli twoje okno Menedżer ma interfejs listy okien (taki jak „pasek zadań”), a na liście znajduje się „Kalkulator”, znalezienie go na ekranie nie będzie łatwe.
  2. Mój menedżer okien ma włączoną funkcję „cieniowania”, co ułatwia mi zobaczenie, które okna znajdują się nad innymi oknami, ale okno CSD wyłącza je bez wyraźnego powodu - co sprawia, że ​​mój ekran jest bardziej skomplikowany do zrozumienia niż potrzeba.
  3. Często używam funkcji „zawsze na wierzchu”, dlatego poprosiłem mojego menedżera okien o wyświetlenie przydatnego przycisku, aby włączyć go w pobliżu innych przycisków operacji na oknie, ale aplikacja CSD oczywiście nie wie o tym i nie robi tego nie pokazuj tego. Ten sam problem z przyciskiem „Przypnij do bieżącego obszaru roboczego”, choć tutaj błąd jest bardziej rażący, ponieważ jest w domyślnej konfiguracji i GTK + powinien to wiedzieć.
  4. To, czego nie pokazałem (bo byłem leniwy) to menu operacji na oknie (kliknij prawym przyciskiem myszy tytuł), że okno CSD ma bardzo ograniczony zestaw dostępnych opcji (w zasadzie 6 standardowych operacji i „zawsze na wierzchu”), podczas gdy moje menedżer okien oferuje znacznie więcej funkcji, których często używam).
  5. Inną rzeczą, której nie pokazano, jest to, że okno CSD nie zmienia koloru tytułu, gdy nie jest aktywne, w przeciwieństwie do wszystkich innych okien, które mam. Byłby to bardziej rażący błąd, gdyby KDE nie było tak niesamowitym środowiskiem graficznym i skonfigurowało aplikację GTK + do używania prawidłowych kolorów tytułów - w innych DE aktywny kolor tytułu GTK + CSD nie pasuje nawet do aktywnego „rodzimego” okna kolor tytułu.
Guss
źródło
1
Z pytania: „Słyszałem o pakiecie gtk3-nocsd, ale nie mogłem sprawić, by działał z GNOME dla wszystkich aplikacji”.
mur
Hmm ... Przepraszam. @pomsky: z jakimi problemami miałeś gtk3-nocsd?
Guss
Nie działało to na przykład z Nautilusem, kiedy ostatnio próbowałem.
pomsky
Działa poprawnie dla mnie na Kubuntu 17.10. Nie jestem pewien, kiedy Nautilus jest ładowany w sesji Unity, ale jeśli dzieje się to przed gtk3-nocsdskryptem XSession, może to być przyczyną. Jeśli to nadal nie działa - ping do mnie.
Guss
4

Udało mi się uruchomić evinceprzeglądarkę PDF z dekoracjami dostarczonymi przez mojego menedżera okien (Openbox) na Ubuntu 18.04 w następujący sposób:

$ sudo apt-get install gtk3-nocsd
$ gtk3-nocsd evince
mpb
źródło
Wygląda na to, że gtk3-nocsd teraz automatycznie wyłącza paski nagłówków na komputerach innych niż GNOME bez żadnej konfiguracji dla wszystkich aplikacji gtk, w tym Evince. webupd8.org/2014/08/how-to-disable-gtk3-client-side.html