Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > 16551e78563a5b49ff9624ee1c8b8101 > files > 753

ghc-xmonad-contrib-devel-0.11-1.1.fc18.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>XMonad.Config.Desktop</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_XMonad-Config-Desktop.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/XMonad-Config-Desktop.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">xmonad-contrib-0.11: Third party extensions for xmonad</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>unportable</td></tr><tr><th>Stability</th><td>unstable</td></tr><tr><th>Maintainer</th><td>Spencer Janssen &lt;spencerjanssen@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">XMonad.Config.Desktop</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Usage
</a></li><li><a href="#g:2">Customizing a desktop config
</a><ul><li><a href="#g:3">Modifying layouts, manageHook, or key bindings
</a></li><li><a href="#g:4">Modifying the logHook
</a></li><li><a href="#g:5">Modifying the handleEventHook
</a></li><li><a href="#g:6">Modifying the startupHook
</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides a config suitable for use with a desktop
 environment such as KDE or GNOME.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:desktopConfig">desktopConfig</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:XConfig">XConfig</a> (<a href="XMonad-Layout-LayoutModifier.html#t:ModifiedLayout">ModifiedLayout</a> <a href="XMonad-Hooks-ManageDocks.html#t:AvoidStruts">AvoidStruts</a> (<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Choose">Choose</a> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Tall">Tall</a> (<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Choose">Choose</a> (<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Mirror">Mirror</a> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Tall">Tall</a>) <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Full">Full</a>)))</li><li class="src short"><a href="#v:desktopLayoutModifiers">desktopLayoutModifiers</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:LayoutClass">LayoutClass</a> l a =&gt; l a -&gt; <a href="XMonad-Layout-LayoutModifier.html#t:ModifiedLayout">ModifiedLayout</a> <a href="XMonad-Hooks-ManageDocks.html#t:AvoidStruts">AvoidStruts</a> l a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="doc"><p>Several basic integration settings are common to all of xmonad's
 desktop integration configurations. The specific desktop environment
 (DE) modules like <a href="XMonad-Config-Gnome.html">XMonad.Config.Gnome</a> use this module's
 <code>desktopConfig</code> to set up basic communication between xmonad and
 the DE via a subset of the Extended Window Manager Hints (EWMH)
 specification. Extra xmonad settings unique to specific DE's are
 added by overriding or modifying <code>desktopConfig</code> fields in the
 same way that <code>defaultConfig</code> is customized in <code>~/.xmonad/xmonad.hs</code>.
</p><p>For more information about EWMH see:
</p><p><a href="http://standards.freedesktop.org/wm-spec/wm-spec-latest.html">http://standards.freedesktop.org/wm-spec/wm-spec-latest.html</a>
</p><p>See also: <a href="XMonad-Hooks-EwmhDesktops.html">XMonad.Hooks.EwmhDesktops</a>, <a href="XMonad-Hooks-ManageDocks.html">XMonad.Hooks.ManageDocks</a>,
 <a href="XMonad-Util-EZConfig.html">XMonad.Util.EZConfig</a>.
</p></div><h1 id="g:1">Usage
</h1><div class="doc"><p>While this document describes how to configure xmonad, you also need
 to set up your Desktop Environment (DE) and display manager to use
 xmonad as its window manager. For DE and distro specific tips on
 how to do so, see the xmonad wiki:
</p><p><a href="http://haskell.org/haskellwiki/Xmonad">http://haskell.org/haskellwiki/Xmonad</a>
</p><p>To configure xmonad for use with a DE or with DE tools like panels
 and pagers, in place of <code>defaultConfig</code> in your <code>~/.xmonad/xmonad.hs</code>,
 use <code>desktopConfig</code> or one of the other desktop configs from the
 <code>XMonad.Config</code> namespace. The following setup and customization examples
 work the same way for the other desktop configs as for <code>desktopConfig</code>.
 If you are using a specific DE config, import its module instead, and
 use its config in place of <code>desktopConfig</code> in the following examples.
</p><pre> import XMonad
 import XMonad.Config.Desktop

 main = xmonad desktopConfig
</pre><p><code>desktopConfig</code> is an <code><a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:XConfig">XConfig</a></code> that configures xmonad to
 ignore and leave room for dock type windows like panels and trays, adds
 the default key binding to toggle panel visibility, and activates basic
 EWMH support. It also sets a prettier root window mouse pointer.
