When is a configurable user task scheduler for modern Gnome environments. It interacts with the user through a GUI, where the user can define tasks and conditions, as well as relationships of causality that bind conditions to tasks.
The purpose of this small utility is to provide the user, possibly without administrative credentials, the ability to define conditions that do not only depend on time, but also on particular states of the session, result of commands run in a shell or other events that may occur while the system is being used. The scheduler runs in the background, and displays an indicator applet icon for user interaction.
It is not generally intended as a replacement to cron and the Gnome Task Scheduler, although to some extent these utilities might overlap. When is intended to be more flexible, although less precise, and to provide an alternative to more complicated solutions -- such as the implementation of cron jobs that check for a particular condition and execute commands when the condition is verified. In such spirit, When is not as fine-grained in terms of doing things on a strict time schedule: the When approach is that "when a certain condition is met, then something has to be done". The condition is checked periodically, and the countermeasure is taken subsequently in a relaxed fashion, which means that it might not occur immediately in most cases.
Besides manual installation from source as explained in the documentation, packages suitable for Ubuntu can be found in the releases page. A PPA for Ubuntu is also available: to install from the PPA and get automatic updates, the following commands can be used from a terminal window:
$ sudo add-apt-repository ppa:franzg/when-command $ sudo apt-get update $ sudo apt-get install when-command
If the PPA is used, When can be started from the Dash immediately: once started, it can be configured for autostart using the Settings dialog box.
Besides being fully configurable and accessible from both the command line interface and the graphical user interface, an alternate and more streamlined GUI for When is being actively developed: the When Wizard suite can be used to create actions in When in a possibly easier way.
Open Source Software relies on collaboration, and I'm more than happy to receive help from other developers. Here I'll list the main contributions.
- Adolfo Jayme-Barrientos, aka fitojb, for the Spanish translation
Also, I'd like to thank everyone who contributes to the development of When by commenting, filing bugs, suggesting features and testing. Every kind of help is welcome.
The top panel icons and the emblems used in the application were selected within Google's Material Design icon collection.
The resources that I have found particularly useful in the development of When are:
- Python 3.x Documentation
- PyGTK 3.x Tutorial
- PyGTK 2.x Documentation
- PyGObject Documentation
- GTK 3.0 Documentation
- DBus Documentation
- pyinotify Documentation
The guidelines specified in UnityLaunchersAndDesktopFiles have been roughly followed to create the launcher from within the application.
Many hints taken on StackOverflow and the like.