
Great! Now that there's some code to critique, I can help a bit. =)
To fix the scoping errors:
import qualified Data.Map as M
import qualified XMonad.StackSet as W
You'll also want to make these changes:
On the line defining myKeys, make sure you keep the keys from the
default configuration:
myKeys conf@(...as before...) = keys defaultConfig `M.union` M.fromList
[ ...as before... ]
Also, as mentioned in the documentation, you'll want to use
workspaces' instead of XMonad.workspaces when defining your
keybindings, so change that line to:
| (i, k) <- zip (workspaces' conf) [xK_1 .. xK_9]
Additionally, I expect that IndependentScreens is mostly useless if
you have only one screen. I don't know how many screens you do have,
but assuming it's two, the line inside of main should look like this:
, workspaces = withScreens 2 ["Monitor", "Work"]
If you have three screens, change the 2 to 3, etc. Finally, you have
to make sure to inform xmonad of your custom bindings in myKeys, so
add a line right after that like this:
, keys = myKeys
Good luck! Let us know how it goes after these changes.
~d
Quoting Ola Karlsson
Hi Linux..
Thx for answering my newbie questions.. Haskell is something brand new and strange to me so am just hacking around at random in the config.hs with little luck..
Did read the usage part and ended up with this config...
import XMonad import XMonad.Config.Gnome import XMonad.Layout.IndependentScreens myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
-- ++ [ ((m .|. modMask, k ), windows $ f i) | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9] , (f,m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
main = xmonad gnomeConfig { terminal = "urxvt -rv +sb" , modMask = mod4Mask , workspaces = withScreens 1 ["Monitor" , "Work"] }
With this I end up with
xmonad.hs:5:51: Not in scope: `M.fromList'
xmonad.hs:10:15: Not in scope: `W.greedyView'
xmonad.hs:10:34: Not in scope: `W.shift'
And am stuck.. :(
/Ola
On Thu, Apr 7, 2011 at 3:09 PM, Linus Arver
wrote: Have one problem though , Multiple Screens , can't wrap my head around how xmonad handles that default and want to go for the way I'm used to have it work with separate workspaces for each screen..
In Xmonad, there are N workspaces (you can define as many as you like). Most people have 9 of them, because that's the default config. I personally have 22 workspaces (hotkeyed to modm + 1-9, F1-F12). Each workspace can have N windows in it. Anyway, each screen (monitor) can view any 1 workspace at a time. That's all there's to it...
Found the IndependentScreens thing in the documentation but can't figure out how to get it in the configuration so needs some help..
The "Usage" section at
http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Layout-IndependentScreen... seems to have everything you're looking for. After editing your xmonad.hs, just run "ghci" on it: ghci xmonad.hs. If you get any errors, then your config is messed up.
Could someone give me a working example of a Gnome enables xmonad config that uses IndependentScreens?
A quick google search got me this: http://www.haskell.org/pipermail/xmonad/2009-December/009466.html Maybe you should ask the user there about it...
Personally though, I'd just stick with the default. There are lots of neat contrib modules out there (e.g., CycleWS) that rely on the default setup (1 set of workspaces). You'd have to hack all of those modules to get them working with your IndependentScreens setup.
-Linus