refactor(sidebar): split battery and pulse widgets out

This commit is contained in:
xeals 2019-01-15 17:07:30 +11:00
parent 0bde007468
commit d377a56780
3 changed files with 98 additions and 76 deletions

View File

@ -37,82 +37,8 @@
(local sb-systray (doto (wibox.widget.systray) (local sb-systray (doto (wibox.widget.systray)
(: :set_base_size 24))) (: :set_base_size 24)))
(fn bat-hm [] (local battery (require :widget.bat))
(let [[h m] (std.s-split _G.bat_now.time ":") (local pulse (require :widget.pulse))
baticon "\u{f241}"]
(: _G.widget :set_markup
(.. baticon "\n" h "\n" m))))
(fn bat-icon []
;; FA
;; (let [full "\u{f240}"
;; x75 "\u{f241}"
;; x50 "\u{f242}"
;; x25 "\u{f243}"
;; empty "\u{f244}"
(let [full "\u{e02b}"
x75 "\u{e02c}"
x50 "\u{e02d}"
x25 "\u{e02e}"
empty "\u{e136}"
charging "\u{e02a}"
status _G.bat_now.status
level _G.bat_now.perc
icon (if (= status "Full") full
(= status "Charging") charging
(> level 75) x75
(> level 50) x50
(> level 25) x25
empty)]
(: _G.widget :set_markup (markup.font "Typicons 28" icon))))
(fn bat-markup []
(bat-icon))
(fn pulse-icon []
(let [icon {:muted "\u{e133}"
:low "\u{e135}"
:med "\u{e132}"
:high "\u{e134}"}
muted (= _G.volume_now.muted "yes")
vol (tonumber _G.volume_now.left)
icon (if muted icon.muted
(> vol 35) icon.high
(> vol 5) icon.med
icon.low)]
(: _G.widget :set_markup (markup.font "Typicons 24" icon))))
(fn pulse-icon+text []
(let [icon {:muted "\u{e133}"
:low "\u{e135}"
:med "\u{e132}"
:high "\u{e134}"}
muted (= _G.volume_now.muted "yes")
vol (tonumber _G.volume_now.left)
icon (if muted icon.muted
(> vol 35) icon.high
(> vol 5) icon.med
icon.low)
s (if muted ""
(.. "\n" (tostring vol) "%"))]
(: _G.widget :set_markup
(.. (markup.font "Typicons 24" icon)
s))))
(fn pulse-markup []
(pulse-icon))
;; TODO Plug/unplug notifications
(local battery
(lain.widget.bat
{:battery "BAT1"
:ac "ACAD"
:notify "on"
:n_perc [10 20]
:settings bat-markup}))
(local pulse (lain.widget.pulse
{:settings pulse-markup}))
(fn draw-sidebar [s] (fn draw-sidebar [s]
(set s.sb (awful.wibar {:position beautiful.sidebar_position (set s.sb (awful.wibar {:position beautiful.sidebar_position

51
widget/bat.fnl Normal file
View File

@ -0,0 +1,51 @@
;;; widget/bat.fnl --- Battery widget
;;; Code:
(local std (require :lib.std))
(local lain (require :lain))
(local markup lain.util.markup)
(fn bat-hm []
(let [[h m] (std.s-split _G.bat_now.time ":")
baticon "\u{f241}"]
(: _G.widget :set_markup
(.. baticon "\n" h "\n" m))))
(fn bat-icon []
;; FA
;; (let [full "\u{f240}"
;; x75 "\u{f241}"
;; x50 "\u{f242}"
;; x25 "\u{f243}"
;; empty "\u{f244}"
(let [full "\u{e02b}"
x75 "\u{e02c}"
x50 "\u{e02d}"
x25 "\u{e02e}"
empty "\u{e136}"
charging "\u{e02a}"
status _G.bat_now.status
level _G.bat_now.perc
icon (if (= status "Full") full
(= status "Charging") charging
(> level 75) x75
(> level 50) x50
(> level 25) x25
empty)]
(: _G.widget :set_markup (markup.font "Typicons 28" icon))))
(fn bat-markup []
(bat-icon))
;; TODO Plug/unplug notifications
(local battery
(lain.widget.bat
{:battery "BAT1"
:ac "ACAD"
:notify "on"
:n_perc [10 20]
:settings bat-markup}))
battery
;;; widget/bat.fnl ends here

45
widget/pulse.fnl Normal file
View File

@ -0,0 +1,45 @@
;;; widget/pulse.fnl --- Pulseaudio widget
;;; Code:
(local lain (require :lain))
(local markup lain.util.markup)
(fn pulse-icon []
(let [icon {:muted "\u{e133}"
:low "\u{e135}"
:med "\u{e132}"
:high "\u{e134}"}
muted (= _G.volume_now.muted "yes")
vol (tonumber _G.volume_now.left)
icon (if muted icon.muted
(> vol 35) icon.high
(> vol 5) icon.med
icon.low)]
(: _G.widget :set_markup (markup.font "Typicons 24" icon))))
(fn pulse-icon+text []
(let [icon {:muted "\u{e133}"
:low "\u{e135}"
:med "\u{e132}"
:high "\u{e134}"}
muted (= _G.volume_now.muted "yes")
vol (tonumber _G.volume_now.left)
icon (if muted icon.muted
(> vol 35) icon.high
(> vol 5) icon.med
icon.low)
s (if muted ""
(.. "\n" (tostring vol) "%"))]
(: _G.widget :set_markup
(.. (markup.font "Typicons 24" icon)
s))))
(fn pulse-markup []
(pulse-icon))
(local pulse (lain.widget.pulse
{:settings pulse-markup}))
pulse
;;; widget/pulse.fnl ends here