KDE Plasma 5: Probleme mit Taskbar im Dual Monitor Betrieb

Grantig

Captain
Registriert
Okt. 2008
Beiträge
3.552
Hi,

ich teste momentan KDE Plasma 5 und bin bis jetzt sehr begeistert.
Könnte meine neue Lieblingsdesktopumgebung werden :)

Es gibt nur ein Problem das mich stört:
Im "Desktopbetrieb" hab ich die Taskbar (KDE Kontrollleiste) auf dem Monitor der am Laptop hängt untergebracht.
Wenn ich jetzt den Monitor abstecke (hängt am Displayport), dann wird die Taskbar nicht auf den Laptop-Screen verschoben.
Selbst wenn ich ohne angesteckten Monitor boote wird die Taskbar nicht auf dem Laptop-Screen angezeigt.

Ich muss also immer manuell die Taskbar verschieben, bevor ich den Monitor abstecke.
Ich weiß ich könnte einfach ne 2. Taskbar permanent auf dem Laptop-Screen unterbringen, allerdings finde ich das ziemlich unschön.

Weiß jemand wie ich es hinbekomme, dass die Taskbar immer auf meinem Monitor angezeigt wird falls der angesteckt ist und ansonsten automatisch auf den Laptop-Screen wechselt?
Ich hab schon gegoogelt, allerdings nix passendes gefunden. Hab auch catalyst - der mit meinem Dual-Monitor-Setup garnicht klarkommt - anstatt radeon als Treiber ausprobiert.

Vielen Dank schonmal im Vorraus für eure Hilfe :)

Code:
System:    Host: ProBook Kernel: 4.1.10-1-MANJARO x86_64 (64 bit)
           Desktop: KDE Plasma 5.4.2 Distro: ManjaroLinux 15.09 Bellatrix
CPU:       Quad core AMD A6-3410MX APU with Radeon HD Graphics (-MCP-) cache: 4096 KB 
           clock speeds: max: 1600 MHz 1: 800 MHz 2: 800 MHz 3: 1000 MHz 4: 1500 MHz
Graphics:  Card: Advanced Micro Devices [AMD/ATI] BeaverCreek [Radeon HD 6520G]
           Display Server: X.Org 1.17.2 driver: radeon
           Resolution: 1600x900@60.00hz, 1920x1080@60.00hz
           GLX Renderer: Gallium 0.4 on AMD SUMO (DRM 2.42.0, LLVM 3.7.0)
           GLX Version: 3.0 Mesa 11.0.3
 
Nutze zwar nur KDE 4, vielleicht läßt sich das Verhalten aber übertragen.

Der Laptopbildschirm ist der Hauptbildschirm. Auf dem sollte nach der Installation (ohne angeschlossenen zweiten Monitor) automatisch die Standardkontrolleiste eingerichtet sein. Ganz normaler Einmonitorbetrieb also.

Wenn du den Zweitmonitor anstöpselst, richte auf ihm eine separate Kontrolleiste ein. In die kommt dann über „Miniprogramme hinzufügen“ eine Fensterleiste (nicht Fensterliste!). Per Rechtsklick in die Optionen der Fensterleiste und das Häkchen setzen für „☑ Nur Fenster des aktuellen Bildschirms anzeigen“.

Diese Option für die Fensterleiste des Laptopbildschirms wiederholen. So werden in der Kontrolleiste des Laptopbildschirms nur die Fenster angezeigt, die auch auf dem Laptopbildschirm dargestellt werden, und in der Kontrolleiste des Zweitmonitors nur die Fenster, die auch auf dem Zweitmonitor dargestellt werden.

Grantig schrieb:
Wenn ich jetzt den Monitor abstecke (hängt am Displayport), dann wird die Taskbar nicht auf den Laptop-Screen verschoben.
Selbst wenn ich ohne angesteckten Monitor boote wird die Taskbar nicht auf dem Laptop-Screen angezeigt.

Kann es sein, daß du dort das Verhalten von Windows erwartest? ;) Man muß es sich so vorstellen, daß es keine „Hauptbildschirmkontrolleiste“ gibt, sondern nur eine Kontrolleiste, die einem bestimmten Monitor zugeordnet ist. Ob der an- oder abgestöpselt ist, interessiert seine Kontrolleiste erst mal nicht.
 
