Existe uma maneira de detectar automaticamente quando um monitor é desconectado?

20

Estou executando o Ubuntu em um Dell Latitude com os drivers mais recentes da Nvidia. Basicamente, o que eu quero é quando eu desconecto meu monitor externo, que tudo volta ao principal sem precisar alterar a configuração todas as vezes.

Qualquer ajuda é bem vinda!

Diego
fonte
Você já tentou sudo xrandr --autodepois de uma mudança?
Popinou

Respostas:

11

Primeiro instale o disper , faça o download do autorandr e siga estas instruções:

  • Quando o monitor externo estiver desencaixado , execute o seguinte comando no terminal:

    auto-disper.sh --save undocked
    
  • Quando o monitor externo estiver encaixado e configurado como você deseja (com as configurações do servidor Nvidia X), execute:

    auto-disper.sh --save docked
    
  • Experimentar:

    auto-disper.sh --change
    

    com monitor encaixado e desencaixado. Ele deve detectar o estado e alterar a configuração.

  • Por fim, faça um atalho de teclado paraauto-disper.sh --change

Tentei criar um script que o executasse a cada 3 segundos, para que a detecção automática funcione, mas use muito recurso. Espero que possa ajudar!

Vinços
fonte
11
Este projeto foi mesclado no autorandr e está disponível apenas para manter os links funcionando. Por favor, verifique autorandr. github.com/wertarbyte/autorandr
belacqua
11
disper não está nos repositórios 10.10. Ele está disponível como um ppa: launchpad.net/~disper-dev/+archive/ppa
Belacqua
1

Esta é uma limitação do Nvidia Twinview no Linux. O driver de código aberto funcionará conforme o esperado (embora você perca a aceleração 3D e o Compiz).

Jonathon
fonte
1

Estou na mesma situação. Eu uso um laptop que às vezes está conectado ao meu monitor externo. Quando é, geralmente quero usar apenas esse monitor (porque eu também o conecte a um teclado e mouse externos).

O que descobri é que, se você tem um arquivo chamado .xprofile , ele é chamado toda vez que a exibição é inicializada (pelo X.org?). Aqui está o conteúdo do meu arquivo. Como você pode ver, eu a adaptei daqui .

O que você deve fazer é salvá-lo em ~ / .xprofile e torná-lo executável ( chmod + x .xprofile ). Verifique como seus monitores internos e externos são chamados - faça isso executando xrandr sem argumentos. Os meus são VGA1 e LVDS1, respectivamente. A última coisa é definir a variável EXTERNAL_RES para a resolução nativa do seu monitor externo.

Agora, na inicialização, o monitor conectado será usado se estiver conectado. A parte complicada é a automação (como remover o cabo enquanto o Ubuntu está sendo executado). Não encontrei uma solução muito boa para isso, mas parece que mudar para um console virtual e voltar faz o truque (Ctrl-Alt-F1 e Ctrl-Alt-F7). É um pouco mais rápido que percorrer todas as possibilidades com a tecla Fn (que também às vezes atrapalha a tela).

chris
fonte
1

Use disper . Após a instalação, convém criar dois atalhos:

  1. Para alternar para a tela externa na resolução máxima: CTRL + E -> disper "max" -S
  2. para voltar à tela principal: CTRL + P -> disper "max" -s
Diego De Rosa
fonte
0

Você sempre pode pressionar Fn+ F8após desconectar o monitor. Provavelmente isso mudará de volta.

Ryan C. Thompson
fonte
Isso não funciona no meu computador. As teclas FN não fazem nada. Você sabe o que poderia ser?
19410 Diego
@ Diego para mim, apenas usando F8 funcionou bem. sem usar a tecla de função em conjunto.
kapad