diff options
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | XMonad.hs | 5 | ||||
-rw-r--r-- | xmonad.cabal | 2 |
3 files changed, 4 insertions, 4 deletions
@@ -15,6 +15,7 @@ Building: X11 http://hackage.haskell.org/cgi-bin/hackage-scripts/package/X11-1.2 mtl http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mtl-1.0 + unix http://hackage.haskell.org/cgi-bin/hackage-scripts/package/unix-2.0 (included with ghc) X11-extras: darcs get http://darcs.haskell.org/~sjanssen/X11-extras @@ -24,7 +24,7 @@ import StackSet (StackSet) import Control.Monad.State import System.IO -import System.Process (runCommand) +import System.Posix.Process (newSession, executeFile) import Graphics.X11.Xlib import Control.Exception @@ -73,8 +73,7 @@ io = liftIO -- | spawn. Launch an external application spawn :: String -> X () -spawn x = do v <- io $ handle (return . Just) (runCommand x >> return Nothing) - whenJust v $ \e -> trace $ "xmonad:spawn: unable to fork "++show x++": "++show e +spawn x = io $ forkProcess (do newSession; executeFile "/bin/sh" False ["-c", x] Nothing) -- | Run a side effecting action with the current workspace. Like 'when' but whenJust :: Maybe a -> (a -> X ()) -> X () diff --git a/xmonad.cabal b/xmonad.cabal index cf8ff84..d0f11d2 100644 --- a/xmonad.cabal +++ b/xmonad.cabal @@ -7,7 +7,7 @@ license: BSD3 license-file: LICENSE author: Spencer Janssen maintainer: sjanssen@cse.unl.edu -build-depends: base==2.0, X11>=1.1, X11-extras==0.0, mtl==1.0 +build-depends: base==2.0, X11>=1.1, X11-extras==0.0, mtl==1.0, unix>=1.0 executable: xmonad main-is: Main.hs |