Câu trả lời:
Nếu bạn đang sử dụng compiz, điều này sẽ khó khăn hơn một chút.
chỉnh sửa: điều này bây giờ hoạt động cả có và không có compiz, cuối cùng ...
Tôi đã viết một kịch bản python "nhỏ" để làm điều đó:
#!/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()
Lưu cái này ở đâu đó và đánh dấu nó là thực thi. Điều này sẽ chỉ xuất ra một số giữa 0
và số lượng không gian làm việc.
Đây là cách liệt kê như thế nào:
+---+---+
| 0 | 1 |
+---+---+
| 2 | 3 |
+---+---+
Bạn đã phải cài đặt xdotool để nó hoạt động trong trường hợp compiz bị vô hiệu hóa.
Không cần cài đặt bất cứ thứ gì và nếu bạn đang sử dụng độ sáng, bạn có thể sử dụng:
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
Dường như với Unity, câu trả lời được chấp nhận
xdotool get_desktop_viewport
không hoạt động - nó luôn trả về 0. Tôi đoán màn hình được cấu hình như một khung nhìn thực sự lớn trong đó chỉ có một phần được hiển thị. Thay thế là một chút khó khăn vì bạn phải biết kích thước của không gian làm việc của bạn. I E:
xdotool get_desktop_viewport
sẽ trả về một cái gì đó như "1600 0" nếu bạn ở không gian làm việc phía trên bên phải. Số đầu tiên có lẽ là chiều rộng của màn hình lớn nhất mà bạn có.