Por que minhas edições do lightdm.conf não afetam a resolução da tela da minha área de trabalho?


13

Eu queria mudar a resolução da tela da minha área de trabalho para 1366x768. Mas o meu VESA drivers(AMD REDWOOD)não detectou essa resolução. Então, eu criei um script de shell da seguinte maneira: -

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  
xrandr --output DisplayPort-0 --off --output DVI-0 --mode 1368x768_60.00 --pos 0x0 --rotate normal --output HDMI-0 --off

Salvei como lightdmxrandr.shem /usr/bine o tornei executável. Em seguida, adicionei as seguintes linhas a /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(que é o equivalente ao bem conhecido /etc/lightdm/lightdm.conf. Estou usando o arquivo acima como estou no 14.04, onde não há /etc/lightdm/lightdm.conf.): -

greeter-session=unity-greeter  
display-setup-script=/usr/bin/lightdmxrandr.sh  
session-setup-script=/usr/bin/lightdmxrandr.sh

e salvou. Em teoria, isso deveria ter alterado a resolução da tela de login e a da tela da área de trabalho para 1366x768. Mas, surpreendentemente, isso mudou apenas a resolução da tela de login. A resolução da área de trabalho não foi alterada. Mais tarde, adicionei o script aos aplicativos de inicialização e isso mudou minha resolução da área de trabalho.

Por isso, quero saber por que as edições que fiz no lightdm.confarquivo (ou melhor, no 50-ubuntu.confarquivo) não afetaram a resolução da minha área de trabalho. É algum tipo de bug que precisa ser relatado na barra de ativação ou é errado dizer que as edições no lightdm afetarão a tela da área de trabalho?

PS: - Na minha opinião, isso não é apenas específico do Ubuntu 14.04.

Respostas:


11

Tentei uma coisa semelhante e, após algumas depurações, acho que descobri o que está acontecendo. Seu script provavelmente está rodando e provavelmente define a resolução corretamente. No entanto, como é executado pelo gerenciador de login, ele é executado antes que o Unity termine de configurar o ambiente da área de trabalho e o Unity leia suas próprias configurações e redefina a resolução para o que você tinha. Então, acho que o que acontece é:

  1. lightdm executa corretamente seu script
  2. Isso define a resolução desejada
  3. O Unity inicia, lê suas configurações e volta à resolução padrão que você tem lá
  4. Sua resolução remonta ao que era antes

Agora, isso acontece porque o driver VESA não detecta a resolução desejada automaticamente. Isso significa que, quando você altera a resolução na seção Telas das configurações do Unity, está fornecendo uma resolução que não está disponível, a menos que você execute os xrandrcomandos. Portanto, isso é ignorado na próxima vez que você reiniciar e o Unity reverterá para a resolução padrão.

Portanto, o que você precisa fazer é disponibilizar a resolução para o Unity, defini-la como padrão e deixá-la lidar com isso. Para fazer isso, você deve primeiro adicionar esta linha a /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf:

session-setup-script=/usr/bin/lightdmxrandr.sh

Em seguida, verifique se /usr/bin/lightdmxrandr.shestá assim:

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  

Observe que, na verdade, não estou definindo a resolução, apenas disponibilizando-a. Depois de reiniciar, faça o login. A nova resolução deve estar disponível em Configurações => Monitores. Em caso afirmativo, escolha-o lá, efetue logout e logon novamente e a resolução deverá ser definida corretamente. Agora, ela deve persistir durante as reinicializações.


Abordagens alternativas:

  1. Crie um /etc/X11/xorg.confarquivo que lista a resolução desejada. Algo assim:

    Section "Monitor"
        Identifier    "Monitor0"
        Modeline "1368x768_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Card0"
        Monitor        "Monitor0"
        SubSection "Display"
            Modes       "1368x768_60.00"
        EndSubSection
    EndSection
    
    Section "Device"
        Identifier    "Card0"
        Driver        "vesa"
    EndSection
    
  2. Adicione o script que executa os xrandrcomandos aos aplicativos de inicialização da sua sessão.


Editar os arquivos em /usr/share/lightdm/lightdm.conf.d/ é a maneira errada de alterar o lightdm.conf. A página do projeto LightDM diz que os administradores do sistema podem substituir a configuração padrão em /etc/lightdm/lightdm.conf.d/ ou /etc/lightdm/lightdm.conf Você não deve editar arquivos em / usr / share / lightdm / porque enquanto ele pode funcionar por um tempo, é susceptível de obter substituído pelo pacote atualiza Fonte: página do projeto LightDM freedesktop.org/wiki/Software/LightDM corrija sua resposta
happyskeptic

3
Não tenho reputação suficiente para adicionar um comentário simples, mas queria ressaltar que o arquivo sh precisa ter permissão para ser executado. O OP mencionou que havia feito isso, mas a resposta de Terdon não a incluiu nas etapas. Se não for executável, será necessário ir para um prompt de comando, pois ele não efetuará login (pelo menos não o fez para mim). Foi uma supervisão simples da minha parte, mas no caso de mais alguém ignorar esse passo, eu queria reiterá-lo aqui.
22415 Kirk Spencer
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.