Возможно ли иметь открытые приложения текущей рабочей области в панели запуска, но не приложения из других рабочих областей?
Что ж, другие ответы довольно старые, поэтому я думаю, что стоит добавить обновленный ответ. Это можно сделать прямо сейчас и не слишком сложно (с Ubuntu 17.10 и Gnome).
Просто используйте dconf-editor :
sudo apt install dconf-editor
Перейдите в org> gnome> shell> extensions> dash-to-dock и проверьте изолировать-рабочие области
К сожалению, это невозможно.
Unity всегда показывает все приложения отовсюду, и изменить это невозможно. Есть отчет об ошибке - https://bugs.launchpad.net/ayatana-design/+bug/683170 Но вроде разработчики ничего делать не собираются.Возможно, если вы отметите вверху страницы, что эта ошибка затрагивает вас, это поможет разработчикам понять важность такой опции.
Используя xdotool
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.
Теперь откройте новое терминальное окно (так как первое, казалось бы, исчезло с лица земли) и снова выполните ту же самую команду. Все окна должны появиться заново.
NB: убедитесь, что "ценные" окна не открылись при тестировании
Если все работает нормально, добавьте команду в комбинацию клавиш быстрого вызова: select: Системные настройки > "Клавиатура" > "Ярлыки" > "Пользовательские ярлыки". Нажмите "+" и добавьте команду:
python3 /path/to/toggle_visibility.py.
Как уже говорилось, скрипт использует xdotool
's windowunmap
, чтобы (полностью) скрыть окна и приложения, к которым они принадлежат. Сценарий:
При следующем запуске, скрипт:
sudo apt-get install dconf-editor
dconf-editor
/ org / gnome / shell / app-Switcher / current-workspace-only
/ org / gnome / shell / window-Switcher / current-workspace-only
false
до true