Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- myXmobarPP :: PP
- myXmobarPP =
- def
- { ppSep = white " • ",
- ppTitleSanitize = xmobarStrip,
- ppCurrent = invert3D lightGreen darkGreen medGreen 2,
- ppHidden = djungle3D . white . xmobarBorder "Top" "#FFF" 1,
- ppVisible = myPPVisible,
- ppHiddenNoWindows = myPPNoWindows,
- ppVisibleNoWindows = Just (const $ myPPNoWindows switcheroo),
- ppUrgent = red . wrap (yellow "!") (yellow "!"),
- ppOrder = \[ws, l, _, wins] -> [ws, l, wins],
- ppExtras = [logTitles formatFocused formatUnfocused],
- ppWsSep = "",
- ppPrinters = isEmptyCurrent ?-> ppIsEmptyCurrent -- If I exhange the second argument (ppIs..) to e.g. "ppCurrent", it works but in this case the function is apparently missing a parameter "PP".
- }
- where
- ppIsEmptyCurrent :: WorkspaceId -> String
- ppIsEmptyCurrent = invert3D lightGreen darkGreen medGreen 2 . lowWhite
- cond ?-> ppr = (asks cond >>= guard) *> asks (ppr . wsPP)
- djungle3D = create3D lightGreen darkGreen medGreen 2
- myPPVisible = const $ djungle3D switcheroo
- myPPNoWindows = djungle3D . lowWhite
- formatFocused = wrap (white "[") (white "]") . magenta . ppWindow
- formatUnfocused = wrap (lowWhite "[") (lowWhite "]") . blue . ppWindow
- create3D lc dc mc w = xmobarBorder "Right" dc w . xmobarBorder "Bottom" dc (w -1) . xmobarBorder "Top" lc w . xmobarBorder "Left" lc w . xmobarColor "white" mc . (' ' :) . (++ " ")
- invert3D lc dc = create3D dc lc
- switcheroo = "<fn=1>\61561</fn>"
- ppWindow :: String -> String
- ppWindow = xmobarRaw . (\w -> if null w then "untitled" else w) . shorten 30
- -- colors
- blue, lowWhite, magenta, red, white, yellow :: String -> String
- magenta = xmobarColor "#ff79c6" ""
- blue = xmobarColor "#bd93f9" ""
- white = xmobarColor "#f8f8f2" ""
- yellow = xmobarColor "#f1fa8c" ""
- red = xmobarColor "#ff5555" ""
- lowWhite = xmobarColor "#bbbbbb" ""
- darkGreen = "#0c231e" -- "#2e4941"
- lightGreen = "#597268" -- "#a7b6a3"
- medGreen = "#2e4941" -- "#597268"
- isEmptyCurrent :: WS -> Bool
- isEmptyCurrent WS {..} = isNothing $ W.peek wsWindowSet
Advertisement
Add Comment
Please, Sign In to add comment