304 lines
No EOL
7.6 KiB
Text
304 lines
No EOL
7.6 KiB
Text
;;Input values
|
|
|
|
|
|
(defvar image '["kitty.svg","firefox.svg","sublime.svg","kitty.svg","","","","","","webcord.svg"]')
|
|
|
|
(deflisten brightnessValue
|
|
:initial "0"
|
|
`scripts/brightness.sh`)
|
|
|
|
(defpoll network
|
|
:initial '{"name":"No Connection","image":"n.A."}'
|
|
:interval "2s"
|
|
`scripts/network.sh &`)
|
|
|
|
(deflisten workspaces
|
|
:initial '[{"ID":"1","occupied":"0","activeID":""},{"ID":"2","occupied":"0","activeID":""},{"ID":"3","occupied":"0","activeID":""},{"ID":"4","occupied":"0","activeID":""},{"ID":"5","occupied":"0","activeID":""},{"ID":"6","occupied":"0","activeID":""},{"ID":"7","occupied":"0","activeID":""},{"ID":"8","occupied":"0","activeID":""},{"ID":"9","occupied":"0","activeID":""},{"ID":"10","occupied":"0","activeID":""}]'
|
|
`scripts/clients.sh`)
|
|
|
|
(defpoll bluetooth
|
|
:initial '{"name":"","battery":"0"}'
|
|
:interval "2s"
|
|
`scripts/bluetooth.sh`)
|
|
|
|
(deflisten volume
|
|
:initial '{"volume":"0","muted":"0"}'
|
|
`scripts/volume.sh`)
|
|
|
|
(defpoll media
|
|
:initial '{"status":"","name":""}'
|
|
:interval "2s"
|
|
`scripts/media.sh`)
|
|
|
|
|
|
;; Widget templates
|
|
|
|
(defwidget imageDPI [image size visible]
|
|
(overlay
|
|
:width "${size}"
|
|
:height "${size}"
|
|
:visible "${visible}"
|
|
(box
|
|
:width "${size}"
|
|
:height "${size}")
|
|
(transform
|
|
:scale-x "50%"
|
|
:scale-y "50%"
|
|
:halign "center"
|
|
:valign "center"
|
|
:translate-x "${size}"
|
|
:translate-y "${size}"
|
|
(image
|
|
:path "${image}"
|
|
:image-width "${size * 2}"
|
|
:image-height "${size * 2}"))))
|
|
|
|
|
|
(defwidget icon [widgetclass ?hover percentage image]
|
|
(box
|
|
:class "${widgetclass}"
|
|
:space-evenly false
|
|
(overlay
|
|
:tooltip "${hover}"
|
|
(circular-progress
|
|
:width 18
|
|
:value "${percentage}"
|
|
:start-at 75
|
|
:thickness 2
|
|
:clockwise false)
|
|
(transform
|
|
:scale-x "50%"
|
|
:scale-y "50%"
|
|
:halign "center"
|
|
:valign "center"
|
|
:translate-x "16"
|
|
:translate-y "16"
|
|
(image
|
|
:path "${image}"
|
|
:image-width "32"
|
|
:image-height "32")))))
|
|
|
|
|
|
;; Widgets
|
|
|
|
|
|
(defwidget workspaces []
|
|
(box
|
|
(for workspace in workspaces
|
|
(eventbox
|
|
:onclick `/home/willifan/.config/scripts/workspaces.sh ${workspace.num}`
|
|
(label
|
|
:width "15"
|
|
:class {workspace.active == 1 ? "activeWorkspace" : workspace.occupied == 0 ? "unoccupiedWorkspace" : ""}
|
|
;;:visible {workspace.occupied == 1 ? "true" : "false"}
|
|
:text "${workspace.num}")))))
|
|
|
|
(defwidget time []
|
|
(eventbox
|
|
:onclick ``
|
|
:class "smallBox"
|
|
:valign "center"
|
|
:height 20
|
|
:width 70
|
|
(label
|
|
:text "${formattime(EWW_TIME, "%H:%M:%S")}")))
|
|
|
|
(defwidget cpu []
|
|
(icon
|
|
:widgetclass "cpu"
|
|
:hover "${round(EWW_CPU.avg, 1)}%"
|
|
:percentage "${round(EWW_CPU.avg, 1)}"
|
|
:image "images/cpu.png"))
|
|
|
|
(defwidget ram []
|
|
(icon
|
|
:widgetclass "ram"
|
|
:hover "${round(EWW_RAM.used_mem /(1024*1024*1024), 1)} GiB | ${round(EWW_RAM.used_mem_perc, 1)}%"
|
|
:percentage "${round(EWW_RAM.used_mem_perc, 1)}"
|
|
:image "images/ram.png"))
|
|
|
|
(defwidget audio []
|
|
(icon
|
|
:widgetclass "${volume.muted == 1 ? "muted" : "volume"}"
|
|
:hover "${volume.volume}%"
|
|
:percentage "${volume.volume >= 0 && volume.volume <= 100 ? volume.volume : 0}"
|
|
:image "${volume.muted == 1 ? "images/volumeMuted.png" : "images/volume.png"}"))
|
|
|
|
(defwidget brightness []
|
|
(icon
|
|
:widgetclass "brightness"
|
|
:hover "${brightnessValue / 960}%"
|
|
:percentage "${brightnessValue / 960}"
|
|
:image "images/brightness.png"))
|
|
|
|
(defwidget network []
|
|
(icon
|
|
:widgetclass "network"
|
|
:hover "${network.name}"
|
|
:percentage "100"
|
|
:image "images/${network.image}.png"))
|
|
|
|
(defwidget bluetooth []
|
|
(icon
|
|
:widgetclass "bluetooth"
|
|
:hover "${bluetooth.name}"
|
|
:percentage "${bluetooth.battery}"
|
|
:image "images/bluetooth.png"))
|
|
|
|
(defwidget battery []
|
|
(icon
|
|
:widgetclass {EWW_BATTERY.BAT1.status == "Charging" ? "battery" : EWW_BATTERY.total_avg > 25 ? "battery" : "batteryLow"}
|
|
:hover "${round(EWW_BATTERY.total_avg, 1)}%"
|
|
:percentage "${EWW_BATTERY.total_avg <= 90 ? round(EWW_BATTERY.total_avg, 1)/0.9 : 100}"
|
|
:image {EWW_BATTERY.BAT1.status == "Charging" ? "images/charging.png" : EWW_BATTERY.total_avg > 25 ? "images/battery.png" : "images/batteryLow.png"}))
|
|
|
|
(defwidget power []
|
|
(icon
|
|
:widgetclass "power"
|
|
:hover "placeholder"
|
|
:percentage "0"
|
|
:image "images/power.png"))
|
|
|
|
(defwidget smallSpacer []
|
|
(box
|
|
:width 2))
|
|
|
|
(defwidget space []
|
|
(box
|
|
:width 5))
|
|
|
|
(defwidget seperator []
|
|
(box
|
|
(label
|
|
:text "|"
|
|
)))
|
|
|
|
|
|
;; Widget blocks
|
|
|
|
(defwidget media []
|
|
(box
|
|
:class "smallBox"
|
|
:height 20
|
|
:valign "center"
|
|
:space-evenly false
|
|
:visible {media.status == "Playing" ? true : false}
|
|
(smallSpacer)
|
|
(label
|
|
:text "${media.name}"
|
|
:tooltip "${media.name}"
|
|
:limit-width 40)
|
|
(smallSpacer)))
|
|
|
|
(defwidget processing []
|
|
(eventbox
|
|
:onclick 'hyprctl dispatch exec "[float; pin; size 40% 40%; move 100%-41% 40] kitty bpytop -b proc"'
|
|
:class "smallBox"
|
|
(box
|
|
:space-evenly false
|
|
:halign "end"
|
|
:valign "center"
|
|
:height 20
|
|
(smallSpacer)
|
|
(cpu)
|
|
(space)
|
|
(ram)
|
|
(smallSpacer))))
|
|
|
|
(defwidget controlls []
|
|
(eventbox
|
|
:onclick 'hyprctl dispatch exec "[float; pin; size 40% 40%; move 100%-41% 40] kitty pulsemixer"'
|
|
:class "smallBox"
|
|
(box
|
|
:space-evenly false
|
|
:halign "end"
|
|
:valign "center"
|
|
:height 20
|
|
(smallSpacer)
|
|
(audio)
|
|
(space)
|
|
(brightness)
|
|
(smallSpacer))))
|
|
|
|
(defwidget wireless []
|
|
(eventbox
|
|
:onclick "`networkmanager_dmenu`"
|
|
:class "smallBox"
|
|
(box
|
|
:space-evenly false
|
|
:halign "end"
|
|
:valign "center"
|
|
:height 20
|
|
(smallSpacer)
|
|
(network)
|
|
(space)
|
|
(bluetooth)
|
|
(smallSpacer))))
|
|
|
|
(defwidget energy []
|
|
(eventbox
|
|
:onclick `sleep 1 && systemctl hibernate`
|
|
:class "smallBox"
|
|
(box
|
|
:space-evenly false
|
|
:halign "end"
|
|
:valign "center"
|
|
:height 20
|
|
(smallSpacer)
|
|
(battery)
|
|
(space)
|
|
(power)
|
|
(smallSpacer))))
|
|
|
|
|
|
(defwidget start []
|
|
(box
|
|
:orientation "h"
|
|
:space-evenly false
|
|
:halign "start"
|
|
(space)
|
|
(workspaces)))
|
|
|
|
(defwidget center []
|
|
(box
|
|
:orientation "h"
|
|
:space-evenly false
|
|
:halign "center"
|
|
(workspaces)
|
|
))
|
|
|
|
(defwidget end []
|
|
(box
|
|
:spacing 2
|
|
:orientation "h"
|
|
:space-evenly false
|
|
:valign "center"
|
|
:halign "end"
|
|
|
|
(processing)
|
|
|
|
(seperator)
|
|
|
|
(controlls)
|
|
|
|
(seperator)
|
|
|
|
(wireless)
|
|
|
|
(seperator)
|
|
|
|
(energy)
|
|
|
|
(space)))
|
|
|
|
(defwidget bar []
|
|
(centerbox :orientation "h"
|
|
(start)
|
|
(center)
|
|
(end)))
|
|
|
|
|
|
;; Window definition
|
|
|
|
|
|
(include "newbar.yuck") |