На прошлой неделе я добавил внешний монитор в свой ноутбук, и почти все работает так, как я хочу, за исключением поведения «Яркость и блокировка».
У меня давно установлен этот параметр «Выключать экран, когда он неактивен на: 5 минут», и он работает как брелок для экрана ноутбука - как до, так и после добавления внешнего монитора. Но это не работает на внешнем мониторе. Когда я нахожусь за столом дольше, чем планировал, я возвращаюсь к черному экрану ноутбука, заблокированному экрану и входу в систему на внешнем мониторе.
Эта проблема похожа на на этот вопрос , но в этом случае кажется, что это основной монитор, который не становится черным. Вот почему я публикую это как отдельный вопрос.
Да, я знаю, что могу выключить питание монитора, и я делаю это ночью, но я бы хотел, чтобы он стал черным синхронно с родным экраном, если это возможно.
Я на 14.04. Монитор подключен через HDMI. Ноутбук - это VAIO с небольшим возрастом.
ПОСЛЕДУЮЩЕЕ РЕДАКТИРОВАНИЕ
В качестве продолжения, когда я тестировал скрипт bash в принятом ответе, я установил малое время ожидания, запустил скрипт из терминала, посмотрел оба монитора потемнели до черного, а затем приняли ответ. Впоследствии я фактически добавил сценарий (с переустановленным таймаутом) в свои сценарии запуска и сбросил мой компьютер.
После моего первого более долгого отсутствия, представьте себе мое удивление, когда я вернулся к своему столу и обнаружил, что мой внешний монитор ярко светит!
Последующие исследования показали, что это, вероятно, вызвано сам монитор HDMI, и ни один скрипт не собирается это исправить. В самом деле, я (случайно) был за столом, когда включился этот сценарий. Оба монитора погасли, как и должны, и примерно через минуту внешний монитор снова включился. : - (
Ну хорошо. Я пытался.
Я подозреваю, что проблемой является результат ошибки, так как я не могу найти другую причину. По крайней мере, как обходное решение фоновый сценарий ниже мог использоваться.
Сценарий делает задание в моей системе, но необходимо будет попытаться видеть. Если это не работает над Вашей системой, мы можем переключиться на xrandr
к конкретно переключателю на монитор, но это - самая простая опция.
О ресурсах Вы не должны волноваться, проверки сценария однажды в десять секунд, если время простоя превышено. Даже если я делаю его 10 раз в секунду, загрузка не практически ни один.
#!/usr/bin/env python3
import subprocess
import time
t = 300
scr = True
while True:
time.sleep(10)
idle = int(subprocess.check_output("xprintidle").decode("utf-8").strip())/1000
if idle > t and scr == True:
subprocess.Popen(["xset", "dpms", "force", "off"])
scr = False
elif idle < t and scr == False:
subprocess.Popen(["xset", "dpms", "force", "on"])
scr = True
Потребности сценария xprintidle
:
sudo apt-get install xprintidle
Скопируйте сценарий в пустой файл, сохраните его как switchoff.py
В заголовке сценария, набор время простоя (в секундах) в строке:
t = 300
Выключите свой "нормальный" switch-off-screen-after-x idletime - настройки
Запустите скрипт с командой:
python3 /path/to/switchoff.py
Если все хорошо работает, добавьте его для Запущения Приложений: Тире> Приложения Запуска> Добавляет.
Добавьте команду:
/bin/bash -c "sleep 15 && python3 /path/to/switchoff.py"
Согласно просьбе в комментарии, ниже версии удара того же сценария. Необходимо было бы все еще установить xprintidle
все же.
#!/bin/bash
# --- set the idle time in seconds below
let "t = 300"
# ---
let "div = 1000"
t=$(($t * $div))
scr=true
while true
do
sleep 10
let "idle = "$(xprintidle)""
if [ "$idle" -gt "$t" ] && [ "$scr" = true ]
then
scr=false
xset dpms force off
elif [ "$idle" -lt "$t" ] && [ "$scr" = false ]
then
xset dpms force on
scr=true
fi
done
xrandr
. Необходимо было бы попробовать.
connection refused
Вы добираетесь для сервера от того, где это может соединиться. – Bidyut 7 September 2017 в 19:20