blob: e23ce79932b8d7c88478265c2963d275c5ae838a (
plain) (
tree)
|
|
-----------------------------------------------------------------------------
-- |
-- Module : Documentation
-- Copyright : (C) 2007 Andrea Rossato
-- License : BSD3
--
-- Maintainer : andrea.rossato@unibz.it
-- Stability : unstable
-- Portability : portable
--
-- This module documents the xmonad internals.
--
-- It is intended for the advanced users who are curious about the
-- xmonad code and want an brief overview of it.
--
-- It may be useful also for those who would like to extend xmonad. If
-- you think your extension may be useful for other users too, you may
-- consider about releasing it.
--
-- Coding guidelines and licencing policies must be followed if you
-- want your code to be included in the official repositories.
--
-----------------------------------------------------------------------------
module XMonad.Doc.Developing
(
-- * Writing new extensions
-- $writing
-- * Libraries for writing window managers
-- $xmonad-libs
-- * xmonad internals
-- $internals
-- ** The @main@ entry point
-- $main
-- ** The X monad and the internal state
-- $internalState
-- ** Event handling and messages
-- $events
-- ** The 'LayoutClass'
-- $layoutClass
-- * Coding style
-- $style
-- * Licensing policy
-- $license
) where
--------------------------------------------------------------------------------
--
-- Writing Extensions
--
--------------------------------------------------------------------------------
{- $writing
Writing Other Extensions
-}
{- $xmonad-libs
xmonad and xmonad-contrib are just libraries for letting users write
their own window managers. This is what makes xmonad such a powerful
and still simple application.
Give some examples:
arossato_vm
droundy_wm
In the previous sections we show how simple it can be to write your
own window manager by using the core code (xmonad) and some of the
contributed code (xmonad-contrib).
In this section we will give you a brief overview of the programming
techniques that have been used in order to make writing new extensions
very simple.
-}
{- $internals
TODO
-}
{- $main
#The_main_entry_point#
TODO
-}
{- $internalState
TODO
-}
{- $events
TODO
-}
{- $layoutClass
#The_LayoutClass#
TODO
-}
{- $style
These are the coding guidelines for contributing to xmonad and the
xmonad contributed extensions.
* Comment every top level function (particularly exported funtions), and
provide a type signature.
* Use Haddock syntax in the comments.
* Follow the coding style of the other modules.
* Code should be compilable with -Wall -Werror. There should be no warnings.
* Partial functions should be avoided: the window manager should not
crash, so do not call 'error' or 'undefined'
* Tabs are /illegal/. Use 4 spaces for indenting.
* Any pure function added to the core should have QuickCheck properties
precisely defining its behaviour.
-}
{- $license
New modules should identify the author, and be submitted under the
same license as xmonad (BSD3 license or freer).
-}
|