mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 03:20:21 -07:00
What to see a real Haddock abuse? Here you go. Removed Documentation.hs and added a new name space: XMonad.Doc. By importing other documentation modules we may also use the synopsis in XMonad.Doc. If you believe that we should not have modules without code, well this code is not for you: just that strange -- stuff ...;)
148 lines
3.0 KiB
Haskell
148 lines
3.0 KiB
Haskell
-----------------------------------------------------------------------------
|
|
-- |
|
|
-- 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).
|
|
|
|
-}
|