Я знаю, что этому ответили прежде, но то решение не работает над ПОМОЩНИКОМ Ubuntu. Так или иначе достигнуть этого на ПОМОЩНИКЕ?
Вывод wmctrl -d
:
$ wmctrl -d
0 * DG: 1366x768 VP: 0,0 WA: 0,25 1366x719 Workspace 1
1 - DG: 1366x768 VP: N/A WA: 0,25 1366x719 Workspace 2
2 - DG: 1366x768 VP: N/A WA: 0,25 1366x719 Workspace 3
3 - DG: 1366x768 VP: N/A WA: 0,25 1366x719 Workspace 4
Вывод $ echo $DESKTOP_SESSION
:
$ echo $DESKTOP_SESSION
mate
Исходное решение, которое я попробовал и это не работало на меня:
Действительно ли возможно иметь другой фон для каждой рабочей области?
Хотя я не мог протестировать его, вследствие того, что у меня нет Помощника доступным банкоматом, смотря на вывод wmctrl -d
, и учитывая тот факт, что обои на Помощнике, очевидно, установлены с тем же gsettings
команда, я не вижу оснований, почему она не должна работать.
Сценарий ниже является отредактированной версией этого и видом отрывка того, который я продвинул к Панели запуска. Как это, что каждый не будет работать на Помощника, так как я добавил регистрацию сессии той, или для Единицы или для Волнистого попугайчика.
Если можно подтвердить сценарий ниже работ над Помощником, я, вероятно, отредактирую ppa версию для включения Помощника.
#!/usr/bin/env python3
import subprocess
import os
import time
try:
os.mkdir(os.path.join(os.environ["HOME"], ".config/wswitcher"))
except FileExistsError:
pass
workspace_data = os.environ["HOME"]+"/.config/wswitcher/wallpaper_data_"
key = [
"gsettings get ",
"gsettings set ",
"org.gnome.desktop.background picture-uri",
]
def getwall():
return subprocess.check_output(
["/bin/bash", "-c", key[0]+key[2]]
).decode("utf-8").strip()
def get_res():
# get resolution
xr = subprocess.check_output(["xrandr"]).decode("utf-8").split()
pos = xr.index("current")
return [int(xr[pos+1]), int(xr[pos+3].replace(",", "") )]
def current_ws():
# get the current workspace
wsdata = subprocess.check_output(["wmctrl", "-d"]).decode("utf-8").splitlines()
return [l.split()[0] for l in wsdata if "*" in l][0]
def wswitcher(curr_ws1, currwall1):
while True:
time.sleep(1)
currwall2 = getwall()
curr_ws2 = current_ws()
datafile = workspace_data+curr_ws2
if curr_ws2 == curr_ws1:
if currwall2 != currwall1:
open(datafile, "wt").write(currwall2)
else:
if not os.path.exists(datafile):
open(datafile, "wt").write(currwall2)
else:
curr_set = open(datafile).read()
command = key[1]+key[2]+' "'+str(curr_set)+'"'
subprocess.Popen(["/bin/bash", "-c", command])
curr_ws1 = curr_ws2
currwall1 = getwall()
curr_ws1 = current_ws(); currwall1 = getwall()
wswitcher(curr_ws1, currwall1)
wallswitcher.py
Тестовый прогон это командой:
python3 /path/to/wallswitcher.py
Если все хорошо работает, добавьте его для Запущения Приложений:
/bin/bash -c "sleep 10 && /path/to/wallswitcher.py
Решение, предложенное Jacob Vlijm, хорошо работает на моем Помощнике, при условии, что я изменяюсь org.gnome.desktop.background picture-uri
кому: org.mate.background picture-filename
в сценарии (информация, найденная здесь).