Come ripristinare le impostazioni del monitor ai valori predefiniti tramite il terminale?


32

Ho un problema complicato riguardo a più monitor su KDE (Kubuntu). Ho un laptop che, a casa, è collegato a due monitor: VGA e HDMI. Funziona solo quando lo schermo del laptop integrato è disabilitato (almeno mi è stato detto che).

Il problema è che ora ho portato via il laptop e l'ho avviato senza monitor esterni collegati. Il sistema ricorda che il display integrato era disabilitato, quindi lo disabilita anche se è l'unico monitor collegato. Ovviamente, ciò rende il laptop praticamente inutilizzabile. Passando a un terminale tramite Ctrl+ Alt+ F#funziona, posso accedere; anche Guest funziona normalmente.

La domanda è: come posso reimpostare le impostazioni di monitoraggio di un account tramite terminali, dal momento che non riesco a usare la GUI?

Grazie


3
Una domanda correlata con una risposta recente xrandrpotrebbe essere utile.

2
Questo mi ha aiutato quando ho potuto usare la console sul secondo monitor, xrandr è stato in grado di configurare le mie impostazioni. Tuttavia, quando posso usare solo il terminale non gui, xrandr dice che non può aprire il display, quindi è piuttosto inutile.
Martin Melka,

Come hai disabilitato il display del laptop integrato?
pazzo per il natty

Non so se c'è una differenza rilevante in KDE, ma in Ubuntu standard funziona perfettamente per me (con il monitor interno spento tramite la GUI, con il coperchio del laptop chiuso e il laptop comodamente seduto nella sua docking station).
pazzo per il natty

1
vuoi dire che devo configurare le impostazioni ogni volta che uso il laptop con e senza monitor esterni? Se è così, fa schifo. Comunque, devo sapere come farlo attraverso tty
Martin Melka, il

Risposte:


9

Buona domanda. Un po 'difficile rispondere, ma ecco una prova.

Risposta di base

In realtà c'è una piccola possibilità di ripristino inclusa in X11 . Puoi trovarlo a /etc/X11/Xreset. È possibile utilizzare la directory Xreset ( Xreset.d) per incollare uno script che viene eseguito automaticamente quando un utente si disconnette. Il file 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.

È quindi possibile a) aggiungere uno script di ripristino /etc/X11/Xreset.deb) creare uno script collegato a un programma di avvio che imposta i display doppi esterni. Come tale, ti disconnetteresti e tutto tornerebbe alla normalità, accederai al tuo laptop, premi il pulsante di avvio per i display e goditi la vita.

Maggiori informazioni

  1. Potresti voler esaminare sudo dpkg-reconfigure -phigh xserver-xorgper ripristinare xserver o (probabilmente meglio guardare la risposta suggerita da Mik nei commenti).

  2. Un ragazzo SuSE ha scritto un bell'articolo su X.

  3. In un bugreport risolto qualcuno afferma:

    gli amministratori possono rilasciare gli script in /etc/X11/Xreset.d/ per eseguirli dopo che l'utente si è disconnesso.

  4. Questo è il contenuto del file:

Puoi trovarlo sul tuo 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:

Interessante. Lo script di reset non fa nulla però. L'ho passato attraverso tty, riavviato il computer, ma era tutto uguale. Lo stesso con metterlo nella cartella: | Ho provato a inserire anche i comandi xrandr, ma inutilmente
Martin Melka il

Lo script di ripristino esegue tutto ciò che si trova nella directory Xreset.d.
don.joey

1
Destra. All'inizio non ha funzionato per me, perché ho dimenticato di aggiungere l'autorizzazione eseguibile allo script. Ora funziona perfettamente. Grazie. Una piccola osservazione, tuttavia. Se metto il laptop in standby e scollego i monitor durante quello, non mi sono disconnesso e quindi lo schermo non verrà ripristinato. C'è un modo per disconnettermi da tty? Ho provato ad accedere come lo stesso utente che utilizza X, ma logoffmi sono disconnesso solo da tty, non da X.
Martin Melka

Ciao martin Sono felice che tu l'abbia fatto funzionare! Hai provato qualcosa del genere gnome-session-quit? Fonte: askubuntu.com/questions/15795/…
don.joey

17

Ogni volta che metto il mio laptop Lubuntu in sospensione quando viene visualizzato esclusivamente sulla mia TV e lo riattivo dopo averlo scollegato, finisco con una schermata nera perché viene assegnata la risoluzione errata. Allo stesso modo, ho bisogno di impostare la risoluzione dal terminale virtuale TTY1 che posso raggiungere con Ctrl-alt-F1, ma xrandr sembra non funzionare. Ho analizzato pagine dei risultati di ricerca di Google prima di trovare la soluzione, quindi ho pensato di condividere.

La cosa fondamentale è che apparentemente xrandr funziona solo sul display attualmente focalizzato. Quindi devi concatenare un comando sleep prima del comando xrandr per darti il ​​tempo di tornare al server X con Ctlr-alt-F7 in modo che il comando venga eseguito lì. Altrimenti ricevi un errore simile xrandr: Configure crtc 0 failed.

  1. Apri il terminale virtuale con Ctrl-alt-F1 e accedi

Per ottenere i nomi delle schermate connesse (e supponendo che il tuo server X sia in esecuzione :0):

  1. $xrandr -d :0

Per modificare le impostazioni di visualizzazione:

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

