Frage So ermitteln Sie, welcher Fenstermanager ausgeführt wird


Gibt es einen Weg (wie einen Befehl oder eine Umgebungsvariable), um was zu bestimmen? Fenstermanager läuft in der aktuellen Sitzung aktiv?


151
2017-10-26 20:39


Ursprung




Antworten:


Wenn Sie haben wmctrl installiert, die erste Zeile der Ausgabe von Befehl

    wmctrl -m

zeigt Ihnen den Namen des Fenstermanagers. Wenn Sie nicht haben wmctrl installiert, verwenden Sie den folgenden Befehl, um es zu installieren:

    sudo apt-get install wmctrl

Hinweis, man wmctrl (das heißt, die man Seite für wmctrl) sagt teilweise:

-m Informationen zum Fenstermanager anzeigen ...

Auf meinem Ubuntu 11.10 / Linux 3.0.0-14-generischen # 23-Ubuntu x86_64 / metacity 2.34.1 System, die erste Zeile der Ausgabe von wmctrl -m war: Name: Metacity
während echo $DESKTOP_SESSION gezeigt ubuntu-2d und echo $XDG_CURRENT_DESKTOP gezeigt Unity.

Auf einer frischen Ubuntu 15.10 Installation von Ubuntu desktop Software auf einem alten Laptop, die erste Zeile der Ausgabe von wmctrl -m war: Name: Compiz
während DESKTOP_SESSION und XDG_CURRENT_DESKTOP Werte waren ubuntu und Unity


126
2018-01-05 07:57



Leider funktioniert dies nicht über ssh, selbst wenn X11 aktiviert ist. - Sridhar-Sarnobat
@ Sridhar-Sarnobat auf ubuntu 15.04, läuft ssh -Y {host} 'wmctrl -m' gibt einige Werte zurück (z. B. "Name: Compiz" und mehrere N / A), aber es ist sinnvoll, dass ssh hätte begrenzte Informationen über den Fenstermanager. - michael
auf Debian läuft Zimt, das geht nicht. Ausgabe von wmctrl -m ist Name: Mutter (Muffin) während $ XDG_CURRENT_DESKTOP = X-Cinnamon - Floyd
Auf Xubuntu Wily läuft Window Maker 0.95.6 - wmctrl meldet N / A für alle Einträge. GDMSESSION ist auf wmaker-common gesetzt, aber XDG_CURRENT_DESKTOP ist überhaupt nicht gesetzt. - Mei
@Mei, läuft Window Maker auf anderen Systemen, die Sie vergleichen können? Auch, entweder wmctrl -d (Auflisten aller vom Fenstermanager verwalteten Desktops) oder wmctrl -l (Listet die Fenster auf, die vom Fenstermanager verwaltet werden) Arbeiten mit Xubuntu Wily mit Window Maker? - James Waldby - jwpat7


Auf Linux-Systemen habe ich Umgebungsvariablen getestet XDG_CURRENT_DESKTOP und GDMSESSION und bekam folgende Ergebnisse.

Sie können diese Zeile verwenden, um die Ausgabe zu erhalten:

printf 'Desktop: %s\nSession: %s\n' "$XDG_CURRENT_DESKTOP" "$GDMSESSION"

Ubuntu 18.04 (Ubuntu)

  • XDG_CURRENT_DESKTOP=ubuntu:GNOME
  • GDMSESSION=ubuntu

Ubuntu 18.04 (Ubuntu auf Wayland)

  • XDG_CURRENT_DESKTOP=ubuntu:GNOME
  • GDMSESSION=ubuntu-wayland

Ubuntu 16.04


Einheit (7)

  • XDG_CURRENT_DESKTOP=Unity
  • GDMSESSION=ubuntu

Ubuntu 14.04


Einheit läuft mit Mir

  • XDG_CURRENT_DESKTOP=Unity
  • GDMSESSION=ubuntu

Hinweis: MIR_SERVER_NAME ist ebenfalls festgelegt

  • MIR_SERVER_NAME=session-$NUMBER

Unity läuft ohne Mir

  • XDG_CURRENT_DESKTOP=Unity
  • GDMSESSION=ubuntu

XFCE

  • XDG_CURRENT_DESKTOP=XFCE
  • GDMSESSION=xfce

Ubuntu 12.04


KDE

  • XDG_CURRENT_DESKTOP=
  • GDMSESSION=kde-plasma

Einheit 3d

  • XDG_CURRENT_DESKTOP=Unity
  • GDMSESSION=ubuntu

Einheit 2d

  • XDG_CURRENT_DESKTOP=Unity
  • GDMSESSION=ubuntu-2d

