wmctrl Ausgabe

ChrisMD

ChrisMD

Haudegen
Ich werd aus diesen Tools nicht schlau :D
wmctrl -d gibt alle Desktops aus und markiert den aktuellen mit einem *

Sieht dann z.B. so aus
0 * DG: 1152x864 VP: 0,0 WA: 0,0 1152x864 one
1 - DG: 1152x864 VP: 0,0 WA: 0,0 1152x864 two
2 - DG: 1152x864 VP: 0,0 WA: 0,0 1152x864 three
3 - DG: 1152x864 VP: 0,0 WA: 0,0 1152x864 four
4 - DG: 1152x864 VP: 0,0 WA: 0,0 1152x864 five
5 - DG: 1152x864 VP: 0,0 WA: 0,0 1152x864 six

Ich will conky dazu nutzen den aktuellen Desktop sowie die Anzahl der Desktops anzuzeigen. Letzteres geht ja indem ich das letzte Wort in der letzten Zeile anzeige, sprich "six". Nur kA wie ich das mach.

mit wmctrl -d | grep '*' bin ich zumindest mal soweit nur die Zeile anzeigen zu lassen die den aktuellen Desktop ausgibt.
Wenn ich nun auf Desktop 0 mit dem Namen "one" bin wird dadurch
0 * DG: 1152x864 VP: 0,0 WA: 0,0 1152x864 one
ausgegeben.
Das will ich nun auf die Anzeige von "one" beschränken.

Am Ende soll Conky quasi "one" ausgeben und mit dem zweiten cmd "six".
Ergäbe dann hübsch zusammengesetzt in Conky ein:
one//six
oder ein
two//four
wenn nur 4 desktops verfügbar sind.

Wie bekommt man das hin? :think:
 
Ungetestet, aber so in etwa:
Code:
# current
wmctrl -d | grep '*' | cut -d ' ' -f 10
# max
wmctrl -d | tail -n 1 | cut -d ' ' -f 10
 
Nope das wars nicht, hat mir aber geholfen da es mit -f 14 funktioniert =)
thx!
 
ChrisMD schrieb:
Nope das wars nicht, hat mir aber geholfen da es mit -f 14 funktioniert =)
thx!
Suchst du sowas?
Ungetestet, weil ich das wmctrl nicht habe.
Code:
wmctrl -d |perl -anle 'push @e,(/\*/)?"$F[-1] ":"";END{print (join "",@e)}'
;)


Gruß Wolfgang
EDIT:
Ich habe dich wohl mis(t)verstanden.
Wenn du nur die erste Zeile mit dem Sternchen und das letzte Feld der letzen Zeile haben willst, geht es so:
Code:
wmctrl -d |perl -anle 'push @e,(/\*/)?"$F[-1] ":"";END{print "$e[0]//$F[-1]"}
 
Zuletzt bearbeitet:
Naja mitlerweile gehts ja aber es ist zu Ressourcenfressend. Muss wohl mal mit dem Kerl sprechen der das einsetzt.
Damits gleichzeitig die Uhr funktioniert muss ja das Update auf 1 Sekunde und mehr würde auch nicht gut bei der Desktopanzeige funktionieren.
Naja jedenfalls hab ich so jede Sekunde 20% CPU Auslastung, der hat das sicherlich anders gelöscht :D
 
Hallo
Naja ich kenn conky nicht. Habe lediglich den Datenstrom so wie du ihn angegeben hast über eine Datei simuliert.
Dort dann das gewünschte rausgefischt.
In solchen Fällen (habe mal danach gegoogelt und weiss nun was es ist ;)) sind Interpreter-Scriptsprachen natürlich nicht so die Wahl.
Für solche Echtzeitgeschichten sind dann vorcompilierte Programme besser.
Wenn du jede Sekunde zwei Prozesse aufrufst, ist das schon klar.
Dabei habe ich das grep noch weggespart.

Gruß Wolfgang
 

Ähnliche Themen

ATI-fglrx unter Ubuntu Hardy - Logoff Issue

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

TV-out Problem mit Radeon

Versehentlich TV-Out aktiviert? (nVidia mal wieder...)

Zurück
Oben