From 1cc4f0c1924e20fad7018307c549cee445afbaf7 Mon Sep 17 00:00:00 2001 From: jao Date: Sat, 1 Dec 2018 19:13:08 +0000 Subject: Directory layout directly usable by xmobar executable --- app/MPD.hs | 27 ----------------- app/Mpris.hs | 20 ------------- app/Top.hs | 46 ----------------------------- src/Bottom.hs | 83 ----------------------------------------------------- src/Config.hs | 71 --------------------------------------------- src/MPD.hs | 27 +++++++++++++++++ src/Mpris.hs | 20 +++++++++++++ src/Top.hs | 46 +++++++++++++++++++++++++++++ src/lib/Bottom.hs | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/Config.hs | 71 +++++++++++++++++++++++++++++++++++++++++++++ xmobar-config.cabal | 8 +++--- 11 files changed, 251 insertions(+), 251 deletions(-) delete mode 100644 app/MPD.hs delete mode 100644 app/Mpris.hs delete mode 100644 app/Top.hs delete mode 100644 src/Bottom.hs delete mode 100644 src/Config.hs create mode 100644 src/MPD.hs create mode 100644 src/Mpris.hs create mode 100644 src/Top.hs create mode 100644 src/lib/Bottom.hs create mode 100644 src/lib/Config.hs diff --git a/app/MPD.hs b/app/MPD.hs deleted file mode 100644 index d237867..0000000 --- a/app/MPD.hs +++ /dev/null @@ -1,27 +0,0 @@ -import Xmobar -import Config (palette) -import qualified Bottom (config) - -mpd = MPD [ "-W", "12", "-b", "░", "-f", "▒", "-t" - , " "] 10 - -autoMPD = AutoMPD [ "-T", "160", "-E", "...", "-W", "10", "-t" - , " / \ - \</fc></fn> \ - \<fn=0><album></fn> \ - \<fn=0><fc=dodgerblue4><artist></fc> \ - \<fc=burlywood4><composer></fc> <date></fn>"] - - -config p = (Bottom.config [(Run mpd), (Run autoMPD)] p) { - template = "|kbd||default:Master| |default:Capture| \ - \|mpd| |autompd| {} |mbox| \ - \|EGPH| \ - \|diskio| |disku| · |bright| · |coretemp| \ - \|memory| · |uptime| |b0| " - , additionalFonts = ["xft:Hack-7"] - , textOffsets = [17] - } - -main :: IO () -main = palette >>= xmobar . config diff --git a/app/Mpris.hs b/app/Mpris.hs deleted file mode 100644 index 09c155d..0000000 --- a/app/Mpris.hs +++ /dev/null @@ -1,20 +0,0 @@ -import Xmobar -import Config (palette) -import qualified Bottom (config) - -mpris = - Mpris2 "spotify" -- "clementine" -- - ["-t", " <tracknumber>\ - \ <title> <fc=sienna4><artist></fc>\ - \ <album> <length>" - , "-T", "180", "-E", "...", "-M", "100", "-x", ""] 10 - -config p = (Bottom.config [Run mpris] p) { - template = "|kbd||default:Master| |default:Capture| \ - \|mpris2| {} |mbox| \ - \|EGPH| \ - \|diskio| |disku| · |bright| · |coretemp| \ - \|memory| · |uptime| |b0| " - } -main :: IO () -main = palette >>= xmobar . config diff --git a/app/Top.hs b/app/Top.hs deleted file mode 100644 index c14b56a..0000000 --- a/app/Top.hs +++ /dev/null @@ -1,46 +0,0 @@ -import Xmobar -import Config - -topProc p = TopProc (p <~> ["-t" , "<mboth3> <mboth2> <mboth1> \ - \· <both3> <both2> <both1>" - , "-w", "10", "-L" , "10", "-H", "80"]) 15 - -wireless p = Wireless "wlan0" (p <~> ["-t" , "<essid> <quality>" - , "-W", "5", "-M", "15" , "-m", "2" - , "-L", "20", "-H", "80"]) 20 - -multiCPU p = MultiCpu (p <~> ["-t", "<autototal>" - , "-S", "on", "-b", " ", "-f", "*" - , "-c", " " , "-L", "30", "-H", "70" - , "-p", "3", "-a", "l"]) 10 - -cpuFreq p = CpuFreq (p <~> ["-t" , "<cpu0> <cpu1> <cpu2> <cpu3>" - , "-L", "1", "-H", "2", "-S", "Off" , "-d", "2"]) 50 - -dynNetwork p = DynNetwork (p <~> ["-t", "↑ <tx> ↓ <rx>" - , "-L", "20", "-H", "1024000" - , "-m", "5", "-W", "10", "-S", "Off"]) 10 - -network p = Network "tun0" ["-t", "<dev>:", "-x", ""] 20 - -config p = (baseConfig p) { - position = Static {xpos=1, ypos=1, width=1920, height=24} - , textOffset = 16 - , commands = [ Run (topProc p) - , Run (wireless p) - , Run (multiCPU p) - , Run (cpuFreq p) - , Run (dynNetwork p) - , Run (network p) - , Run XMonadLog - , Run (DateZone "%H" "en_US" "US/Pacific" "laTime" 10) - , Run (Date "%R" "datetime" 10) - ] - , template = " |top| {|XMonadLog|}\ - \ |cpufreq| |multicpu| |dynnetwork|\ - \ <action=`wicd-client -n`>|tun0||wlan0wi|</action>\ - \ |datetime| |laTime| " -} - -main :: IO () -main = palette >>= xmobar . config diff --git a/src/Bottom.hs b/src/Bottom.hs deleted file mode 100644 index 1c70548..0000000 --- a/src/Bottom.hs +++ /dev/null @@ -1,83 +0,0 @@ -module Bottom (config) where - -import Xmobar -import Config - -uptime p = Uptime (p <~> [ "-t" , "<days> <hours>", "-m", "3", "-c", "0", "-S" - , "On" , "-L", "10", "-H", "100"]) 600 - -weather st = - Weather st ["-t", "<tempC>° <rh>% <windKmh> <skyCondition> (<hour>)" - , "-L","10", "-H", "25", "--normal", "black", - "--high", "lightgoldenrod4", "--low", "darkseagreen4"] 18000 - -batt p = - BatteryN ["BAT0"] - ((p <~> ["-t", "<left>%<acstatus>" - , "-S", "Off", "-d", "0", "-m", "3" - , "-L", "10", "-H", "80", "-p", "3"]) - ++ [ "--" - , "-i", "", "-O", " <timeleft> <watts>" - , "-o", " <timeleft> <watts>" - , "-H", "16", "-L", "10" - , "-h", "sienna4", "-l", "gray20"]) 50 "b0" - -coreTemp p = - CoreTemp (p <~> ["-t", "<core1>° <core2>°" - , "-L", "50", "-H", "75", "-d", "0"]) 50 - -diskU p = - DiskU [("dm-1", "<used>") , ("/media/sdb", " s <used>")] - (p <~> ["-L", "20", "-H", "70", "-m", "1", "-p", "3"]) - 20 - -diskIO p = - DiskIO [("dm-1", "↑ <read> ↓ <write>")] - (p <~> ["-L", "20", "-H", "5000", "-m", "5", "-p", "3"]) 10 - -mbox = MBox [ ("I", "inbox", "darkseagreen4") - , ("B", "bigml.spool", "sienna4") - , ("S", "bigsup.spool", "sienna4") - , ("b", "bugml.spool", "sienna4") - , ("G", "geiser.spool", "darkseagreen4") - , ("X", "xmobar.spool", "darkseagreen4") - , ("g", "gnu.spool", "") - , ("k", "books.spool", "") - , ("h", "hacking.spool", "") - , ("c", "computers.spool", "") - , ("w", "words.spool", "") - , ("t", "think.spool", "") - ] ["-d", "/home/jao/var/mail", "-p", " ", "-s", ""] "mbox" - - -masterVol = - Volume "default" "Master" - ["-t", "<status> <volume>" - , "--", "-C", "black", "-c", "sienna4", "-O", "" - , "-o", "×"] 10 - -captureVol = Volume "default" "Capture" ["-t", "<volume>"] 10 - -kbd = Kbd [("us", ""), ("us(intl)", "*")] - -brightness = Brightness ["--", "-D", "intel_backlight"] 10 - -memory = Memory ["-t","<available> M", "-p", "2"] 20 - -config cs p = (baseConfig p) { - position = BottomSize C 100 24 - , textOffset = 17 - , commands = [ Run (uptime p) - , Run brightness - , Run (weather "EGPH") -- LEGE, LEBL, KCV0 - , Run memory - , Run (batt p) - , Run (coreTemp p) - , Run (diskU p) - , Run (diskIO p) - , Run mbox - , Run masterVol - , Run captureVol - , Run kbd - ] ++ cs -} diff --git a/src/Config.hs b/src/Config.hs deleted file mode 100644 index 94b9211..0000000 --- a/src/Config.hs +++ /dev/null @@ -1,71 +0,0 @@ -module Config (Palette, baseConfig, palette, (<~>)) where - -import System.Environment (lookupEnv) - -import Xmobar - -data Palette = Palette { pNormal :: String - , pLow :: String - , pHigh :: String - , pFont :: String - , pBorder :: String - , pForeground :: String - , pBackground :: String - , pAlpha :: Int - } - -lightTheme :: IO Bool -lightTheme = fmap (== (Just "light")) (lookupEnv "JAO_COLOR_SCHEME") - -lightPalette :: Palette -lightPalette = Palette { pNormal = "black" - , pLow = "#4d4d4d" - , pHigh = "#a0522d" - , pFont = "xft:Source Code Pro Medium-9" - , pBorder = "grey70" - , pForeground = "#000000" - , pBackground = "white" - , pAlpha = 0 - } - -darkPalette :: Palette -darkPalette = Palette { pNormal = "black" - , pLow = "#4d4d4d" - , pHigh = "#a0522d" - , pFont = "xft:NotoMono-9,xft:Inconsolata-11" - , pBorder = "black" - , pForeground = "grey50" - , pBackground = "black" - , pAlpha = 102 - } - -palette :: IO Palette -palette = do - light <- lightTheme - if light then return lightPalette else return darkPalette - -baseConfig :: Palette -> Config -baseConfig p = defaultConfig { - font = pFont p - , borderColor = pBorder p - , fgColor = (pForeground p) - , bgColor = (pBackground p) - , border = FullBM 1 - , alpha = (pAlpha p) - , additionalFonts = [] - , overrideRedirect = True - , lowerOnStart = True - , allDesktops = True - , hideOnStart = False - , persistent = True - , sepChar = "|" - , alignSep = "{}" - } - -(<~>) :: Palette -> [String] -> [String] -(<~>) p args = concat [ args - , [ "--low", (pLow p) - , "--normal", (pNormal p) - , "--high", (pHigh p) - ] - ] diff --git a/src/MPD.hs b/src/MPD.hs new file mode 100644 index 0000000..d237867 --- /dev/null +++ b/src/MPD.hs @@ -0,0 +1,27 @@ +import Xmobar +import Config (palette) +import qualified Bottom (config) + +mpd = MPD [ "-W", "12", "-b", "░", "-f", "▒", "-t" + , " <lapsed> <fc=seashell3><fn=1><bar></fn></fc>"] 10 + +autoMPD = AutoMPD [ "-T", "160", "-E", "...", "-W", "10", "-t" + , "<length> <ppos>/<plength> \ + \<fn=0><fc=darkolivegreen><title></fc></fn> \ + \<fn=0><album></fn> \ + \<fn=0><fc=dodgerblue4><artist></fc> \ + \<fc=burlywood4><composer></fc> <date></fn>"] + + +config p = (Bottom.config [(Run mpd), (Run autoMPD)] p) { + template = "|kbd||default:Master| |default:Capture| \ + \|mpd| |autompd| {} |mbox| \ + \|EGPH| \ + \|diskio| |disku| · |bright| · |coretemp| \ + \|memory| · |uptime| |b0| " + , additionalFonts = ["xft:Hack-7"] + , textOffsets = [17] + } + +main :: IO () +main = palette >>= xmobar . config diff --git a/src/Mpris.hs b/src/Mpris.hs new file mode 100644 index 0000000..09c155d --- /dev/null +++ b/src/Mpris.hs @@ -0,0 +1,20 @@ +import Xmobar +import Config (palette) +import qualified Bottom (config) + +mpris = + Mpris2 "spotify" -- "clementine" -- + ["-t", " <tracknumber>\ + \ <title> <fc=sienna4><artist></fc>\ + \ <album> <length>" + , "-T", "180", "-E", "...", "-M", "100", "-x", ""] 10 + +config p = (Bottom.config [Run mpris] p) { + template = "|kbd||default:Master| |default:Capture| \ + \|mpris2| {} |mbox| \ + \|EGPH| \ + \|diskio| |disku| · |bright| · |coretemp| \ + \|memory| · |uptime| |b0| " + } +main :: IO () +main = palette >>= xmobar . config diff --git a/src/Top.hs b/src/Top.hs new file mode 100644 index 0000000..c14b56a --- /dev/null +++ b/src/Top.hs @@ -0,0 +1,46 @@ +import Xmobar +import Config + +topProc p = TopProc (p <~> ["-t" , "<mboth3> <mboth2> <mboth1> \ + \· <both3> <both2> <both1>" + , "-w", "10", "-L" , "10", "-H", "80"]) 15 + +wireless p = Wireless "wlan0" (p <~> ["-t" , "<essid> <quality>" + , "-W", "5", "-M", "15" , "-m", "2" + , "-L", "20", "-H", "80"]) 20 + +multiCPU p = MultiCpu (p <~> ["-t", "<autototal>" + , "-S", "on", "-b", " ", "-f", "*" + , "-c", " " , "-L", "30", "-H", "70" + , "-p", "3", "-a", "l"]) 10 + +cpuFreq p = CpuFreq (p <~> ["-t" , "<cpu0> <cpu1> <cpu2> <cpu3>" + , "-L", "1", "-H", "2", "-S", "Off" , "-d", "2"]) 50 + +dynNetwork p = DynNetwork (p <~> ["-t", "↑ <tx> ↓ <rx>" + , "-L", "20", "-H", "1024000" + , "-m", "5", "-W", "10", "-S", "Off"]) 10 + +network p = Network "tun0" ["-t", "<dev>:", "-x", ""] 20 + +config p = (baseConfig p) { + position = Static {xpos=1, ypos=1, width=1920, height=24} + , textOffset = 16 + , commands = [ Run (topProc p) + , Run (wireless p) + , Run (multiCPU p) + , Run (cpuFreq p) + , Run (dynNetwork p) + , Run (network p) + , Run XMonadLog + , Run (DateZone "%H" "en_US" "US/Pacific" "laTime" 10) + , Run (Date "%R" "datetime" 10) + ] + , template = " |top| {|XMonadLog|}\ + \ |cpufreq| |multicpu| |dynnetwork|\ + \ <action=`wicd-client -n`>|tun0||wlan0wi|</action>\ + \ |datetime| |laTime| " +} + +main :: IO () +main = palette >>= xmobar . config diff --git a/src/lib/Bottom.hs b/src/lib/Bottom.hs new file mode 100644 index 0000000..1c70548 --- /dev/null +++ b/src/lib/Bottom.hs @@ -0,0 +1,83 @@ +module Bottom (config) where + +import Xmobar +import Config + +uptime p = Uptime (p <~> [ "-t" , "<days> <hours>", "-m", "3", "-c", "0", "-S" + , "On" , "-L", "10", "-H", "100"]) 600 + +weather st = + Weather st ["-t", "<tempC>° <rh>% <windKmh> <skyCondition> (<hour>)" + , "-L","10", "-H", "25", "--normal", "black", + "--high", "lightgoldenrod4", "--low", "darkseagreen4"] 18000 + +batt p = + BatteryN ["BAT0"] + ((p <~> ["-t", "<left>%<acstatus>" + , "-S", "Off", "-d", "0", "-m", "3" + , "-L", "10", "-H", "80", "-p", "3"]) + ++ [ "--" + , "-i", "", "-O", " <timeleft> <watts>" + , "-o", " <timeleft> <watts>" + , "-H", "16", "-L", "10" + , "-h", "sienna4", "-l", "gray20"]) 50 "b0" + +coreTemp p = + CoreTemp (p <~> ["-t", "<core1>° <core2>°" + , "-L", "50", "-H", "75", "-d", "0"]) 50 + +diskU p = + DiskU [("dm-1", "<used>") , ("/media/sdb", " s <used>")] + (p <~> ["-L", "20", "-H", "70", "-m", "1", "-p", "3"]) + 20 + +diskIO p = + DiskIO [("dm-1", "↑ <read> ↓ <write>")] + (p <~> ["-L", "20", "-H", "5000", "-m", "5", "-p", "3"]) 10 + +mbox = MBox [ ("I", "inbox", "darkseagreen4") + , ("B", "bigml.spool", "sienna4") + , ("S", "bigsup.spool", "sienna4") + , ("b", "bugml.spool", "sienna4") + , ("G", "geiser.spool", "darkseagreen4") + , ("X", "xmobar.spool", "darkseagreen4") + , ("g", "gnu.spool", "") + , ("k", "books.spool", "") + , ("h", "hacking.spool", "") + , ("c", "computers.spool", "") + , ("w", "words.spool", "") + , ("t", "think.spool", "") + ] ["-d", "/home/jao/var/mail", "-p", " ", "-s", ""] "mbox" + + +masterVol = + Volume "default" "Master" + ["-t", "<status> <volume>" + , "--", "-C", "black", "-c", "sienna4", "-O", "" + , "-o", "×"] 10 + +captureVol = Volume "default" "Capture" ["-t", "<volume>"] 10 + +kbd = Kbd [("us", ""), ("us(intl)", "*")] + +brightness = Brightness ["--", "-D", "intel_backlight"] 10 + +memory = Memory ["-t","<available> M", "-p", "2"] 20 + +config cs p = (baseConfig p) { + position = BottomSize C 100 24 + , textOffset = 17 + , commands = [ Run (uptime p) + , Run brightness + , Run (weather "EGPH") -- LEGE, LEBL, KCV0 + , Run memory + , Run (batt p) + , Run (coreTemp p) + , Run (diskU p) + , Run (diskIO p) + , Run mbox + , Run masterVol + , Run captureVol + , Run kbd + ] ++ cs +} diff --git a/src/lib/Config.hs b/src/lib/Config.hs new file mode 100644 index 0000000..94b9211 --- /dev/null +++ b/src/lib/Config.hs @@ -0,0 +1,71 @@ +module Config (Palette, baseConfig, palette, (<~>)) where + +import System.Environment (lookupEnv) + +import Xmobar + +data Palette = Palette { pNormal :: String + , pLow :: String + , pHigh :: String + , pFont :: String + , pBorder :: String + , pForeground :: String + , pBackground :: String + , pAlpha :: Int + } + +lightTheme :: IO Bool +lightTheme = fmap (== (Just "light")) (lookupEnv "JAO_COLOR_SCHEME") + +lightPalette :: Palette +lightPalette = Palette { pNormal = "black" + , pLow = "#4d4d4d" + , pHigh = "#a0522d" + , pFont = "xft:Source Code Pro Medium-9" + , pBorder = "grey70" + , pForeground = "#000000" + , pBackground = "white" + , pAlpha = 0 + } + +darkPalette :: Palette +darkPalette = Palette { pNormal = "black" + , pLow = "#4d4d4d" + , pHigh = "#a0522d" + , pFont = "xft:NotoMono-9,xft:Inconsolata-11" + , pBorder = "black" + , pForeground = "grey50" + , pBackground = "black" + , pAlpha = 102 + } + +palette :: IO Palette +palette = do + light <- lightTheme + if light then return lightPalette else return darkPalette + +baseConfig :: Palette -> Config +baseConfig p = defaultConfig { + font = pFont p + , borderColor = pBorder p + , fgColor = (pForeground p) + , bgColor = (pBackground p) + , border = FullBM 1 + , alpha = (pAlpha p) + , additionalFonts = [] + , overrideRedirect = True + , lowerOnStart = True + , allDesktops = True + , hideOnStart = False + , persistent = True + , sepChar = "|" + , alignSep = "{}" + } + +(<~>) :: Palette -> [String] -> [String] +(<~>) p args = concat [ args + , [ "--low", (pLow p) + , "--normal", (pNormal p) + , "--high", (pHigh p) + ] + ] diff --git a/xmobar-config.cabal b/xmobar-config.cabal index e2c232c..a255014 100644 --- a/xmobar-config.cabal +++ b/xmobar-config.cabal @@ -12,7 +12,7 @@ extra-source-files: readme.md library - hs-source-dirs: src + hs-source-dirs: src/lib exposed-modules: Config, Bottom build-depends: base >=4.7 && <5, xmobar other-modules: @@ -21,21 +21,21 @@ library executable xmobar-top main-is: Top.hs - hs-source-dirs: app + hs-source-dirs: src ghc-options: -rtsopts -with-rtsopts=-V0 build-depends: base, xmobar, xmobar-config default-language: Haskell2010 executable xmobar-mpris main-is: Mpris.hs - hs-source-dirs: app + hs-source-dirs: src ghc-options: -rtsopts -with-rtsopts=-V0 build-depends: base, xmobar, xmobar-config default-language: Haskell2010 executable xmobar-mpd main-is: MPD.hs - hs-source-dirs: app + hs-source-dirs: src ghc-options: -rtsopts -with-rtsopts=-V0 build-depends: base, xmobar, xmobar-config default-language: Haskell2010 -- cgit v1.2.3