Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2022
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. makeXmobarPPTop :: ScreenId -> PP
  2. makeXmobarPPTop screenId =
  3.   def
  4.     { ppSep = magenta " • ",
  5.       ppTitleSanitize = xmobarStrip,
  6.       ppCurrent = wrap " " "" . xmobarBorder "Top" "#8be9fd" 2,
  7.       ppHidden = white . wrap " " "",
  8.       ppHiddenNoWindows = lowWhite . wrap " " "",
  9.       ppUrgent = red . wrap (yellow "!") (yellow "!"),
  10.       ppOrder = \[ws, l, _, wins] -> [ws],
  11.       ppExtras = [(logTitlesOnScreen screenId) formatFocused formatUnfocused]
  12.     }
  13.   where
  14.     formatFocused = wrap (white "[") (white "]") . magenta . ppWindow
  15.     formatUnfocused = wrap (lowWhite "[") (lowWhite "]") . blue . ppWindow
  16.  
  17.     -- \| Windows should have *some* title, which should not not exceed a
  18.     -- sane length.
  19.     ppWindow :: String -> String
  20.     ppWindow = xmobarRaw . (\w -> if null w then "untitled" else w) . shorten 30
  21.  
  22.     blue, lowWhite, magenta, red, white, yellow :: String -> String
  23.     magenta = xmobarColor "#ff79c6" ""
  24.     blue = xmobarColor "#bd93f9" ""
  25.     white = xmobarColor "#f8f8f2" ""
  26.     yellow = xmobarColor "#f1fa8c" ""
  27.     red = xmobarColor "#ff5555" ""
  28.     lowWhite = xmobarColor "#bbbbbb" ""
  29.  
  30. makeXmobarPPBottom :: ScreenId -> PP
  31. makeXmobarPPBottom screenId =
  32.   def
  33.     { ppSep = magenta " • ",
  34.       ppTitleSanitize = xmobarStrip,
  35.       ppCurrent = wrap " " "" . xmobarBorder "Bottom" "#8be9fd" 2,
  36.       ppHidden = white . wrap " " "",
  37.       ppHiddenNoWindows = lowWhite . wrap " " "",
  38.       ppUrgent = red . wrap (yellow "!") (yellow "!"),
  39.       ppOrder = \[ws, l, _, wins] -> [l, wins],
  40.       ppExtras = [(logTitlesOnScreen screenId) formatFocused formatUnfocused]
  41.     }
  42.   where
  43.     formatFocused = wrap (white "[") (white "]") . magenta . ppWindow
  44.     formatUnfocused = wrap (lowWhite "[") (lowWhite "]") . blue . ppWindow
  45.  
  46.     -- \| Windows should have *some* title, which should not not exceed a
  47.     -- sane length.
  48.     ppWindow :: String -> String
  49.     ppWindow = xmobarRaw . (\w -> if null w then "untitled" else w) . shorten 30
  50.  
  51.     blue, lowWhite, magenta, red, white, yellow :: String -> String
  52.     magenta = xmobarColor "#ff79c6" ""
  53.     blue = xmobarColor "#bd93f9" ""
  54.     white = xmobarColor "#f8f8f2" ""
  55.     yellow = xmobarColor "#f1fa8c" ""
  56.     red = xmobarColor "#ff5555" ""
  57.     lowWhite = xmobarColor "#bbbbbb" ""
  58.  
  59. topStatusBarSpawner screenId@(S s) =
  60.     statusBarPropTo
  61.       ("_XMONAD_LOG_" <> show s)
  62.       ("xmobar -x " <> show s <> " ~/.config/xmobar/xmobar" <> show s <> ".hs")
  63.       (pure $ makeXmobarPPTop screenId)
  64.  
  65. bottomStatusBarSpawner screenId@(S s) =
  66.     statusBarPropTo
  67.       ("_XMONAD_LOG_" <> show s)
  68.       ("xmobar -x " <> show s <> " ~/.config/xmobar/xmobar" <> show s <> "bottom.hs")
  69.       (pure $ makeXmobarPPBottom screenId)
  70.  
  71. -- statusBarSpawner :: ScreenId -> IO StatusBarConfig
  72. statusBarsSpawner screenId@(S s) =
  73.   pure $ (topStatusBarSpawner screenId) <> (bottomStatusBarSpawner screenId)
  74.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement