DPMS, держите экран выключенным, когда крышка закрыта

2491
Evan Teran

У меня есть ноутбук под управлением Linux. В моей конфигурации xorg у меня есть настройка DPMS, так что экран автоматически отключается во время нескольких событий. В дополнение к этому я должен к следующему сценарию, связанному с событиями открытия / закрытия крышки ACPI:

#!/bin/sh  for i in $(pidof X); do CMD=$(ps --no-heading $i)  XAUTH="$(echo $CMD | sed -n 's/.*-auth \(.*\)/\1/p')" DISPLAY="$(echo $CMD | sed -n 's/.* \(:[0-9]\) .*/\1/p')"  # turn the display off or back on export XAUTHORITY=$XAUTH /usr/bin/xset -display $DISPLAY dpms force $1 done 

По сути, этот сценарий принимает один параметр («включен» или «выключен»), затем проходит через все мои запущенные сеансы X и либо включает, либо выключает монитор.

Вот моя проблема. Когда я закрываю крышку ноутбука, экран гаснет, как и ожидалось, но если происходит событие мыши (например, если что-то врезается в стол ...), экран снова включается, даже если он закрыт (я вижу свет через боковую часть ноутбука).

Есть ли способ предотвратить включение экрана во время события мыши, если крышка закрыта?

0

5 ответов на вопрос

2
wrt

Вы могли бы сделать немного магии с Xrandr; например, что-то вроде

xrandr - выход LVDS --off

выключить его и

xrandr - выход LVDS --авто

вернуть его обратно. Замените LVDS на любое имя вывода на экран вашего ноутбука.

Недостатком этого является то, что, если что-то пойдет не так, может быть трудно вернуть экран обратно к отключению питания.

Любое предложение о том, что делать, если ваш экран продолжает включаться, даже если вы отключили его с помощью приведенной выше команды xrandr? Экран моего ноутбука случайным образом решает снова включиться с испорченным разрешением, до сих пор работает нормально, поэтому было бы неплохо заставить его отключиться. pzkpfw 6 лет назад 0
2
harrymc

Добавьте следующие строки в /etc/acpi/lid.shфайл:

#open
screenon
chvt 7
#close
chvt 12
screenoff

Это переключится на консоль, когда крышка будет закрыта, и X не будет определять движения мыши.

Человеку, который проголосовал за это в 2017 году: Помните, что этот ответ с 2009 года. harrymc 7 лет назад 0
1
cyril42e

Следуя идее отключения мыши, вы можете сделать это более избирательно и безопасно с помощью xinput:

# open DISPLAY=:0.0 xinput set-int-prop 12 "Device Enabled" 8 1 # close DISPLAY=:0.0 xinput set-int-prop 12 "Device Enabled" 8 0 

Вы найдете ID (12 здесь) с: xinput --list

0
alpha1

Попробуйте использовать приложение вроде Power Devil для управления этим. КДЕ или Гном?

0
Nakedible

Кажется, немного сложно предотвратить X от сигнализации активности и отключения DPMS, когда он получает события активности.

Но, поскольку вы уже находитесь в области сценариев, как насчет простого отключения USB-устройств, когда крышка закрыта? Эффект может быть достигнут путем простого удаления модулей или, возможно, приостановки USB-устройства. Нечто подобное может работать:

echo suspend > /sys/bus/usb/devices/usb1/power/level 

Если это работает, ваш X не будет получать никаких событий, пока крышка закрыта.

Это довольно радикально и кажется опасным. Возможно, подключены другие USB-устройства (принтер, карта памяти, GSM-модем), и, возможно, уничтожение их соединения приведет к проблемам. sleske 13 лет назад 0

Похожие вопросы