Screen independent workspaces

Is there a way to have workspaces on a per-screen basis? I have 3 displays and on each display I'd like 5 workspaces. Right now my 10 workspaces are shared across all screens, and I'm pretty sure this is the default behaviour. (I'm fairly new to XMonad.) I'm probably going against the grain of XMonad users, but this approach fits me better.

On Wed, Dec 23, 2009 at 10:33:41AM -0600, Douglas K. Rand wrote:
Is there a way to have workspaces on a per-screen basis? I have 3 displays and on each display I'd like 5 workspaces. Right now my 10 workspaces are shared across all screens, and I'm pretty sure this is the default behaviour. (I'm fairly new to XMonad.) I'm probably going against the grain of XMonad users, but this approach fits me better.
Try the XMonad.Layout.IndependentScreens contrib module, which IIUC provides the functionality you're looking for. -Brent

Doug> Is there a way to have workspaces on a per-screen basis? Brent> Try the XMonad.Layout.IndependentScreens contrib module, which Brent> IIUC provides the functionality you're looking for. {blush} Sure looks like thats the trick. Not sure how I missed that when I was looking for other layout modules last week. Thanks for the help, I'll try this tonight.

On Wed, Dec 23, 2009 at 11:41:20AM -0600, Douglas K. Rand wrote:
Doug> Is there a way to have workspaces on a per-screen basis?
Brent> Try the XMonad.Layout.IndependentScreens contrib module, which Brent> IIUC provides the functionality you're looking for.
{blush} Sure looks like thats the trick. Not sure how I missed that when I was looking for other layout modules last week.
That's OK, there sure are a lot of contrib modules; it's easy to miss the one or two or three that particularly do what you want! -Brent

Doug> Is there a way to have workspaces on a per-screen basis? Brent> Try the XMonad.Layout.IndependentScreens contrib module, which Brent> IIUC provides the functionality you're looking for. I just got that going, and after a bit of work on the key mappings it is doing workspaces per screen, thanks bunches for the help. Now (you just knew there was more, didn't you) I was wondering if anybody could help me get Actions.CycleWS to work with Layout.IndependentScreens? I'm sure there is some magic to this, but I don't have it yet. Here are my current keybindings: keyBindings spawn conf = let m = modMask conf in fromList $ [ ((m .|. shiftMask, xK_z), spawn "xscreensaver-command -lock"), ((m, xK_Right), nextWS), ((m, xK_Left), prevWS), ((m .|. shiftMask, xK_Right), shiftToNext), ((m .|. shiftMask, xK_Left), shiftToPrev), ((m .|. controlMask, xK_Right), nextScreen), ((m .|. controlMask, xK_Left), prevScreen), ((m .|. shiftMask, xK_Up), shiftNextScreen), ((m .|. shiftMask, xK_Down), shiftPrevScreen), ((m, xK_z), toggleWS) ] ++ [ ((m .|. e .|. i , key ), windows (onCurrentScreen f workspace)) | (key, workspace) <- zip [xK_1..xK_9] (workspaces' conf) , (e, f) <- [(0, view), (shiftMask, viewShift)] , i <- [0, controlMask, mod1Mask, controlMask .|. mod1Mask] ] And mod-1 switches workspaces on a physical screen, but mod-Right still re-shuffles the workspaces on different screens. Clearly I need to make those nextWS and prevWS lines look like the xK_1 lines, but I simply cribbed the last 6 lines of that function from somebody else's config.
participants (2)
-
Brent Yorgey
-
Douglas K. Rand