Como restaurar as configurações do monitor para o padrão através do terminal?

30

Eu tenho um problema complicado em relação a vários monitores no KDE (Kubuntu). Eu tenho um laptop que, em casa, está conectado a dois monitores - VGA e HDMI. Isso funciona apenas quando a tela do laptop integrada está desabilitada (pelo menos me disseram isso).

O problema é que agora eu levei o laptop e inicializei sem nenhum monitor externo conectado. O sistema lembra que a exibição embutida estava desabilitada, por isso a desabilita mesmo sendo o único monitor conectado. Obviamente, isso torna o laptop praticamente inutilizável. Mudando para um terminal através de Ctrl + Alt + F # funciona, eu consigo logar; mesmo Guest trabalha normalmente.

A pergunta é: como eu (re) defino as configurações do monitor de uma conta através de terminais, já que não posso usar a GUI?

Obrigado

    
por Martin Melka 25.02.2013 / 16:27

5 respostas

9

Boa pergunta. Um pouco complicado de responder, mas aqui está uma tentativa.

Resposta Básica

Na verdade, existe uma pequena possibilidade de reinicialização incluída no X11 . Você pode encontrá-lo em /etc/X11/Xreset . Você pode usar o diretório Xreset ( Xreset.d ) para colar um script que é executado automaticamente quando um usuário efetua logout. O arquivo README:

# Scripts in this directory are executed as root when a user log out from
# a display manager using /etc/X11/Xreset.
# The username of the user logging out is provided in the $USER environment
# variable.

Você pode, portanto, a) adicionar um script de redefinição em /etc/X11/Xreset.d eb) criar um script anexado a um ativador que configure seus dois monitores externos. Como tal, você faria logoff e tudo voltaria ao normal, você entraria no seu laptop, acessaria o inicializador dos monitores e aproveitaria a vida.

Mais informações

  1. Você pode querer olhar em sudo dpkg-reconfigure -phigh xserver-xorg para redefinir o xserver ou (provavelmente melhor olhar para o answer Mik sugerida nos comentários).

  2. Um cara SuSE escreveu um bom artigo sobre o X.

  3. Em um reporte de erros resolvido, alguém afirma:

    admins can drop scripts in /etc/X11/Xreset.d/ to run after the user logs out.

  4. Este é o conteúdo do arquivo:

Você pode encontrá-lo em seu próprio sistema.

#!/bin/sh
#
# /etc/X11/Xreset
#
# global Xreset file -- for use by display managers

# $Id: Xsession 967 2005-12-27 07:20:55Z dnusinow $

set -e

PROGNAME=Xreset
SYSSESSIONDIR=/etc/X11/Xreset.d

if [ ! -d "$SYSSESSIONDIR" ]; then
  # Nothing to do, exiting
  exit 0
fi

# use run-parts to source every file in the session directory; we source
# instead of executing so that the variables and functions defined above
# are available to the scripts, and so that they can pass variables to each
# other
SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)
if [ -n "$SESSIONFILES" ]; then
  set +e
  for SESSIONFILE in $SESSIONFILES; do
    . $SESSIONFILE
  done
  set -e
fi 

exit 0

# vim:set ai et sts=2 sw=2 tw=80:
    
por don.joey 04.03.2013 / 09:29
16

Sempre que coloco meu laptop Lubuntu para dormir quando ele é exibido exclusivamente na minha TV e o acordo depois de tê-lo desconectado, acabo com uma tela preta porque a resolução errada é atribuída. Então, mesmo problema que você, eu preciso definir a resolução do terminal virtual TTY1 eu posso chegar com Ctrl-alt-F1, mas xrandr não parece funcionar. Pesquisei páginas de resultados de pesquisa do Google antes de encontrar a solução, por isso pensei em compartilhar.

O principal é que o xrandr aparentemente funciona apenas na exibição atualmente focada. Então você tem que encadear um comando sleep antes de seu comando xrandr para ter tempo de voltar ao servidor X com Ctlr-alt-F7 para que o comando seja executado lá. Caso contrário, você receberá um erro como xrandr: Configure crtc 0 failed .

  1. Abra o terminal virtual com Ctrl-alt-F1 e faça o login

Para obter os nomes das telas conectadas (e supondo que seu servidor X esteja sendo executado em :0 ):

  1. $xrandr -d :0

Para modificar as configurações de exibição:

  1. $sleep 5; xrandr --output LVDS1 --auto -d :0

Substitua LVDS1 pela saída que você deseja modificar, e --auto por qualquer parâmetro xrandr que você queira usar.

  1. Mude para o servidor X com Ctrl-alt-F7 antes do atraso de suspensão definido no comando acima.

Tem de haver uma maneira melhor de fazer isso. Mas funciona.

Fonte original para a solução: link

Confira este comente para uma possível melhoria da minha solução (não testada por mim).

    
por Gabriel Morin 25.02.2016 / 02:40
13

O comando xrandr -s 0 deve redefinir suas exibições no terminal. Mais pode ser encontrado no seguinte site ou em man xrandr no terminal.

link

    
por Miguel 06.12.2014 / 21:06
3

você já tentou (sth)

DISPLAY=:0 xrandr --output LVDS1 --auto

de um diferente tty (por exemplo, tty1),

que você pode acessar através de Ctrl Alt F1 e voltar para (o gráfico padrão) tty7 com Ctrl Alt F7 ?

    
por nutty about natty 02.03.2013 / 21:00
2

Uma coisa que ainda não mencionei, mas o que pode ser crítico: se você estivesse usando um laptop Thinkpad , a solução seria direta: Fn + F7 . Se você estiver usando um laptop de outro fabricante, haverá, com muita probabilidade, alguma outra tecla do tipo Fn que alternará entre as saídas de tela / exibição (por exemplo, beamer, monitor externo, display interno, espelho, liga / desliga, e assim por diante) no nível do BIOS (eu diria - Editar : Veja Como as teclas Fn funcionam? para mais detalhes sobre isso).

Portanto, não há necessidade de redefinir nada no Linux, por assim dizer.

    
por nutty about natty 02.03.2013 / 20:52