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

11

Eu passei algum tempo ajustando minhas configurações para vários monitores, e isso está funcionando bem quando estou logado, mas não está certo 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?

    
por mirams 22.06.2015 / 12:22

5 respostas

13

Dependendo da maneira como você configurou seu sistema, pode ser tão fácil quanto copiar o arquivo monitors.xml do usuário configurado corretamente para todos os usuários:

Para testar isso para um usuário:

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

faça o logoff de TestUser se já estiver logado , faça o 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 comando para todos os futuros usuários ¹:

sudo mdkdir -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

    
por Fabby 30.06.2015 / 10:10
3

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

Como fazer isso

  1. descubra o nome da tela que você gostaria de rotacionar executando xrandr . Ele produzirá um número de linhas, entre essas poucas linhas parecidas com:

    VGA-0 connected
    

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

  2. Escolha a que você deseja alternar, no meu exemplo abaixo de VGA-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-0 pelo nome da sua tela (girada).

Notas 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, os comandos xrandr são interrompidos se forem executados muito cedo, antes que a área de trabalho esteja com o carregamento "concluído". Possivelmente você precisa aumentar o intervalo, ou você pode tentar deixar de fora. No comando, como está, a tela gira após 10 segundos após o login de qualquer usuário .

  • O comando:

    xrandr --output VGA-0 --rotate left
    

    gira a tela para a esquerda, não é necessário dizer que, se você quiser outro tipo de rotação, poderá escolher left , right , normal , inverted (consulte também aqui) .

Explicação

Você pode executar comandos na inicialização (efetue login) colocando um arquivo .desktop (ativador) em ~/.config/autostart . Isso só executará o iniciador para um único usuário. Se você fizer o mesmo, mas colocar o ativador em /etc/xdg/autostart , o comando será executado sempre que qualquer usuário fizer login, a menos que um usuário específico desative o ativador para ele no Dash > Aplicativos de inicialização

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

Imo a combinação disso, e a solução acima (um lançador em /etc/xdg ) é a solução mais fácil para alcançar exatamente o que você quer para a tela de login e (qualquer) usuário. Além disso, a solução de um lançador em /etc/xdg é (muito) facilmente revertida ou alterada no caso de você precisar fazer outra configuração, sem editar muitos arquivos no nível de cada usuário, pois as configurações do usuário e a tela de login são gerenciados para todos os usuários de uma só vez em dois arquivos simples.

    
por Jacob Vlijm 22.06.2015 / 13:35
2

Só queria adicionar um comentário para qualquer pessoa que encontre essa dificuldade com um problema semelhante. Eu estava preso com a resolução do meu monitor antigo (1280x1024) toda vez que eu logar, 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 por uma resposta, lendo em xorg.conf, monitores.xml, lightdm e xrandr e outras sugestões - mas algumas mudanças de configuração são complicadas e correm o risco de quebrar a tela completamente, então acabei usando o gui para alterar a configuração do monitor manualmente 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 isso,

Exec=xrandr -s 1280x1024 -r 75

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

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

    
por MattB 27.12.2016 / 22:09
0

Você pode acrescentar algo a /etc/lightdm/lightdm.conf . Aqui nós criamos um script que usa um comando xrandr para configurar sua (s) tela (s). Você pode usar alguma ferramenta gráfica RandR para criar um comando para você, como arandr . No meu caso, o script seria parecido com:

#!/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 em /usr/share ou onde quiser. Seu script pode parecer muito menos complexo, pois isso é para uma configuração complexa de monitor duplo. Em seguida, acrescente algo como:

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

e:

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

Verifique se o arquivo é executável, então:

chmod a+x mycustomxrandr.sh

O session-setup-script definirá a exibição para após o seu login através do LightDM, e display-setup-script mudará a exibição para a tela de login.

    
por nixpower 01.07.2015 / 18:39
0

No meu sistema (Ubuntu 16.04) para a tela de login, simplesmente cp 'ing como root (usando sudo ) não funcionou. Você também pode precisar certificar-se de que o proprietário / grupo de monitores.xml seja lightdm:lightdm .

sudo chown lightdm:lightdm /var/lib/lightdm/.config/monitors.xml
    
por Zinsser 03.05.2017 / 05:22