- Ein Tool zum Umschalten der Eingangsquelle des Monitors (DisplayPort, HDMI, USB-C usw.) über die Kommandozeile per DDC/CI-Protokoll; unterstützt Windows/macOS/Linux
- Durch Anhängen von
=Eingangsquellehinter Namen/Index lässt sich die Eingangsquelle direkt festlegenmonitor-input Dell=dp1→ setzt alle Monitore mit "Dell" im Namen auf DisplayPort1monitor-input 0=usbc1→ setzt den ersten Monitor auf USB-C1
- Bei Ausführung ohne Argumente wird eine Liste aller verbundenen Monitore ausgegeben; jeder Eintrag zeigt die Felder Name/aktuelle Input Source/Backend an
- Ein bestimmter Monitor kann über einen Teil des Namens oder den Index (Zahl) gesucht/abgefragt werden
monitor-input Delllistet alle Monitore mit "Dell" im Namen auf,monitor-input 2zeigt den Monitor mit Index 2 an
- Durch Angabe einer Zahl als Eingangsquelle werden auch nicht standardisierte vendor-spezifische Eingangsquellen unterstützt
monitor-input U2723=15 P3223=17
- Unterstützt eine Toggle-/Cycle-Funktion, bei der mit Komma (
,) zwei oder mehr Quellen angegeben und je nach aktuellem Zustand nacheinander durchgeschaltet werdenP3223=hdmi1,usbc2→ schaltet zwischen HDMI1 und USBC2 um, auch Zyklen mit 3 oder mehr Quellen wiehdmi1,usbc2,dp1sind möglich
- Toggle-Funktion für mehrere Monitore: Beim gleichzeitigen Umschalten mehrerer Monitore werden die übrigen anhand der aktuellen Eingangsquelle des ersten Monitors abgeglichen, damit die Eingangsquellen konsistent bleiben
- Bei
monitor-input U2723=dp1,usbc2 P3223=hdmi1,usbc2wird, wenn die Eingangsquelle des ersten MonitorsU2723DisplayPort1ist, aufUsbC2gewechselt - Wenn der erste Monitor auf die zweite Quelle der Liste wechselt, wechseln die nachfolgenden Monitore ebenfalls jeweils auf ihre zweite Quelle in der Liste (z. B.
P3223aufUsbC2)
- Bei
- Unter Windows gibt es mit der Option
-F winappeine Subsystem-Version (monitor-inputw.exe), bei der kein Konsolenfenster erscheint; Fehler werden als Toast-Benachrichtigung angezeigt - Neben der Ausführung über die Kommandozeile ist das Tool auch als Bibliothek (as library) verfügbar und kann direkt aus anderem Rust-Code aufgerufen werden
8 Kommentare
Ich nutze zusammen einen Mac Mini und ein Windows-Notebook an zwei DELL-Monitoren.
Dell 1 ist nur mit dem Mac Mini verbunden,
und an Dell 2 sind sowohl der Mac Mini als auch das Windows-Notebook angeschlossen.
Unter Windows habe ich den Dell Display and Peripheral Manager installiert und einen Hotkey (
Ctrl + Space) eingerichtet, sodass ich bei Bedarf den Bildschirm von Dell 2 zwischen Mac und Windows umschalten kann.Das von Ihnen vorgestellte Tool scheint ebenfalls nützlich zu sein — ich sollte es demnächst einmal ausprobieren!
Ich nutze einen Monitor abwechselnd mit Windows und Mac.
Beim DELL U4025QW gibt es keine One-Touch-Taste zum Umschalten der Eingangsquelle, man muss sie im Menü suchen und auswählen, daher nutze ich das hier und habe mir dafür ein Skript gebaut.
Bei mir ist Windows an
dp1angeschlossen und der Mac anusbc1.Auf dem Mac steht in
.zshrcalias mon='monitor-input 0=dp1'Unter Windows öffnet man
notepad $PROFILEund fügt dannfunction mon { monitor-input 0=usbc1 }hinzu.So kann man in der Windows- oder Mac-Shell einfach
moneingeben und der Bildschirm wechselt.Ich bin damit sehr zufrieden und wollte es deshalb kurz vorstellen.
Oh, ich wusste gar nicht, dass das geht. Danke für den tollen Tipp.
Wow, Sie haben genau dasselbe Setup wie ich. Es war jedes Mal lästig, die physischen Tasten zu drücken, das werde ich gern nutzen..
Ich habe jeweils nur einen Monitor, eine Tastatur und eine Maus, aber drei Geräte, die ich anschließen muss. Deshalb nutze ich es so, dass an einem Raspberry Pi ein Dongle steckt und an den anderen Geräten jeweils ein ESP32 hängt, um das Ganze per WLAN zu umgehen. Dabei hatte ich ziemlich Mühe, beim Umschalten von Tastatur und Maus auch den Monitor mit umzuschalten; wenn ich das hier früher gekannt hätte, wäre es vielleicht einfacher gewesen. Danke für den guten Beitrag.
Bei meinem Ubuntu 24.04 funktioniert es leider nicht ... traurig..
Es stand zwar da, dass man
libudevinstallieren muss, aber funktioniert es auch dann nicht?$ sudo apt install libudev-dev
Das Paket libudev-dev ist bereits in der neuesten Version (255.4-1ubuntu8.16).
$ sudo apt install librust-udev-dev
Das Paket librust-udev-dev ist bereits in der neuesten Version (0.8.0-1).
$ monitor-input
Error: No display monitors found for "".
Ich habe zwei Anschlüsse, DP und HDMI, verbunden, aber es erkennt sie nicht.
Ich hatte keine Lust, tiefer nachzuforschen, also habe ich es dabei belassen.