diff options
Diffstat (limited to 'src/Single.hs')
-rw-r--r-- | src/Single.hs | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/Single.hs b/src/Single.hs new file mode 100644 index 0000000..c8e5115 --- /dev/null +++ b/src/Single.hs @@ -0,0 +1,110 @@ +import Xmobar +import Config +import Monitors +import Music (mpris, gpmd, mpdt) + +memoratio = Memory ["-t","<usedratio>%", "-p", "2", "-W", "3"] 20 + +topProcL p = TopProc (p <~> ["-t" + , memTemp + ++ " · <mboth1> <mboth2> <mboth3> <mboth4>" + , "-w", "12", "-L" , "10", "-H", "80"]) 15 + where memTemp = if pIsLight p + then "<both1> <both2> <both3> <both4>" + else "<both1> <both2> <both3> <both4>" + +diskIOL p = DiskIO [("/", "<totalbipat>"), ("/home", "<totalbipat>")] + (diskArgs p) 10 + +diskIOS p = DiskIO [("/", "<read> <write>")] (diskArgs p) 10 + +mpd a p i = + MPDX [ "-W", "12", "-b", "░", "-f", "▒", "-t", "<statei> <remaining>" + , "--", "-p", p, "-P", fni "\xf144", "-Z", fni i, "-S", fni i] 20 a + +mpdMon = mpd "mpd" "6600" "\xf001" +mopMon = mpd "mopidy" "6669" "\xf1bc" + +cpuFreq' p = CpuFreq (p <~> ["-t" , "<avg>" + , "-L", "1", "-H", "2", "-S", "Off" , "-d", "2"]) 50 + +cpus p = MultiCpu (mkArgs p + ["--template" , "<autobar> <total>%" + , "-L", "50", "-H", "85", "-W", "0", "-w", "3" + , "-f", "0123456789"] + ["--fallback-icon-pattern", "<icon=load_%%.xpm/>"]) 10 + + +memory' = Memory [ "-t" ,"<usedbar> <usedratio>" + , "-p", "2", "-W", "0","-d", "1", "-f", "0123456789" + , "--", "--scale", "1024"] 20 + + +config p = (baseConfig p) { + position = TopSize C 100 (defaultHeight - 2) + , font = "xft:Hack-8" + , textOffset = defaultHeight - 8 + , textOffsets = [defaultHeight - 9, defaultHeight - 9, + defaultHeight - 6, defaultHeight - 8, + defaultHeight - 8, defaultHeight - 8] + , alpha = if pIsLight p then 192 else 230 + , border = FullB + , commands = [ Run (topProcL p) + , Run (load p) + , Run (iconBatt p) + , Run (cpu p) +-- , Run (cpus p) + , Run memory + , Run (diskU p) + , Run (diskIOS p) + , Run brightness + , Run (kbd p) + , Run (coreTemp p) + , Run (wireless p "wlp164s0") + , Run (dynNetwork p) + , Run (vpnMark "wg-mullvad") + , Run tun0 + , Run (masterVol p) + , Run captureVol + , Run laTime + , Run localTime + , Run (cpuFreq' p) + , Run w -- LEGE, LEBL, KCV0 + ] ++ extraCmds + , template = trayT + ++ " |batt0|" ++ sep + -- ++ dimi "\xf26c" ++ sep + ++ "|bright|" ++ sep + ++ "<action=`toggle-app.sh nm-applet`>" + ++ " |wg-mullvad||tun0||wlp164s0wi|" + ++ "</action>" + ++ " |dynnetwork| " ++ sep + ++ "<action=`toggle-app.sh pasystray`>" + ++ " |default:Master| " ++ dimi "\xf130" ++ " |default:Capture|" + ++ "</action>" ++ sep + ++ " |EGPH| " ++ sep + ++ eLog p + ++ " {} " + ++ "|kbd|" ++ sep + ++ "|load|" ++ sep + ++ "|cpufreq|" ++ sep + ++ "|multicpu|" ++ sep + ++ "|multicoretemp|" ++ sep + ++ " |top| " ++ sep + ++ " " ++ fni "\xf0c9" ++ " |memory| " + ++ " |diskio| |disku| " ++ sep + ++ " |datetime| " + ++ "|laTime| " + } where dimi = fc (pDim p) . fni + sep = " " + w = weather' "<skyConditionS> <tempC>° <weather>" "EGPH" p + isXmonad = pWm p == Just "xmonad" + trayT = if isXmonad then "|tray|" else "" + eLog p = if isXmonad then "|XMonadLog|" else fc (pHigh p) "|elog|" + extraCmds = if isXmonad + then [ Run (NamedXPropertyLog "_XMONAD_TRAYPAD" "tray") + , Run XMonadLog] + else [Run (NamedXPropertyLog "_EMACS_LOG" "elog")] + +main :: IO () +main = palette >>= configFromArgs . config >>= xmobar |