it-swarm.com.de

Gibt es eine Möglichkeit, über die Befehlszeile festzustellen, in welchem ​​Arbeitsbereich Sie sich gerade befinden?

Ich versuche herauszufinden, wie man die Arbeitsbereichsnummer aus einem Terminal-Skript in Gnome erhält. Irgendwelche Ideen?

10
wajiw

Wenn Sie Compiz nicht verwenden, können Sie xdotoolInstall xdotool .

Beispiel:

xdotool get_desktop

Dies gibt 0 zurück, wenn es vom ersten Arbeitsbereich aus ausgeführt wird, 1, wenn es vom zweiten aus ausgeführt wird usw.

11
Isaiah

Ein alter und beantworteter Thread, aber ich war gerade hinter der gleichen Info her. Sie können dies mit Standard-Xorg-Tools tun, indem Sie:

xprop -root -notype _NET_CURRENT_DESKTOP
7
mrtimdog

Wenn Sie compiz verwenden , wird dies etwas schwieriger.

edit: das funktioniert jetzt mit und 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. Dadurch wird nur eine Zahl zwischen 0 und der Anzahl der Arbeitsbereiche ausgegeben.

So sieht die Aufzählung aus:

+---+---+
| 0 | 1 |
+---+---+
| 2 | 3 |
+---+---+

Du musst installieren xdotoolInstall xdotool für den Fall, dass compiz deaktiviert ist.

6
Stefano Palazzo

Ohne etwas zu installieren und wenn Sie Metacity verwenden, können Sie dies verwenden:

python -c "import wnck; s=wnck.screen_get_default(); s.force_update(); w=s.get_active_workspace();  w_num=w.get_number(); print(w_num);" 2>/dev/null

Es scheint, dass mit der Einheit die akzeptierte Antwort

 xdotool get_desktop_viewport

funktioniert nicht - es wird immer 0 zurückgegeben. Ich denke, der Bildschirm ist als wirklich großes Ansichtsfenster konfiguriert, von dem nur ein Teil sichtbar ist. Die Alternative ist etwas knifflig, da Sie die Größe Ihres Arbeitsbereichs kennen müssen. Dh:

 xdotool get_desktop_viewport

gibt etwa "1600 0" zurück, wenn Sie sich im oberen rechten Arbeitsbereich befinden. Die erste Zahl ist wahrscheinlich die Breite des größten Displays, das Sie haben.

0
nealmcb