У меня есть собственный скрипт xrandr, который включает мои внешние мониторы и отключает монитор моего ноутбука. Когда я отсоединяю свой внешний монитор, я не могу включить монитор, потому что мой экран пуст.
Я бы хотел иметь доступ к моей консоли tty (ctrl-alt-f1) и запускать xrandr (т. Е. xrandr --output eDP1 --auto
). Запуск этого в моем tty говорит "Не могу открыть дисплей". Какие-нибудь советы, как мне это сделать?
Никакая потребность войти в консоль, Вы могли достигнуть того же путем добавления, что пользовательское сочетание клавиш к пере - включает внутренний экран.
Выберите System Settings> Keyboard> Shortcuts> Custom Shortcuts, нажмите + и добавьте команду к ярлыку по Вашему выбору:
xrandr --output <screenname> --auto
Просто протестированный это в моей системе (ноутбук, 15.10); выключенный мой экран и успешно пере - включил его с сочетанием клавиш, выполнив команду :)
Вы могли использовать отредактированную версию этого сценария. Версия ниже (маленький фоновый сценарий, проверяет однажды в четыре секунды, если внешний экран соединен), удостоверяется, что Ваш внутренний экран включается
#!/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"])
else:
subprocess.Popen(["xrandr", "--output", internal, "--auto"])
scr_info1 = scr_info2
switch_screens.py
xrandr
(никакой внешний соединенный экран), строка со "связанным" в нем показывает название Вашего экрана в первой строке, будучи похож: VGA-1
или что-то как этот.Тестовый прогон это путем открытия окна терминала и typ команда:
python3 /path/to/switch_screens.py
В то время как сценарий работает, соедините свой внешний экран, ожидайте Вас внутренний экран к переключателю и разъединитесь снова.
Если все хорошо работает, добавьте команду ниже для Запущения Приложений: откройте Dash> Startup Applications> Add. Добавьте команду:
/bin/bash -c "sleep 15 && python3 /path/to/switch_screens.py"
Выйдите из системы и въезжайте задним ходом. Теперь Ваш внутренний экран выключен автоматически, если внешний экран соединен, пере - включение его, если Вы разъединяетесь.
Сценарий не добавляет значимой нагрузки вообще для Вашей системы.