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 --- XMonad/Prompt/Directory.hs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 XMonad/Prompt/Directory.hs (limited to 'XMonad/Prompt/Directory.hs') diff --git a/XMonad/Prompt/Directory.hs b/XMonad/Prompt/Directory.hs new file mode 100644 index 0000000..1ceaab8 --- /dev/null +++ b/XMonad/Prompt/Directory.hs @@ -0,0 +1,43 @@ +----------------------------------------------------------------------------- +-- | +-- Module : XMonad.Prompt.Directory +-- Copyright : (C) 2007 Andrea Rossato, David Roundy +-- License : BSD3 +-- +-- Maintainer : droundy@darcs.net +-- Stability : unstable +-- Portability : unportable +-- +-- A directory prompt for XMonad +-- +----------------------------------------------------------------------------- + +module XMonad.Prompt.Directory ( + -- * Usage + -- $usage + directoryPrompt + ) where + +import XMonad +import XMonad.Prompt +import XMonad.Util.Run ( runProcessWithInput ) + +-- $usage +-- For an example usage see "XMonad.Layout.WorkspaceDir" + +data Dir = Dir String + +instance XPrompt Dir where + showXPrompt (Dir x) = x + +directoryPrompt :: XPConfig -> String -> (String -> X ()) -> X () +directoryPrompt c prom job = mkXPrompt (Dir prom) c getDirCompl job + +getDirCompl :: String -> IO [String] +getDirCompl s = (filter notboring . lines) `fmap` + runProcessWithInput "/bin/bash" [] ("compgen -A directory " ++ s ++ "\n") + +notboring :: String -> Bool +notboring ('.':'.':_) = True +notboring ('.':_) = False +notboring _ = True -- cgit v1.2.3