Запустить скрипт при разблокировке?
Привет, я бы хотел, чтобы скрипт оболочки запускался каждый раз, когда я разблокирую свой компьютер в KDE 4. Я узнал, что могу запустить его, переписав /usr/lib/kde4/libexec/krunner_lock с помощью скрипта оболочки, выполняющего свою функцию, затем исходный двоичный файл krunner_lock, и я бы хотел сделать наоборот: запустить скрипт, который "отменяет" действия скрипта блокировки. Я нахожусь на 64-битной Kubuntu 9.04, но я ценю ответы для любой операционной системы, на случай, если я когда-нибудь захочу сделать то же самое в этой системе.
3 ответа
Разобрался на форумах KDE здесь. Решение Поргеса довольно близко к ответу, но пока не совсем. Вы должны передать аргументы, которые получает скрипт, реальному krunner_lock, вот так: krunner_lock_bin $@
Читая с этой страницы, похоже, krunner_lock
будет работать до тех пор, пока экран заблокирован, поэтому вы сможете размещать команды после строки, в которой он запущен, и они будут выполняться после разблокировки экрана.
например
#!/bin/bash
...
# do stuff
...
real_krunner_lock # exits once screen unlocks...
...
# undo stuff
Версия на 2015 год, работающая под Kubuntu 14.10 с использованием блокировщика виджетов рабочего стола:
#!/bin/bash
lockpidname="/usr/bin/plasma-overlay --nofork"
$lockpidname
check_slock () {
if [[ $(pgrep -fla $lockpidname) ]]; then
SLOCKED=1
else
SLOCKED=0
fi
}
while true; do
sleep 5
check_slock
case $SLOCKED in
0)
echo "System unlocked run something here"
break
;;
esac
done
Это для ситуации, когда вы хотите назначить комбинацию CTRL+ATL+L в разделе Custom в глобальных сочетаниях клавиш.