diff options
Diffstat (limited to 'src/Xmobar/Config/Template.hs')
-rw-r--r-- | src/Xmobar/Config/Template.hs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/Xmobar/Config/Template.hs b/src/Xmobar/Config/Template.hs index ad30c3d..6ea1898 100644 --- a/src/Xmobar/Config/Template.hs +++ b/src/Xmobar/Config/Template.hs @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- | -- Module: Xmobar.Config.Template --- Copyright: (c) 2022 jao +-- Copyright: (c) 2022, 2025 jao -- License: BSD3-style (see LICENSE) -- -- Maintainer: mail@jao.io @@ -15,7 +15,7 @@ ------------------------------------------------------------------------------ -module Xmobar.Config.Template (parseString) where +module Xmobar.Config.Template (parseString, withEmptyAction) where import Data.Maybe (fromMaybe) import qualified Control.Monad as CM @@ -101,11 +101,14 @@ hspaceParser c = do pVal <- C.manyTill P.digit (P.try (P.string "/>")) retSegment c (T.Hspace (fromMaybe 0 $ readMaybe pVal)) +withEmptyAction :: String -> String +withEmptyAction str = "<action=>" ++ str ++ "</action>" + actionParser :: Context -> Parser [T.Segment] actionParser (ti, fi, act) = do P.string "<action=" command <- C.between (P.char '`') (P.char '`') (C.many1 (P.noneOf "`")) - <|> C.many1 (P.noneOf ">") + <|> C.many1 (P.noneOf ">") <|> P.string "" buttons <- (P.char '>' >> return "1") <|> (P.space >> P.spaces >> C.between (P.string "button=") (P.string ">") (C.many1 (P.oneOf "12345"))) let a = T.Spawn (toButtons buttons) command |