Ich versuche herauszufinden, wie die Arbeitsbereichsnummer aus einem Terminalskript in gnome abgerufen werden kann. Irgendwelche Ideen?
quelle
Ich versuche herauszufinden, wie die Arbeitsbereichsnummer aus einem Terminalskript in gnome abgerufen werden kann. Irgendwelche Ideen?
Wenn Sie Compiz nicht verwenden, können Sie xdotool verwenden .
Beispiel:
xdotool get_desktop
Dies wird zurückgegeben, 0
wenn es vom ersten Arbeitsbereich ausgeführt wird, 1
wenn es vom zweiten ausgeführt wird usw.
Ein alter und beantworteter Thread, aber ich war kurz nach der gleichen Info. Sie können dies mit Standard-xorg-Tools tun mit:
xprop -root -notype _NET_CURRENT_DESKTOP
Wenn Sie sind Compiz verwendet, wird dies ein wenig schwieriger.
edit: das funktioniert jetzt sowohl mit als auch ohne compiz, endlich ...
Ich habe dazu ein "kleines" Python-Skript geschrieben:
#!/usr/bin/python
from subprocess import Popen, PIPE
getoutput = lambda x: Popen(x, stdout=PIPE).communicate()[0]
compiz_running = list(i for i in getoutput(("ps", "-aef", )).split("\n")
if "compiz --replace" in i and not "grep" in i) != []
if compiz_running:
# get the position of the current workspace
ws = list(int(i.strip(",")) for i in getoutput(("xprop", "-root",
"-notype", "_NET_DESKTOP_VIEWPORT", )).split()[-2:])
# get the number of horizontal and vertical workspaces
hsize = int(getoutput(("gconftool",
"--get", "/apps/compiz/general/screen0/options/hsize", )))
vsize = int(getoutput(("gconftool",
"--get", "/apps/compiz/general/screen0/options/vsize", )))
# get the dimentions of a single workspace
x, y = list(int(i) for i in getoutput(("xwininfo", "-root",
"-stats", )).split("geometry ")[1].split("+")[0].split("x"))
# enumerate workspaces
workspaces, n = [], 0
for j in range(vsize):
for i in range(hsize):
workspaces.append([n, [x*i, y*j, ], ])
n += 1
print list(i for i in workspaces if i[1] == ws)[0][0]
# if compiz is not running
else: # this code via @DoR
print getoutput(("xdotool", "get_desktop", )).strip()
Speichern Sie dies irgendwo und markieren Sie es als ausführbar. Dies gibt nur eine Zahl zwischen 0
und die Anzahl der Arbeitsbereiche aus.
So sieht die Aufzählung aus:
+---+---+
| 0 | 1 |
+---+---+
| 2 | 3 |
+---+---+
Sie müssen xdotool installieren, damit dies funktioniert, falls compiz deaktiviert ist.
Ohne etwas zu installieren und wenn Sie Metacity verwenden, können Sie Folgendes verwenden:
quelle
Es scheint, dass mit Unity die akzeptierte Antwort
funktioniert nicht - es wird immer 0 zurückgegeben. Ich denke, der Bildschirm ist als ein wirklich großes Ansichtsfenster konfiguriert, von dem nur ein Teil sichtbar ist. Die Alternative ist etwas schwierig, da Sie die Größe Ihres Arbeitsbereichs kennen müssen. Dh:
gibt so etwas wie "1600 0" zurück, wenn Sie sich im oberen rechten Arbeitsbereich befinden. Die erste Zahl ist wahrscheinlich die Breite der größten Anzeige, die Sie haben.
quelle