[Xmonad] Switch screens less often?

Jason Creighton jcreigh at gmail.com
Wed May 9 21:41:35 EDT 2007


On Wed, May 09, 2007 at 11:32:44AM +0200, Kai Grossjohann wrote:
> I find that xmonad switches screens too often for my taste.  So I
> would like to try out new behavior.  Has anyone implemented it
> already?  If not, then I'd try to give it a go, but I don't know any
> Haskell...
> 
> Specifically:
> 
> * Currently, Mod-1 and friends may switch screens if that workspace is
>   already visible on another screen.
> 
>   I would like to make them beep instead, and not change workspaces.

I don't think anybody has implemented this. I don't see why you'd want
to, but if you want this behavior, probably the easiest way to go about
it would be to write a wrapper around "view" that checks if the
workspace you're switching to is already visible and beeps (or whatever)
if it is. Something like: (completely untested)

myview :: WorkspaceId -> X ()
myview n = do
    ws <- gets workspace
    if n `elem` W.visibleWorkspaces ws
        then -- beep somehow
        else view n

...and then change your mod-[1..9] bindings to use "myview" instead of
"view"

> * Currently, RotView switches screens when the next workspace in line
>   is on another screen.
> 
>   I would like to make it skip such workspaces.
>   
>   Example: Say I am on screen 0, showing workspace 1.  Screen 1 shows
>   workspace 3.  Then rotating to the right should show workspace 2,
>   then workspace 4, skipping workspace 3.

Good idea! I sent a patch to do this...it should show up in
XMonadContrib shortly.
 
> * I would like to retain the behavior of Mod-w, Mod-e, Mod-r switching
>   screens.

That should be easy. :)

Jason Creighton


More information about the Xmonad mailing list