mirror of
https://github.com/ItsDrike/nixdots
synced 2025-06-30 02:10:43 +00:00
Add eww bar
This configuration was simply copied from my old Arch Linux system. There are some issues that still need to be solved, namely with fonts and missing bitcoin price script, but it's mostly minor.
This commit is contained in:
parent
a2632b4dea
commit
ac23da55c5
51 changed files with 1773 additions and 0 deletions
24
home/programs/graphical/bars/eww/config/modules/battery.yuck
Normal file
24
home/programs/graphical/bars/eww/config/modules/battery.yuck
Normal file
|
@ -0,0 +1,24 @@
|
|||
(defwidget battery_module []
|
||||
(eventbox
|
||||
:class "module battery"
|
||||
|
||||
(box
|
||||
:class {battery.critical ? "critical" : battery.full ? "full" : "normal"}
|
||||
(box
|
||||
:space-evenly false
|
||||
:class {battery.plugged ? "plugged" : "unplugged" }
|
||||
|
||||
(box
|
||||
:class "icon"
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "extra"
|
||||
:text {battery.extra_icon})
|
||||
(label
|
||||
:text {battery.capacity_icon}))
|
||||
(label
|
||||
:class "value"
|
||||
:text "${battery.percent}%"
|
||||
)
|
||||
))))
|
14
home/programs/graphical/bars/eww/config/modules/bitcoin.yuck
Normal file
14
home/programs/graphical/bars/eww/config/modules/bitcoin.yuck
Normal file
|
@ -0,0 +1,14 @@
|
|||
(defwidget bitcoin_module []
|
||||
(eventbox
|
||||
:onclick "~/.local/bin/scripts/cli/bitcoin | xargs -I_ ${EWW_CMD} update bitcoin=_"
|
||||
:class "module bitcoin"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text "")
|
||||
(label :text {bitcoin}))
|
||||
)
|
||||
)
|
18
home/programs/graphical/bars/eww/config/modules/clock.yuck
Normal file
18
home/programs/graphical/bars/eww/config/modules/clock.yuck
Normal file
|
@ -0,0 +1,18 @@
|
|||
(defwidget clock_module []
|
||||
|
||||
(eventbox
|
||||
:tooltip {time.day}
|
||||
:class "module clock"
|
||||
;; :onclick "${EWW_CMD} open --toggle calendar"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text "")
|
||||
(label
|
||||
:class "value"
|
||||
:text "${time.date} ${time.hour}:${time.minute}")
|
||||
)))
|
||||
|
15
home/programs/graphical/bars/eww/config/modules/cpu.yuck
Normal file
15
home/programs/graphical/bars/eww/config/modules/cpu.yuck
Normal file
|
@ -0,0 +1,15 @@
|
|||
(defwidget cpu_module []
|
||||
(eventbox
|
||||
:class "module cpu"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text " ")
|
||||
(label
|
||||
:class "value"
|
||||
:text "${round(EWW_CPU.avg,2)}%"
|
||||
)
|
||||
)))
|
|
@ -0,0 +1,41 @@
|
|||
(defwidget gammarelay_module []
|
||||
(box
|
||||
:class "module gammarelay"
|
||||
|
||||
(eventbox
|
||||
:onscroll "scripts/gammarelay temperature scroll {}"
|
||||
:onclick "scripts/gammarelay temperature set toggle"
|
||||
:onrightclick "scripts/gammarelay temperature set off"
|
||||
:tooltip "${temperature} K"
|
||||
:class "temperature"
|
||||
(box
|
||||
(label
|
||||
:class "icon"
|
||||
:text "")
|
||||
))
|
||||
|
||||
(eventbox
|
||||
:onscroll "scripts/gammarelay brightness scroll {}"
|
||||
:onclick "scripts/gammarelay brightness set toggle"
|
||||
:onrightclick "scripts/gammarelay brightness set off"
|
||||
:tooltip "${brightness}%"
|
||||
:class "brightness"
|
||||
(box
|
||||
(label
|
||||
:class "icon"
|
||||
:text "")
|
||||
))
|
||||
|
||||
; (eventbox
|
||||
; :onscroll "scripts/gammarelay gamma scroll {}"
|
||||
; :onclick "scripts/gammarelay gamma set toggle"
|
||||
; :onrightclick "scripts/gammarelay gamma set off"
|
||||
; :tooltip "${gamma}%"
|
||||
; :class "gamma"
|
||||
; :valign "top"
|
||||
; (box
|
||||
; (label
|
||||
; :class "icon"
|
||||
; :text "γ")
|
||||
; ))
|
||||
))
|
15
home/programs/graphical/bars/eww/config/modules/kernel.yuck
Normal file
15
home/programs/graphical/bars/eww/config/modules/kernel.yuck
Normal file
|
@ -0,0 +1,15 @@
|
|||
(defwidget kernel_module []
|
||||
(eventbox
|
||||
:class "module kernel"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text " ")
|
||||
(label
|
||||
:class "value"
|
||||
:text {kernel}
|
||||
)
|
||||
)))
|
15
home/programs/graphical/bars/eww/config/modules/memory.yuck
Normal file
15
home/programs/graphical/bars/eww/config/modules/memory.yuck
Normal file
|
@ -0,0 +1,15 @@
|
|||
(defwidget memory_module []
|
||||
(eventbox
|
||||
:class "module memory"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text " ")
|
||||
(label
|
||||
:class "value"
|
||||
:text "${round(EWW_RAM.used_mem / 1000000000,1)}G: ${round(EWW_RAM.used_mem_perc,0)}%"
|
||||
)
|
||||
)))
|
|
@ -0,0 +1,3 @@
|
|||
(deflisten nightlight
|
||||
:initial `{"running": false,"temperature": 0}`
|
||||
`scripts/nightlight --state`)
|
15
home/programs/graphical/bars/eww/config/modules/uptime.yuck
Normal file
15
home/programs/graphical/bars/eww/config/modules/uptime.yuck
Normal file
|
@ -0,0 +1,15 @@
|
|||
(defwidget uptime_module []
|
||||
(eventbox
|
||||
:class "module uptime"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text " ")
|
||||
(label
|
||||
:class "value"
|
||||
:text {uptime}
|
||||
)
|
||||
)))
|
|
@ -0,0 +1,60 @@
|
|||
(defpoll time
|
||||
:interval "5s"
|
||||
:initial '{"date": "01 Jan", "hour": "00", "minute": "00", "day": "Monday"}'
|
||||
`date +'{"date": "%d %b", "hour": "%H", "minute": "%M", "day": "%A"}'`)
|
||||
|
||||
(deflisten volume
|
||||
:initial '{ "speaker_vol": "100", "speaker_mute": false, "speaker_icon": "", "microphone_mute": false, "microphone_vol": "100", "microphone_icon": "" }'
|
||||
`scripts/volume loop`)
|
||||
|
||||
(deflisten window_name
|
||||
:initial `{"class":"","name":"","formatted_name":""}`
|
||||
`scripts/window_name`)
|
||||
|
||||
(deflisten workspaces
|
||||
:initial `[{"id": 1,"name": "N/A","monitor": "N/A","windows": 1,"hasfullscreen": false,"lastwindow": "N/A","lastwindowtitle": "N/A","format_name": "N/A","active": true}]`
|
||||
`scripts/workspaces --loop`)
|
||||
|
||||
(defpoll battery
|
||||
:interval "1s"
|
||||
:initial '{"percent":"0","plugged":"false","status":"N/A","capacity_icon":"","extra_icon":"","manufacturer":"N/A","model_name":"N/A","technology":"N/A","energy_now":"0","enerfy_full":"0","enerfy_full_design":"0","cycle_count":"0","critical":"false","full":"false"}'
|
||||
`scripts/battery`)
|
||||
|
||||
(defpoll uptime
|
||||
:interval "1m"
|
||||
:initial 'N/A'
|
||||
`uptime -p | sed \\
|
||||
-e 's/^up //' \\
|
||||
-e 's/ years\\?,\\?/y/' \\
|
||||
-e 's/ months\\?,\\?/m/' \\
|
||||
-e 's/ weeks\\?,\\?/w/' \\
|
||||
-e 's/ days\\?,\\?/d/' \\
|
||||
-e 's/ hours\\?,\\?/h/' \\
|
||||
-e 's/ minutes\\?,\\?/m/' \\
|
||||
-e 's/ seconds\\?,\\?/s/' \\
|
||||
| cut -d' ' -f-2`)
|
||||
|
||||
(defpoll bitcoin
|
||||
:interval "5m"
|
||||
:initial "$N/A"
|
||||
`~/.local/bin/scripts/cli/bitcoin`)
|
||||
|
||||
; TODO: Figure out how to store this one-time
|
||||
(defpoll kernel
|
||||
:interval "10000h"
|
||||
:initial 'N/A'
|
||||
; `uname -r | sed -r 's/(.+)-arch(.+)/\\1/'`
|
||||
`uname -r`)
|
||||
|
||||
(deflisten temperature `scripts/gammarelay temperature watch`)
|
||||
(deflisten brightness `scripts/gammarelay brightness watch`)
|
||||
(deflisten gamma `scripts/gammarelay gamma watch`)
|
||||
|
||||
(defpoll net
|
||||
:interval "3s"
|
||||
:initial '{"essid":"N/A","icon":"","state":"unknown","signal":"0"}'
|
||||
`scripts/net status`)
|
||||
(defpoll bluetooth
|
||||
:interval "3s"
|
||||
:initial '{"icon":"","status":"unknown","name":"","mac":"","battery":""}'
|
||||
`scripts/bluetooth status`)
|
40
home/programs/graphical/bars/eww/config/modules/volume.yuck
Normal file
40
home/programs/graphical/bars/eww/config/modules/volume.yuck
Normal file
|
@ -0,0 +1,40 @@
|
|||
(defvar mic_rev false)
|
||||
|
||||
(defwidget volume_module []
|
||||
(box
|
||||
:class "module volume"
|
||||
:space-evenly false
|
||||
|
||||
(eventbox
|
||||
:onscroll "scripts/volume setvol SOURCE 0.5 {}"
|
||||
:onclick "scripts/volume togglemute SOURCE"
|
||||
:onrightclick "${terminal} pulsemixer &"
|
||||
:onhover "${EWW_CMD} update mic_rev=true"
|
||||
:onhoverlost "${EWW_CMD} update mic_rev=false"
|
||||
:class "microphone"
|
||||
(box
|
||||
(label
|
||||
:class "icon"
|
||||
:text {volume.microphone_icon})
|
||||
(label
|
||||
:visible {mic_rev && !volume.microphone_mute}
|
||||
:class "value"
|
||||
:text "${volume.microphone_vol}%")
|
||||
))
|
||||
|
||||
(eventbox
|
||||
:onscroll "scripts/volume setvol SINK 0.5 {}"
|
||||
:onclick "scripts/volume togglemute SINK"
|
||||
:onrightclick "${terminal} pulsemixer &"
|
||||
:class "speaker"
|
||||
(box
|
||||
(label
|
||||
:class "icon"
|
||||
:text {volume.speaker_icon})
|
||||
(label
|
||||
:visible {!volume.speaker_mute}
|
||||
:class "value"
|
||||
:text "${volume.speaker_vol}%")
|
||||
))
|
||||
|
||||
))
|
|
@ -0,0 +1,11 @@
|
|||
; Consider making the window name clickable, opening up a full window that's showing
|
||||
; the selected window details (class, unformatted name, and perhaps even more, like
|
||||
; xwayland status, ...)
|
||||
(defwidget window_name_module []
|
||||
(box
|
||||
:class "module window_name"
|
||||
|
||||
(label
|
||||
:class "value"
|
||||
:text "${window_name.formatted_name}")
|
||||
))
|
|
@ -0,0 +1,21 @@
|
|||
; (defwidget sep []
|
||||
; (label :class "separ module" :text "|"))
|
||||
|
||||
|
||||
; Consider making the window name clickable, opening up a full window that's showing
|
||||
; the selected window details (class, unformatted name, and perhaps even more, like
|
||||
; xwayland status, ...)
|
||||
(defwidget workspaces_module []
|
||||
(box
|
||||
:class "module workspaces"
|
||||
|
||||
(for workspace in workspaces
|
||||
(eventbox
|
||||
:class {workspace.active ? 'focused' : workspace.windows > 0 ? 'active' : 'inactive'}
|
||||
:onclick `scripts/workspaces --switch ${workspace.id}`
|
||||
|
||||
(label
|
||||
:class "value icon"
|
||||
:text {workspace.format_name}))
|
||||
)
|
||||
))
|
Loading…
Add table
Add a link
Reference in a new issue