Как установить единый лаунчер в разных позициях на разных мониторах

У меня есть два монитора: один - большой монитор 2560x1600, который я использую в качестве основного монитора и над которым я работаю, а другой - монитор 1360x768, установленный вертикально для использования в качестве выключенного монитора - для таких вещей, как мой календарь и электронная почта, всплывающие уведомления или веб-браузер во время игры и т. д.

В настоящее время я настроил его так, чтобы модуль единства находился только на левом краю основного монитора.

Я бы хотел иметь отдельную панель запуска для каждого монитора. Преимущество этого состоит в том, что приложения на каждом мониторе затем ассоциируются только с модулем запуска на этом мониторе, что помогает поддерживать организованность рабочего стола.

К сожалению, горизонтальное пространство стоит дороже на отключенном мониторе - я не хочу использовать дополнительные 48 пикселей горизонтального пространства только для этого.

Решением этой проблемы было бы изменить настройку положения пусковой установки (например, с помощью Unity Tweak Tool или аналогичной) на нижнюю часть. Однако этот параметр повлияет на положение модуля запуска на обоих экранах, и я хочу, чтобы модуль запуска находился на левом краю моего основного монитора.

Как я могу настроить Unity для использования разных позиций запуска на разных мониторах?

Альтернативным решением будет включение модуля запуска Unity на автоматическое скрытие выключенного монитора, но я хочу, чтобы панель запуска была статичной. на моем главном мониторе. Если есть способ настроить поведение автоматического скрытия для каждого монитора, это также будет приемлемым решением.

Я бы предпочел придерживаться стандартной среды рабочего стола Unity, но если есть другой DE, который действительно хорошо обрабатывает несколько мониторов, мне может быть интересно.

4
задан 4 June 2016 в 03:03

2 ответа

Автоматически переместите средство запуска, в зависимости от активного экрана

Возможное решение состоит в том, чтобы автоматически сменить положение средства запуска, в зависимости от текущего положения мыши:

  • если это находится на левом экране, переместите средство запуска в левый
  • если это находится на правильном экране, переместите его в нижнюю часть

В тесте я работал, он работал удивительно гладкий, и окна адаптируются хорошо к изменению.

Сценарий

#!/usr/bin/env python3
import subprocess
import time

scr_data = subprocess.check_output(["xrandr"]).decode("utf-8")
border = int([s.split("x")[0] for s in scr_data.split() if "+0+0" in s][0])
left_scr = [l.split()[0] for l in scr_data.splitlines() if "+0+0" in l][0]

key = "com.canonical.Unity.Launcher"
item = "launcher-position"

def catch_mouse():
    return int(subprocess.check_output([
        "xdotool", "getmouselocation"
        ]).decode("utf-8").split()[0].split(":")[1])

test1 = ""

while True:
    time.sleep(1)
    test2 = catch_mouse() <= border
    if test2 != test1:
        if test2 == True:
            cmd = ["gsettings", "set", key, item, "Left"]
        else:
            cmd = ["gsettings", "set", key, item, "Bottom"]
        subprocess.Popen(cmd)
    test1 = test2

Как использовать

  1. Потребности сценария xdotool:

    sudo apt-get install xdotool
    
  2. Скопируйте сценарий в пустой файл, сохраните его как move_launcher.py

  3. Тестовый прогон это командой (от терминала)

    python3 /path/to/move_launcher.py
    
  4. Если все хорошо работает, добавьте к Приложениям Запуска: Тире> Приложения Запуска> Добавляет. Добавьте команду tghe:

    /binh/bash -c "sleep 15 && python3 && /path/to/move_launcher.py
    

Править

... Или более усовершенствованный, только средство запуска на активном экране на произвольном положении.

... сценарий, который установит только одно средство запуска (на левом экране на левой стороне):

