Desativando a reconfiguração do monitor ao fechar a tampa

8

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.

Tomas
fonte
Para aqueles que ainda estão interessados, perguntas de outras pessoas têm problemas semelhantes: askubuntu.com/questions/161649/…
Tomas
Percebi que essa pergunta ainda está recebendo algumas visualizações por semana. Eu mudei para o Arch Linux há algum tempo e notei que os eventos de fechamento de tampa são completamente ignorados por padrão, nem mesmo um vislumbre de tela é visto. Pode ser que um kernel Linux mais recente corrija os problemas descritos nesta pergunta (ambos os ambientes de área de trabalho que eu uso ignoram completamente a tampa, se eu pedir). Nesse caso, é muito provável que os lançamentos mais recentes do Ubuntu incluam / incluam essa correção.
Tomas

Respostas:

7

Existe alguma maneira de deixar o Ubuntu ignorar eventos de fechamento de tampa?

Os eventos de tampa são acionados pelo lidbtnarquivo in /etc/acpi/events/, que contém duas linhas ativas:

evento = tampa do botão [/]
action = / etc / acpi / lid.sh - comente com um # no início

Você pode ignorar os eventos de abertura / fechamento da tampa comentando a segunda linha com #ae reinicializando.

Eu gostaria de mudar como ele lida com a reconfiguração da tela.

Você pode olhar e tentar modificar o arquivo /etc/acpi/lid.she 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.

ish
fonte
Parece interessante, mas comentar a segunda linha não resolve o meu problema. Mergulhando no lid.sharquivo sugere ele lida com o desligamento da tela (comandos como xscreensaver-command -unthrottle, xscreensaver-command -deactivate, /usr/share/acpi-support/screenblanke xset dpms force on). Nada é mencionado sobre a troca ou detecção de telas (eu estava esperando xrandrou algo assim). Mais alguma dica?
Tomas
Mova temporariamente lidbtnde /etc/acpi/eventspara outro lugar, digamos ~/. Isso ajuda?
Ish
Não muda nada, pelo que sei, isso tem exatamente o mesmo efeito que deixar o arquivo lá. Tentaram reiniciar para garantir que a alteração seja aplicada, é claro.
Tomas
@ Tomas: veja editar na parte inferior da resposta.
Ish
1
No meu Ubuntu 14.04, não tenho lid.shnem um nem um lidbtnno meu sistema (pesquisado com locate) Posso criar um desses para adicionar algumas funcionalidades (quero desativar minha tela sensível ao toque ao fechar a tampa do laptop )?
rubo77
0

Esse comportamento é um recurso do Gnome e é controlado por uma configuração do dconf. Você pode alterá-lo via dconf-editorou diretamente usando a linha de comando:

gsettings set org.gnome.settings-daemon.plugins.xrandr default-monitors-setup <value>

A descrição diz o seguinte:

Resumo: Desativar monitores específicos após a inicialização

'clone' exibirá a mesma coisa em todos os monitores, 'dock' desligará o monitor interno, 'do-nothing' usará o comportamento padrão do Xorg (estenda a área de trabalho nas versões recentes). O padrão, 'follow-lid', escolherá entre 'do-nothing' e 'dock', dependendo de a tampa estar (respectivamente) aberta ou fechada.

Portanto, se você quiser usar apenas o monitor externo quando estiver conectado, use dockcomo <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).

EvgEnZh
fonte
0

Não posso simplesmente configurá-lo para sempre usar o monitor externo, quando presente, no modo de tela única?

Eu posso responder esta parte. Eu corro o ubuntu 17.10 no wayland. No gnome-control-center -> device -> display, você pode escolher single displayapenas com o $external_monitorativado e clicar em "aplicar". Isso gera um $HOME/.confg/monitors.xmlarquivo. O arquivo corrige o arranjo da tela quando o mesmo $external_monitorestá conectado e alterna no monitor interno quando ele é desconectado. O que é melhor, você pode colocar o mesmo monitors.xmlem /var/lib/gdm3/.config/, nesse caso, a mesma coisa vale para GDM também.

funicorn
fonte