LINUX.ORG.RU

действие при разблокировке экрана


0

1

Как мне отловить событие разблокировки экрана, чтобы выполнить при нём какой-то набор команд?

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

KDE4.4.4, Gentoo

Экран блокируется командой dbus-send --type=method_call --dest=org.kde.screensaver /ScreenSaver org.freedesktop.ScreenSaver.Lock

★★

Последнее исправление: name_no (всего исправлений: 1)
Ответ на: комментарий от vostrik

> экран чем блокируется?

а какие есть варианты? Мне интересно для общего развития, может, я зная это, сам найду решение?

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

> xtrlock, xautolock, xlockmore, xscreensaver...

ужос кокой. Я лочу вот так: dbus-send --type=method_call --dest=org.kde.screensaver /ScreenSaver org.freedesktop.ScreenSaver.Lock

name_no ★★
() автор топика

Если использовать что-то типа slock, не возвращающее код завершения до разблокировки, то запросто. Я одно время использовал такое:

#!/bin/bash
echo -n "Not available: terminal locked since "`date +%H:%M:%S` > ~/.centerim/awaymsg-icq
centerim -p icq -S n
slock
centerim -p icq -S o
GotF ★★★★★
()

Адаптируй под кеды

#!/usr/bin/perl -w

my $cmd = «dbus-monitor --session type='signal',interface='org.gnome.ScreenSa
ver',member='ActiveChanged'»;

open (IN, «$cmd |»);

while (<IN>) {
if (m/^\s+boolean true/) {
print «*** Desctop is lock ***\n»;
system ( 'desktop_lock.sh');
} elsif (m/^\s+boolean false/) {
print «*** Desctop is unlock ***\n»;
system ( 'desktop_unlock.sh');
}
print «*\n»;
}

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