[xmonad] automatically generating template xmonad.hs if it doesn't exist

gwern0 at gmail.com gwern0 at gmail.com
Sun Jan 6 21:18:42 EST 2008

On 2008.01.04 18:39:22 -0500, David Roundy <daveroundy at gmail.com> scribbled 0.7K characters:
> On Jan 4, 2008 5:18 PM,  <gwern0 at gmail.com> wrote:
> > # Does it *have* to be mod1Mask? It makes more sense to steal Alt than Ctrl, I'll grant, but stealing the useless Windows is even better since even fewer apps use that; I notice that there are at least 4 or 5 configs on the wiki which change mod1Mask to mod4Mask.
> As pointed out, it really does.  Most users will be disappointed when
> they find that they are unable to exit a new window manager without
> either killing it externally or killing X windows itself.
> I would, however, suggest considering a reduction in the number of
> default key bindings.  But then again, key bindings do seem to be the
> one feature of any application that very few users can agree on.
> David

Which ones would you suggest?

I can think of some possibilities:

    , ((modMask,               xK_p     ), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"") -- %! Launch dmenu
    , ((modMask .|. shiftMask, xK_p     ), spawn "gmrun") -- %! Launch gmrun

Why should we include bindings by default for these two launchers - off the top of my head, I know of ShellPrompt in XMC, and I'm sure I could find more if I looked (don't the status bars like Dzen or Xmobar incorporate similar functionality?). The selection strikes me as arbitrary and outdated, as well as kind of odd: should the default bindings have such dependencies?

    , ((modMask,               xK_n     ), refresh) -- %! Resize viewed windows to the correct size

This would be more sensible to bind to something like 'next' (which I guess would be focusDown?); you might say it's a duplicate, but there already are 2 bindings to focusDown. And how often does one need to manually refresh? We recommend using a good terminal emulator like urxvt, so that's that, and I can't think of any others that'd benefit. Does anyone actually use this often? Then it might be better to add refresh to a hook.

    -- toggle the status bar gap
    , ((modMask              , xK_b     ), modifyGap (λi n → let x = (XMonad.defaultGaps conf ++ repeat (0,0,0,0)) !! i in if n == x then (0,\
0,0,0) else x)) -- %! Toggle the status bar gap

I'm not too sure about this one. If you're using an uncustomized totally standard XMonad, are you also going to be using a status bar? More to the point, would you be using a statusbar *and* also be wanting to toggle on/off the status bar? (Which is what this does if I understand it.)

GSM Submarine E. 510 ddnp building y friends RDI JCET
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.haskell.org/pipermail/xmonad/attachments/20080106/40a15afb/attachment.bin

More information about the xmonad mailing list