ฉันพบวิธีที่เหมาะกับฉัน
ทันทีที่ฉันปลดล็อคหน้าจอรายการงานของวิวัฒนาการจะปรากฏขึ้น
ฉันใช้สคริปต์ Python ขนาดเล็กเพื่อทำสิ่งนี้:
import os
import dbus
from dbus.mainloop.glib import DBusGMainLoop
import gobject
import wnck
import gtk
import pyatspi
# called when screen is locked/unlocked
def handler(active=None):
if active == 0:
# screen is unlocked
screen = wnck.screen_get_default()
while gtk.events_pending():
gtk.main_iteration()
# activate the window whose name ends in 'Evolution'
for window in screen.get_windows():
if not window.get_name().endswith('Evolution'):
continue
window.activate(gtk.get_current_event_time())
# press Ctrl, press&release 4, release Ctrl
pyatspi.Registry.generateKeyboardEvent(37, None, pyatspi.KEY_PRESS)
pyatspi.Registry.generateKeyboardEvent(13, None, pyatspi.KEY_PRESSRELEASE)
pyatspi.Registry.generateKeyboardEvent(37, None, pyatspi.KEY_RELEASE)
loop = DBusGMainLoop(set_as_default=True)
# connect to dbus message
bus = dbus.SessionBus()
ss = bus.get_object('org.gnome.ScreenSaver', '/org/gnome/ScreenSaver')
ss.connect_to_signal('ActiveChanged', handler, dbus_interface='org.gnome.ScreenSaver')
# loop forever
loop = gobject.MainLoop()
loop.run()
สคริปต์ทำงานในพื้นหลังเมื่อฉันเข้าสู่ระบบ
evolution -c tasks
จะทำในสิ่งเดียวกัน อย่างไรก็ตามฉันไม่เคยปิดวิวัฒนาการมันทำงานอยู่เสมอ (ฉันไม่เคยปิดคอมพิวเตอร์ฉันใช้ suspend) ดังนั้นวิธีนี้จึงไม่ใช่สิ่งที่ฉันกำลังมองหา