(Note: this is adapted from an assignment I had to do for an Informatics class)
I've had an idea mulling around in my head for a long time about how to get my productivity up, considering how much time I waste on the computer. Several window managers/desktop environments on Linux come with "kiosk settings" (e.g., Xfce, KDE) or "lockdown editors" (e.g., Pessulus for GNOME), where one can set up an account that limits the access to certain programs and certain functionality. My idea is to extend that system so that there is a mode where a person can lock down their desktop until a certain task has been completed.
For instance, say that I am writing an essay, so I activate the lockdown daemon and select "finish (word processing) document" in the "tasks to complete" list. A tab would be added to the dialog that contains details about the document task, e.g., how long should the essay be, what font, margins, etc. When the lockdown is complete, I will only have access to the word processor(s) installed on my computer, the folder specifically designated for word processing documents, and perhaps a remote (e.g., SFTP) folder for document backup.
Because of the way the freedesktop.org menu standard is set up, it should be trivial to create groups of applications, such as word processors. It should also be trivial to set up the firewall so that one can only access a certain remote server containing the aforementioned backup directory.
The non-trivial parts are more interesting. I am not sure how one could restrict loading programs on the fly, or even restrict sections of the hard disk dynamically without affecting other users who may be logged on to the machine concurrently. Also, there needs to be a way for all of these applications to talk to each other (or at least the daemon) so that the daemon knows if the goal has been met or not. The D-BUS technology, when it reaches 1.0 status, looks very promising for this task.