Gnom

  • XDG_CURRENT_DESKTOP=GNOME
  • GDMSESSION=gnome-shell

Gnom Klassiker

  • XDG_CURRENT_DESKTOP=GNOME
  • GDMSESSION=gnome-classic

Gnome Classic (keine Effekte)

  • XDG_CURRENT_DESKTOP=GNOME
  • GDMSESSION=gnome-fallback

Andere Ubuntu-basierte Distributionen


Minze 13 (Zimt)

  • XDG_CURRENT_DESKTOP=GNOME
  • GDMSESSION=cinnamon

Mint 16 (KDE-Ausgabe)

  • XDG_CURRENT_DESKTOP=KDE
  • GDMSESSION=default

Minze 17 (Zimt)

  • XDG_CURRENT_DESKTOP=X-Cinnamon
  • GDMSESSION=default

Lubuntu 12.04

  • XDG_CURRENT_DESKTOP=LXDE 
  • GDMSESSION=Lubuntu

Wasta 14.04

  • XDG_CURRENT_DESKTOP=X-Cinnamon 
  • GDMSESSION=cinnamon

Wasta 14.04 mit Gnome Desktop.

  • XDG_CURRENT_DESKTOP=GNOME 
  • GDMSESSION=gnome

Ubuntu-Kamerad 18.04

  • XDG_CURRENT_DESKTOP=MATE
  • GDMSESSION=mate

Xubuntu 18.04

  • XDG_CURRENT_DESKTOP=XFCE
  • GDMSESSION=xubuntu

84
2017-12-10 20:38



Minze 13 (Zimt): XDG_CURRENT_DESKTOP = GNOME, GDMSESSION = Zimt - rik-shaw
Lubuntu 12.04: XDG_CURRENT_DESKTOP = LXDE, GDMSESSION = Lubuntu - rik-shaw
Was ist mit $ DESKTOP_SESSION? Als Backup-Lösung :) - Savvas Radevic
Was passiert, wenn ich GDM nicht verwende? - Robert Siemer
Und weiter antwortet es nicht was Fenstermanager Ich benutze! - Robert Siemer


Im Terminaltyp env um alle Umgebungsvariablen zu sehen. Einige von ihnen sind:

XDG_CURRENT_DESKTOP - Informiert Sie, welche Desktop-Umgebung Sie verwenden

GDMSESSION - Gibt an, welche Option Sie vom Lightdm Greeter zum Anmelden ausgewählt haben.

Um sie zu verwenden, gehen Sie zum Terminal und tippen Sie:

echo $XDG_CURRENT_DESKTOP

(Gibt beispielsweise 'Einheit' aus, wenn Sie Unity verwenden)

oder

echo $GDMSESSION  

(Wird zum Beispiel "ubuntu" ausgeben, wenn Sie ubuntu im Login oder "ubuntu-2d" gewählt haben, wenn Sie diesen im Login ausgewählt haben.)

Sie haben andere, wenn Sie den Ausgang von näher betrachten env mögen DESKTOP_SESSION und COMPIZ_CONFIG_PROFILE

Da Sie nach dem Namen des verwendeten Window Managers suchen, kann ich dies nur durch einen Blick in die Prozessliste herausfinden. Um dies zu tun, gibt es einen Befehl namens pgrep ( Wikipedia ). Ich habe Folgendes getan, um den Namen zu erhalten, da der Parameter -l die Prozess-ID hinzufügt:

pgrep -l compiz |cut -d " " -f2 Da der Prozess vom selben Benutzer ausgeführt wird, muss der sudo-Teil nicht vorangestellt werden. Sie können dies verwenden, um ein Skript zu erstellen, das eine Aktion basierend auf dem Window Manager ausführt.

Um nach anderen Typen zu suchen, ändern Sie einfach das Wort compiz zu einem anderen Like mutter, kwin, etc..


39
2017-10-26 21:57



Diese sagen mir nur den Sitzungsnamen und die Desktop-Umgebung. Beispiel: "GNOME" ist eine Desktop-Umgebung, die Metacity, Mutter, Compiz oder andere Window-Manager verwenden kann. Es sagt "gnome-classic", was ein Sitzungsname ist, es gibt keinen solchen Fenstermanager mit diesem Namen. - Anonymous
Da gehst du. Einen Befehl gefunden, der bei der Prozessliste helfen kann. pgrep. Zu diesem Teil, zumindest zeigt es Ihnen den Namen des Fenstermanagers, wenn gefunden. Ich versuche zu überprüfen, ob ich alle zusammen hinzufügen kann. Ihre Frage ist sehr gut, da Ubuntu 11.10 ein wenig verwirrt, wenn Sie Compiz benutzen (oder wenn Gnome 3.x murmeln würde), so wäre es nett, auf den tatsächlichen Fenstermanager hinzuweisen, der in Unity verwendet wird. - Luis Alvarado♦
$XDG_CURRENT_DESKTOP ist die aktuelle Desktopumgebung, NICHT der Fenstermanager. - Ken Sharp