![enter image description here

... в то время как Вы работаете над левым экраном. Это выскажет Вам мнение в натуральную величину о правильном экране...

... и одно средство запуска у основания второго экрана:

enter image description here

... Если Вы перемещаетесь в правильный экран, давая Вам средство запуска, Вам нужно на желаемой позиции по правильному экрану.

Как упомянуто, в тесте (тестах), окна, адаптированные гладко без ошибки.

Сценарий

#!/usr/bin/env python3
import subprocess
import time

scr_data = subprocess.check_output(["xrandr"]).decode("utf-8")
border = int([s.split("x")[0] for s in scr_data.split() if "+0+0" in s][0])
left_scr = [l.split()[0] for l in scr_data.splitlines() if "+0+0" in l][0]
right_scr = [l.split()[0] for l in scr_data.splitlines() if all([
    not "+0+0" in l, l.count("+") == 2])][0]

key = "com.canonical.Unity.Launcher"
item = "launcher-position"

subprocess.call(["dconf", "write",
        "/org/compiz/profiles/unity/plugins/unityshell/num-launchers", "1"])

def catch_mouse():
    return int(subprocess.check_output([
        "xdotool", "getmouselocation"
        ]).decode("utf-8").split()[0].split(":")[1])

test1 = ""

while True:
    time.sleep(1)
    test2 = catch_mouse() <= border
    if test2 != test1:
        if test2 == True:
            cmd1 = ["xrandr", "--output", left_scr, "--primary"]
            cmd2 = ["gsettings", "set", key, item, "Left"]
        else:
            cmd1 = ["xrandr", "--output", right_scr, "--primary"]
            cmd2 = ["gsettings", "set", key, item, "Bottom"]
        subprocess.Popen(cmd1)
        subprocess.call(cmd2)
    test1 = test2

Использовать

  • Эта версия работает точно как первая.

Примечание:

Это всего два примера. Много вещей возможны.

Два средства запуска, одновременно на другом положении на экран, в настоящее время невозможны однако, непока кто-то не создает опцию...

7
ответ дан 4 June 2016 в 03:03

Я не вижу механизм для выбора другого местоположения для единственного средства запуска (например, Единица) на различных мониторах.

, Учитывая проблему агента по операциям с недвижимостью (ограничил горизонтальный), я вижу, что размещение средства запуска внизу экрана и автосокрытие его были бы решением.

В Ubuntu 16.04 LTS, можно переместить Средство запуска в нижнюю часть, но я понимаю, что это заканчивается в отсутствие Средства запуска на левой стороне основного монитора (другая проблема).

Так - что относительно того, если у Вас было два (скрытых) Средства запуска на обоих экранах? Один на левой стороне, и один внизу экрана?

См. эту статью для механизма использования альтернативного Средства запуска (Каирское Прикрепление): http://www.howtogeek.com/202708/how-to-convert-the-unity-launcher-into-a-dock-style-launcher/

я протестировал это (14.04 LTS) и могу подтвердить, что Прикрепление Инструмента и Каира Тонкой настройки Единицы установки предоставило бы Вам два (скрытый, если Вы, так выберите), Средства запуска на обоих экранах - один (Средство запуска Единицы) на левой стороне, и другой (Каирское Прикрепление) внизу экрана.

От моей оценки Ваших потребностей, это встретило бы обоих, но будет означать иметь выполнение двух Средств запуска на обоих экранах, таким образом, можно выбрать, чтобы использовать, когда это подходит Вам.

Каирское Прикрепление позволяет Вам, если у Вас есть несколько мониторов, для управления местоположением Прикрепления/Средства запуска так, чтобы это появилось в определенном месте только на одном мониторе путем усиления функций в Xinerama.

я не думаю, что это предоставило бы значительные преимущества, если Прикрепление/Средство запуска всегда автоскрыто, однако оно могло бы предоставить Вам некоторую гибкость и потенциально решение, о котором я не могу думать... :)

Посмотрите здесь для опции: https://glx-dock.org/bg_topic.php? t=5632

1
ответ дан 4 June 2016 в 03:03

Другие вопросы по тегам:

Похожие вопросы: