Aplicar configurações de exibição a todas as contas de usuário?

Aplicar configurações de exibição a todas as contas de usuário?

Passei algum tempo corrigindo minhas configurações para vários monitores, e isso funciona bem quando estou logado, mas não funciona na tela de login ou para outros usuários.

Como defino as configurações de exibição globalmente para todos os usuários e a tela de login?

Responder1

Dependendo da forma como você configurou seu sistema, pode ser tão fácil quanto copiar o monitors.xmlarquivodo usuário configurado corretamentepara todos os usuários:

Para testar isso para um usuário:

cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /home/TestUser/.config/

então faça logoff do TestUserse já estiver logado, faça login novamente e veja se tudo está correto.

O comando para todos os usuários:

cp /home/CorrectUser/.config/monitors.xml /tmp/
for szUser in /home/* ; do sudo cp --preserve=timestamps /tmp/monitors.xml $szUser/.config/ ; done

O comando para a tela de login:

sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /var/lib/lightdm/.config/

O comandopara todos os futuros usuários¹:

sudo mkdir -p /etc/skel/.config
sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /etc/skel/.config/

Nota¹:Todos os usuários que você criará no futuro

Responder2

Para definir a configuração da telapara cada usuário no login(isso não alterará a configuração na tela de login), você pode criar um .desktoparquivo em/etc/xdg/autostart

Como fazer isso

  1. descubra o nome da tela que você deseja girar executando xrandr. Ele produzirá uma série de linhas, entre elas algumas linhas parecidas com:

    VGA-0 connected
    

    Isso fornece informações sobre os nomes das telas conectadas.

  2. Escolha aquele que você deseja girar, no meu exemplo abaixoVGA-0
  3. Crie um lançador com (por exemplo) gedit:

    sudo -i gedit /etc/xdg/autostart/set_screens.desktop
    

    Cole o texto abaixo no arquivo:

    [Desktop Entry]
    Name=set_screens
    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    Type=Application
    

    substitua na linha:

    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    

    A string: VGA-0pelo nome da sua tela (girada).

Anotações importantes

  • Na linha

    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    

    Eu incluí um sleep 10. Isso ocorre porque às vezes xrandros comandos são interrompidos se forem executados muito cedo, antes que o carregamento da área de trabalho seja "terminado". Possivelmente você precise aumentar o intervalo ou tentar deixá-lo de fora. No comando, como está, a tela gira após 10 segundos após o login doqualquerdo utilizador.

  • O comando:

    xrandr --output VGA-0 --rotate left
    

    gira a tela para a esquerda, não há necessidade de dizer que se você quiser outro tipo de rotação, você pode escolher left, right, normal, inverted(veja tambémaqui).

Explicação

Você pode executar comandos na inicialização (realmente fazer login) colocando um .desktoparquivo (iniciador) no formato ~/.config/autostart. Isso executará o inicializador apenas para um único usuário. Se você fizer o mesmo, mas colocar o inicializador em /etc/xdg/autostart, o comando será executado sempre quequalquero usuário faz login, a menos que um usuário específico desative o inicializador para ele ou ela em Dash > Aplicativos de inicialização

Adicionalmente~/.config/monitors.xml, você pode simplesmente copiar seu arquivo local para /var/lib/lightdm/monitors.xmltambém fazer as configurações funcionarem na tela de login.

Imo, a combinação disso e a solução acima (um iniciador em /etc/xdg) é a solução mais fácil para conseguir exatamente o que você deseja tanto para a tela de login quanto para (qualquer) usuário. Além disso, a solução de um launcher /etc/xdgé (muito) facilmente revertida ou alterada caso você precise fazer outra configuração, sem editar muitos arquivos em (cada) nível de usuário, já que tanto as configurações do usuário quanto a tela de login são gerenciadas para todos os usuários de uma vez em dois arquivos simples.

Responder3

Só queria adicionar um comentário para qualquer pessoa que esteja enfrentando um problema semelhante. Fiquei preso na resolução do meu monitor antigo (1280x1024) toda vez que faço login, mas a tela de login e o login do usuário convidado usam o padrão correto de 1680x1050.

Eu li muitas postagens nos últimos quatro meses procurando uma resposta, lendo sobrexorg.conf, monitores.xml, lightdmexrandre outras sugestões - mas algumas alterações de configuração são complicadas e correm o risco de quebrar totalmente a exibição, então acabei usando a interface gráfica para alterar manualmente a configuração do monitor a cada login.

Hoje fiz um grep para a resolução antiga na minha pasta .config.

grep -HrnIF '1280' .config | less

O primeiro resultado foi o arquivo ~/.config/autostart/xrandr.desktop contendo isto,

Exec=xrandr -s 1280x1024 -r 75

então acabei de tirar o arquivo de lá. E bingo, eu faço login e obtenho a resolução padrão de 1680x1050.

Levei algumas horas pesquisando e não consegui encontrar uma resposta próxima o suficiente, então poste aqui caso seja útil para alguém.

Responder4

Você pode querer acrescentar algo ao arquivo /etc/lightdm/lightdm.conf. Aqui criamos um script que usa um xrandrcomando para configurar seu(s) display(s). Você pode usar alguma ferramenta gráfica RandR para criar um comando para você, como arandr. No meu caso, o script ficaria assim:

#!/bin/sh
xrandr --output DVI-I-1 --mode 1600x1200 --pos 0x0 --rotate left --output DVI-I-0 --off --output DP-3 --off --output DP-2 --off --output DP-1 --mode 1600x900 --pos 1200x700 --rotate normal --output DP-0 --off

Você pode colocar esse script /usr/shareou onde quiser. Seu script pode parecer muito menos complexo, pois se trata de uma configuração complexa de monitor duplo. Em seguida, anexe algo como:

session-setup-script=/usr/share/mycustomxrandr.sh

e:

display-setup-script=/usr/share/mycustomxrandr.sh

Certifique-se de que o arquivo seja executável, então:

chmod a+x mycustomxrandr.sh

O session-setup-scriptirá definir a exibição paradepoisvocê faz login através do LightDM e display-setup-scriptmudará a exibição da tela de login.

informação relacionada