2016-01-01 7 views
0

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

Как написать сценарий для этого?

Чтобы заблокировать экран из командной строки (на Ubuntu), я могу использовать команду

гном-заставка-команды -l

но как активировать эту команду 30 минут после того, как разблокировать?

+1

https://unix.stackexchange.com/questions/28181/run-script-on-screen-lock-unlock – Blender

ответ

0

Благодарим за комментарий, который помогает. Вот решение, которое я придумал, в Python 2.x:

import gobject, dbus, time, subprocess 
from dbus.mainloop.glib import DBusGMainLoop 

time.sleep(30*60) 
subprocess.Popen(["gnome-screensaver-command", "-l"]) 

def lock_status(bus, message): 

    if message.get_member() != "EventEmitted": 
     return 

    args = message.get_args_list() 

    if args[0] == "desktop-unlock": 
     time.sleep(30*60) 
     subprocess.Popen(["gnome-screensaver-command", "-l"]) 

DBusGMainLoop(set_as_default=True) 
bus = dbus.SessionBus() 
bus.add_match_string("type='signal',interface='com.ubuntu.Upstart0_6'") 
bus.add_message_filter(lock_status) 
gobject.MainLoop().run() 
Смежные вопросы