From a049400c271ba2e37b531ba373d9ddcaf3c905d9 Mon Sep 17 00:00:00 2001 From: Don Stewart Date: Wed, 7 Mar 2007 08:19:10 +0100 Subject: Add alt-c, kill client darcs-hash:20070307071910-9c5c1-08ff3d3b55c56a7438a17ca9cdc4b0362d70e77c --- Main.hs | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/Main.hs b/Main.hs index 4ba7668..a332401 100644 --- a/Main.hs +++ b/Main.hs @@ -27,6 +27,21 @@ import Control.Monad.State import W +-- +-- The keys list +-- +keys :: [(KeyMask, KeySym, W ())] +keys = + [ (mod1Mask .|. shiftMask, xK_Return, spawn "xterm") + , (mod1Mask, xK_p, spawn "exe=`dmenu_path | dmenu` && exec $exe") + , (controlMask, xK_space, spawn "gmrun") + , (mod1Mask, xK_Tab, focus 1) + , (mod1Mask, xK_j, focus 1) + , (mod1Mask, xK_k, focus (-1)) + , (mod1Mask .|. shiftMask, xK_c, kill) + , (mod1Mask .|. shiftMask, xK_q, io $ exitWith ExitSuccess) + ] + -- -- let's get underway -- @@ -63,17 +78,6 @@ registerKeys dpy root = kc <- io (keysymToKeycode dpy sym) io $ grabKey dpy kc mod root True grabModeAsync grabModeAsync -keys :: [(KeyMask, KeySym, W ())] -keys = - [ (mod1Mask .|. shiftMask, xK_Return, spawn "xterm") - , (mod1Mask, xK_p, spawn "exe=`dmenu_path | dmenu` && exec $exe") - , (controlMask, xK_space, spawn "gmrun") - , (mod1Mask, xK_Tab, focus 1) - , (mod1Mask, xK_j, focus 1) - , (mod1Mask, xK_k, focus (-1)) - , (mod1Mask .|. shiftMask, xK_q, io $ exitWith ExitSuccess) - ] - -- -- The event handler -- @@ -162,3 +166,16 @@ focus n = withWindows (rotate n) -- | spawn. Launch an external application spawn :: String -> W () spawn = io_ . runCommand + +-- | Kill the currently focused client +kill :: W () +kill = do + ws <- gets windows + dpy <- gets display + case ws of + [] -> return () + (w:_) -> do + -- if(isprotodel(sel)) + -- sendevent(sel->win, wmatom[WMProtocols], wmatom[WMDelete]); + io $ xKillClient dpy w -- ignoring result + return () -- cgit v1.2.3