Wechseln Sie die Monitore von der Befehlszeile aus

21

Da ich eine andere Methode gefunden habe, um mein Ziel zu erreichen, und keine Antwort auf meine vorherige Frage veröffentlicht wurde, habe ich die Frage so geändert, dass sie der Antwort entspricht, die ich gefunden habe.

Gibt es eine Möglichkeit, den Monitor meines Laptops auszuschalten und den externen Monitor (und umgekehrt) vollständig über die Befehlszeile einzuschalten?

Malabarba
quelle
Ich googelte nur nach genau der gleichen Sache und bin über diese Frage gestolpert, die Sie vor nur 7 Minuten gestellt haben. Das ist verdammt verblüffend. Ich hoffe du bekommst eine Antwort.
JD Long
Ich weiß, dass Sie ein Basic xorg.confin das root ( /root/yorg.conf.new) -Verzeichnis ablegen können, wenn Sie in den Wiederherstellungsmodus booten und ausführen X --configure(oder ähnliches).
Bobby
das problem (zumindest für mich) ist, dass ich keine xorg.conf von hand ausschreiben will. Ich möchte meine aktuellen Einstellungen in das xorg.conf-Format sichern, dann die Einstellungen über die GUI ändern und diese dann in eine Datei sichern. Dann kann ich ganz einfach ein Skript schreiben, um zwischen den beiden Einstellungen zu wechseln. Im Moment muss ich in die GUI gehen und ein halbes Dutzend Mal klicken, um meine Einstellungen zu ändern.
JD Long
@JD Long: Genau das versuche ich auch. Stellen Sie sicher, dass Sie hier schreiben, wenn Sie jemals einen Weg finden. Die einzigen zwei Dinge, die für mein Skript fehlen, sind die xorg.conf-Dateien und ein Befehl zum Aktualisieren der aktuellen Anzeigen (ohne dass gdm neu gestartet werden muss).
Malabarba
Ich habe heute mit Disper experimentiert ( willem.engen.nl/projects/disper ). Die Hilfedatei zeigt eine Option -p, die exportiert werden soll. Nur dieser Schalter ist nicht implementiert. traurige Posaune
JD Long

Antworten:

28

Mit den Befehlen

xrandr --output VGA-0 --auto
xrandr --output LVDS --off 

Der Bildschirm wechselt automatisch zur externen Anzeige. Es braucht nicht einmal Sudo-Kräfte. Gehen Sie wie folgt vor, um den Namen der Anzeigen zu ermitteln:

xrandr -q

Welches sollte etwas geben wie:

VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
...
LVDS connected (normal left inverted right x axis y axis)
...

Eine Erweiterung der Displays kann wahrscheinlich auf ähnliche Weise erreicht werden.

Malabarba
quelle
Ich erhalte die Meldung "Anzeige kann nicht geöffnet werden", wenn xrandr ausgeführt wird (mit Flags). Was kann der Grund sein?
Brandizzi
4
Wenn xrandr -qgibt LVDS1& VGA1: Nur extern: xrandr --output VGA1 --auto --output LVDS1 --off. Erweiterte links, innere Primär: xrandr --output VGA1 --auto --left-of LVDS1 --output LVDS1 --auto --primary. Erweiterte links, externe Primär: xrandr --output VGA1 --auto --left-of LVDS1 --primary --output LVDS1 --auto. Nur intern: xrandr --output VGA1 --off --output LVDS1 --auto.
gute Antwort! Vielleicht ist es für Anfänger erwähnenswert, welches normalerweise das interne und externe Verhältnis zwischen VGA und LVDS ist.
Matifou
4

Dies ist mit Sicherheit KEINE direkte Antwort auf Ihre Frage. Aber ich fand es hilfreich in meinem Anwendungsfall. Dies ist kein Export der Konfigurationsdatei, zeigt jedoch, wie Disper in einem Shell-Skript automatisiert werden kann. Ich richte dies so ein, dass es jedes Mal ausgeführt wird, wenn ich das Dock öffne / öffne, und es scheint, als behebe es meine Anzeigeprobleme beim Andocken und Abdocken meines Laptops:

Sie müssen disper und Python installiert haben.

#!/bin/sh
#
# Detect displays and move panels to the primary display
#

PYTHON=python2.6
DISPER=/usr/bin/disper

# disper command will detect and configure monitors
$PYTHON $DISPER --displays=auto -e -t left

# parse output from disper tool how many displays we have attached
# disper prints 2 lines per displer
lines=`$PYTHON $DISPER -l|wc -l`

display_count=$((lines / 2))

echo $display_count

echo "Detected display count:" $display_count

# Make sure that we move panels to the correct display based
# on the display count
if [ $display_count = 1 ] ; then
    echo "Moving panels to the internal LCD display"
    gconftool-2 \
    --set "/apps/panel/toplevels/bottom_panel_screen0/monitor" \
    --type integer "0"
    gconftool-2 \
    --set "/apps/panel/toplevels/top_panel_screen0/monitor" \
    --type integer "0"
    sleep 5
    pkill gnome-panel
else
    echo "Moving panels to the external display"
    gconftool-2 \
    --set "/apps/panel/toplevels/top_panel_screen0/monitor" \
    --type integer "1"
    gconftool-2 \
    --set "/apps/panel/toplevels/bottom_panel_screen0/monitor" \
    --type integer "1"
    sleep 5
    pkill gnome-panel
fi
JD Long
quelle
Disper scheint ein nützliches Werkzeug zu sein. Ich werde es untersuchen und sehen, ob ich es passend für meinen Fall machen kann. Der einzige Unterschied ist, dass ich den Laptop-Monitor deaktivieren möchte, anstatt ihn zu erweitern. Bei meinem Low-End-Laptop ist es etwas ruhiger, und die Panels werden automatisch verarbeitet.
Malabarba
Beim zweiten Gedanken wird meine ati-Grafikkarte möglicherweise nicht unterstützt, da sie nur angibt, nvidia zu unterstützen.
Malabarba
Ok, die Diper-Seite hat mich zu dieser Seite geführt: thinkwiki.org/wiki/Sample_Fn-F7_script Es hat sich herausgestellt, dass es ziemlich einfach ist, Monitore mit dem Befehl xrandr zu wechseln.
Malabarba
danke für das posten des xrandr links. Ich werde das untersuchen. Ich bin mit den gleichen Sachen herumalbern. FWIW, mein Laptop hat eine Intel-Karte und ich benutze Disper ohne Probleme.
JD Long