Чи можливо мати відкриті додатки поточного робочого простору в панелі запуску, але не ті з інших робочих просторів?
Чи можливо мати відкриті додатки поточного робочого простору в панелі запуску, але не ті з інших робочих просторів?
Відповіді:
Ну, а інші відповіді досить давні, тому я думаю, що варто додати актуальну відповідь. Це можна зробити прямо зараз і не надто жорстким tbh (з Ubuntu 17.10 і у нього Gnome).
Просто використовуйте dconf-редактор :
sudo apt install dconf-editor
Перейдіть до org> gnome> shell> розширення> dash-to-dock та перевірте ізоляцію-робочі простори
Використовуючи xdotool
's windowunmap
, можна повністю приховати вікно. Вікно, а також його додаток, більше не зустрічається у значку запуску і навіть у списку більше не відображається wmctrl
.
Теоретично це могло бути пов'язано з "двигуном робочої області", який використовувався в цій і цій відповіді. Це було б найелегантніше рішення.
Тим НЕ менше, процес тільки приховування вікон на інших робочих просторів і автоматично піднімати ті на поточному робочому просторі занадто вимогливий , щоб використовувати в якості постійного фонового сценарію (на даний момент), і не навряд чи «застудитися» , а також. Оскільки вікна втрачаються назавжди у разі помилок, то я вирішив не пропонувати цю процедуру як автоматичний (фоновий) процес.
Якщо ця відповідь все-таки корисна для вас чи ні, залежить від ситуації та причини, чому ви хочете ховати піктограми програм, запущених на інших робочих просторах; рішення за вами.
Сценарій, доступний під клавішею швидкого доступу, начебто робить усі вікна на поточній робочій області (а отже, і додатки) повністю зникати. Це означає, що піктограма програми в панелі запуску Unity не показує активності програми:
Три запущені програми: Після натискання клавіші швидкого доступу:
Якщо знову натиснути комбінацію клавіш schortcut, вікна та їх програми знову з’являться.
#!/usr/bin/env python3
import subprocess
import os
import time
datadir = os.environ["HOME"]+"/.config/maptoggle"
if not os.path.exists(datadir):
os.makedirs(datadir)
workspace_data = datadir+"/wspacedata_"
def get_wlist(res):
res = get_res()
try:
wlist = [l.split() for l in subprocess.check_output(["wmctrl", "-lG"]).decode("utf-8").splitlines()]
return [w for w in wlist if all([
0 < int(w[2]) < res[0],
0 < int(w[3]) < res[1],
"_NET_WM_WINDOW_TYPE_NORMAL" in subprocess.check_output(["xprop", "-id", w[0]]).decode("utf-8"),
])]
except subprocess.CalledProcessError:
pass
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(res):
# get the current viewport
vp_data = subprocess.check_output(
["wmctrl", "-d"]
).decode("utf-8").split()
dt = [int(n) for n in vp_data[3].split("x")]
cols = int(dt[0]/res[0])
curr_vpdata = [int(n) for n in vp_data[5].split(",")]
curr_col = int(curr_vpdata[0]/res[0])+1
curr_row = int(curr_vpdata[1]/res[1])
return str(curr_col+curr_row*cols)
res = get_res()
try:
f = workspace_data+current(res)
wlist = eval(open(f).read().strip())
for w in wlist:
subprocess.Popen(["xdotool", "windowmap", w[0]])
os.remove(f)
except FileNotFoundError:
current_windows = get_wlist(res)
open(f, "wt").write(str(current_windows))
for w in current_windows:
subprocess.Popen(["xdotool", "windowunmap", w[0]])
Сценарій необхідний як wmctrl
і xdotool
:
sudo apt-get install wmctrl xdotool
toggle_visibility.py
Тестовий запуск сценарію: у вікні термінала запустіть команду:
python3 /path/to/toggle_visibility.py
Тепер відкрийте нове вікно терміналу (оскільки перше, здавалося б, зникло з лиця землі) і знову запустіть ту саму команду. Усі вікна повинні з’явитися повторно.
Примітка : переконайтеся, що під час тестування у вас немає відкритих "цінних" вікон
Якщо все працює добре, додайте команду до комбінації клавіш швидкого доступу: виберіть: Налаштування системи> "Клавіатура"> "Ярлики"> "Спеціальні ярлики". Клацніть "+" і додайте команду:
python3 /path/to/toggle_visibility.py
Як було сказано, сценарій використовує xdotool
's windowunmap
, щоб (повністю) приховати вікна та додатки, до яких вони належать. Сценарій:
При наступному запуску сценарій:
таким чином перемикаючи видимість вікон та програм на поточному робочому просторі.
ctrl
+ shift
+arrow key
На жаль, це неможливо.
Unity завжди показує всі програми звідусіль, і немає способу це змінити. Є звіт про помилки - https://bugs.launchpad.net/ayatana-design/+bug/683170 Але, здається, розробники нічого не збираються робити. Можливо, якщо ви помітите вгорі сторінки, що ця помилка впливає на вас, це допоможе розробникам зрозуміти важливість такої опції.