Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have my task list in evolution (mainly so it can sync with my phone and online task list) but I always forget to look at the task list. Is there an application or plugin which periodically displays the contents of the tasklist or even better, it briefly displays the most urgent/important tasks when I login? Or anything else which automatically displays the most important tasks.

Currently I have to open the task list and look at them (which I usually forget). I do not mean some kind of alarm when the task is due but more a daily reminder of what to do.

share|improve this question

3 Answers 3

Here's a way to display your task list when you start up Evolution.

  1. Install xdotool

    apt-get -y install xdotool
    
  2. Create a script called evo.sh containing the following commands

    !/bin/bash
    evolution &
    sleep 5
    evowin=`xdotool search --name "Evolution" | head -2 | tail -1`
    xdotool windowactivate $evowin
    xdotool key ctrl+4
    exit
    
  3. Make the script executable

    chmod u+x evo.sh
    
  4. Run evo.sh

    ./evo.sh
    

Great success!

share|improve this answer
    
evolution -c tasks will do the same thing. However, I never close evolution, it is always running. (I never turn off the computer, I use suspend). So this solution is not quite what I am looking for. –  rve Aug 11 '11 at 5:16

Perhaps you might take a look at http://ubuntuforums.org/archive/index.php/t-812307.html There seems to be a way to do this using the "alarm" feature.

share|improve this answer
up vote 0 down vote accepted

I found a way which works for me.

As soon as I unlock the screen the task list of evolution is shown.

I used a small Python script to do this:

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()

The script is run in the background when I login.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.