[xmonad] stupid newbie question about `removeKeysP`

Jonas Bygdén jonaslistor at gmail.com
Wed May 5 16:40:29 EDT 2010


Thanks Anders,

I've been staring myself blind at that very example that you included here
from the docs and couldn't understand what I did wrong - until you told me
the $ was missing.

Thanks again.

2010/5/5 Anders Engström <ankaan at gmail.com>

> Actually, you don't need "do". Since xmonad with argument applied
> becomes IO () and main is IO (). When you only have one statement
> after do, it is an identity operation.
>
> Actually, I cheated and looked at the docs which had this example:
>  main = xmonad $ defaultConfig { terminal = "urxvt" }
>                 `removeKeysP` ["M-S-" ++ [n] | n <- ['1'..'9']]
>
> On Wed, May 5, 2010 at 22:12, Patrick Brisbin <pbrisbin at gmail.com> wrote:
> > On 05/05/10 at 10:04pm, Anders Engström wrote:
> >> Try this (untested code, note the '$'):
> >> main = xmonad $ gnomeConfig
> >>         {terminal       = "urxvtcd"
> >>         }
> >>         `removeKeysP` ["M-b","M-."]
> >>
> >> Which is equivalent to, or a shorthand for:
> >> main = xmonad (gnomeConfig
> >>         {terminal       = "urxvtcd"
> >>         }
> >>         `removeKeysP` ["M-b","M-."])
> >>
> >>
> >> `removeKeysP` is in your code applied to the arguments:
> >> arg1: xmonad gnomeConfig {terminal       = "urxvtcd"}
> >> arg2: ["M-b","M-."]
> >>
> >> Hope that helps.
> >> /Anders
> >>
> >> On Wed, May 5, 2010 at 21:37, Jonas Bygdén <jonaslistor at gmail.com>
> wrote:
> >> > Hi,
> >> > I'm slowly going nuts here.
> >> > This is my complete xmonad.hs file:
> >> > -------------------------------------------
> >> > import XMonad
> >> > import XMonad.Config.Gnome
> >> > import XMonad.Util.EZConfig
> >> > main = xmonad gnomeConfig
> >> >         {terminal       = "urxvtcd"
> >> >         }
> >> >         `removeKeysP` ["M-b","M-."]
> >> > -------------------------------------------
> >> > And when I try to use it I get these errors:
> >> > -------------------------------------------
> >> > xmonad.hs:5:7:
> >> >     Couldn't match expected type `XConfig l'
> >> >            against inferred type `IO ()'
> >> >     In the first argument of `removeKeysP', namely
> >> >         `xmonad (gnomeConfig {terminal = "urxvtcd"})'
> >> >     In the expression:
> >> >           xmonad (gnomeConfig {terminal = "urxvtcd"})
> >> >         `removeKeysP`
> >> >           ["M-b", "M-."]
> >> >     In the definition of `main':
> >> >         main = xmonad (gnomeConfig {terminal = "urxvtcd"})
> >> >              `removeKeysP`
> >> >                ["M-b", "M-."]
> >> > Please check the file for errors.
> >> > -------------------------------------------
> >> > Where have I gone wrong?
> >> > /Jonas
> >> > _______________________________________________
> >> > xmonad mailing list
> >> > xmonad at haskell.org
> >> > http://www.haskell.org/mailman/listinfo/xmonad
> >> >
> >> >
> >> _______________________________________________
> >> xmonad mailing list
> >> xmonad at haskell.org
> >> http://www.haskell.org/mailman/listinfo/xmonad
> >
> > Don't you still need a 'do' somewhere in there?
> >
> >  main = do
> >    xmonad $ gnomeConfig
> >    { terminal = "urxvtcd"
> >    }
> >    `removeKeysP` ["M-b", "M-."]
> >
> > should compile.
> >
> > I think all on one line looks more readable though:
> >
> >  main = do
> >    xmonad $ gnomeConfig { terminal = "urxvtcd" } `removeKeysP` ["M-b",
> "M-."]
> >
> >
> > Apologies if this doesn't work, I haven't compiled it myself.
> >
> > --
> > patrick brisbin
> > _______________________________________________
> > xmonad mailing list
> > xmonad at haskell.org
> > http://www.haskell.org/mailman/listinfo/xmonad
> >
> _______________________________________________
> xmonad mailing list
> xmonad at haskell.org
> http://www.haskell.org/mailman/listinfo/xmonad
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/xmonad/attachments/20100505/5be44120/attachment.html


More information about the xmonad mailing list