Перемикайте монітори з командного рядка


21

Оскільки я знайшов інший метод для досягнення своєї мети, і оскільки на моє попереднє запитання не було опубліковано жодної відповіді, я змінив питання, щоб відповідати знайденій відповіді.

Чи є спосіб вимкнути монітор мого ноутбука і повністю включити зовнішній монітор (і навпаки) з командного рядка?


Я просто гуглив саме так, і я натрапив на це питання, яке ви задали лише 7 хвилин тому. Це дивовижно дивовижно. Я сподіваюся, що ви отримаєте відповідь.
JD Long

Я знаю, що ви можете запустити базовий xorg.confу каталог root ( /root/yorg.conf.new), якщо ви завантажитеся в режим відновлення та виконайте X --configure(або подібне).
Боббі

проблема (принаймні для мене) полягає в тому, що я не хочу виписувати xorg.conf вручну. Я хочу скинути мої поточні налаштування у формат xorg.conf, потім змінити налаштування з графічним інтерфейсом, а потім скинути їх у файл. Тоді я можу написати сценарій, щоб змінити між двома налаштуваннями дуже просто. Зараз мені потрібно зайти в графічний інтерфейс і натиснути півдесятка разів, щоб змінити свої налаштування.
JD Long

@JD Long: Це саме те, що я намагаюся зробити також. Обов’язково напишіть тут, якщо ви коли-небудь знайдете спосіб. У мого сценарію бракує лише двох речей - файлів xorg.conf та команди для оновлення поточних дисплеїв (без необхідності перезавантаження gdm).
Малабарба

Я сьогодні експериментував з дисперсом ( willem.engen.nl/projects/disper ). У файлі довідки відображається опція -p, яка повинна експортуватися. Тільки той перемикач не реалізований. сумний тромбон
JD Long

Відповіді:


28

З командами

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

Екран автоматично переходить на зовнішній дисплей. Це навіть не потребує повноважень судо. Щоб дізнатися назву дисплеїв, просто виконайте:

xrandr -q

Що має дати щось на кшталт:

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

Розширення дисплеїв, можливо, може бути досягнуто аналогічним чином.


Я отримую повідомлення "Не вдається відкрити дисплей" під час запуску xrandr (з будь-якими прапорами). Що може бути причиною?
brandizzi

4
Якщо xrandr -qдає LVDS1і VGA1: Зовнішній тільки: xrandr --output VGA1 --auto --output LVDS1 --off. Розширений лівий, внутрішній первинний: xrandr --output VGA1 --auto --left-of LVDS1 --output LVDS1 --auto --primary. Розширений лівий, зовнішній первинний: xrandr --output VGA1 --auto --left-of LVDS1 --primary --output LVDS1 --auto. Тільки для внутрішнього використання : xrandr --output VGA1 --off --output LVDS1 --auto.

приємна відповідь! Може бути, варто пояснити початківцям, який з них зазвичай буде внутрішнім та зовнішнім між VGA та LVDS?
Матифу

4

Це, звичайно, НЕ пряма відповідь на ваше запитання. Але я вважаю це корисним у своєму випадку використання. Це не експорт конфігураційного файлу, але він показує, як автоматизувати дисперс у скрипті оболонки. Я налаштовую цю функцію для запуску кожного разу, коли я докидаю / скасовую док-станцію, і, здається, виправляє проблеми з дисплеєм під час стикування та розблокування мого ноутбука:

У вас повинен бути встановлений дисперс і Python.

#!/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

Диспер здається корисним інструментом. Я загляну в це і побачу, чи зможу я зробити це відповідно до моєї справи. Єдина відмінність полягає в тому, що я хочу відключити монітор ноутбука, а не подовжувати його. Це трохи плавніше на моєму ноутбуці низького класу, і він справляється з панелями автоматично.
Малабарба

По-друге, моя відеокарта ati може не підтримуватися, оскільки вони лише стверджують, що підтримують nvidia.
Малабарба

Гаразд, сторінка пелюшки привела мене до цієї сторінки: thinkwiki.org/wiki/Sample_Fn-F7_script Виявляється, досить просто перемикати монітори за допомогою команди xrandr.
Малабарба

дякую за публікацію посилання xrandr. Я це буду досліджувати. Я блукаю з тими ж самими речами. FWIW, у мого ноутбука є карта Intel, і я використовую дисперс без проблем.
JD Long
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.