[xmonad] darcs patch: XMonad.Config.Prime, a do-notation for config
Devin Mullins
me at twifkak.com
Wed Mar 13 10:10:19 CET 2013
On Wed, Mar 13, 2013 at 12:26:47AM -0400, adam vogt wrote:
> since we
> aren't likely to change the type of defaultConfig anytime soon it's
> fine as-is.
Yeah, that's what I was thinking, too. I got rid of the TODO.
> Some configs use do notation for IO in main before calling xmonad, or
> possibly for sequencing multiple X actions that are supposed to happen
> with a single keybinding. Enabling -XRebindableSyntax looks like it
> would force people to use a qualified name like Prelude.>>=, or put
> the definitions in separate modules. The second option is not
> necessarily a bad thing.
>
> Maybe it's possible to write a class with a >>= and >> that can work
> with IO or Prime, but that probably will make type errors even worse.
Okay, I'll look into making such a class. If it doesn't make type errors
even worse, it may challenge my type-fu, but I suppose that's a small
price to pay.
As a consolation, the definitions don't need to be in a separate module.
This works:
import qualified Prelude as P
stuff :: IO ()
stuff = do spawn "xmessage hi"
spawn "xmessage again"
where (>>) = (P.>>)
Also, FWIW, I got rid of the data-accessor dependency. On the way to
making (=+) polymorph with the name of the attribute rather than its
type (so I could support (=+) for the new EventMask fields and for
'keys' without running up against instance overlap), I had reimplemented
the parts of it that this module uses.
New patch attached, and new docs at:
http://twifkak.com/xmonad-junk/XMonad-Config-Prime3.html
Devin
7 patches for repository http://code.haskell.org/XMonadContrib:
Mon Mar 11 02:46:17 PDT 2013 me at twifkak.com
* XMonad.Config.Prime, a do-notation for config
Note that the use of RebindableSyntax is because of the need to vary the
layoutHook type throughout the config. The alternative, using the existen=
tial
Layout type, was rejected because it required TemplateHaskell in order to=
look
nice, and TemplateHaskell is not portable.
Tue Mar 12 03:36:06 PDT 2013 me at twifkak.com
* X.C.Prime: add support for the 3 newest fields
Add support for clickJustFocuses, clientMask, and rootMask. Got rid of th=
e
ill-behaved Summable class. It may return pending a reworking of the acce=
ssors.
Wed Mar 13 00:38:18 PDT 2013 me at twifkak.com
* X.C.Prime: reintroduce Summable class (and friends)
This time it's a bit more structural, so it no longer misbehaves. Switche=
d
'addKeys' to 'keys =3D+', etc.
Wed Mar 13 00:41:13 PDT 2013 me at twifkak.com
* X.C.Prime: add startWith (e.g. for gnomeConfig)
Wed Mar 13 00:50:43 PDT 2013 me at twifkak.com
* X.C.Prime: add 'applyIO' for some future flexibility
Wed Mar 13 01:15:29 PDT 2013 me at twifkak.com
* X.C.Prime: get rid of the data-accessor dependency
The previous patch nearly obviated the library. This one does so complete=
ly.
Wed Mar 13 01:48:50 PDT 2013 me at twifkak.com
* X.C.Prime: fix haddock errors
--
Take the time to do it right, otherwise you
will have to take the time to do it over.
Lucky Numbers 14, 27, 34, 5, 38, 9
LEARN CHINESE - Gift
Li-wu 礼物
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-preview.txt
Type: text/x-darcs-patch
Size: 54407 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/xmonad/attachments/20130313/7f35e870/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xmonad_config_prime_-a-do_notation-for-config.dpatch
Type: application/x-darcs-patch
Size: 58452 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/xmonad/attachments/20130313/7f35e870/attachment-0003.bin>
More information about the xmonad
mailing list