Fluxbox and temporary virtual desktop: a proposal for a new workflow
I've been a fluxbox user almost since the beginning, then I had a period where
I tried other WMs but after 10 months I'm back to square one, there's just
nothing better. Along the years I've made several customizations to my desktop
environment in order to improve my work flow, and some things made such a huge
difference you wouldn't believe it. Being a system administrator the 90% of the
applications sitting on my desktop are terminals, and I got to a point where I
just got too many of them, but cant really do with less.
I've tried to rethink the way I'm working, reusing xterms rather than opening
new ones, creating new virtual desktops to divide terms on local machines to
remote ones, and so on, to no avail. But the key is there, task separation,
which incidentally implies grouping. I used fluxbox's grouping in the past, but
that's more tabbing than logically grouping windows; and I find it awkward as
I'm not able to see output from more than a window at the same time, and I'm
commonly tailing logs on some host and editing something else on another.
Nonetheless I didn't want to abandon this idea of grouping, it seemed right,
it's just the grouping that should been implemented otherwise. After all,
illusion of multitasking aside, you always work on a task at time, and that's
your group, whatever it involves. I spent (should say waste really) an insane
amount of time thinking about volatile sessions and all kind of structures
until I went ranting about it on #fluxbox. In 2 sentences Ak|ra showed me how
what I wanted could be implemented with simple virtual desktops, brilliant! I
guess I was so used to the idea of partitioning my WM into several static
vdesktops (main, email, web, local, remote) that I missed their flexibility.
The problem
Summarizing what I've been saying so far, the problem is dealing with a very large number of windows, which especially in the case of terminals can look all the same making it hard to locate/browse to the right one.
The solution
The solution is to logically group windows, which is quite different than tabs/grouping. As suggested the best way to do it is with virtual desktops, but then a problem of too many desktops arises, with inherited growing number of shortcuts and what-is-what issues. I cant see much of a point to end up with like 20 empty vdesktops or tons of unused windows (if you decide to restore stuff on each of them, ready to go). What I do like is the idea of temporary desktops in addition to a few standard ones, so you can keep your well known apps (email, irc, web) separated, and then have a dynamic work pool.
Current situation/limitations
Proposed implementation
Add WS should be keyable. It should pop a dialog where you can input the name of the desktop or assign it a random one (and not leave it blank as currently doing). Basic/static WSs are setup via config files, so what you're likely to add on the fly are dynamic ones, hence order doesn't really matter so they can just be appended at the end.Delete should be completely rewritten as it makes no sense to delete the last WS. Without adding to much complexity to support parameters like name or number, deleting current looks like the best option.
Rename is alright , it just needs to be keyable.
Moving through the workspaces is the big thing, but considering what's in 1.0rc3 (typeahead support to menus) it shouldn't be too much work. Because that's the winning way to do it: if you have a long list of items there's no way out, the best thing to do is reduce that list, and typeahead is the right choice. So ideally you can bring up a list of workspaces (obviously function should be keyable) and then type a few chars and use arrows to select what you want. That should be enough to reach any desktop within 4 keystrokes, no matter how many you've got (unless you use very silly names).