aboutsummaryrefslogtreecommitdiffstats
path: root/XMonad/Actions/DeManage.hs
diff options
context:
space:
mode:
authorSpencer Janssen <sjanssen@cse.unl.edu>2007-11-01 21:10:59 +0100
committerSpencer Janssen <sjanssen@cse.unl.edu>2007-11-01 21:10:59 +0100
commit4866f2e367dfcf22a9591231ba40948826a1b438 (patch)
tree7a245caee3f146826b267d773b7eaa80386a818e /XMonad/Actions/DeManage.hs
parent47589e1913fb9530481caedb543978a30d4323ea (diff)
downloadXMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.tar.gz
XMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.tar.xz
XMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.zip
Hierarchify
darcs-hash:20071101201059-a5988-fc1f1262bec1b69e13ba18ae7cefeafc8c4471d4.gz
Diffstat (limited to 'XMonad/Actions/DeManage.hs')
-rw-r--r--XMonad/Actions/DeManage.hs58
1 files changed, 58 insertions, 0 deletions
diff --git a/XMonad/Actions/DeManage.hs b/XMonad/Actions/DeManage.hs
new file mode 100644
index 0000000..9bff48a
--- /dev/null
+++ b/XMonad/Actions/DeManage.hs
@@ -0,0 +1,58 @@
+-----------------------------------------------------------------------------
+-- |
+-- Module : XMonad.Actions.DeManage
+-- Copyright : (c) Spencer Janssen <sjanssen@cse.unl.edu>
+-- License : BSD3-style (see LICENSE)
+--
+-- Maintainer : Spencer Janssen <sjanssen@cse.unl.edu>
+-- Stability : unstable
+-- Portability : unportable
+--
+-- This module provides a method to cease management of a window, without
+-- unmapping it. This is especially useful for applications like kicker and
+-- gnome-panel.
+--
+-- To make a panel display correctly with xmonad:
+--
+-- * Determine the pixel size of the panel, add that value to defaultGaps
+--
+-- * Launch the panel
+--
+-- * Give the panel window focus, then press mod-d
+--
+-- * Convince the panel to move\/resize to the correct location. Changing the
+-- panel's position setting several times seems to work.
+--
+-----------------------------------------------------------------------------
+
+module XMonad.Actions.DeManage (
+ -- * Usage
+ -- $usage
+ demanage
+ ) where
+
+import qualified XMonad.StackSet as W
+import XMonad
+import XMonad.Operations
+import Control.Monad.State
+import Graphics.X11 (Window)
+
+-- $usage
+-- To use demanage, add this import:
+--
+-- > import XMonad.Actions.DeManage
+--
+-- And add a keybinding to it:
+--
+-- > , ((modMask, xK_d ), withFocused demanage)
+--
+
+-- %import XMonad.Actions.DeManage
+-- %keybind , ((modMask, xK_d ), withFocused demanage)
+
+-- | Stop managing the current focused window.
+demanage :: Window -> X ()
+demanage w = do
+ -- use modify to defeat automatic 'unmanage' calls.
+ modify (\s -> s { windowset = W.delete w (windowset s) })
+ refresh