Налаштувати показ лише програм поточного робочого простору в панелі запуску?


30

Чи можливо мати відкриті додатки поточного робочого простору в панелі запуску, але не ті з інших робочих просторів?


Я думаю, що ctrl + (1,2,3,4) використовується для перемикання робочих просторів. Але перевірте ярлики в налаштуваннях системи ...
Альвар

Утримуйте клавішу SUPER (клавіша Windows), щоб відобразити огляд усіх доступних ярликів Unity. Також ознайомтеся з цим питанням .
Glutanimate

Я відредагував ваше друге запитання щодо ярликів вашої посади, оскільки це дублікат і на нього вже було дано відповідь. Я бачу, що це ваше перше запитання (Ласкаво просимо в Askubuntu!): Нам простіше допомогти вам, якщо ви задасте лише одне запитання за повідомлення. Будь ласка, пам’ятайте про це в майбутньому під час використання АС.
Glutanimate

Те саме питання, що і тут . Однак на це бракує відповіді.
RPiAwesomeness

Напевно, не відповідь, яку ви шукаєте, але єдність відсутність настроюваності. Якщо у вас є особливі потреби або ви хочете більше контролювати свій робочий стіл, вам слід розглянути можливість переходу до більш гнучкого робочого середовища, наприклад KDE.
Конхілікультор

Відповіді:


30

Для Ubuntu Dock, що постачається з Ubuntu 17.10 та пізнішими версіями (з GNOME)

Ну, а інші відповіді досить давні, тому я думаю, що варто додати актуальну відповідь. Це можна зробити прямо зараз і не надто жорстким tbh (з Ubuntu 17.10 і у нього Gnome).

Просто використовуйте dconf-редактор :

sudo apt install dconf-editor

Перейдіть до org> gnome> shell> розширення> dash-to-dock та перевірте ізоляцію-робочі простори enter image description here


1
питання абсолютно не має нічого спільного з розширенням Dash To Dock Gnome. мова йде про Unity Launcher, який Dash To Dock навіть не сумісний з Unity.
криволіс

2
@crookedleaf Ubuntu перейшов на GNOME з відтвореною док-станцією за замовчуванням з 17.10.
Сет

1
@Seth Але ОП використовує Unity, а не Gnome. Отже, або OP просто випадково використали тег "Unity", або вони використовують версію Ubuntu з Unity.
криволіс

3
@crookedleaf Або нам просто потрібно постійно оновлювати питання, щоб вони також отримали останні відповіді :)
Сет

1
Чудово працює в 18.04 / ш гном. Спасибі! Зверніть увагу, що розширення можна також легко встановити з веб-сайту: extensions.gnome.org/extension/307/dash-to-dock
Джефф Уорд

8

Як зробити програми, які не можна відстежувати на (інших) робочих просторах

Використовуючи 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]])

Як користуватись

  1. Сценарій необхідний як wmctrlі xdotool:

    sudo apt-get install wmctrl xdotool
    
  2. Скопіюйте скрипт у порожній файл, збережіть його як toggle_visibility.py
  3. Тестовий запуск сценарію: у вікні термінала запустіть команду:

    python3 /path/to/toggle_visibility.py
    

    Тепер відкрийте нове вікно терміналу (оскільки перше, здавалося б, зникло з лиця землі) і знову запустіть ту саму команду. Усі вікна повинні з’явитися повторно.

    Примітка : переконайтеся, що під час тестування у вас немає відкритих "цінних" вікон

  4. Якщо все працює добре, додайте команду до комбінації клавіш швидкого доступу: виберіть: Налаштування системи> "Клавіатура"> "Ярлики"> "Спеціальні ярлики". Клацніть "+" і додайте команду:

    python3 /path/to/toggle_visibility.py
    

Пояснення

Як було сказано, сценарій використовує xdotool's windowunmap, щоб (повністю) приховати вікна та додатки, до яких вони належать. Сценарій:

  • читає, що є поточним робочим простором
  • читає вікна, які існують у поточній робочій області (лише)
  • записує список вікон у файл, названий на честь поточної робочої області
  • ховає вікна

При наступному запуску сценарій:

  • перевіряє , є чи файл, відповідні поточної робочої області існує
  • якщо це так, читається список вікон і приховує вікна.

таким чином перемикаючи видимість вікон та програм на поточному робочому просторі.


Чудово. Тепер лише якщо я можу знайти спосіб автоматичного виконання сценарію, коли я переходжу на іншу робочу область, щоб вони просто магічно зникали, а потім з'являлися знову, коли я рухаюся назад. Можливо, я міг би написати сценарій пітона, щоб замінити клавішу швидкого доступу для ctrl+ shift+arrow key
Чт Єйн Тун

1
17.10 це зараз можливо. Дивіться інші відповіді.
Мартін Мелька

6

На жаль, це неможливо.

Unity завжди показує всі програми звідусіль, і немає способу це змінити. Є звіт про помилки - https://bugs.launchpad.net/ayatana-design/+bug/683170 Але, здається, розробники нічого не збираються робити. Можливо, якщо ви помітите вгорі сторінки, що ця помилка впливає на вас, це допоможе розробникам зрозуміти важливість такої опції.


1
Не коментуйте звіт про помилки, просто позначте його як те, що впливає на вас у верхній частині сторінки.
Flimm

@Flimm Ви не знаєте, який менеджер робочого столу має цю функціональність?
Сезар

2
Єдність виглядає чудово, але відсутність настроюваності насправді засмучує.
Programster
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.