From 450717ef44ff3ff06c0bc228acd1547e33b72d36 Mon Sep 17 00:00:00 2001 From: David Roundy Date: Tue, 14 Aug 2007 21:11:03 +0200 Subject: use XPrompt in WorkspaceDir. darcs-hash:20070814191103-72aca-dfa6265cb6f55918e7f66f856fb7e60ac22b42cd.gz --- WorkspaceDir.hs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'WorkspaceDir.hs') diff --git a/WorkspaceDir.hs b/WorkspaceDir.hs index 6877ea1..290a675 100644 --- a/WorkspaceDir.hs +++ b/WorkspaceDir.hs @@ -25,13 +25,15 @@ module XMonadContrib.WorkspaceDir ( changeDir ) where -import System.Directory ( setCurrentDirectory, getCurrentDirectory ) -import Data.List ( nub ) +import System.Directory ( setCurrentDirectory ) import XMonad import Operations ( sendMessage ) -import XMonadContrib.Dmenu ( dmenu, runProcessWithInput ) +import XMonadContrib.Dmenu ( runProcessWithInput ) +import XMonadContrib.XPrompt ( XPConfig ) +import XMonadContrib.DirectoryPrompt ( directoryPrompt ) import XMonadContrib.LayoutHelpers ( layoutModify ) +import XMonadContrib.XPrompt ( defaultXPConfig ) -- $usage -- You can use this module with the following in your Config.hs file: @@ -42,7 +44,7 @@ import XMonadContrib.LayoutHelpers ( layoutModify ) -- -- In keybindings: -- --- > , ((modMask .|. shiftMask, xK_x ), changeDir ["~","/tmp"]) +-- > , ((modMask .|. shiftMask, xK_x ), changeDir defaultXPConfig) data Chdir = Chdir String deriving ( Typeable ) @@ -58,7 +60,5 @@ scd :: String -> X () scd x = do x' <- io (runProcessWithInput "bash" [] ("echo -n " ++ x) `catch` \_ -> return x) catchIO $ setCurrentDirectory x' -changeDir :: [String] -> X () -changeDir dirs = do thisd <- io getCurrentDirectory - dir <- dmenu (nub (thisd:dirs)) - sendMessage (Chdir dir) +changeDir :: XPConfig -> X () +changeDir c = directoryPrompt c "Set working directory: " (sendMessage . Chdir) -- cgit v1.2.3