22 Punkte von xguru 14 시간 전 | 8 Kommentare | Auf WhatsApp teilen
  • 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 =Eingangsquelle hinter Namen/Index lässt sich die Eingangsquelle direkt festlegen
    • monitor-input Dell=dp1 → setzt alle Monitore mit "Dell" im Namen auf DisplayPort1
    • monitor-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 Dell listet alle Monitore mit "Dell" im Namen auf, monitor-input 2 zeigt 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 werden
    • P3223=hdmi1,usbc2 → schaltet zwischen HDMI1 und USBC2 um, auch Zyklen mit 3 oder mehr Quellen wie hdmi1,usbc2,dp1 sind 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,usbc2 wird, wenn die Eingangsquelle des ersten Monitors U2723 DisplayPort1 ist, auf UsbC2 gewechselt
    • 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. P3223 auf UsbC2)
  • Unter Windows gibt es mit der Option -F winapp eine 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

 
yshrust 14 시간 전

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 dp1 angeschlossen und der Mac an usbc1.

Auf dem Mac steht in .zshrc alias mon='monitor-input 0=dp1'

Unter Windows öffnet man notepad $PROFILE und fügt dann function mon { monitor-input 0=usbc1 } hinzu.

So kann man in der Windows- oder Mac-Shell einfach mon eingeben und der Bildschirm wechselt.

Ich bin damit sehr zufrieden und wollte es deshalb kurz vorstellen.

 
newdps 12 시간 전

Oh, ich wusste gar nicht, dass das geht. Danke für den tollen Tipp.

 
freedomzero 14 시간 전

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..

 
daydreamblend 10 시간 전

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.

 
loblue 13 시간 전

Bei meinem Ubuntu 24.04 funktioniert es leider nicht ... traurig..

 

Es stand zwar da, dass man libudev installieren muss, aber funktioniert es auch dann nicht?

 
loblue 10 시간 전

$ 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.