aboutsummaryrefslogtreecommitdiffstats
path: root/WindowPrompt.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 /WindowPrompt.hs
parent47589e1913fb9530481caedb543978a30d4323ea (diff)
downloadXMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.tar.gz
XMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.tar.xz
XMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.zip
Hierarchify
darcs-hash:20071101201059-a5988-fc1f1262bec1b69e13ba18ae7cefeafc8c4471d4.gz
Diffstat (limited to 'WindowPrompt.hs')
-rw-r--r--WindowPrompt.hs89
1 files changed, 0 insertions, 89 deletions
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 <me@twifkak.com>
--- Andrea Rossato <andrea.rossato@unibz.it>
--- License : BSD-style (see LICENSE)
---
--- Maintainer : Devin Mullins <me@twifkak.com>
--- Andrea Rossato <andrea.rossato@unibz.it>
--- 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