21 puntos por xguru 14 시간 전 | 8 comentarios | Compartir por WhatsApp
  • Herramienta para cambiar desde la línea de comandos la fuente de entrada del monitor (DisplayPort, HDMI, USB-C, etc.) mediante el protocolo DDC/CI, con soporte para Windows/macOS/Linux
  • Se puede especificar directamente la fuente de entrada agregando =fuente_de_entrada después del nombre/índice
    • monitor-input Dell=dp1 → configura todos los monitores que incluyan "Dell" en DisplayPort1
    • monitor-input 0=usbc1 → configura el primer monitor en USB-C1
  • Si se ejecuta sin argumentos, muestra la lista de todos los monitores conectados, y cada elemento incluye los campos nombre/Input Source/Backend
  • Se puede buscar/consultar un monitor específico por parte del nombre o por índice (número)
    • monitor-input Dell lista todos los monitores cuyo nombre incluye "Dell", y monitor-input 2 consulta el monitor con índice 2
  • También admite números como fuente de entrada para soportar fuentes de entrada vendor-specific no estándar
    • monitor-input U2723=15 P3223=17
  • Soporta una función de toggle/ciclo para registrar dos o más fuentes separadas por comas (,) y cambiarlas secuencialmente según el estado actual
    • P3223=hdmi1,usbc2 → alterna entre HDMI1 y USBC2, y también puede rotar entre 3 o más como hdmi1,usbc2,dp1
  • Función de toggle para múltiples monitores: al cambiar varios monitores al mismo tiempo, mantiene la consistencia de las fuentes de entrada alineando los demás según la fuente de entrada actual del primer monitor
    • En monitor-input U2723=dp1,usbc2 P3223=hdmi1,usbc2, si la fuente de entrada del primer monitor U2723 es DisplayPort1, se cambia a UsbC2
    • Si el primer monitor cambia a la segunda fuente de la lista, los monitores siguientes también cambian cada uno a su segunda fuente de la lista (ej.: P3223UsbC2)
  • En Windows, con la opción -F winapp se ofrece una versión de subsistema (monitor-inputw.exe) que no abre una ventana de consola, y los errores se muestran como notificaciones toast
  • Además de ejecutarse desde la línea de comandos, también se expone como biblioteca (as library) para poder llamarse directamente desde otro código Rust

8 comentarios

 
yshrust 14 시간 전

Uso una Mac Mini junto con una laptop Windows con dos monitores DELL.

El Dell 1 lo tengo conectado solo a la Mac Mini,

y al Dell 2 tengo conectadas tanto la Mac Mini como la laptop Windows.

Instalé Dell Display and Peripheral Manager en Windows y registré una tecla de acceso rápido (Ctrl + Space), así que cuando lo necesito voy alternando la pantalla del Dell 2 entre la Mac y Windows.

La herramienta que presentaron también se ve útil; creo que pronto voy a probar aplicarla.

 

Yo uso una sola pantalla para ir cambiando entre Windows y Mac.

El monitor DELL U4025QW no tiene una tecla dedicada para cambiar la fuente de entrada, y hay que buscarla en el menú y seleccionarla, así que uso esto y me armé un script.

En mi caso, Windows está conectado a dp1 y Mac a usbc1,

En Mac, en .zshrc: alias mon='monitor-input 0=dp1'

En Windows, abres notepad $PROFILE y agregas esto: function mon { monitor-input 0=usbc1 }

Así, con solo escribir mon en la shell de Windows o Mac, la pantalla cambia.

A mí me ha funcionado de maravilla, así que se los comparto.

 
newdps 12 시간 전

Ah, no sabía que esto se podía hacer. Gracias por el buen tip.

 
freedomzero 14 시간 전

Vaya, tenemos exactamente la misma configuración. Me daba flojera tener que presionar el botón físico cada vez; lo voy a usar bastante.

 
daydreamblend 9 시간 전

Tengo un solo monitor, teclado y mouse, pero son 3 dispositivos los que necesito conectar, así que estoy usando una Raspberry Pi con un dongle conectado, y en los otros dispositivos puse un ESP32 para hacerlo vía WiFi. En ese momento me costó bastante hacer que el monitor también cambiara junto con el cambio de entrada de teclado y mouse; si hubiera sabido de esto antes, quizá habría sido más cómodo. Gracias por el buen artículo.

 
loblue 13 시간 전

En mi Ubuntu 24.04 no funciona... qué tristeza..

 

Dice que hay que instalar libudev, pero ¿ni haciendo eso funciona?

 
loblue 9 시간 전

$ sudo apt install libudev-dev
El paquete libudev-dev ya está en su versión más reciente (255.4-1ubuntu8.16).
$ sudo apt install librust-udev-dev
El paquete librust-udev-dev ya está en su versión más reciente (0.8.0-1).
$ monitor-input
Error: No display monitors found for "".
Sí, tengo conectados dos, DP y HDMI, pero no los detecta.
Me dio flojera investigarlo a fondo, así que lo dejé por la paz diciendo que no funcionaba.