it-swarm.com.de

So setzen Sie Unity Launcher in verschiedenen Positionen auf verschiedenen Monitoren ein

Ich habe zwei Monitore: Einer ist ein großer 2560x1600-Monitor, auf dem ich als Hauptmonitor arbeite, und der andere ist ein 1360x768-Monitor, der vertikal für die Verwendung als "Aus" -Monitor eingerichtet ist - für Dinge wie meinen Kalender und E-Mail, Benachrichtigungs-Popups oder für einen Webbrowser während des Spielens usw.

Ich habe es derzeit so konfiguriert, dass sich der Unity Launcher nur am linken Rand des Hauptmonitors befindet.

Ich möchte für jeden Monitor einen eigenen Unity Launcher haben. Dies hat den Vorteil, dass die Anwendungen auf jedem Monitor nur dem Starter auf diesem Monitor zugeordnet sind, was die Organisation des Desktops erleichtert.

Leider ist der horizontale Platz auf dem externen Monitor sehr knapp - ich möchte dafür keine zusätzlichen 48 Pixel horizontalen Platzes benötigen.

Eine Lösung hierfür wäre, die Startpositionseinstellung (z. B. über das Unity Tweak Tool oder ähnliches) nach unten zu ändern. Diese Einstellung würde sich jedoch auf die Position des Startbildschirms auf beiden Bildschirmen auswirken, und ich möchte den Startbildschirm am linken Rand meines Hauptmonitors belassen.

Wie kann ich Unity so konfigurieren, dass unterschiedliche Startpositionen auf unterschiedlichen Monitoren verwendet werden?

Eine alternative Lösung wäre, den Unity-Launcher auf dem ausgeschalteten Monitor automatisch auszublenden, aber ich möchte, dass die Launcher-Leiste auf meinem Hauptmonitor statisch bleibt. Wenn es eine Möglichkeit gibt, das automatische Ausblenden auf Monitorbasis zu konfigurieren, ist dies ebenfalls eine akzeptable Lösung.

Ich würde es vorziehen, an der Standard-Unity-Desktop-Umgebung festzuhalten, aber wenn es eine andere DE gibt, die mehrere Monitore wirklich gut handhabt, könnte ich interessiert sein.

4
AJMansfield

Bewegen Sie den Launcher je nach aktivem Bildschirm automatisch

Eine mögliche Lösung besteht darin, die Position des Launchers abhängig von der aktuellen Mausposition automatisch zu ändern:

  • wenn es sich auf dem linken Bildschirm befindet, bewegen Sie den Launcher nach links
  • wenn es sich auf dem rechten Bildschirm befindet, verschieben Sie es nach unten

Im Test lief es überraschend flüssig und die Fenster passen sich gut an die Veränderung an.

Das Drehbuch

#!/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

Wie benutzt man

  1. Das Skript benötigt xdotool:

    Sudo apt-get install xdotool
    
  2. Kopieren Sie das Skript in eine leere Datei und speichern Sie es als move_launcher.py

  3. Testlauf mit dem Befehl (von einem Terminal aus)

    python3 /path/to/move_launcher.py
    
  4. Wenn alles funktioniert, fügen Sie zu Startup Applications Folgendes hinzu: Dash> Startup Applications> Add. Fügen Sie den Befehl hinzu:

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

BEARBEITEN

... oder weiter fortgeschritten, nur ein Launcher auf dem aktiven Bildschirm an einer beliebigen Position.

... ein Skript, das nur einen Starter setzt (auf dem linken Bildschirm auf der linken Seite):

![enter image description here

... während Sie auf dem linken Bildschirm arbeiten. Auf diese Weise erhalten Sie eine Vollbildansicht auf dem rechten Bildschirm ...

... und einen Launcher am unteren Rand des zweiten Bildschirms:

enter image description here

... Wenn Sie zum rechten Bildschirm wechseln, erhalten Sie den benötigten Launcher an der gewünschten Position auf dem rechten Bildschirm .

Wie bereits erwähnt, passten sich die Fenster in den Tests reibungslos und fehlerfrei an.

Das Drehbuch

#!/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

Benutzen

  • Diese Version läuft genauso wie die erste.

Hinweis

Dies sind nur zwei Beispiele. Vieles ist möglich.

Zwei Trägerraketen gleichzeitig an einer anderen Position pro Bildschirm , ist derzeit jedoch nicht möglich, bis jemand die Option erstellt ...

7
Jacob Vlijm

Ich kann keinen Mechanismus zum Auswählen eines anderen Standorts für einen einzelnen Starter (z. B. Unity) auf verschiedenen Monitoren sehen.

Angesichts des Immobilienproblems (begrenzt horizontal) kann ich sehen, dass es eine Lösung wäre, einen Starter am unteren Bildschirmrand zu platzieren und ihn automatisch auszublenden.

In Ubuntu 16.04 LTS können Sie den Launcher nach unten verschieben, aber mir ist klar, dass es keinen Launcher auf der linken Seite Ihres Hauptmonitors gibt (Ihr anderes Problem).

Was wäre, wenn Sie zwei (versteckte) Starter auf beiden Bildschirmen hätten? Eine auf der linken Seite und eine am unteren Bildschirmrand?

In diesem Artikel finden Sie Informationen zur Verwendung eines alternativen Startprogramms (Cairo Dock): http://www.howtogeek.com/202708/how-to-convert-the-unity-launcher-into-a-dock- Style-Launcher /

Ich habe dies getestet (14.04 LTS) und kann bestätigen, dass die Installation von Unity Tweak Tool und Cairo Dock Ihnen zwei (versteckte, wenn Sie dies wünschen) Starter auf beiden Bildschirmen zur Verfügung stellt - einen (Unity Launcher) auf der linken Seite und einen anderen (Cairo Dock) am unteren Bildschirmrand.

Nach meiner Einschätzung Ihrer Bedürfnisse würde dies beides erfüllen, aber es würde bedeuten, dass auf beiden Bildschirmen zwei Startprogramme ausgeführt werden, sodass Sie auswählen können, welche Sie verwenden möchten, wenn es Ihnen passt.

Mit Cairo-Dock können Sie, wenn Sie über mehrere Monitore verfügen, den Standort des Dock/Launcher so verwalten, dass er auf nur einem Monitor an einer bestimmten Stelle angezeigt wird, indem Sie die Funktionen in Xinerama nutzen.

Ich denke nicht, dass dies signifikante Vorteile bringen würde, wenn das Dock/der Launcher immer automatisch ausgeblendet wird, aber es könnte Ihnen Flexibilität und möglicherweise eine Lösung bieten, die ich mir nicht vorstellen kann ... :)

Siehe hier für die Option: https://glx-dock.org/bg_topic.php?t=5632

1
Simon