xmonad: remove count in PP for xmobar

This commit is contained in:
Primrose 2025-12-05 20:48:25 +08:00
parent c2a37b5f72
commit 5a39fe89c5
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA

View file

@ -26,7 +26,6 @@ import XMonad.Util.NamedScratchpad
import XMonad.Util.SpawnOnce import XMonad.Util.SpawnOnce
import XMonad.Layout.Magnifier import XMonad.Layout.Magnifier
import Data.Function
import Data.Char.Greek import Data.Char.Greek
import Data.Ratio import Data.Ratio
import Data.Semigroup import Data.Semigroup
@ -357,35 +356,17 @@ fullFloat = W.RationalRect 0 0 1 1
buttomRightFloat = W.RationalRect (1%2) (1%2) (1%2) (1%2) buttomRightFloat = W.RationalRect (1%2) (1%2) (1%2) (1%2)
xmobarConfig :: StatusBarConfig xmobarConfig :: StatusBarConfig
xmobarConfig = statusBarProp "xmobar -x 0" myPrettyPrinter xmobarConfig = statusBarProp "xmobar -x 0" (pure myPrettyPrinter)
where where
mkPpCurrent :: X (String -> String) myPrettyPrinter :: PP
mkPpCurrent = do myPrettyPrinter =
windowCount <- gets $ length . W.integrate' . W.stack . W.workspace . W.current . windowset filterOutWsPP [scratchpadWorkspaceTag]
pure $ \wid -> $ def
wid <> (if windowCount > 1 then ":" <> show windowCount else mempty) { ppCurrent = xmobarColor "#000000" "#ffffff" . wrap " " " "
& xmobarColor "#000000" "#ffffff" . wrap " " " " , ppHiddenNoWindows = xmobarColor "#9c9c9c" "" . const ""
, ppHidden = xmobarColor "#ffffff" ""
mkPpHidden :: X (String -> String) , ppSep = " | "
mkPpHidden = do }
m <- gets $ M.fromList . map (\x -> (W.tag x, length . W.integrate' . W.stack $ x)) . W.hidden . windowset
pure $ \wid ->
let windowCount = m M.! wid
in wid <> (if windowCount > 1 then ":" <> show windowCount else mempty)
& xmobarColor "#ffffff" ""
myPrettyPrinter :: X PP
myPrettyPrinter = do
myPpCurrent <- mkPpCurrent
myPpHidden <- mkPpHidden
pure
$ filterOutWsPP [scratchpadWorkspaceTag]
$ def
{ ppCurrent = myPpCurrent
, ppHiddenNoWindows = xmobarColor "#9c9c9c" "" . const ""
, ppHidden = myPpHidden
, ppSep = " | "
}
myScratchpads :: [NamedScratchpad] myScratchpads :: [NamedScratchpad]
myScratchpads = myScratchpads =