diff options
Diffstat (limited to 'src/Xmobar/Run/Actions.hs')
| -rw-r--r-- | src/Xmobar/Run/Actions.hs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/Xmobar/Run/Actions.hs b/src/Xmobar/Run/Actions.hs index cbc10c5..a9afed9 100644 --- a/src/Xmobar/Run/Actions.hs +++ b/src/Xmobar/Run/Actions.hs @@ -16,7 +16,7 @@ module Xmobar.Run.Actions ( Button , runAction' , stripActions) where -import System.Process (spawnCommand, waitForProcess) +import System.Process (shell, withCreateProcess, waitForProcess) import Control.Monad (void) import Text.Regex (Regex, subRegex, mkRegex, matchRegex) import Data.Word (Word32) @@ -26,11 +26,12 @@ type Button = Word32 data Action = Spawn [Button] String deriving (Eq, Read, Show) runAction :: Action -> IO () -runAction (Spawn _ s) = void $ spawnCommand (s ++ " &") >>= waitForProcess +runAction (Spawn _ s) = withCreateProcess (shell s) $ \_ _ _ ph -> + void $ waitForProcess ph -- | Run action with stdout redirected to stderr runAction' :: Action -> IO () -runAction' (Spawn _ s) = void $ spawnCommand (s ++ " 1>&2 &") >>= waitForProcess +runAction' (Spawn btn s) = runAction (Spawn btn (s ++ " 1>&2")) stripActions :: String -> String stripActions s = case matchRegex actionRegex s of |
