Editando minha resposta para facilitar a configuração.
Instale o autorandr para automatizar o layout da tela no xrandr, pegue o .deb mais recente em https://github.com/nalipaz/autorandr/releases e execute:
dpkg -i [file]
Configurar autorandr com layouts de tela armazenados
autorandr --save [docked|mobile|home|etc]
Por exemplo, no meu laptop sem nenhum monitor conectado, eu configuro a maneira que quero e, em seguida, executei:
autorandr --save mobile
Em seguida, conectei meu hdmi e o arandr reconfigurado, depois executei:
autorandr --save docked
Depois de configurar cada um dos seus layouts, você pode executar (substituir 'mobile' pelo nome favorito anterior, usei mobile):
autorandr --default mobile
Agora que o autorandr está pronto, você pode automatizar o processo instalando um pacote que pesquisará os monitores conectados e executará autorandr --change
após a detecção. Sim, eu sei sobre o udev e você pode configurá-lo se ele funcionar para você, mas nos meus testes o udev não funcionou para o meu hdmi de forma consistente. Ele funcionou apenas 1 em cada 20 plugues / desconectos, e às vezes parou completamente.
Faça o download do mais recente .deb aqui: https://github.com/nalipaz/poll-xrandr/releases/ e instale com
dpkg -i [file]
Provavelmente é necessário que você execute mais tarefas após a conclusão do autorandr --change
, autorandr permite que esses comandos sejam inseridos em um arquivo chamado ~ / .autorandr / postswitch. Faça o seguinte:
cd ~/.autorandr/ && touch postswitch && chmod +x postswitch
Agora edite o arquivo postswitch para ter algo semelhante ao seguinte:
#!/bin/bash
if pidof conky > /dev/null 2>&1; then
killall conky
fi
(sleep 2s && xrandr-adjust-brightness restore -q) &
(sleep 2s && nitrogen --restore) &
(sleep 3s && conky -q) &
Além disso, você provavelmente desejará adicionar autorandr e poll-xrandr às suas startups, algo como os dois comandos a seguir:
autorandr --change &
poll-xrandr &
Desconecte ou conecte um monitor e observe a mágica!
udevadm monitor --property
partir do terminal e conectar o monitor. Com o meu cartão, vejo um evento quando ele está conectado. Você pode usar uma regra + RUN no udev e alguns scripts do bash para obter o que deseja. No entanto, não tenho certeza de como você seria capaz de implementar isso por usuário usando o udev.