# Plan: Monitor-Auswahl im RDP Client ## Problem `_get_best_monitor_selection(count)` wählt automatisch die N linkesten Monitore. Bei 3 Monitoren (Laptop + 2 Extern) wird bei "2 Monitors" immer Laptop + 1 Extern gewählt, statt der gewünschten 2 Externen. ## Lösung: "Custom..." Option mit Checkbox-Dialog Eine neue Option "Custom..." im Multi-Monitor-Dropdown, die einen Dialog öffnet, in dem der User per Checkbox auswählt, welche Monitore genutzt werden sollen. Die Auswahl wird pro Verbindung in `monitor_ids` gespeichert. ## Änderungen in `rdp_client.py` ### 1. Neue Methode: `_get_monitor_details()` - Ruft `xfreerdp /monitor-list` auf - Gibt Liste mit Monitor-Infos zurück: `[{id, name, resolution, position, is_primary}]` - Ergänzt um xrandr-Ausgabenamen (DP-3-1, eDP-1, etc.) für bessere Lesbarkeit ### 2. Neuer Dialog: Monitor-Auswahl-Dialog - Wird geöffnet wenn "Custom..." im Dropdown gewählt wird - Zeigt alle verfügbaren Monitore mit Checkboxen: ``` [x] Monitor 0: DP-3-1 1920x1080 +3840+60 [ ] Monitor 1: eDP-1 1920x1200 +0+0 (primary) [x] Monitor 2: DP-3-2 1920x1080 +1920+60 ``` - Mindestens 1 Monitor muss ausgewählt sein - OK/Cancel Buttons ### 3. Dropdown-Optionen erweitern (`_get_multimon_options()`) - Neue Option `"Custom..."` am Ende hinzufügen (vor Span) - Optionen: `["No", "2 Monitors", "3 Monitors", "Custom...", "All Monitors", "Span"]` ### 4. Connection-Editor anpassen (Zeile ~1441) - Wenn "Custom..." gewählt wird → Dialog öffnen - Ausgewählte Monitor-IDs in `monitor_ids` speichern (z.B. `"0,2"`) - Label neben Dropdown zeigt aktuelle Auswahl: "Monitors: 0, 2" ### 5. Verbindungsaufbau anpassen (Zeile ~930-966) - Neuer Case für `multimon == "Custom..."`: ```python elif multimon == "Custom...": monitor_list = conn.get("monitor_ids", "0") cmd.append("/multimon") cmd.append(f"/monitors:{monitor_list}") ``` ### 6. Details-Anzeige anpassen (Zeile ~721) - Bei "Custom..." zusätzlich die gespeicherten Monitor-IDs anzeigen ## Betroffene Datei - `/home/rwiegand/Nextcloud/entwicklung/Werkzeuge/rdp_client.py` ## Verifikation 1. Script starten: `python3 rdp_client.py` 2. Verbindung bearbeiten → "Custom..." wählen → Dialog prüfen 3. Monitore 0 und 2 auswählen → Speichern 4. Verbindung starten → prüfen ob `xfreerdp /multimon /monitors:0,2` aufgerufen wird