ich fand pstree eine große Hilfe sein.

Installation

sudo apt-get install pstree

Ausgabe

Das habe ich bekommen.

 ├─lightdm─┬─Xorg───2*[{Xorg}]
 │         ├─lightdm─┬─gnome-session─┬─bluetooth-apple───2*[{bluetooth-apple}]
 │         │         │               ├─compiz─┬─sh───gtk-window-deco───2*[{gtk-window-deco}]
 │         │         │               │        └─5*[{compiz}]
 │         │         │               ├─deja-dup-monito───2*[{deja-dup-monito}]
 │         │         │               ├─gnome-fallback-───2*[{gnome-fallback-}]
 │         │         │               ├─gnome-screensav───2*[{gnome-screensav}]
 │         │         │               ├─gnome-settings-───2*[{gnome-settings-}]
 │         │         │               ├─nautilus───2*[{nautilus}]
 │         │         │               ├─nm-applet───2*[{nm-applet}]
 │         │         │               ├─polkit-gnome-au───2*[{polkit-gnome-au}]
 │         │         │               ├─ssh-agent
 │         │         │               ├─telepathy-indic───2*[{telepathy-indic}]
 │         │         │               ├─update-notifier───2*[{update-notifier}]
 │         │         │               ├─vino-server───2*[{vino-server}]
 │         │         │               ├─zeitgeist-datah───{zeitgeist-datah}
 │         │         │               └─3*[{gnome-session}]
 │         │         └─{lightdm}
 │         └─2*[{lightdm}]

20
2018-04-22 04:59





xprop -id $(xprop -root -notype | awk '$1=="_NET_SUPPORTING_WM_CHECK:"{print $5}') -notype -f _NET_WM_NAME 8t 

8
2018-05-15 06:19



Kannst du erklären, wie das funktioniert? Außerdem denke ich, dass du eine vermisst hast ) Am Ende. - Louis Matthijssen
@LouisMatthijssen 1. xprop -root -notype zeigt alle Eigenschaften des Hauptfensters an (und lässt Typen zum leichteren Parsen aus), an die Ausgabe wird gesendet awk über Rohr; 2. awk Anweisung $1=="_NET[blah]CK:"{print $5}' vergleicht die erste Spalte jeder Zeile der Eingabe, die sie durch die Pipe mit einer gegebenen Zeichenfolge erhalten hat, und wenn sie die Übereinstimmung findet, führt sie den Code in Klammern aus, der die fünfte Spalte aus dieser Zeile druckt - zufällig (ganz zufällig, ich wette) die ID des "_NET_SUPPORTING_WM_CHECK" -Atoms sein; 3. Diese ID wird dann erneut verwendet, um die Eigenschaften des Windows-Managers mit zu bekommen xprop -id - cprn


Ich habe auch mit KDE getestet und meine Schlussfolgerung lautet:

a) Grafischer Weg, mit HardInfo: Die Antwort ist normalerweise in "Betriebssystem"> "Desktop-Umgebung", aber wenn nicht, können Sie nach "Umgebungsvariablen" schauen. HardInfo ist mit allen getesteten Distributionen, außer der mit KDE, fertig, aber es kann einfach und schnell installiert werden (nur 2 Pakete in Linux Mint 13).

b) Befehlszeile, mit diesem Befehl: ps -A | egrep -i "gnome|kde|mate|cinnamon|lx|xfce|jwm". Das Element, das in mehr Zeilen angezeigt wird, sollte die Antwort sein (wenn es eine Zeichnung gibt, sollte das Element mit "Sitzung" die Lösung sein).


3
2018-04-15 22:51



XFCE hat auch mehrere gnome-... Prozesse (und ein KDE Treffer mit kdevtmpfs) - Xen2050


Keines der oben genannten Dinge funktionierte wirklich für mich, ich wollte nur wissen, ob Gnome als meine aktuelle Desktopsitzung läuft.

Das hat funktioniert, ein Terminal öffnen

lsb_release -a

(um zu überprüfen, welche Variante oder Version ich auf meinem UBUNTU-Rechner installiert hatte)

ls /usr/bin/*session

(Startet, welche Desktop-Sitzung / Desktop-Umgebung gerade verwendet wird)

gnome-shell --version 

(um herauszufinden, welche Version von Gnome installiert ist)


1
2017-07-07 16:26