Sostituire LVDS1 con l'output che si desidera modificare e --auto con qualsiasi parametro xrandr che si desidera utilizzare.

  1. Passa al server X con Ctrl-alt-F7 prima che trascorra il ritardo di sospensione impostato nel comando sopra.

Deve esserci un modo migliore per farlo. Ma funziona

Fonte originale per la soluzione: http://www.lgqyc.com/server-14-04-3-lts-display-orientation/

Dai un'occhiata a questo commento per un possibile miglioramento della mia soluzione (non testato me stesso).


Questa è stata l'unica risposta che ha funzionato per me. Pazzesca coincidenza, un argomento di 3 anni aveva l'unica risposta funzionante inviata 11 ore fa :). EDIT: oh snap, ESATTAMENTE 3 anni fa. Strano ...
Adam Plocher,

Wow. Questo mi sta facendo impazzire da anni. La tua risposta sembra ridicola (dormi? Davvero?), Ma funziona, quindi grazie!
Tyler,

6
Risulta, c'è un modo leggermente migliore per fare questo: chvt 7; xrandr --output LVDS1 --auto -d :0. chvt 7 passa a VT7 per te, quindi non è necessario dormire / Ctrl-Alt-F7. Potrebbe essere necessario un sleep 5tra chvte le xrandrchiamate, ma anche in questo modo si risparmia la pressione manuale dei tasti.
Tyler,

Un'opzione sarebbe quella di creare un .xsessionrcfile eseguibile nella directory home e includere il comando xrandr --autoper forzare la riconfigurazione automatica di tutti i display ogni volta che accedi.
Mikko Rantalainen,

16

Il comando xrandr -s 0dovrebbe ripristinare i display nel terminale. Ulteriori informazioni sono disponibili sul sito seguente o dal man xrandrterminale.

https://linuxacademy.com/blog/linux/solution-resetting-your-screen-resolution-with-xrandr/


Benvenuto in Ask Ubuntu! Mentre questo risponde alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
Guntbert,

4
Sì, funziona. Le altre risposte sono semplicemente troppo gonfie, complicate o non efficienti. Inoltre potrebbe essere utile notare che se si verifica una schermata nera (e non si vede nulla), è possibile aprire il terminale con i tasti di scelta rapida e digitare alla cieca "xrandr -s 0". Questo è quello che ho fatto :)
kodeart

Si noti che nelle configurazioni a due monitor, questo comando può disattivare il secondo monitor, anziché impostare entrambi i monitor sulla risoluzione predefinita.
Darien,

Sul mio sistema, il comando disabilita entrambi i monitor esterni, ma ripristina anche la loro configurazione ai valori predefiniti, che corregge il rilevamento DCC VGA che viene interrotto di volta in volta. Dopodiché ho solo bisogno di riattivare gli schermi e riposizionarli usando lo strumento Visualizza. Non è l'ideale ma è molto praticabile e migliore della mia precedente soluzione, che era quella di sospendere e riattivare il computer alcune volte fino a quando non ripristina la porta VGA.
Guss,

4

hai provato (sth piace)

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

da un diverso tty(ad es. tty1),

a cui è possibile accedere Ctrl Alt F1e tornare a (lo standard grafico) tty7 con Ctrl Alt F7?


1
Questo mi dà xrandr: Configure crtc 1 failedquando provo --output HDMI1 --off. --auto non dice nulla, fino a quando non lo spengo manualmente. Quindi --auto lancia lo stesso errore
Martin Melka

avrebbe bisogno di indagare più da vicino; Sono positivo che avrebbe funzionato, alla fine ...
nocciola su Natty

2

Una cosa che non ho ancora menzionato, ma che cosa potrebbe essere fondamentale: se si stesse usando un laptop Thinkpad , la soluzione sarebbe semplice: Fn+ F7. Se stai usando un laptop di un altro produttore, ci sarà, con buona probabilità, qualche altro tasto di tipo Fn che passerà attraverso le uscite dello schermo / schermo (ad esempio, proiettore, monitor esterno, display interno; mirror, on / off, e simili) giù a livello di BIOS (suppongo - Modifica : vedi Come funzionano i tasti Fn? per maggiori dettagli su questo ).

Quindi non sarebbe necessario resettare nulla all'interno di Linux, per così dire.


1
Ho un IdeaPad, ma i tasti Fn + non funzionano (l'unico che lo fa è Sleep)
Martin Melka

Il mio sospetto è: continua con questo! Non ho il tempo di indagare a fondo me stesso al momento, anche se c'è una buona probabilità che potrei fare un po 'di ottimizzazione in questo campo sul mio IBM Thinkpad X41, ma -per quello che è worth- maggior parte dei tasti Fn fanno lavoro sul mio sistema (sia sul mio laptop, così come sulla mia tastiera "thinkvantage" esterna sk-8855: nel centro software Ubuntu (o sinaptico) a un primo sguardo superficiale almeno questa cosa è installata tp-smapi-dkms 0.41-1 . Quindi potresti voler provare a installarlo, esaminandolo e / o alternative simili che faranno finalmente prendere vita alle tue chiavi Fn!
pazzo per il natty

dai un'occhiata anche a tpctl.sourceforge.net
su natty

Difficile da credere, ma era così. Cambia display - Fn+ F8su Dell Latitude. Dopo essere stato rimosso dalla docking station, a volte non accendeva il display integrato. (Uso solo un display VGA esterno con la docking station.) Cercare di cambiare il display sembrava una sciocchezza, ma ha acceso il display integrato.
Ferdinand Prantl,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.