Eu costumava editar o script de inicialização do GDM (/ etc / gdm / Init / Default) para alterar permanentemente minha resolução de exibição.
Como posso fazer isso com o LigthDM no Ubuntu Oneiric?
Eu costumava editar o script de inicialização do GDM (/ etc / gdm / Init / Default) para alterar permanentemente minha resolução de exibição.
Como posso fazer isso com o LigthDM no Ubuntu Oneiric?
Respostas:
Eu acho que você pode adicionar os modos de exibição para /etc/X11/xorg.conf
.
Se você não tiver um xorg.conf
, poderá usar o seguinte como base. É necessário substituir as entradas com os nomes Modeline
, Driver
e Modes
com as entradas corretas para o seu sistema. Dependendo do seu hardware, você pode precisar de entradas adicionais, por exemplo, se o seu sistema tiver mais de um chip gráfico.
Section "Monitor"
Identifier "Monitor0"
Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
Modeline "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Modes "1280x1024_60.00" "1024x768_60.00"
EndSubSection
EndSection
Section "Device"
Identifier "Card0"
Driver "nvidia"
EndSection
Se você não souber o nome do driver de vídeo que seu sistema está usando, poderá receber o nome da seguinte forma (se você tiver um chip gráfico intel, o nome do driver será apenas "intel"):
lshw -class display | grep "driver"
Os modelos podem ser gerados com cvt
:
cvt <h-resolution> <v-resolution> [refresh]
cvt
comando e o driver da outra (e tentei vesa
também), mas ele simplesmente ficou sem mensagens de erro. A solução de Jon Roberts funcionou perfeitamente para mim e é independente de coisas como o driver da placa de vídeo que você mencionou aqui que pode facilmente dar errado para iniciantes, portanto, estou votando na resposta dele.
lshw
saída i915
, no entanto, o driver correto é intel
.
Modifique /etc/lightdm/lightdm.conf
para adicionar as seguintes opções:
display-setup-script> chama seu mycustomloginvideo.sh antes que a tela de login apareça
session-setup-script> chama seu mycustomdesktopvideo.sh antes que a sessão da área de trabalho do usuário seja iniciada
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
display-setup-script=/usr/share/mycustomloginvideo.sh
# for your desktop session
session-setup-script=/usr/share/mycustomdesktopvideo.sh
Você pode ter a ferramenta gui "arandr" para gerar o script sh acima, escolhendo parâmetros da configuração X da sua sessão atual.
Verifique se o seu shell script é executável:
chmod a+x /usr/share/mycustom*video.sh
e você pode testar se ele funciona (ou seja, se você não possui erros de digitação ou configuração no seu comando xrandr) apenas executando-o em um terminal:
/usr/share/mycustomdesktopvideo.sh
Se o script de login não funcionar por qualquer motivo, sua máquina poderá não concluir o processo de inicialização na tela de login. Se o script da área de trabalho falhar, você poderá não obter uma área de trabalho após efetuar login. Se estiver configurando um monitor externo, esses scripts falharão quando você o desconectar, e a sessão X não será iniciada.
display-setup-script
script, pois o Xfce já o tinha definido pelas configurações de exibição, então session-setup-script
acabou de me dar um fora na tela de login.
Alguém postou outra solução alternativa, embora eu deva dizer que não funcionou para mim. Provavelmente poderia funcionar para você. No meu caso, ele quebra a unidade e só posso mover o cursor do mouse. O painel superior do indicador de aplicativo parece vazio, mas depois de desconectar meu LCD, eu pude excluir as linhas adicionadas e tudo voltou ao normal.
edite o arquivo /usr/sbin/lightdm-session
Aqui está como a primeira parte desse arquivo se parece agora:
#!/bin/sh
#
# LightDM wrapper to run around X sessions.
echo "Running X session wrapper"
# Load profile
for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
if [ -f "$file" ]; then
echo "Loading profile from $file";
. "$file"
fi
done
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode CRT1 1368x768_60.00
xrandr --output CRT1 --mode 1368x768_60.00
# Load resources
Observe que as configurações do Xrandr devem ser alteradas para corresponder às suas.
Estou tentando resolver um problema semelhante há um tempo e encontrei uma solução que funciona para mim, então espero que ajude ...
Eu tenho um antigo aspirador AOA110 que eu quebrei a tela muitas vezes e depois de comprar um laptop novo, decidi tentar transformá-lo em um HTPC, mas a tela externa que eu tenho não é reconhecida pelo X, então eu tive que 'ajustá-lo' várias vezes para que ele funcione na resolução correta.
Aqui está o que eu fiz:
Depois de usar este http://ubuntuforums.org/showthread.php?t=1112186 tutorial até a etapa 5, consegui encontrar uma resolução aceitável e funcional no xrandr, mas isso não estava funcionando na tela de login do LightDM.
Não siga as etapas para torná-lo persistente no exemplo acima, mas pode ser que seja a maneira correta de fazê-lo na 11.10. Eu encontrei este post no https://wiki.archlinux.org/index.php/Xorg do ArchWiki, que eu adaptei às minhas necessidades.
Primeiro crie um arquivo aqui: /etc/X11/xorg.conf.d/10-monitor.conf
Em seguida, adicione os detalhes X apropriados para sua exibição, aqui é a aparência da minha:
Section "ServerLayout"
Identifier "DualSreen"
Screen 0 "Screen0"
Screen 1 "Screen1" RightOf "Screen0" #Screen1 at the right of Screen0
#Option "Xinerama" "1" #To move windows between screens
EndSection
Section "Monitor"
Identifier "LVDS1"
Option "ignore" "true"
EndSection
Section "Monitor"
Identifier "VGA1"
Option "Enable" "true"
Modeline "1440x900_60.00" 106.47 1440 1520 1672 1904 900 901 904 932 -HSync +Vsync
EndSection
Section "Device"
Identifier "Device0"
Driver "intel"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "intel"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "VGA1"
DefaultDepth 24
Option "TwinView" "0"
SubSection "Display"
Depth 24
Modes "1440x900_60.00"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "LVDS1"
DefaultDepth 24
Option "TwinView" "0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Os bits importantes a serem adicionados estão no apropriado, Section "Monitor"
incluindo o apropriado Modeline
que você encontrou ao usar gtf 1440 900 60.00
e, em seguida, no correspondente, Section "Screen"
incluindo o correto Modes
.
Você notará que o que eu estava tentando fazer não era apenas definir a conexão VGA1 para uma resolução adequada, mas também instruí-lo a não usar minha saída LVDS1. Obviamente, você precisará ajustar o seu adequadamente para corresponder ao número certo de saídas e às seções Dispositivo, Tela e Vídeo corretas para sua configuração.
Desculpem a postagem épica, estou mexendo nos arquivos xorg.conf há algum tempo com a tela Hannspree que estou usando e as configurações antigas do xorg.conf que usei antes da versão 11.10 não funcionam mais corretamente. única solução que eu achei que funciona.
Boa sorte!
xrandr -q
deve fornecer as informações corretas sobre qual monitor está sendo usado e os possíveis modos.
Xorg :1 -configure
, o que cria um novo servidor X e gera um arquivo de configuração - ele pode ser copiado de /root/xorg.conf.new
para /etc/X11/xorg.conf
. Eu encontrei uma maneira melhor foi a resposta acima
Eu tive um problema semelhante com o meu laptop, como acima, e queria adicionar algo à conversa. Se você não se importa com a resolução de login (eu não), mas deseja que a área de trabalho real seja a resolução correta, você pode adicionar as informações do monitor ao LightDM, mas não ativar a resolução completa até fazer o login.
Acabei de adicionar o seguinte script para o meu monitor em um arquivo: lighdmxrandr
xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00
então eu chamo /etc/lightdm/lightdm.conf
display-setup-script=/usr/bin/lightdmxrandr
Depois de fazer o login, posso configurar o meu monitor em Displays e ele funciona, mesmo depois de me registrar novamente (costumava me causar um grande erro feio).
Como um aprimoramento para a resposta de Jon Roberts, deixe-me especificar que o arandr não inclui em sua geração de script sh todos os parâmetros que funcionam na sessão atual. Monitor primário (caso esteja usando uma configuração de monitor duplo), a taxa de atualização e as configurações de gama para cada monitor não estão incluídas, por exemplo. Meu script de sessão é assim:
#!/bin/sh
xrandr --output LVDS --mode 1366x768 --pos 1600x432 --rotate normal --output HDMI-0 --off --output DVI-0 --off --output VGA-1 --mode 1600x1200 --rate 85 --pos 0x0 --rotate normal --primary
xrandr --output VGA-1 --gamma 0.8:0.7:0.55
Eu adicionei manualmente as opções --rate e --primary na primeira linha e, em seguida, adicionei manualmente uma segunda linha com a correção gama, porque aparentemente as configurações de gama xrandr são perdidas sempre que você muda o monitor para primário .
Não sei se esse comportamento específico com as configurações gama ao tornar um monitor primário é intencional ou é um bug.
Além disso, o script do shell da sessão não é chamado pelo lightdm, mas como um aplicativo de inicialização, porque parece que o lightdm chama o script antes que as coisas estejam prontas para o xrandr e que coisas estranhas aconteçam.
Eu tive o problema de querer uma exibição estendida na minha nova caixa LXDE (não um clone duplo), encontrei o comando correto, mas não consegui torná-lo permanente.
xrandr --output VGA-0 --right-of DVI-0
Os métodos acima pareciam muito difíceis / não eram a maneira correta de fazer isso.
Acabei encontrando isso: http://www.sudo-juice.com/change-lxde-screen-resolution-ubuntu-lubuntu/
Isso funcionou, mas eu usei o gedit:
gksu gedit /etc/xdg/lxsession/LXDE/autostart
Em seguida, adicione a linha no final com um símbolo @ no início:
@xrandr --output VGA-0 --right-of DVI-0
Espero que ajude e obrigado a sudo-juice.
PS Observe o duplo -
no comando xrandr --
(não apareceu muito claramente na minha tela).
Crie um novo documento e nomeie-o, por exemplo, /home/yourusername/yourscriptname.sh
digite
#!/bin/bash
xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
xrandr --addmode VGA1 1600x900_60.00
xrandr --output VGA1 --mode 1600x900_60.00
unity --replace
e salve-o em sua pasta pessoal (isso define a resolução para 1600x900)
Abra Aplicativos de inicialização (ou execute gnome-session-properties
) e clique em "ADICIONAR". Dê um nome e digite na linha de comando:
bash /home/yourusername/yourscriptname.sh
Salve-o e agora o script será executado agora a cada login, portanto, você precisará fazer logout primeiro para que ele entre em vigor. Executar o comando (por exemplo bash /home/yourusername/yourscriptname.sh
) em um terminal também seria uma boa idéia para verificar se o script funciona.
/usr/bin
não funcionou, mas a adição desse script aos meus aplicativos de inicialização gnome-session-properties
foi bem-sucedida!
Com base nas respostas acima, eu fiz alguns testes e encontrei um método útil que funciona para mim; então, criei um script simples para automatizá-lo com minhas instalações automáticas. Mas isso funcionará para outros casos.
Crie um scriptinstallxrandrfixed.sh Adicione estas linhas:
#Variables for lightdm script and xrandr script to setup fixed resolution for old displays:
xrandrscript=/usr/local/bin/xrandrscript.sh
lightdmstartscript=/usr/share/lightdm/lightdm.conf.d/60-xrandrscript.conf
#Added old style configuration for lightdm:
sudo ln -s /usr/share/lightdm/lightdm.conf.d /etc/lightdm/lightdm.conf.d
#A fix to some old displays in high school at Fray Bentos, fix to 1024x768
#Some useful information comes from: http://askubuntu.com/questions/63681/how-can-i-make-xrandr-customization-permanent
sudo sh -c "echo '[SeatDefaults]' > $lightdmstartscript"
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
sudo sh -c "echo 'display-setup-script=$xrandrscript' >> $lightdmstartscript"
# for your desktop session
sudo sh -c "echo 'session-setup-script=$xrandrscript' >> $lightdmstartscript"
sudo sh -c "echo 'xrandr --size 1024x768 --rate 60.0' > $xrandrscript"
sudo chmod +x $xrandrscript
ele criará os scripts e os arquivos para exibição e sessão do lightdm. não se esqueça de dar permissão para executar
chmod + x scriptinstallxrandrfixed.sh
E executar
./scriptinstallxrandrfixed.sh (você deve ser colocado no mesmo diretório em que possui o arquivo.)
se não estiver no mesmo diretório: /path/to/script/scriptinstallxrandrfixed.sh
Modifique-o de acordo com as suas necessidades. Atenciosamente. Pablo.