My current programming workflow is to:

1. Start up two terminal sessions in the same folder
2. source bin/activate (if using a virtualenv)
3. hg stat; cat todo.txt; make tests; to try to find out where I left off
4. load a couple files
5. make code changes
6. run tests again
7. hg commit

I'd like oasis to automate this process some but to stay flexible for different flows.

The first feature I see that could help with this is to have "saved sessions".
A session would record:
1. The tools that are open
2. The layout
3. the state in each tool

Each tool needs *serializeState* and *deserializeState* to save the current state to
disk.

Then I need to implement *savestate* and *loadstate* commands. These would be global
commands that operate on all open widgets to save the state.

The next feature might be some kind of *project report* that collects and formats the
data from hg stat, make tests, and collects TODO entries from source files.

Create project that sets up a folder structure (use configured), runs hg init, creates
a makefile, and virtualenv, would be cool too. But this is a rare things so maybe it's
not a high value feature.

An ASCII diagram editor that also outputs SVG.
https://textik.com
