Switch screens less often?

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. * 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. * I would like to retain the behavior of Mod-w, Mod-e, Mod-r switching screens. Kai

On Wed, May 09, 2007 at 11:32:44AM +0200, Kai Grossjohann wrote:
* 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.
I agree, this is entirely consistent with the philosophy of RotView (which is to only rotate through "interesting" workspaces, and one that you can already see isn't "interesting"). I only have one screen myself, so it hasn't been an issue for me. -- David Roundy http://www.darcs.net

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

Jason Creighton
On Wed, May 09, 2007 at 11:32:44AM +0200, Kai Grossjohann wrote:
* 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.
Thanks a lot. Kai

Kai Grossjohann
* 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've thought about this, and perhaps another useful idea is for a workspace to have a "preferred" screen. For example, for me workspace 1 contains the web browser and OpenOffice, and I would like these programs to display on the laptop's internal display. So hitting Mod-1 should first go to the laptop screen, then display workspace 1 there. Of course, there should be a way to override this, so that any workspace can be displayed on any screen! Perhaps a "move this workspace to the next screen" command, or "display workspace N on the current screen". Then comes the question how to specify which screen is the preferred one for any given workspace. Perhaps the preferred screen could be the screen that last displayed the workspace. I realize that this sounds complex. I'm not sure how it would pan out in actual use. I imagine, though, that it would match my working habits quite nicely. Does it match your working habits, too? In other words, do you have workspaces that sometimes display on one screen, sometimes on another, or do you tend to display the same workspace always on the same screen? Kai
participants (3)
-
David Roundy
-
Jason Creighton
-
Kai Grossjohann