diff options
author | jao <jao@gnu.org> | 2018-11-25 22:24:17 +0000 |
---|---|---|
committer | jao <jao@gnu.org> | 2018-11-25 22:24:17 +0000 |
commit | d1fa2bd306cf847311b3cf02e8f2de8bab8ee115 (patch) | |
tree | 06e1fed10e6a5d3e4aab5a0f9eddef4e2ab7f9df /src/Xmobar/X11/Actions.hs | |
parent | bc27a68eb346b5e73c530f0f9c3e62e56517e225 (diff) | |
download | xmobar-d1fa2bd306cf847311b3cf02e8f2de8bab8ee115.tar.gz xmobar-d1fa2bd306cf847311b3cf02e8f2de8bab8ee115.tar.bz2 |
Xmobar.X11.Actions
Diffstat (limited to 'src/Xmobar/X11/Actions.hs')
-rw-r--r-- | src/Xmobar/X11/Actions.hs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/Xmobar/X11/Actions.hs b/src/Xmobar/X11/Actions.hs new file mode 100644 index 0000000..03e58ad --- /dev/null +++ b/src/Xmobar/X11/Actions.hs @@ -0,0 +1,34 @@ +----------------------------------------------------------------------------- +-- | +-- Module : Xmobar.Actions +-- Copyright : (c) Alexander Polakov +-- License : BSD-style (see LICENSE) +-- +-- Maintainer : Jose A. Ortega Ruiz <jao@gnu.org> +-- Stability : unstable +-- Portability : unportable +-- +----------------------------------------------------------------------------- + +module Xmobar.X11.Actions (Action(..), runAction, stripActions) where + +import System.Process (system) +import Control.Monad (void) +import Text.Regex (Regex, subRegex, mkRegex, matchRegex) +import Graphics.X11.Types (Button) + +data Action = Spawn [Button] String + deriving (Eq) + +runAction :: Action -> IO () +runAction (Spawn _ s) = void $ system (s ++ "&") + +stripActions :: String -> String +stripActions s = case matchRegex actionRegex s of + Nothing -> s + Just _ -> stripActions strippedOneLevel + where + strippedOneLevel = subRegex actionRegex s "[action=\\1\\2]\\3[/action]" + +actionRegex :: Regex +actionRegex = mkRegex "<action=`?([^>`]*)`?( +button=[12345]+)?>(.+)</action>" |