Пользователь Windows здесь, прыгает на поезд Ubuntu. В настоящее время использую 14.04
. У меня есть телевизор, который я использую для просмотра фильмов и тому подобное, подключенный через HDMI. Я хотел бы выполнить следующее поведение, но я еще не понял
Только настраивая параметры, я могу добиться этого, но это чрезвычайно вручную. Я что-то упустил?
Большое спасибо!
Это можно легко сделать, запустив небольшой фоновый скрипт (запускается автоматически при запуске (входе в систему).
Скрипт автоматически отключит ваш внутренний экран, если ваш телевизор (или любой другой дополнительный экран) подключен. Если вы хотите, чтобы он работал только для определенного внешнего экрана, укажите.
#!/usr/bin/env python3
import subprocess
import time
# --- set your internal screen below (the example is my primary screen)
internal = "DVI-I-1"
#---
# don't change anything below
scr_info1 = 0
while True:
time.sleep(4)
# read the current screen setup from xrandr
get_screens = subprocess.check_output("xrandr").decode("utf-8").splitlines()
scr_data = [l for l in get_screens if " connected " in l]
# count the number of connected screens
scr_info2 = len(scr_data)
# if the number of connected screens changes,
# switch off the internal one if there are two screens
if scr_info2 != scr_info1:
if scr_info2 == 2:
ext = [s.split()[0] for s in scr_data if not internal in s][0]
subprocess.Popen(["xrandr", "--output", internal, "--off", "--output", ext, "--auto"])
scr_info1 = scr_info2
switch_screens.py
xrandr
(внешний экран не подключен). В строке со словом «connected» в первой строке отображается имя вашего экрана, например: VGA-1
или что-то в этом роде. Протестируйте - запустите его, открыв окно терминала и набрав команду:
python3 /path/to/switch_screens.py
Пока выполняется сценарий, подключите телевизор, подождите, пока внутренний экран выключится и снова отключится.
Если все работает нормально, добавьте команду ниже в Startup Applications: откройте Dash> Startup Applications> Add. Добавьте команду:
/ bin / bash -c "sleep 15 && python3 /path/to/switch_screens.py"
Выйдите из системы и снова войдите. Теперь ваш внутренний экран автоматически отключается, если подключен внешний экран.
Обычно Unity запоминает описанные вами настройки. Это означает, что если вы один раз активируете свой телевизор, а затем отключите экран ноутбука, это должно произойти при следующем подключении телевизора. Также, если вы отключите телевизор от сети, он должен вернуться к экрану ноутбука.
Как вы говорите, этого не произошло, вы можете создать небольшой командный файл, который активирует второй экран, если он подключен, и деактивирует экран ноутбука. Это связано с тем вопросом
-lts
в конце. В моем случае, кажется, не было никакой ошибки конфигурации. Сообщение об ошибке обнаружилось после того, как система работала в течение многих недель без любых проблем. Таким образом, по-видимому, сообщение об ошибке может обнаружиться спонтанно. Слишком плохо этот вопрос закрывается как дубликат, так как Ваш ответ ясно показывает, что плохой вывод может сохраниться, даже если ни одна из проблем, упомянутых в воображаемом дубликате, не присутствует. – kasperd 25 February 2019 в 09:35