Danke für die Antwort.

Mir ist klar, dass ich einfach eine 2. Taskleiste benutzen könnte.
Ich hätte aber gerne nur eine einzige Taskleiste die immer auf meinem Hauptbildschirm ist.
Der Hauptbildschirm sollte immer der externe Monitor sein, wenn denn einer angesteckt ist.

Das Setup das du vorschlägst hatte ziemlich genau so (also mit 2 Taskleisten) allerdings ist das ein bisschen doppelt gemoppelt.
Außerdem habe ich auf der Leiste auch diverse "Anwendungsstarter" und bei 2 Leisten müsste ich z.B. immer wenn ich nen neuen Starter hinzufügen will an beiden Leisten was ändern. (ja das mag evtl. kleinlich sein, aber sowas stört mich auf Dauer).
Ich hätte einfach gerne immer alle Fenster des aktuellen Desktops auf einer Leiste, welche auf dem Hauptbildschirm liegt.

Vom Verhalten her kommt das imho eher Unity gleich.

Edit:
Hab mal schnell Windows gebootet. Du hast recht, auch da ist das Verhalten genauso wie ich es mir wünsche, wenn man einstellt dass die Taskleiste nur auf dem Primärbildschirm angezeigt wird.
 
Zuletzt bearbeitet:
Hrmm … okay.

Grantig schrieb:
Der Hauptbildschirm sollte immer der externe Monitor sein, wenn denn einer angesteckt ist.

Da ist der Knackpunkt. Du bräuchtest einen automatisierten Weg, KDE das zu sagen. Standardmäßig nimmt es soweit ich weiß aber immer den Laptopbildschirm als Hauptbildschirm. Vielleicht kann man das über ein Skript lösen, das sekündlich prüft, ob ein zweiter Monitor angesteckt ist, und wenn ja, dann diesen zum Hauptmonitor macht. Dafür fehlen mir leider die Kenntnisse. :/

Vielleicht kannst du es aber umgehen. Richte auf beiden Monitoren eine Kontrolleiste mit Fensterleiste ein. Das Häkchen für „☐ Nur Fenster des aktuellen Bildschirms anzeigen“ bleibt aber deaktiviert. So sollten in beiden Fensterleisten die Fenster beider Monitore angezeigt werden:

Zweitmonitor angesteckt: Laptopbildschirm zeigt Fenster von Laptopbildschirm und Zweitmonitor, Zweitbildschirm zeigt Fenster von Laptopbildschirm und Zweitmonitor

Zweitmonitor nicht angesteckt: Laptopbildschirm zeigt Fenster von Laptopbildschirm


Der einzige Nachteil ist dann, daß du bei angestecktem Zweitschirm auch auf dem Laptopbildschirm eine Fensterleiste hast, die du eigentlich nicht brauchst.
 
Das mit dem Script, das Primary- und Secondary-Display vertauscht ist ne gute Idee.
Ich werd das mal ausprobieren.
Polling finde ich zwar nicht so toll, aber ich kann mir das Script ja auch auf nen Keyboard-Shortcut legen wenn ich keine bessere Lösung finde.

Ich melde mich nochmal und berichte obs ichs hinbekommen hab.
Muss jetzt aber weg.

Danke schonmal für die Hilfe :)
 
Gern geschehen, ich lern ja selbst immer was bei der Sache. :)

Eins ist mir eben noch aufgefallen: In den Systemeinstellungen unter „Anzeige und Monitor“ ist der Hauptbildschirm mit einem gelben Stern dargestellt, alle Nicht-Haupt-Monitore mit einem grauen. Hält man den Mauszeiger über den Stern, erscheint der Hinweis „Hauptbildschirm wechseln“.

screenshot_2015-24-10bzpmy.png


Wenn man jetzt noch herausfindet, welchem Konsolenbefehl dieses Klickereignis auslöst, kann man sich das ganze per Skript auch auf eine Taste legen.

Vielleicht hilft dir das ja. Viel Erfolg!
 
Zuletzt bearbeitet:
Ich hab rausgefunden, dass KDE 5 RandR zur Monitorverwaltung verwendet, also kann ich mit xrandr am Monitor-Setup rummanipulieren.
Sieht dann so aus:
Code:
#!/bin/bash

