Wie kann ich die Monitoreinstellungen über das Terminal auf die Standardeinstellungen zurücksetzen?

32

Ich habe ein kniffliges Problem mit mehreren Monitoren unter KDE (Kubuntu). Ich habe einen Laptop, der zu Hause an zwei Monitore angeschlossen ist - VGA und HDMI. Das funktioniert nur, wenn das eingebaute Laptop-Display deaktiviert ist (zumindest wurde mir das gesagt).

Das Problem ist, dass ich jetzt den Laptop weggenommen und ihn ohne angeschlossene externe Monitore hochgefahren habe. Das System merkt sich, dass der eingebaute Bildschirm deaktiviert wurde, sodass er deaktiviert wird, obwohl er der einzige angeschlossene Monitor ist. Offensichtlich macht das den Laptop so ziemlich unbrauchbar. Der Wechsel zu einem Endgerät durch Ctrl+ Alt+ F#funktioniert, kann ich mich anmelden; Auch Gast arbeitet normal.

Die Frage ist, wie kann ich die Monitoreinstellungen eines Kontos über Terminals (neu) einstellen, da ich die GUI nicht verwenden kann?

Vielen Dank

Martin Melka
quelle
3
Verwandte Frage mit einer kürzlichen Antwort xrandr, die nützlich sein könnte.
2
Dies hat geholfen, als ich die Konsole auf dem zweiten Monitor verwenden konnte und xrandr meine Einstellungen vornehmen konnte. Wenn ich jedoch nur das Nicht-GUI-Terminal verwenden kann, sagt xrandr, dass es das Display nicht öffnen kann, also ist es ziemlich nutzlos.
Martin Melka
Wie haben Sie das eingebaute Laptop-Display deaktiviert?
nussig über natty
Ich weiß nicht, ob es einen relevanten Unterschied zu KDE gibt, aber in Standard-Ubuntu funktioniert es einwandfrei für mich ( wenn der interne Monitor über die GUI ausgeschaltet ist, der Laptop-Deckel geschlossen ist und der Laptop bequem in seiner Dockingstation sitzt).
verrückt nach natty
1
Meinen Sie damit, dass ich die Einstellungen jedes Mal vornehmen muss, wenn ich den Laptop mit oder ohne externe Monitore verwende? Wenn ja, ist das scheiße. Wie auch immer, ich muss wissen, wie das geht
Martin Melka

Antworten:

9

Gute Frage. Es ist etwas schwierig zu beantworten, aber hier ist ein Versuch.

Grundlegende Antwort

In X11 ist eine kleine Reset-Möglichkeit enthalten . Sie finden es unter /etc/X11/Xreset. Sie können das Xreset-Verzeichnis ( Xreset.d) verwenden, um ein Skript einzufügen , das automatisch ausgeführt wird, wenn sich ein Benutzer abmeldet. Die README-Datei:

# 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.

Sie können also a) ein Reset-Skript hinzufügen /etc/X11/Xreset.dund b) ein Skript an einen Launcher anhängen, der Ihre beiden externen Displays einrichtet. Als solches würden Sie sich abmelden und alles wäre wieder normal, Sie würden sich an Ihrem Laptop anmelden, den Launcher für die Displays drücken und das Leben genießen.

Mehr Informationen

  1. Vielleicht möchten Sie nach einem sudo dpkg-reconfigure -phigh xserver-xorgZurücksetzen des xservers suchen oder (sehen Sie sich besser die Antwort an, die Mik in den Kommentaren vorgeschlagen hat).

  2. Ein SuSE-Typ hat einen schönen Artikel über X geschrieben.

  3. In einem gelösten Bugreport heißt es:

    Administratoren können Skripte in /etc/X11/Xreset.d/ ablegen, um sie auszuführen, nachdem sich der Benutzer abgemeldet hat.

  4. Dies ist der Inhalt der Datei:

Sie können es auf Ihrem eigenen System finden.

