110 lines
2.7 KiB
Fennel
110 lines
2.7 KiB
Fennel
;;; module/sidebar.fnl --- Informational sidebar
|
|
|
|
;;; Code:
|
|
|
|
(local awful (require :awful))
|
|
(local beautiful (require :beautiful))
|
|
(local lain (require :lain))
|
|
(local wibox (require :wibox))
|
|
|
|
(local std (require :lib.std))
|
|
|
|
(local tag-list (require :widget.tag-list))
|
|
(local task-list (require :widget.task-list))
|
|
(local textclock (require :widget.textclock))
|
|
|
|
(local markup lain.util.markup)
|
|
|
|
;;;
|
|
;; Functions
|
|
|
|
(fn border [t margin]
|
|
(let [side (or margin 2)
|
|
end (+ side 1)]
|
|
{1 t
|
|
:bottom end
|
|
:left side
|
|
:right side
|
|
:top end
|
|
:widget wibox.container.margin} ))
|
|
|
|
(fn center [t]
|
|
{1 t
|
|
:align "center"
|
|
:widget wibox.container.place})
|
|
|
|
(local sb-clock (textclock "%H\n%M"))
|
|
(local sb-systray (doto (wibox.widget.systray)
|
|
(: :set_base_size 24)))
|
|
;; (fn bat-markup []
|
|
;; (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))))
|
|
|
|
;; TODO Plug/unplug notifications
|
|
(local battery
|
|
(lain.widget.bat
|
|
{:battery "BAT1"
|
|
:ac "ACAD"
|
|
:notify "on"
|
|
:n_perc [10 20]
|
|
:settings bat-icon}))
|
|
(local pulse (lain.widget.pulse))
|
|
|
|
(fn draw-sidebar [s]
|
|
(set s.sb (awful.wibar {:position beautiful.sidebar_position
|
|
:width beautiful.sidebar_width
|
|
:screen s}))
|
|
|
|
(: s.sb :setup
|
|
{:layout wibox.layout.align.vertical
|
|
1 {1 (border (tag-list s))
|
|
;; 2 (task-list s)
|
|
:layout wibox.layout.fixed.vertical}
|
|
2 nil
|
|
3 {1 (center battery.widget)
|
|
2 pulse.widget
|
|
;; 2 sb-systray
|
|
3 {1 (border
|
|
{1 {1 (center sb-clock)
|
|
:top 2
|
|
:bottom 2
|
|
:widget wibox.container.margin}
|
|
:widget wibox.container.background
|
|
:bg beautiful.sidebar_bg_info})
|
|
:layout wibox.layout.fixed.vertical}
|
|
:layout wibox.layout.fixed.vertical}}))
|
|
|
|
;;;
|
|
;; Configuration
|
|
|
|
(awful.screen.connect_for_each_screen
|
|
draw-sidebar)
|
|
|
|
{}
|
|
;;; module/sidebar.fnl ends here
|