Some things always feel uncomfortable about my desktop usage, even when I change solutions - KDE, GNOME, XFCE, all the way down to evilwm and beyond, to the console. I want to pin these problems down, in order to address them. First I want to focus on network lag.

Take email as an example. One of the biggest changes I made to my use of email a few years ago was to store all my email on an IMAP server, so that I can access it from any computer I happen to be using. This has obvious advantages - I have an archive going back years, can do spam filtering and classification in one place, and so on. It does mean performance can suffer, and I'm dependent on a net connection to read my old email. Compare how git changes how you can work with source code, both through its speed and through being able to commit while offline.

Once upon a time, when bandwidth was more limited, every computer had its own mail server, and all mail applications would read a user's mbox mail spool. That was a much better idea, and probably still is - with the exception that I want to take a copy rather than transfer all my email. After all, networks are now fast, and disk space is cheap. Thinking aloud, perhaps I want to run a local mail server on all my machines (so that everything can use a sendmail interface to send email), and then have a standard mail store which will be kept in sync with remote sites. (Bi-directionally, perhaps, for sent mail.)

With a single local mail cache, multiple applications will be able to take advantage of the one store. Individual client applications will be freed from the chore of checking IMAP servers for updates, which can be run automatically in the background by a single process when online. Planning ahead for multiple clients allows views of the mail store to be integrated anywhere in the desktop without requiring more than one mail cache (or lots of IMAP traffic). A similar centralising of network resources can be seen in Telepathy, although I haven't seen a centralized conversation logger.

The 'Online Desktop' idea is bigger than just the web, and it would be sensible to plan more standardized (cross-desktop) centralization of network caches for similar applications. I want to be able still to use my desktop while offline, and avoid perceived network lag while online.