primary="DisplayPort-0";
secondary="LVDS";

output=$(xrandr);

if [[  $output == *"$primary connected"* ]]
then
    if [[ $output != *"$primary connected primary"* ]]
    then    
        xrandr --output $primary --primary;
    fi
elif [[ $output != *"$secondary connected primary"* ]]
then
    xrandr --output $secondary --primary;
fi
Wenn ein externer Bildschirm angeschlossen ist, wird überprüft ob er der Primäre ist. Falls nicht, wird er zum Primären gemacht.
Ansonsten wird das Notebook-Display das Primäre.

Das Script lasse ich immer beim Start einer Session ausführen. Funktioniert soweit gut. Nur dann wenn der Monitor schonmal angesteckt war und dann wieder abgesteckt wird hat das Festlegen des primären Displays keinen Effekt (auch dann nicht wenn ich es per GUI mache). Die Einstellung wird zwar übernommen, aber die Taskbar wird nicht auf den neuen primären Monitor verschoben.

Generell macht Plasma 5 hin und wieder noch ein paar seltsame Dinge wenn man nen Monitor an-/absteckt (z.B. auf dem sekundären Bildschirm keinen Desktop mehr anzeigen).
Aber dagegen kann ich wohl wenig tun. Evtl. schreib ich nen Bugreport, falls ich das Verhalten zuverlässig reproduzieren kann.
Auf jeden Fall bin ich mit der Lösung momentan zufrieden. Mal schaun wie sich Plasma 5 weiterentwickelt.

Vielen Dank für die schnellen Antworten - hat mich definitiv in die richtige Richtung geschubst ;)
 
Da ich inzwischen ne bessere Lösung als das Script gefunden habe, hole ich diesen Thread nochmal hoch, evtl. interessierts ja jemanden :)

Ich habe einfach eine xorg config angelegt, damit funktioniert alles wie es soll.
Man muss dazu nur ne .conf Datei in /etc/X11/xorg.conf.d/ anlegen. Der Inhalt sieht für mein Setup so aus:
Code:
Section "Monitor"
    Identifier  "LVDS"
    Option      "PreferredMode" "1600x900"
    Option      "Position" "0 90"
EndSection

Section "Monitor"
    Identifier  "DisplayPort-0"
    Option      "PreferredMode" "1920x1080"
    Option      "Position" "1600 0"
    Option      "Primary" "true"
EndSection
Identifier: bekommt man per xrandr
Option PreferredMode: ist einfach die gewünschte Auflösung
Option Position: die Position des Monitors. In meinem Fall steht LVDS links, deswegen x-Position=0. y-Position=90, also etwas nach unten verschoben. DisplayPort-0 steht rechts von LVDS, deswegen x-Position=1600.

Quelle: https://wiki.archlinux.org/index.php/Multihead#RandR
 
Hallo,

da ich gerade vor dem gleichen Problem stehe, hole ich den Thread nochmals hoch. Bei mir werden die Monitore ordnungsmäß als "primär" bzw "nicht primär" erkannt. Das funktioniert meiner Meinung nach über die Dateien in ~/.local/share/kscreen/. Dafür brauche ich weder ein Skript noch die xorg.conf. Wenn ich den externen Monitor angeschlossen habe, ist dieser die primäre Anzeige, ansonsten das Notebookdisplay.
Die Kontrollleiste wird allerdings trotzdem immer am externen Monitor angezeigt. Ist dieser nicht angeschlossen, hat das Notebookdisplay keine Kontrollleiste. Muss / kann ich der Kontrollleiste sagen "immer am Hauptmonitor anzeigen"?

lg
Martin
 
Wenn du deine Taskbar fürs Primäre Display konfiguriert hast, sollte sie auch immer auf dem Primären Display angezeigt werden.
Mit meiner Konfiguration funktioniert das so.

Hast dus schonmal mit einer X11 config probiert?
Der Vorteil davon ist ja, dass diese systemweit gilt und vor der kscreen config angewendet wird, d.h. kscreen wird daran gehindert irgendeinen Blödsinn zu machen.
 
Zurück
Oben