Eu tentei uma coisa parecida e, depois de alguma depuração, acho que descobri o que está acontecendo. Seu script provavelmente é executado e provavelmente define a resolução corretamente. No entanto, como ele é executado pelo gerenciador de login, ele é executado antes que o Unity conclua a configuração do seu ambiente de área de trabalho, e o Unity lê suas próprias configurações e redefine a resolução para o que você tinha. Então, acho que o que acontece é:
- lightdm executa corretamente seu script
- Isso define a resolução desejada
- O Unity é iniciado, lê suas configurações e é revertido para a resolução padrão que você tem lá
- Sua resolução volta 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 da seção Exibições das configurações da Unity, você está fornecendo uma resolução que não está disponível, a menos que você execute os comandos xrandr
. Portanto, isso é ignorado na próxima vez que você reiniciar e o Unity for revertido para a resolução padrão.
Então, o que você precisa fazer é disponibilizar a resolução para o Unity, configurá-la como padrão e deixar que ela seja resolvida. Para fazer isso, você deve primeiro adicionar essa 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.sh
está 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
Note que eu não estou realmente configurando a resolução, apenas disponibilizando-a. Depois de ter feito esta reinicialização, faça o login. A nova resolução deve agora estar disponível em Configurações = > Exibe. Em caso afirmativo, escolha-o lá, efetue logout e login novamente e a resolução deve ser definida corretamente. Agora, ele deve persistir durante as reinicializações.
Abordagens alternativas:
-
Crie um arquivo
/etc/X11/xorg.conf
que relacione sua resolução desejada. Algo parecido com isto: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
-
Adicione o script que executa os comandos
xrandr
aos aplicativos de inicialização da sua sessão.