LINUX.ORG.RU

i3lock && suspend && hibernate при закрытии крышки

 , , ,


0

2

Нашел несколько готовых скриптов (у арчеводов), но они все предназначены к записи в скрипт /etc/acpi/handler.sh
В дебиане этого скрипта нет, однако suspend и hibenate отрабатывают по Fn клавишам вполне корректно.
Какой скрипт в дебиане содержит реакции на Fn клавиши, чтобы в него можно было сунуть реакцию на закрытие крышки?
Может быть у кого-нибудь есть готовое решение?
Бонусный вопрос: в недобуке x100e (thinkpad) нет видимой кнопки под экраном, однако закрытие крышки гасит экран. Как это работает?

Ответ на: комментарий от Towelie

В /etc/acpi куча всего:

actions           asus-wireless.sh  if-asus-not-eee.sh  mutebtn.sh                prevbtn.sh           sonybright.sh                  videobtn.sh
always-mute.sh    batterybtn.sh     lid.sh              nextbtn.sh                rotatescreen.sh      stopbtn.sh                     voldownbtn.sh
asus-brn-down.sh  ejectbtn.sh       lockbtn.sh          playbtn.sh                screenblank.sh       thinkpad-stretchortouchpad.sh  volupbtn.sh
asus-brn-up.sh    events            mailbtn.sh          powerbtn-acpi-support.sh  sleep_suspendbtn.sh  tosh-wireless.sh               webbtn.sh
asus-touchpad.sh  ibm-wireless.sh   mediabtn.sh         power.sh                  sleep_suspend.sh     undock.sh

siphonops ★★★
() автор топика
Ответ на: комментарий от LILO

магнит?

Возможно. Не очень разбираюсь в ноутбуках. Судя по этому:

cat /proc/acpi/button/lid/LID/state
state:      open
что-то есть.

siphonops ★★★
() автор топика
Ответ на: комментарий от siphonops

При закрытии/открытии крышки выполняется /etc/acpi/actions/lm_lid.sh

Но логичнее все же блокировать непосредственно перед suspend/hibernate, а не при закрытии крышки. Иначе по тем же Fn клавишам блокироваться не будет.

Towelie
()
Ответ на: комментарий от siphonops

В lid.sh обнаружилось следующее. Похоже рабочий скрипт, но непонятно, кто его должен пускать.

siphonops ★★★
() автор топика
Ответ на: комментарий от Towelie

При закрытии/открытии крышки выполняется /etc/acpi/actions/lm_lid.sh

Увидел, спасибо. Там ссылка вида laptop-mode auto. Судя по тому, что laptop-mode к такому повороту не готов, ничего кроме отключения экрана не происходит.

Но логичнее все же блокировать непосредственно перед suspend/hibernate, а не при закрытии крышки.

А как это сделать? Дописать в pm-*, или есть какой-то конфиг?

siphonops ★★★
() автор топика
Ответ на: комментарий от siphonops

У меня /etc/acpi/actions/lm_lid.sh был такого вида:

#! /bin/sh

test -f /usr/sbin/laptop_mode || exit 0

# lid button pressed/released event handler

if !(grep open /proc/acpi/button/lid/LID/state); then
    mpc pause
    ps axww | grep bin/X | grep -v grep | awk {'print "export DISPLAY="$8"; export XAUTHORITY="$10"; /usr/bin/xscreensaver-command -lock"'} | sh
    /usr/sbin/s2ram
fi

/usr/sbin/laptop_mode auto

Я пользовался только закрытием крышки и кнопкой выключения, поэтому просто прописал нужные мне действия в lm_lid.sh и в /etc/acpi/powerbtn-acpi-support.sh.

А потом я перешел на systemd, и там это решилось одним простым сервисом.

Towelie
()
Ответ на: комментарий от siphonops

Скорее всего проблема в неустановленных переменных окружения XAUTHORITY и DISPLAY.

Towelie
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.