#!/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:
don.joey
quelle
Interessant. Das Reset-Skript macht jedoch nichts. Ich habe tty durchgearbeitet, den Computer neu gestartet, aber alles war gleich. Dasselbe gilt für das Ablegen in den Ordner: | Ich habe versucht, auch xrandr-Befehle einzubauen, aber ohne Erfolg
Martin Melka
Das Rücksetzskript führt alles aus, was sich im Verzeichnis Xreset.d befindet.
don.joey
1
Recht. Anfangs hat es bei mir nicht funktioniert, da ich vergessen habe, dem Skript eine ausführbare Berechtigung hinzuzufügen. Jetzt funktioniert es wie ein Zauber. Vielen Dank. Eine kleine Bemerkung jedoch. Wenn ich den Laptop in den Energiesparmodus versetze und währenddessen die Monitore vom Netz trenne, habe ich mich nicht abgemeldet und der Bildschirm wird nicht zurückgesetzt. Gibt es eine Möglichkeit, mich über tty abzumelden? Ich habe versucht, logoffmich als derselbe Benutzer anzumelden, der X verwendet, aber mich nur vom tty abgemeldet, nicht von X.
Martin Melka
Hallo Martin. Ich bin froh, dass du es geschafft hast! Hast du sowas probiert gnome-session-quit? Quelle: askubuntu.com/questions/15795/…
don.joey
17

Immer wenn ich meinen Lubuntu-Laptop in den Ruhezustand versetze, wenn er ausschließlich auf meinem Fernseher angezeigt wird, und ihn nach dem Abziehen des Netzsteckers aufwecke, wird ein schwarzer Bildschirm angezeigt, weil die falsche Auflösung zugewiesen ist. Das gleiche Problem wie Sie: Ich muss die Auflösung des virtuellen TTY1-Terminals einstellen, das ich mit Strg-Alt-F1 erreichen kann, aber xrandr scheint nicht zu funktionieren. Ich habe Seiten mit Google-Suchergebnissen durchsucht, bevor ich auf die Lösung gekommen bin, und dachte, ich würde sie teilen.

Entscheidend ist, dass xrandr anscheinend nur auf dem aktuell fokussierten Display funktioniert. Sie müssen also einen Befehl sleep vor dem Befehl xrandr verketten, damit Sie Zeit haben, mit Ctlr-alt-F7 zum X-Server zurückzukehren, damit der Befehl dort ausgeführt wird. Ansonsten bekommst du einen Fehler wie xrandr: Configure crtc 0 failed.

  1. Öffnen Sie das virtuelle Terminal mit Strg-Alt-F1 und melden Sie sich an

So rufen Sie die Namen der verbundenen Bildschirme ab (unter der Annahme, dass Ihr X-Server ausgeführt wird :0):

  1. $xrandr -d :0

So ändern Sie die Anzeigeeinstellungen:

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

Ersetzen Sie LVDS1 durch die Ausgabe, die Sie ändern möchten, und --auto durch die gewünschten xrandr-Parameter.

  1. Wechseln Sie mit Strg-Alt-F7 zum X-Server, bevor die im obigen Befehl festgelegte Ruhezeit abgelaufen ist.

Es muss einen besseren Weg geben, dies zu tun. Aber es funktioniert.

Originalquelle für die Lösung: http://www.lgqyc.com/server-14-04-3-lts-display-orientation/

Schauen Sie sich diesen Kommentar für eine mögliche Verbesserung meiner Lösung an (nicht von mir selbst getestet).

Gabriel Morin
quelle
Dies war die einzige Antwort, die für mich funktioniert hat. Verrückter Zufall, ein 3 Jahre altes Thema hatte die einzige funktionierende Antwort vor 11 Stunden eingereicht :). EDIT: oh snap, genau vor 3 Jahren.
Adam Plocher
Wow. Das hat mich schon ewig verrückt gemacht. Ihre Antwort scheint lächerlich (Schlaf? Wirklich?), Aber es funktioniert, also danke!
Tyler
6
Es stellte sich heraus, gibt es eine etwas bessere Weg ist , dies zu tun: chvt 7; xrandr --output LVDS1 --auto -d :0. chvt 7 wechselt für Sie zum VT7, sodass Sie nicht schlafen müssen / Strg-Alt-F7. Möglicherweise müssen Sie ein sleep 5zwischen der chvtund xrandrAnrufe, aber auch dann speichert es die Handtaste drückt.
Tyler
Eine Möglichkeit wäre, eine .xsessionrcausführbare Datei in Ihrem Home-Verzeichnis zu erstellen und den Befehl xrandr --auto
einzuschließen,
16

