Wie deaktiviere ich die clientseitige Dekoration in GNOME global?


16

Ich benutze Ubuntu GNOME 17.04. Die meisten offiziellen GNOME-Anwendungen (Nautilus, gedit, Evince usw.) verwenden GtkHeaderBars (eine kombinierte Titelleiste und Symbolleiste, siehe verknüpfte Screenshots), während andere Anwendungen dies nicht tun. Diese Funktion ist in Unity deaktiviert. Alle Anwendungen verwenden herkömmliche separate Titelleisten.

Screenshots (aus diesem Artikel ):

  • Nautilus mit GtkHeaderBar

  • Nautilus ohne GtkHeaderBar

Aus Gründen der Konsistenz möchte ich GtkHeaderBars global deaktivieren (in allen Anwendungen, die es verwenden) und separate Titelleisten verwenden. Gibt es einen Weg, das zu erreichen?

Ich habe von gtk3-nocsdpackage gehört, konnte es aber nicht mit GNOME für alle Anwendungen zum Laufen bringen.

Antworten:


15

Ich befürchte, dass dies nicht möglich ist, es sei denn, der Entwickler einer Anwendung hat sich um eine Funktion wie diese gekümmert. Das Anzeigen einer Titelleiste oben im Fenster bedeutet nicht, dass CDS tatsächlich deaktiviert ist. Es fehlt noch das klassische Fensterlayout, dh Titelleiste, Menüleiste, Symbolleiste, Statusleiste.

Client Side Decorations hat die Linux-Benutzeroberfläche zerstört und Apps und Desktop-Umgebungen hässlich und nicht nativ aussehen lassen.

Ich hoffe, dass jeder Entwickler die Gnome-Richtlinien einfach ignoriert und seine Anwendung für alle Umgebungen nützlich und konsistent hält.


8

Ich stimme Vassilis zwar zu, dass CSDs schrecklich sind - zum Glück ist er in Bezug auf die Möglichkeit, sie zu deaktivieren, falsch.

Installieren Sie in Ubuntu das gtk3-nocsdPaket und melden Sie sich dann ab und wieder an.

Dieser "Hack" bewirkt, dass GTK + -Anwendungen die Fensterdekoration des Fenstermanagers nicht mehr deaktivieren. Das Ergebnis mag etwas seltsam aussehen - so sieht die Rechneranwendung von GNOME mit der Standard-CSD aus:

Bildbeschreibung hier eingeben

Und mit dem NOCSD-Hack:

Bildbeschreibung hier eingeben

Sie können mehrere Beispiele dafür sehen, warum die Behauptung von Vassilis, dass CSDs eine schreckliche Idee sind, die die Linux-Benutzeroberfläche zerstört hat, zutrifft:

  1. Der Titel des Nicht-CSD-Fensters zeigt "<2>", da ich zwei Taschenrechnerfenster gleichzeitig ausgeführt habe, um die Screenshots zu erstellen. Der Titel des CSD-Fensters trägt ebenfalls den Titel "Taschenrechner", zeigt ihn jedoch nicht an Manager hat eine Fensterlisten-Benutzeroberfläche (z. B. eine "Taskleiste") und Sie sehen dort "Rechner" aufgelistet, es wird nicht trivial sein, es auf dem Bildschirm zu finden.
  2. In meinem Fenstermanager sind "Schlagschatten" aktiviert, sodass ich leichter erkennen kann, welche Fenster über anderen Fenstern liegen. Das CSD-Fenster deaktiviert sie jedoch nicht ohne Grund. Dadurch wird der Bildschirm wieder schwieriger zu verstehen als nötig.
  3. Ich verwende die "Immer im Griff" -Funktion häufig, weshalb ich meinen Fenstermanager gebeten habe, neben den anderen Fensterschaltflächen eine praktische Schaltfläche anzuzeigen, um sie zu aktivieren, aber die CSD-App weiß offensichtlich nichts davon und weiß es nicht nicht zeigen. Gleiches Problem mit der Schaltfläche "An aktuellen Arbeitsbereich anheften". Hier ist der Fehler jedoch gravierender, da er in der Standardkonfiguration vorliegt und GTK + dies hätte wissen müssen.
  4. Was nicht angezeigt wird (weil ich faul war), ist das Menü für Fensteroperationen (Rechtsklick auf den Titel), in dem für das CSD-Fenster nur sehr wenige Optionen verfügbar sind (im Grunde die 6 Standardoperationen und "Immer im Vordergrund") Fenstermanager bietet viel mehr Funktionen, die ich oft benutze).
  5. Eine andere Sache, die nicht gezeigt wird, ist, dass das CSD-Fenster seine Titelfarbe nicht ändert, wenn es nicht aktiv ist, im Gegensatz zu allen anderen Fenstern, die ich habe. Dies wäre ein eklatanter Fehler gewesen, wenn KDE keine so großartige Desktop-Umgebung gewesen wäre und die GTK + -Anwendung so konfiguriert hätte, dass sie die richtigen Titelfarben verwendet - auf anderen DEs stimmt die aktive GTK + CSD-Titelfarbe nicht einmal mit dem aktiven "nativen" Fenster überein Titelfarbe.

1
Aus der Frage: "Ich habe vom gtk3-nocsd-Paket gehört, konnte es jedoch nicht für alle Anwendungen mit GNOME verwenden."
Muru

Hmm ... hab das verpasst, sorry. @pomsky: Welche Probleme haben Sie mit gtk3-nocsd?
Guss

Bei Nautilus hat es zum Beispiel nicht funktioniert, als ich es das letzte Mal versucht habe.
Pomsky

Es funktioniert korrekt für mich auf Kubuntu 17.10. Ich bin nicht sicher, wann Nautilus unter einer Unity-Sitzung geladen wird, aber wenn dies vor dem gtk3-nocsdXSession-Skript geschieht , kann dies die Ursache sein. Wenn das bei Ihnen immer noch nicht funktioniert - rufen Sie mich an.
Guss

4

Ich konnte den evincePDF-Viewer mit den von meinem Fenstermanager (Openbox) unter Ubuntu 18.04 bereitgestellten Dekorationen wie folgt ausführen :

$ sudo apt-get install gtk3-nocsd
$ gtk3-nocsd evince

Es scheint, als ob gtk3-nocsd jetzt Header-Leisten auf Nicht-GNOME-Desktops automatisch deaktiviert, ohne dass dies für alle gtk-Apps, einschließlich Evince, konfiguriert werden muss. webupd8.org/2014/08/how-to-disable-gtk3-client-side.html
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.