- 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_entradaapós o nome/índicemonitor-input Dell=dp1→ define todos os monitores que contêm "Dell" como DisplayPort1monitor-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 Delllista todos os monitores cujo nome contém "Dell";monitor-input 2consulta 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 atualP3223=hdmi1,usbc2→ alterna entre HDMI1 e USBC2; também é possível circular por 3 ou mais, comohdmi1,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 monitorU2723forDisplayPort1, ela será alterada paraUsbC2 - 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.:
P3223viraUsbC2)
- Em
- 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
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
dp1e o Mac nousbc1, entãono Mac, no
.zshrc, usoalias mon='monitor-input 0=dp1'no Windows, abro
notepad $PROFILEe adiciono o seguinte:function mon { monitor-input 0=usbc1 }Assim, basta digitar
monno shell do Windows ou do Mac que a tela é trocada.Estou usando com muita satisfação, então resolvi compartilhar.
Nossa, eu não sabia que dava para fazer isso. Valeu pela dica!
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..
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.
No meu Ubuntu 24.04 não funciona... triste..
Está escrito que é preciso instalar o
libudev; mesmo fazendo isso, não funciona?$ 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”.