From 4866f2e367dfcf22a9591231ba40948826a1b438 Mon Sep 17 00:00:00 2001 From: Spencer Janssen Date: Thu, 1 Nov 2007 21:10:59 +0100 Subject: Hierarchify darcs-hash:20071101201059-a5988-fc1f1262bec1b69e13ba18ae7cefeafc8c4471d4.gz --- WindowPrompt.hs | 89 --------------------------------------------------------- 1 file changed, 89 deletions(-) delete mode 100644 WindowPrompt.hs (limited to 'WindowPrompt.hs') diff --git a/WindowPrompt.hs b/WindowPrompt.hs deleted file mode 100644 index 5311f15..0000000 --- a/WindowPrompt.hs +++ /dev/null @@ -1,89 +0,0 @@ ------------------------------------------------------------------------------ --- | --- Module : XMonadContrib.WindowPrompt --- Copyright : Devin Mullins --- Andrea Rossato --- License : BSD-style (see LICENSE) --- --- Maintainer : Devin Mullins --- Andrea Rossato --- Stability : unstable --- Portability : unportable --- --- xprompt operations to bring windows to you, and bring you to windows. --- ------------------------------------------------------------------------------ - -module XMonadContrib.WindowPrompt - ( - -- * Usage - -- $usage - windowPromptGoto, - windowPromptBring - ) where - -import qualified Data.Map as M -import Data.List - -import qualified XMonad.StackSet as W -import XMonad -import XMonad.Operations (windows) -import XMonadContrib.XPrompt -import XMonadContrib.WindowBringer - --- $usage --- WindowPrompt brings windows to you and you to windows. --- That is to say, it pops up a prompt with window names, in case you forgot --- where you left your XChat. --- --- Place in your Config.hs: --- --- > import XMonadContrib.XPrompt --- > import XMonadContrib.WindowPrompt --- --- and in the keys definition: --- --- > , ((modMask .|. shiftMask, xK_g ), windowPromptGoto defaultXPConfig) --- > , ((modMask .|. shiftMask, xK_b ), windowPromptBring defaultXPConfig) - --- %import XMonadContrib.XPrompt --- %import XMonadContrib.WindowPrompt --- %keybind , ((modMask .|. shiftMask, xK_g ), windowPromptGoto defaultXPConfig) --- %keybind , ((modMask .|. shiftMask, xK_b ), windowPromptBring defaultXPConfig) - - -data WindowPrompt = Goto | Bring -instance XPrompt WindowPrompt where - showXPrompt Goto = "Go to window: " - showXPrompt Bring = "Bring me here: " - -windowPromptGoto, windowPromptBring :: XPConfig -> X () -windowPromptGoto c = doPrompt Goto c -windowPromptBring c = doPrompt Bring c - --- | Pops open a prompt with window titles. Choose one, and you will be --- taken to the corresponding workspace. -doPrompt :: WindowPrompt -> XPConfig -> X () -doPrompt t c = do - a <- case t of - Goto -> return . gotoAction =<< windowMapWith (W.tag . fst) - Bring -> return . bringAction =<< windowMapWith snd - wm <- windowMapWith id - mkXPrompt t c (compList wm) a - - where - - winAction a m = flip whenJust (windows . a) . flip M.lookup m . unescape - gotoAction = winAction W.greedyView - bringAction = winAction bringWindow - bringWindow w ws = W.shiftWin (W.tag . W.workspace . W.current $ ws) w ws - - compList m s = return . filter (isPrefixOf s) . map (escape . fst) . M.toList $ m - - escape [] = [] - escape (' ':xs) = "\\ " ++ escape xs - escape (x :xs) = x : escape xs - - unescape [] = [] - unescape ('\\':' ':xs) = ' ' : unescape xs - unescape (x:xs) = x : unescape xs -- cgit v1.2.3