[xmonad] Delays in focus update...

Allen S. Rout asr at ufl.edu
Tue Feb 7 19:23:54 CET 2012

On 02/06/2012 05:21 PM, Philipp Haselwarter wrote:
> completely skipping on your question, but you just got me curious --
> what kind of task do you work on that allows/requires you to use four
> monitors?

Heh!  Well, I'm GLAD YOU ASKED. :)

Gives me an opportunity to expound on my WM history and thinking.

--- What I'm doing now.

All my screens are set up portrait.  My leftmost screen usually holds 
email or IM panels.   My rightmost screen usually holds a web browser. 
My two center screens hold whatever project I'm working on, and I tend 
to think of the project screens in pairs.

So right this instant, my left-center screen is  an org-mode emacs 
buffer with a data-collection status report I just updated.  I've also 
got two shells in it, mostly squooshed to the bottom, with an R session 
that helps me develop the analytics that go in the report, and a random 
shell in that report directory so I can e.g. run data-collection sripts.

The right-center is full-screen of an evince window, which is displaying 
the output of the most recent build of the report.

Here's a picture, if anyone cares.


These days I'm optimizing by identifying visual work patterns, and 
making it easier to set them up quickly.  So I've got a keystroke bound 
to "basic TSM monitoring" (I manage some backup infrastructure)  and one 
to "Document project 1", etc.

, ((modm .|. shiftMask, xK_s ), do { windows (viewOnScreen 0 "tsmmon" ) 
 >> windows (viewOnScreen 1 "tsmsess" ) } )

, ((modm .|. controlMask, xK_1 ), do { windows (viewOnScreen 0 "doc1e" ) 
 >> windows (viewOnScreen 1 "doc1d" ) } )

and 25 workspaces at the moment.  Added four last week. :)

My eventual goal is to roll up the variety of display patterns I've 
defined, and express them in a data structure.  Once that's done, I can 
gridSelect any of them, and reserve the keystrokes for the really common 

--- History

I've been fiddling with X since the late 80s, and have messed with a 
variety of virtual-desktop memes;  I used twm, vtwm, tvtwm and 
eventually settled on ctwm.   Before ctwm, all of the virtual desktop 
schemes had some or another geometric idiom behind them. Windows were 
placed either according to a big root desktop you scrolled around on, or 
relative to your viewport.

CTWM, on the other hand had 'workspaces', which are mostly analogous to 
xmonad workspaces, though different in detail and implementation.    You 
named a family of workspaces, and then had 'occupation' directives which 
told you which X clients would be mapped when which workspaces were active.

For years, I was happy with three X screens (e.g. .0, .1, .2).  The one 
on the left was my 'commo' screen, and had (on different workspaces) 
various mail interfaces and IM clients.  The one on the right was my 
'web' screen, and had a variety of browsers (on different workspaces).

In the center I had two TwinView-joined screens, as .0, and that was 
where my projects lived. I had 20 workspaces defined at the time I left 
that config.

I actually peaked at 6 displays:  I put our monitoring system on one of 
them, but couldn't figure out a rational use for screen 6.  A co-worker 
suggested that, since it occluded my window, I could put a webcam out 
the window and display that as screen 6. :P   If I were doing it again, 
screen 6 would be for my 'remote desktop' uses.

- Allen S. Rout

More information about the xmonad mailing list