aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--DeManage.hs52
-rw-r--r--MetaModule.hs1
2 files changed, 53 insertions, 0 deletions
diff --git a/DeManage.hs b/DeManage.hs
new file mode 100644
index 0000000..3f638f6
--- /dev/null
+++ b/DeManage.hs
@@ -0,0 +1,52 @@
+{-# OPTIONS -fglasgow-exts #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module : XMonadContrib.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 XMonadContrib.DeManage (
+ -- * Usage
+ -- $usage
+ demanage
+ ) where
+
+import qualified StackSet as W
+import XMonad
+import Operations
+import Control.Monad.State
+
+-- $usage
+-- To use demanage, add this import:
+--
+-- > import XMonadContrib.GreedyView
+--
+-- And add a keybinding to it:
+--
+-- > , ((modMask, xK_d ), demanage)
+--
+
+-- | Stop managing the current focused window.
+demanage :: X ()
+demanage = do
+ ws <- gets windowset
+ modify (\s -> s { windowset = maybe ws (flip W.delete ws) (W.peek ws) })
+ refresh
diff --git a/MetaModule.hs b/MetaModule.hs
index a45efc5..b7adda8 100644
--- a/MetaModule.hs
+++ b/MetaModule.hs
@@ -27,6 +27,7 @@ import XMonadContrib.Circle ()
import XMonadContrib.Combo ()
import XMonadContrib.CopyWindow ()
import XMonadContrib.Decoration ()
+import XMonadContrib.DeManage ()
import XMonadContrib.Dmenu ()
import XMonadContrib.DwmPromote ()
import XMonadContrib.DynamicLog ()