summaryrefslogtreecommitdiffhomepage
path: root/src/Emacs.hs
blob: f2a9a44002b834ac42e9d18c5da6b0a81899c5b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import Xmobar
import Config
import Monitors

topProcL p = TopProc (p <~> args) 15
  where template = "<both1>  <both2>  <both3> ยท  <mboth1>  <mboth2>  <mboth3>"
        args = ["-t", template, "-w", "12", "-L" , "10", "-H", "80"]

diskIOS p = DiskIO [("/", "<read> <write>")] (diskArgs p) 10

cpuFreq' p = CpuFreq (p <~> args) 50
  where args = ["-t" , "<avg>" , "-L", "1", "-H", "2", "-S", "Off" , "-d", "2"]

memory' = Memory args 20
  where template = "<used> <available>"
        args = ["-t", template , "-p", "2", "-d", "1", "--", "--scale", "1024"]

master p = Volume "default" "Master" (args ++ ("--":ext)) 10
  where args = ["-t", "<status> <volume>"]
        ext = ["-C", pForeground p, "-c", "sienna4", "-O", "๐ŸŽผ", "-o", "๐Ÿ”‡"]

capture = Volume "default" "Capture" ["-t", "<volume>"] 10

batt0 p =
  BatteryN ["BAT0"]
           ["-t", "<acstatus>"
           , "-S", "Off", "-d", "0", "-m", "3"
           , "-L", "10", "-H", "90", "-p", "3"
           , "--low", pHigh p, "--normal", pNormal p, "--high", pLow p
           , "--"
           , "-P"
           , "-a", "notify-send -u critical 'Battery running out!!!!!!'"
           , "-A", "7"
           , "-i", "\9211"
           , "-O", "\129707 <left> <timeleft> <watts>"
           , "-o", "๐Ÿ”‹" ++ " <left> <timeleft> <watts>"
           , "-H", "10", "-L", "7"
           , "-h", pHigh p, "-l", pLow p] 50 "batt0"

weath st p =
  WeatherX st
           [ ("", "๐ŸŒก")
           , ("clear", "๐Ÿ”†")
           , ("sunny", "๐Ÿ”†")
           , ("fair", "๐Ÿ”†")
           , ("mostly clear", "๐ŸŒค")
           , ("mostly sunny", "๐ŸŒค")
           , ("partly sunny", "โ›…")
           , ("obscured", "๐ŸŒ") -- ๐ŸŒซ
           , ("fog", "๐ŸŒ") -- ๐ŸŒซ
           , ("foggy", "๐ŸŒ") -- ๐ŸŒซ
           , ("cloudy", "โ˜๏ธ")
           , ("overcast", "โ˜๏ธ")
           , ("partly cloudy", "โ›…")
           , ("mostly cloudy", "โ˜๏ธ")
           , ("considerable cloudiness", "โ›ˆ")
           , ("light rain", "๐ŸŒง")
           , ("rain", "โ›†")
           , ("ice crystals", "โ„")
           , ("light snow", "๐ŸŒจ")
           , ("snow", "โ„")
           ]
           (mkArgs p ["-t", "<skyConditionS> <tempC>ยฐ <weather> ๐ŸŒซ <windKmh>"
                     , "-L", "10", "-H", "25" , "-T", "25", "-E", ".."]
                     ["-w", ""])
           18000

config p = (baseConfig p) {
  position = TopSize C 100 (defaultHeight - 2)
  , textOutput = True
  , textOutputFormat = Ansi
  , font = "xft:DejaVu Sans Mono-8"
  , commands = [ Run (topProcL p)
               , Run (batt0 p)
               , Run (cpu p)
               , Run (cpuFreq' p)
               , Run memory'
               , Run (diskU p)
               , Run (diskIOS p)
               , Run (kbd p)
               , Run (coreTemp p)
               , Run (wireless p "wlp164s0")
               , Run (dynNetwork p)
               , Run (vpnMark "wg-mullvad")
               , Run tun0
               , Run (master p)
               , Run capture
               , Run laTime
               , Run localTime
               , Run (weath "EGPH" p)
               ]
  , template = "|batt0| "
             ++ " |wg-mullvad||tun0||wlp164s0wi|"
             ++ " |dynnetwork| "
             ++ "  |default:Master| ๐Ÿ—ช |default:Capture|"
             ++ "  |EGPH|"
             ++ "{*}"
             ++ "|kbd|"
             ++ " |cpufreq|"
             ++ " |multicpu|"
             ++ " |multicoretemp|"
             ++ "   |top| "
             ++  " โž |memory| "
             ++ " |diskio| ๐Ÿ–ด |disku| " -- ๐Ÿ“€ ๐Ÿ–ด ๐Ÿ–ซ
             ++ "  |datetime| "
             ++ "|laTime| "
  }

main :: IO ()
main = palette >>= configFromArgs . config >>= xmobar