Muitas vezes, preciso mover meu laptop de um local de trabalho para outro. Quando faço isso, há dois eventos aos quais o Ubuntu responde alterando a configuração do monitor:
- Remoção / conexão do cabo VGA
- Fechar / abrir a tampa do laptop
Embora a remoção do cabo VGA me dê o que eu preciso (tela única, resolução nativa mais alta na tela externa, se conectado; caso contrário, resolução mais alta no laptop), a resposta de fechar / abrir a tampa do laptop não é tão boa.
Sempre que fecho ou abro a tampa, o Ubuntu reconfigura a configuração do monitor. Quando fecho a tampa agora ... a tela fica preta por alguns segundos e muda para clonar, com a tela do meu laptop desativada. A reabertura resulta em ... brevemente uma tela preta e o monitor externo sendo usado como extensão da área de trabalho.
Atualização: as coisas mudaram um pouco recentemente, o comportamento é mais previsível agora. Fechar a tampa muda para exibição única, abrindo para tela dupla (não clonar). Minha pergunta ainda é precisa: veja abaixo.
O Ubuntu pensa demais. Minha primeira e principal pergunta: existe alguma maneira de deixar o Ubuntu ignorar eventos de fechamento de tampa?
Idealmente (ou quando não há como resolver a questão acima), gostaria de mudar a forma como ela lida com a reconfiguração da tela. Por que o Ubuntu alterna a configuração da tela entre externo, clone e exibição única? Não posso simplesmente configurá-lo para sempre usar o monitor externo, quando presente, no modo de tela única?
Observe que perguntas semelhantes foram feitas antes (mais notavelmente essa ), mas essas foram encerradas talvez de maneira errada.
Todas as idéias são bem-vindas, não me importo de brincar um pouco para ver se algo funciona.
Respostas:
Os eventos de tampa são acionados pelo
lidbtn
arquivo in/etc/acpi/events/
, que contém duas linhas ativas:Você pode ignorar os eventos de abertura / fechamento da tampa comentando a segunda linha com
#
ae reinicializando.Você pode olhar e tentar modificar o arquivo
/etc/acpi/lid.sh
e as funções / comandos aos quais ele faz referência.MAS (BIG CAVEAT): Se o BIOS do seu laptop usa a tampa para fechar / abrir para ativar / desativar as portas de saída de vídeo interna / externa, isso está além dos poderes do manipulador de eventos do OS ACPI.
fonte
lid.sh
arquivo sugere ele lida com o desligamento da tela (comandos comoxscreensaver-command -unthrottle
,xscreensaver-command -deactivate
,/usr/share/acpi-support/screenblank
exset dpms force on
). Nada é mencionado sobre a troca ou detecção de telas (eu estava esperandoxrandr
ou algo assim). Mais alguma dica?lidbtn
de/etc/acpi/events
para outro lugar, digamos~/
. Isso ajuda?lid.sh
nem um nem umlidbtn
no meu sistema (pesquisado comlocate
) Posso criar um desses para adicionar algumas funcionalidades (quero desativar minha tela sensível ao toque ao fechar a tampa do laptop )?Esse comportamento é um recurso do Gnome e é controlado por uma configuração do dconf. Você pode alterá-lo via
dconf-editor
ou diretamente usando a linha de comando:A descrição diz o seguinte:
Portanto, se você quiser usar apenas o monitor externo quando estiver conectado, use
dock
como<value>
.Se você deseja que os dois monitores funcionem sempre, não importa se a tampa está fechada ou não, use
do-nothing
. (Muitas vezes, fechei a tampa temporariamente apenas para que não brilhasse no meu quarto escuro, não queria que todas as janelas migrassem para o monitor externo.)E, finalmente, se você quiser usar a tela do laptop, mas somente quando estiver aberta, use
follow-lid
. (Caso de uso: a quantidade de espaço livre em sua mesa varia e, às vezes, é necessário colocar o laptop atrás do monitor em vez de ao lado dele).fonte
Eu posso responder esta parte. Eu corro o ubuntu 17.10 no wayland. No
gnome-control-center -> device -> display
, você pode escolhersingle display
apenas com o$external_monitor
ativado e clicar em "aplicar". Isso gera um$HOME/.confg/monitors.xml
arquivo. O arquivo corrige o arranjo da tela quando o mesmo$external_monitor
está conectado e alterna no monitor interno quando ele é desconectado. O que é melhor, você pode colocar o mesmomonitors.xml
em/var/lib/gdm3/.config/
, nesse caso, a mesma coisa vale para GDM também.fonte