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 devilspie und wmctrl, 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.
[gelöst] Xfce-Panel nur auf einem [von zwei] virtuellen Workspaces anzeigen?
[gelöst] Xfce-Panel nur auf einem [von zwei] virtuellen Workspaces anzeigen?
Zuletzt geändert von hikaru am 24.05.2018 18:38:09, insgesamt 1-mal geändert.
Re: Xfce-Panel nur auf einem virtuellen Workspace anzeigen?
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
und ich kann mit
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
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
[...]
Code: Alles auswählen
$ wmctrl -i -r 0x00600004 -t 0
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
Re: Xfce-Panel nur auf einem virtuellen Workspace anzeigen?
Da ich nur zwei Arbeitsflächen habe, ist das egal.smutbert hat geschrieben:24.05.2018 16:13:19Anders herum (ein Panel nur auf einer Arbeitsfläche sichtbar) wäre es einfacher - keine Ahnung ob du dich damit anfreunden könntest:
Danke für den Tipp! Das funktioniert im Prinzip wunderbar:smutbert hat geschrieben:24.05.2018 16:13:19Bei mir sieht es in einem testweise installierten xfce so ausund ich kann mitCode: Alles auswählen
$ wmctrl -l 0x00c00003 -1 localhost Schreibtisch 0x00600004 -1 localhost xfce4-panel 0x00600029 -1 localhost xfce4-panel 0x02400006 0 localhost Terminal [...]
problemlos ein Panel auf die erste Arbeitsfläche (0) verschieben, so dass sie auch nur auf dieser sichtbar ist.Code: Alles auswählen
$ wmctrl -i -r 0x00600004 -t 0
Code: Alles auswählen
wmctrl -i -r $(wmctrl -l | grep xfce4-panel | tail -n 1 | cut -c -10) -t 1
Es scheint da kein echtes System zu geben. Allerdings kennt ja wmctrl noch den Schalter -G zur Anzeige der Fenstergeometrie:smutbert hat geschrieben:24.05.2018 16:13:19Als Problem bleibt dann imho die Identifikation des gewünschten Panels, aber vielleicht werden die Panels ja immer in derselben Reihenfolge gestartet.
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
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
*) 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.