Réponses:
Si vous êtes utilisez Compiz, ce sera un peu plus difficile.
edit: cela fonctionne maintenant avec et sans compiz, enfin ...
J'ai écrit un "petit" script python pour le faire:
#!/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()
Enregistrez-le quelque part et marquez-le comme exécutable. Cela ne produira qu'un nombre compris entre 0
et le nombre d'espaces de travail.
Voici à quoi ressemble l'énumération:
+---+---+
| 0 | 1 |
+---+---+
| 2 | 3 |
+---+---+
Vous devez installer xdotool pour que cela fonctionne au cas où compiz est désactivé.
Sans rien installer et si vous utilisez metacity, vous pouvez utiliser ceci:
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
Il semble qu'avec Unity, la réponse acceptée
xdotool get_desktop_viewport
ne fonctionne pas - il renvoie toujours 0. Je suppose que l'écran est configuré comme une très grande fenêtre dont seule une partie est visible. L'alternative est un peu délicate car vous devez connaître la taille de votre espace de travail. C'est à dire:
xdotool get_desktop_viewport
renverra quelque chose comme "1600 0" si vous êtes dans l'espace de travail en haut à droite. Le premier nombre est probablement la largeur du plus grand écran que vous avez.