(Nichts definiert oder verwendet $ DESKTOP_VERSION. Meinten Sie $ DESKTOP_SESSION? Hier speichern Display-Manager den Namen der von ihnen ausgewählten Xsession-Datei.)
Verwenden Sie, um den Namen des aktuellen Fenstermanagers abzufragen wmctrl -m
. Vergessen Sie nicht die richtige Anführungszeichen, da der Name Leerzeichen enthalten kann.
wm=$(wmctrl -m | sed -n 's/^Name: //p') if [ "$wm" = xmonad ]; then ... fi
(Bashs [[
muss nicht auf LHS zitiert werden, POSIX [
jedoch.)
Der Mechanismus arbeitet, indem er zuerst die _NET_SUPPORTING_WM_CHECK
Eigenschaft des X11-Stammfensters abfragt und dann die Eigenschaften der zurückgegebenen Fenster-ID abfragt.
$ xprop -root _NET_SUPPORTING_WM_CHECK _NET_SUPPORTING_WM_CHECK(WINDOW): window id # 0x600006 $ xprop -id 0x600006 _NET_WM_NAME _NET_WM_NAME(UTF8_STRING) = "GNOME Shell"