21 pontos por xguru 14 시간 전 | 8 comentários | Compartilhar no WhatsApp
  • Ferramenta para alternar pela linha de comando a fonte de entrada do monitor (DisplayPort, HDMI, USB-C etc.) usando o protocolo DDC/CI, com suporte a Windows/macOS/Linux
  • Permite especificar diretamente a fonte de entrada anexando =fonte_de_entrada após o nome/índice
    • monitor-input Dell=dp1 → define todos os monitores que contêm "Dell" como DisplayPort1
    • monitor-input 0=usbc1 → define o primeiro monitor como USB-C1
  • Ao executar sem argumentos, imprime a lista de todos os monitores conectados, exibindo em cada item os campos nome/Input Source atual/Backend
  • Permite buscar/consultar um monitor específico por parte do nome ou por índice (número)
    • monitor-input Dell lista todos os monitores cujo nome contém "Dell"; monitor-input 2 consulta o monitor de índice 2
  • Aceita números como fonte de entrada para lidar também com fontes de entrada específicas de fornecedor (vendor-specific) não padronizadas
    • monitor-input U2723=15 P3223=17
  • Suporta função de toggle/ciclo, registrando duas ou mais fontes separadas por vírgula (,) e alternando sequencialmente conforme o estado atual
    • P3223=hdmi1,usbc2 → alterna entre HDMI1 e USBC2; também é possível circular por 3 ou mais, como hdmi1,usbc2,dp1
  • Função de toggle para múltiplos monitores: ao alternar vários monitores ao mesmo tempo, usa a fonte de entrada atual do primeiro monitor como referência para ajustar os demais e manter a consistência das fontes de entrada
    • Em monitor-input U2723=dp1,usbc2 P3223=hdmi1,usbc2, se a fonte de entrada do primeiro monitor U2723 for DisplayPort1, ela será alterada para UsbC2
    • Se o primeiro monitor mudar para a segunda fonte da lista, os monitores seguintes também serão alterados para a segunda fonte de suas respectivas listas (ex.: P3223 vira UsbC2)
  • No Windows, oferece uma versão de subsistema (monitor-inputw.exe) com a opção -F winapp, que não abre janela de console; erros são exibidos por notificações toast
  • Além da execução pela linha de comando, também é exposto em formato de biblioteca (as library), permitindo chamadas diretas a partir de outro código Rust

8 comentários

 
yshrust 14 시간 전

Uso um Mac Mini e um notebook Windows com dois monitores DELL.

O Dell 1 fica conectado apenas ao Mac Mini,

E no Dell 2 deixei conectados tanto o Mac Mini quanto o notebook Windows.

Instalei o Dell Display and Peripheral Manager no Windows e cadastrei uma tecla de atalho (Ctrl + Space), então, sempre que preciso, alterno a tela do Dell 2 entre o Mac e o Windows.

A ferramenta apresentada também parece útil; em breve quero tentar aplicá-la!

 

Eu uso um único monitor alternando entre Windows e Mac.

No monitor DELL U4025QW não existe uma tecla dedicada para trocar a fonte de entrada, então é preciso entrar no menu e selecionar por lá; por isso uso isso em um script.

No meu caso, o Windows fica conectado no dp1 e o Mac no usbc1, então

no Mac, no .zshrc, uso alias mon='monitor-input 0=dp1'

no Windows, abro notepad $PROFILE e adiciono o seguinte: function mon { monitor-input 0=usbc1 }

Assim, basta digitar mon no shell do Windows ou do Mac que a tela é trocada.

Estou usando com muita satisfação, então resolvi compartilhar.

 
newdps 12 시간 전

Nossa, eu não sabia que dava para fazer isso. Valeu pela dica!

 
freedomzero 14 시간 전

Nossa, você tem exatamente o mesmo setup que eu. Era um saco ter que apertar o botão físico toda vez, vou usar bastante..

 
daydreamblend 9 시간 전

Eu tenho só um monitor/teclado/mouse, mas preciso conectar três dispositivos, então uso um esquema com um dongle ligado no Raspberry Pi e um ESP32 nos outros aparelhos para contornar isso via Wi‑Fi. Na hora de alternar teclado e mouse, apanhei para fazer o monitor trocar junto também; se eu soubesse disso antes, talvez tivesse sido bem mais prático. Obrigado pelo ótimo texto.

 
loblue 13 시간 전

No meu Ubuntu 24.04 não funciona... triste..

 

Está escrito que é preciso instalar o libudev; mesmo fazendo isso, não funciona?

 
loblue 9 시간 전

$ sudo apt install libudev-dev
O pacote libudev-dev já está na versão mais recente (255.4-1ubuntu8.16).
$ sudo apt install librust-udev-dev
O pacote librust-udev-dev já está na versão mais recente (0.8.0-1).
$ monitor-input
Error: No display monitors found for "".
Tenho dois conectados, um via DP e outro via HDMI, mas ele não detecta.
Fiquei com preguiça de investigar a fundo e deixei para lá, pensando “não funcionou mesmo”.