Der Befehl xrandr -s 0sollte Ihre Anzeigen im Terminal zurücksetzen. Weitere finden Sie auf der folgenden Website oder man xrandrim Terminal.

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

Miguel
quelle
Willkommen bei Ask Ubuntu! Während dies die Frage beantwortet, ist es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
guntbert
4
Ja das funktioniert Die anderen Antworten sind einfach zu aufgebläht, kompliziert oder nicht effizient. Beachten Sie auch, dass Sie, wenn Sie einen schwarzen Bildschirm sehen (und nichts sehen), Ihr Terminal mit Tastenkombinationen öffnen und blind "xrandr -s 0" eingeben können. Das habe ich getan :)
kodeart
Beachten Sie, dass dieser Befehl in Setups mit zwei Monitoren möglicherweise den zweiten Monitor deaktiviert, anstatt beide Monitore auf ihre Standardauflösung zu setzen.
Darien
Auf meinem System deaktiviert der Befehl beide externen Monitore, setzt aber auch ihre Konfiguration auf die Standardeinstellungen zurück. Dies behebt die VGA-DCC-Erkennung, die von Zeit zu Zeit unterbrochen wird. Danach muss ich nur noch die Bildschirme wieder aktivieren und sie mit dem Anzeigetool neu positionieren. Es ist nicht ideal, aber es funktioniert sehr gut und ist besser als meine vorherige Lösung, bei der der Computer einige Male angehalten und aufgeweckt wurde, bis der VGA-Anschluss zurückgesetzt wurde.
Guss
4

hast du es versucht

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

von einem anderen tty(zB tty1),

auf welche kannst du über Ctrl Alt F1tty7 zugreifen und mit tty7 zurückschalten Ctrl Alt F7?

verrückt nach natty
quelle
1
Dies gibt mir xrandr: Configure crtc 1 failedbeim Versuch --output HDMI1 --off. --auto sagt nichts, bis ich es manuell ausschalte. Dann --auto wirft den gleichen Fehler
Martin Melka
müsste genauer untersucht werden; bin
mir sicher
2

Eine Sache habe ich noch nicht erwähnt, aber was könnte kritisch sein: Wenn Sie einen Thinkpad- Laptop verwenden, wäre die Lösung einfach: Fn+ F7. Wenn Sie einen Laptop eines anderen Herstellers verwenden, gibt es höchstwahrscheinlich eine andere Fn-Taste, mit der die Anzeige- / Bildschirmausgaben umgeschaltet werden (z. B. Beamer, externer Monitor, internes Display; Spiegel, Ein / Aus, und ähnliches) auf der BIOS-Ebene (ich würde annehmen - Bearbeiten : Weitere Informationen hierzu finden Sie unter Funktionsweise von Fn-Tasten ).

Es wäre also sozusagen nicht nötig, irgendetwas in Linux zurückzusetzen.

verrückt nach natty
quelle
1
Ich habe ein IdeaPad, aber die Fn + -Tasten funktionieren nicht (die einzige, die Sleep tut)
Martin Melka
Meine Vermutung ist: Mach weiter mit dieser! Ich habe keine Zeit , um gründlich mich derzeit zu untersuchen, ob es eine gute Chance, die ich in diesem Bereich auf meinem IBM Thinkpad X41 einige Optimierungen tun könnten, aber -für was es ist wertlos meisten Fn - Tasten zu tun Arbeit auf meinem System (sowohl auf meinem Laptop sowie auf meiner externen sk-8855 "thinkvantage" -Tastatur): Im Ubuntu Software Center (oder Synaptic) ist auf den ersten oberflächlichen Blick zumindest dieses Ding tp-smapi-dkms 0.41-1 installiert. Vielleicht möchten Sie versuchen, es zu installieren, es zu untersuchen und / oder ähnliche Alternativen zu finden, die Ihre Fn-Tasten endlich zum Leben erwecken!
verrückt nach natty
Besuche
nach natty
Kaum zu glauben, aber das war es. Anzeige wechseln - Fn+ F8bei Dell Latitude. Nach dem Entfernen von der Dockingstation wurde das eingebaute Display manchmal nicht eingeschaltet. (Ich verwende für die Dockingstation nur ein externes VGA-Display.) Der Versuch, das Display umzuschalten, schien unsinnig, schaltete aber das eingebaute Display ein.
Ferdinand Prantl