
I'm attempting to ease into using xmonad by using the gnome integration. I have a dual monitor setup and I want to turn greedy views off and have each screen have its own set of workspaces, so if I'm on the main monitor, it has its own workspace 1-9 and the same for the second screen. starting from various faqs, I came up with this: import XMonad import XMonad.Config.Gnome import XMonad.Layout.NoBorders import qualified XMonad.StackSet as W import XMonad.Util.EZConfig (additionalKeys) import XMonad.Layout.IndependentScreens main = do xmonad $ gnomeConfig { workspaces = withScreens 2 ["1", "2", "3", "4", "5", "6", "7", "8", "9"] , modMask = mod4Mask , terminal = "gnome-terminal" , layoutHook = smartBorders (layoutHook gnomeConfig) } `additionalKeys` myKeys myKeys = [ -- rebind meta-p to dmenu ((mod4Mask, xK_p), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"") ] ++ [ ((m .|. mod4Mask, k), windows $ onCurrentScreen f i) | (i, k) <- zip (workspaces' conf) [xK_1 .. xK_9] , (f, m) <- [(W.view, 0), (W.shift, shiftMask)] ] but conf on this line isn't in scope: | (i, k) <- zip (workspaces' conf) [xK_1 .. xK_9] gnomeConfig is in scope but that doesn't seem to make a difference and it kills the rebind for dmenu. pointers greatly appreciated.