One thing I love about xfce (I tend to use UbuntuStudio on most of my machines) is the ability to assign arbitrary keystrokes to commands in the desktop preferences. I thus use the Windows key (call it Meta if you like, but I am too used to calling it Windows, especially since it has a Windows logo on) so that Win-W launches my default word processor, and then if necessary modifiers like shift and ctrl will launch an alternative word processor. Win-T launches the terminal, Win-G does gimp, Win-Shift-G does krita, Win-E does the file manager (having got used to this one on Windows), Win-K does kodi, and so on.
Rather than rely on some dodgy AI to figure out what I want, give the user an easy way to teach it what you want, so that one can easily teach the user how to train the computer to respond. The idea that a few software engineers in a country a few thousand miles away can anticipate how I would want to use the computer is just silly, but that is what Apple, M$, and many desktop environments effectively do.
This hotkey arrangement means that I can go from off to word processor in three touches (power button, which boots to desktop*, Win-W) and about ten seconds. With windows 8, already booted and logged in, it usually takes me longer than that, and many more touches, to get a working word processor. Likewise for other common apps (Win-B does Firefox, Win-Shift-B does Chromium)..
One thing I dislike about how things are on my Linux boxes at present is a kind of 'fragmentation' in the sense that only certain bits of my environment can be directly controlled from the command line, and the command line is limited compared to a language such as Python. I would personally take the idea of sending messages in a command language that would, in practice, resemble a simplistic Lisp, as a core of all applications. UI events like changing font in a word processor or changing colour in a paint program would resolve to commands sent to a mailbox in the app somewhere. This would make the MVC paradigm much more explicit, and I would have the ability to 'log in' to a command processor built into every program (essentially stick such things into the runtime -- look at F-Script anywhere on Mac Os X for an idea about what I am describing).
In particular, if I can conceive of a simple task for, say, my word processor, I would like there to be an easy method to tell it to do this. I am a big fan of the idea of pervasive scriptability, But that does require more thought about the nature of the scripting languages: you want something data-structure based (like Lisp) that is easy to compose programmatically (so that any old scripting language can compose a script for this pervasive scripting language) and easy to pass between processes, whether local or remote (so that a script can throw a complex request to a process somewhere else to handle).
*and I take care to use encrypted containers for anything that I don't want someone with physical access to my machine to get at.