2016-01-01 164 views
0

我希望我的孩子只能使用電腦30分鐘,此時我希望屏幕被鎖定。此時,如果我選擇再次解鎖屏幕,我希望屏幕在30分鐘內再次鎖定。如何在解鎖後30分鐘鎖定屏幕

我該如何編寫腳本來做到這一點?

要鎖定在命令行(在Ubuntu)屏幕上,我可以使用命令

GNOME屏保命令-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()