[Xmonad] More user-friendly hook system
David Roundy
droundy at darcs.net
Wed Oct 10 14:04:38 EDT 2007
On Wed, Oct 10, 2007 at 04:04:36PM +0000, Joachim Breitner wrote:
> Hi,
>
> Am Mittwoch, den 10.10.2007, 11:56 -0400 schrieb David Roundy:
> > On Wed, Oct 10, 2007 at 10:48:52AM -0500, Spencer Janssen wrote:
> > > I think this would be very useful for contrib modules, put perhaps less easy
> > > to use for regular users. I'm going to delay discussion until after the 0.4
> > > (which should come later this week) release, to make sure we have time to
> > > find a nice design.
> >
> > Also, note that these proposals could all be implemented in a contrib
> > module as a function such as:
> >
> > combineHooks :: [... -> ... -> ...] -> ... -> ...
> >
> > so it's hard to see why we'd want to put this in the core (unless the core
> > wants it).
>
> We still would need the record definition in the core, as that is where
> hooks are called and where new hooks are added. And I think requiring
> the user to write
No, the core would remain unchanged, since the core API is unchanged, and
the record would be defined in Contrib. Why would you need to define a
record for your hook type in the core?
> > import XMonadContrib.CombineHooks
> >
> > xmonadHook = combineHooks [ .. ]
>
> instead of just
>
> > xmonadHooks = [ .. ]
>
> whenever they want to use more than one extension, just to safe half a
> line of code in all the places where hooks are called does not seem to
> be worth it.
I'm not convinced that there will be such a proliferation of hooks that
many users will ever do this. I suppose that's largely because I don't
yet use any myself, and haven't seen any reason to define any.
I'd rather see the core API only complicated when there's a feature that
can't be added without the complication (as happened with layouts) or when
it makes things much simpler (or is needed for a reasonable core
functionality, as with LayoutSelection).
I'd say that one line and a dozen characters added to the Config file is
well worth the ability to experiment freely, and allowing us to see and try
out code.
--
David Roundy
Department of Physics
Oregon State University
More information about the Xmonad
mailing list