Linux: Como executar um script quando um monitor externo está conectado?

9

Como posso detectar quando um monitor externo está conectado no linux?

Eu preciso executar vários scripts para configurar meu espaço de trabalho.

Existe alguma maneira inteligente de lançar um script quando o estado do monitor mudou?

Estou usando o driver de vídeo da Nvidia.

    
por Joernsn 02.05.2011 / 18:28

4 respostas

2

Há um conjunto de ferramentas chamado read-edid que pode analisar dados de identificação de exibição estendida (EDID) . Se o seu monitor externo for realmente detectado por essas ferramentas, você poderá verificar periodicamente a detecção e usar a saída para iniciar scripts, etc.

Você não mencionou se precisa fazer isso, independentemente de o X estar em execução.

    
por 02.05.2011 / 22:09
1

Eu estava procurando a mesma resposta: /
Estou usando o disper ( link ) e o gconftool para ativar / desativar meu segundo monitor junto com um segundo painel do gnome nele

disper -l lista todos os monitores conectados, então você pode pesquisar isso como último recurso.

# only primary display
disper -s
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen -- -1


# dual display (nvidia twinview)
disper -e
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen 0
killall gnome-panel
    
por 28.07.2011 / 12:26
1

Você deve usar udev events ... uma possível regra pode parecer:

KERNEL=="card0", SUBSYSTEM=="drm", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/ninette/.Xauthority", RUN+="/usr/local/bin/0x_hw_hotplug_monitor.sh"

(Fonte link )

    
por 21.03.2016 / 13:35
0

Dado que, a partir de 270.18, os drivers binários nVidia ainda não parecem implementar o XRandR moderno, você pode ter que ir com a sugestão do new123456 para pesquisar uma ferramenta como xrandr para mudanças no tamanho da tela.

No meu sistema, ainda não encontrei uma maneira de fazer a nVidia anunciar corretamente a xrandr que eu tenho dois monitores de 1280x1024, em vez de um único de 2560x1024 ... o que, como você pode imaginar, torna o centro de jogos em tela cheia em ambos os monitores quando os proíbo de alterar a resolução. (Ele mides meu desktop stickies)

    
por 10.05.2011 / 23:02