</p></div><div class="top"><p class="src"><a name="v:desktopConfig" class="def">desktopConfig</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:XConfig">XConfig</a> (<a href="XMonad-Layout-LayoutModifier.html#t:ModifiedLayout">ModifiedLayout</a> <a href="XMonad-Hooks-ManageDocks.html#t:AvoidStruts">AvoidStruts</a> (<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Choose">Choose</a> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Tall">Tall</a> (<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Choose">Choose</a> (<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Mirror">Mirror</a> <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Tall">Tall</a>) <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Layout.html#t:Full">Full</a>)))<a href="src/XMonad-Config-Desktop.html#desktopConfig" class="link">Source</a></p></div><h1 id="g:2">Customizing a desktop config
</h1><div class="doc"><p>To customize a desktop config, modify its fields as is illustrated with
 <code>defaultConfig</code> in <a href="XMonad-Doc-Extending.html#Extending xmonad">XMonad.Doc.Extending</a>.
</p></div><h2 id="g:3">Modifying layouts, manageHook, or key bindings
</h2><div class="doc"><p>See also <a href="XMonad-Util-EZConfig.html">XMonad.Util.EZConfig</a> for more options for modifying key bindings.
 To add to layouts, manageHook or key bindings use something like the following
 to combine your modifications with the desktop config settings:
</p><pre> import XMonad
 import XMonad.Config.Desktop
 import XMonad.Layout.Tabbed
 import XMonad.Util.EZConfig (additionalKeys)

 main =
   xmonad $ desktopConfig {
     -- add manage hooks while still ignoring panels and using default manageHooks
       manageHook = myManageHook &lt;+&gt; manageHook desktopConfig

     -- add a fullscreen tabbed layout that does not avoid covering
     -- up desktop panels before the desktop layouts
     , layoutHook = simpleTabbed ||| layoutHook desktopConfig
     }
     -- add a screenshot key to the default desktop bindings
     `additionalKeys` [ ((mod4Mask, xK_F8), spawn &quot;scrot&quot;) ]
</pre><p>To replace the desktop layouts with your own choices, but still
 allow toggling panel visibility, use <code><a href="XMonad-Config-Desktop.html#v:desktopLayoutModifiers">desktopLayoutModifiers</a></code> to
 modify your layouts:
</p><pre>  , layoutHook = desktopLayoutModifiers $ simpleTabbed ||| Tall 1 0.03 0.5
</pre><p><code>desktopLayoutModifiers</code> modifies a layout to avoid covering docks, panels,
 etc. that set the <code>_NET_WM_STRUT_PARTIAL</code> property.
 See also <a href="XMonad-Hooks-ManageDocks.html">XMonad.Hooks.ManageDocks</a>.
</p></div><div class="top"><p class="src"><a name="v:desktopLayoutModifiers" class="def">desktopLayoutModifiers</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:LayoutClass">LayoutClass</a> l a =&gt; l a -&gt; <a href="XMonad-Layout-LayoutModifier.html#t:ModifiedLayout">ModifiedLayout</a> <a href="XMonad-Hooks-ManageDocks.html#t:AvoidStruts">AvoidStruts</a> l a<a href="src/XMonad-Config-Desktop.html#desktopLayoutModifiers" class="link">Source</a></p></div><h2 id="g:4">Modifying the logHook
</h2><div class="doc"><p>To add to the logHook while still sending workspace and window information
 to DE apps use something like:
</p><pre>  , logHook = myLogHook &lt;+&gt; logHook desktopConfig
</pre><p>Or for more elaborate logHooks you can use <code>do</code>:
</p><pre>  , logHook = do
        dynamicLogWithPP xmobarPP
        updatePointer (Relative 0.9 0.9)
        logHook desktopConfig
</pre></div><h2 id="g:5">Modifying the handleEventHook
</h2><div class="doc"><p>To customize xmonad's event handling while still having it respond
 to EWMH events from pagers, task bars:
</p><pre>  , handleEventHook = myEventHooks &lt;+&gt; handleEventHook desktopConfig
</pre><p>or <code>mconcat</code> if you write a list event of event hooks
</p><pre>  , handleEventHook = mconcat
        [ myMouseHandler
        , myMessageHandler
        , handleEventHook desktopConfig ]
</pre><p>Note that the event hooks are run left to right (in contrast to
 <code><a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ManageHook">ManageHook</a></code>S which are right to left)
</p></div><h2 id="g:6">Modifying the startupHook
</h2><div class="doc"><p>To run the desktop startupHook, plus add further actions to be run each
 time xmonad starts or restarts, use <code><a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-ManageHook.html#v:-60--43--62-">&lt;+&gt;</a></code> to combine actions as in the
 logHook example, or something like:
</p><pre>  , startupHook = do
        startupHook desktopConfig
        spawn &quot;xmonad-restart.sh&quot;
        adjustEventInput
</pre></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>