[gelöst] Xfce-Panel nur auf einem [von zwei] virtuellen Workspaces anzeigen?

KDE, Gnome, Windowmanager, X11, Grafiktreiber und alles was dazu notwendig ist. Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

[gelöst] Xfce-Panel nur auf einem [von zwei] virtuellen Workspaces anzeigen?

Beitrag von hikaru » 24.05.2018 09:13:25

Hallo,

ich betreibe Xfce (Stretch) mit zwei virtuellen Workspaces, auf dem zwei Panel laufen. Auf einem der Workspaces möchte ich gern eines der Panel ausblenden.
Kennt jemand dafür einen eleganten bzw. einfachen Weg?

Das Einzige was mir bisher einfiel war, irgendwie den Workspacewechsel zu erkennen (wie?) und dann das Panel per xfconf-query "Autohide" ein- oder auszuschalten. Der Ansatz gefällt mir aber aus diversen Gründen nicht:
1. Ich weiß nicht womit ich den Workspacewechsel erkennen soll um dann den xfconf-query-Aufruf abzusetzen. Meine ersten Ideen waren Debiandevilspie und Debianwmctrl, aber nach einem kurzen Blick in die Manpages meine ich, dass die zwar super zum Auslösen von WM-Aktionen sind, aber eigentlich nicht zu deren Detektieren taugen.
2. Einerseits halte ich es für potenziell instabil, auf den Workspacewechsel zu reagieren, statt die aktuelle Workspacenummer abzufragen, denn wenn ich das einmal verpasse (warum auch immer), dann ist meine ganze Konfiguration "verkehrtherum".
3. Andererseits ist das Einzige was mir bisher zum Abfragen der Workspacenummer eingefallen ist, ein blindes Polling in einer recht kurzen Schleife. Das ist hässlich.
4. Das Panel auf "Autohide" zu setzen empfinde ich als suboptimal, denn wenn ich mit der Maus an den Bildschirmrand fahre, taucht es ja trotzdem wieder auf. Das will ich eigentlich nicht.
5. Selbst wenn das alles funktionieren würde, erschiene es mir doch in der Umsetzung unnötig komplex und "von hinten durch die Brust in's Auge", um einfach nur verschiedene Panelkonfigurationen für verschiedene Workspaces zu haben.
Zuletzt geändert von hikaru am 24.05.2018 18:38:09, insgesamt 1-mal geändert.

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Xfce-Panel nur auf einem virtuellen Workspace anzeigen?

Beitrag von smutbert » 24.05.2018 16:13:19

An einem ähnlichen Vorhaben bin ich auch gescheitert - ganz abgesehen davon, dass es nicht schön ist, funktioniert das mit dem Polling einfach nicht zuverlässig (war allerdings nicht xfce, mit dem ich das versucht habe).

Anders herum (ein Panel nur auf einer Arbeitsfläche sichtbar) wäre es einfacher - keine Ahnung ob du dich damit anfreunden könntest:
Bei mir sieht es in einem testweise installierten xfce so aus

Code: Alles auswählen

$ wmctrl -l
0x00c00003 -1 localhost Schreibtisch
0x00600004 -1 localhost xfce4-panel
0x00600029 -1 localhost xfce4-panel
0x02400006  0 localhost Terminal
[...]
und ich kann mit

Code: Alles auswählen

$ wmctrl -i -r 0x00600004 -t 0
problemlos ein Panel auf die erste Arbeitsfläche (0) verschieben, so dass sie auch nur auf dieser sichtbar ist. Als Problem bleibt dann imho die Identifikation des gewünschten Panels, aber vielleicht werden die Panels ja immer in derselben Reihenfolge gestartet.

Damit könntest du die Panels auf den Arbeitsflächen auch komplett unabhängig voneinander konfigurieren, hättest aber halt auch viel mehr Panels laufen. In deinem Fall und mit N Arbeitsflächen, bräuchtest du für das gewünschte Verhalten das N Panels ((N-1) mal das eine und einmal das andere).

edit:
Offensichtlich kann man auch gezielt auf Workspacewechsel reagieren. Hier wird pyxfce (xfce bindings for python), das ich allerdings weder in Debian noch sonst so gefunden habe und unabhängig davon eine Lösung mit python3 erwähnt.
https://unix.stackexchange.com/question ... ch-in-xfce

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Xfce-Panel nur auf einem virtuellen Workspace anzeigen?

Beitrag von hikaru » 24.05.2018 18:37:22

smutbert hat geschrieben: ↑ zum Beitrag ↑
24.05.2018 16:13:19
Anders herum (ein Panel nur auf einer Arbeitsfläche sichtbar) wäre es einfacher - keine Ahnung ob du dich damit anfreunden könntest:
Da ich nur zwei Arbeitsflächen habe, ist das egal.
smutbert hat geschrieben: ↑ zum Beitrag ↑
24.05.2018 16:13:19
Bei mir sieht es in einem testweise installierten xfce so aus

Code: Alles auswählen

$ wmctrl -l
0x00c00003 -1 localhost Schreibtisch
0x00600004 -1 localhost xfce4-panel
0x00600029 -1 localhost xfce4-panel
0x02400006  0 localhost Terminal
[...]
und ich kann mit

Code: Alles auswählen

$ wmctrl -i -r 0x00600004 -t 0
problemlos ein Panel auf die erste Arbeitsfläche (0) verschieben, so dass sie auch nur auf dieser sichtbar ist.
Danke für den Tipp! Das funktioniert im Prinzip wunderbar:

Code: Alles auswählen

wmctrl -i -r $(wmctrl -l | grep xfce4-panel | tail -n 1 | cut -c -10) -t 1
Ich hatte im Arch-Forum etwas über einen alten Xfce-Bug gelesen, in dem es darum ging, dass ein neu eingerichtetes Panel nur auf einer Arbeitsfläche sichtbar war. Da war ich schon fast traurig, dass der gefixt wurde. Weitergedacht hatte ich dann leider nicht.
smutbert hat geschrieben: ↑ zum Beitrag ↑
24.05.2018 16:13:19
Als Problem bleibt dann imho die Identifikation des gewünschten Panels, aber vielleicht werden die Panels ja immer in derselben Reihenfolge gestartet.
Es scheint da kein echtes System zu geben. Allerdings kennt ja wmctrl noch den Schalter -G zur Anzeige der Fenstergeometrie:

Code: Alles auswählen

wmctrl -lG | grep xfce4-panel
0x01800004 -1 0    0    1920 31   debian xfce4-panel
0x01800020  0 0    1070 1920 41   debian xfce4-panel
Ich weiß, dass ich das höhere der beiden Panel ausblenden will, also das mit 41 Pixeln Höhe*.
Damit kann man die Zeile von oben entsprechend umbauen:

Code: Alles auswählen

wmctrl -i -r $(wmctrl -l | grep xfce4-panel | grep ' 41 ' | cut -c -10) -t 1
Die Zeile kann ich in ein Wrapper-Script stecken und das dann über den Xfce-Autostart aufrufen, um das Panel beim Anmelden auszublenden. Damit das funktioniert, muss ich im Script noch ein sleep 0.5 davor setzen, um den Aufbau des Desktops abzuwarten.


*) Im Xfce-Panel-Dialog stehen hier nur 40 bzw 30 Pixel, ich vermute, der WM klebt da noch eines dran. Es bleibt übrigens auch die Höhe und wird nicht die Breite, wenn man das Panel hochkant stellt.

Antworten