Clean and polish Eww bar

This commit is contained in:
Out Of Ideas 2024-03-24 16:20:13 -05:00
parent 68d4d48276
commit c5d23666a5
10 changed files with 130 additions and 30 deletions

View File

@ -29,20 +29,19 @@
color: #1d1f21;
}
.right_status button {
.powermenu {
all: unset;
color: #1d2594;
margin-right: 23px;
font-size: 30px;
}
} .metric scale trough highlight {
} .zero scale trough highlight {
all: unset;
background-color: #cc6666;
background-image: linear-gradient(to right, #81a2be, #8abeb7, #b294bb);
background-color: #373b41;
border-radius: 10px;
min-width: 7px;
} .metric scale trough {
min-width: 100px;
} .zero scale trough {
all: unset;
background-color: #373b41;
border-radius: 50px;
@ -52,6 +51,29 @@
margin-right: 15px;
}
} .non-zero scale trough highlight {
all: unset;
background-color: #cc6666;
background-image: linear-gradient(to right, #81a2be, #8abeb7, #b294bb);
border-radius: 10px;
min-width: 7px;
} .non-zero scale trough {
all: unset;
background-color: #373b41;
border-radius: 50px;
min-height: 10px;
min-width: 100px;
margin-left: 13px;
margin-right: 15px;
}
.label {
color: #c5c8c6;
}
.label:hover {
color: #cc6666;
}
.workspaces button {
color: #c5c8c6;
font-size: 17px;

View File

@ -1,14 +1,16 @@
;; Bars
;; Variables
(defpoll volume :interval "1s"
"pactl get-sink-volume $(pactl get-default-sink) | awk '{print $5}' | head -n1")
(defvar volume "100")
(defvar brightness "100")
;; Minimum width for sliders start at 7px. If the value is zero, then the slider is made empty.
(defvar metric-volume "non-zero")
(defvar metric-brightness "non-zero")
(defpoll time :interval "10s"
"date '+%H:%M %b %d, %Y'")
(defvar logo "")
(deflisten music :initial ""
"playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
@ -61,16 +63,19 @@
;; right
(defwidget right_status []
(box :class "right_status" :orientation "h" :space-evenly false :halign "end"
(metric :label "󰋋"
:value volume
:onchange "pactl set-sink-volume $(pactl get-default-sink) {}%")
(metric :label ""
:value {EWW_RAM.used_mem_perc}
:onchange "")
(metric :label ""
:value {EWW_CPU.avg}
:onchange "")
(button :onclick "echo" "")))
(metric-volume :label "󰋋"
:value volume
:onchange "scripts/change-volume.sh {}%")
(metric-brightness :label "󰃟"
:value brightness
:onchange "scripts/change-brightness.sh {}%")
;(metric :label ""
; :value {EWW_RAM.used_mem_perc}
; :onchange "")
;(metric :label ""
; :value {EWW_CPU.avg}
; :onchange "")
(button :class "powermenu" :onclick "echo" "")))
;; monitor 0
(defwidget workspaces_monitor_0 []
@ -114,24 +119,30 @@
:halign "center"
{music != "" ? "🎵${music}" : ""}))
(defwidget metric [label value onchange]
;; Volume slider
(defwidget metric-volume [label value onchange]
(box :orientation "h"
:class "metric"
:class metric-volume
:space-evenly false
(box :class "label" label)
(button :class "label" :onclick "scripts/toggle-volume.sh" label)
(scale :min 0
:max 100
:active {onchange != ""}
:value value
:onchange onchange)))
;; Brightness slider
(defwidget metric-brightness [label value onchange]
(box :orientation "h"
:class metric-brightness
:space-evenly false
(button :class "label" :onclick "scripts/toggle-brightness.sh" label)
(scale :min 0
:max 101
:active {onchange != ""}
:value value
:onchange onchange)))
;; logo
(defwidget logo [text]
(box :orientation "h"
:class "logo"
(scale :min 0
:max 101)))
;; Total Window definitions
;; monitor 0
(defwindow bar0

View File

@ -0,0 +1 @@
true

View File

@ -0,0 +1 @@
0

View File

@ -0,0 +1 @@
63

View File

@ -0,0 +1,13 @@
#!/bin/sh
doas /usr/bin/brightnessctl s $1
BRIGHTNESS=$(echo $1 | sed 's/%//')
eww update brightness=$BRIGHTNESS
if [ $BRIGHTNESS -le 1 ]; then
eww update metric-brightness="zero"
else
eww update metric-brightness="non-zero"
fi

14
eww/scripts/change-volume.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/sh
SINK=$(pactl get-default-sink)
pactl set-sink-volume $SINK $1
VOLUME=$(pactl get-sink-volume $SINK | awk '{print $5}' | head -n1 | sed 's/%//')
eww update volume=$VOLUME
if [ $VOLUME -eq 0 ]; then
eww update metric-volume="zero"
else
eww update metric-volume="non-zero"
fi

View File

@ -0,0 +1,19 @@
#!/bin/sh
STATUS_FILE="$HOME/.config/eww/scripts/.previous-brightness"
STATUS_FILE2="$HOME/.config/eww/scripts/.brightness-off"
BRIGHTNESS=$(brightnessctl | head -2 | tail +2 | awk '{print $4}' | tr -cd '[[:digit:]]')
if $(cat $STATUS_FILE2); then
doas /usr/bin/brightnessctl s $(cat $STATUS_FILE)%
eww update brightness=$(cat $STATUS_FILE)
if [ $(eww get brightness) -ne 0 ]; then
eww update metric-brightness="non-zero"
fi
echo false > $STATUS_FILE2
else
eww update brightness=0
eww update metric-brightness="zero"
echo $BRIGHTNESS > $STATUS_FILE
echo true > $STATUS_FILE2
doas /usr/bin/brightnessctl s 0%
fi

15
eww/scripts/toggle-volume.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/sh
STATUS_FILE="$HOME/.config/eww/scripts/.previous-volume"
SINK=$(pactl get-default-sink)
VOLUME=$(pactl get-sink-volume $SINK | awk '{print $5}' | head -n1 | sed 's/%//')
if [ $VOLUME -eq 0 ]; then
pactl set-sink-volume $SINK $(cat $STATUS_FILE)%
if [ $(eww get volume) -ne 0 ]; then
eww update metric-volume="non-zero"
fi
else
pactl set-sink-volume $SINK 0%
echo $VOLUME > $STATUS_FILE
eww update metric-volume="zero"
fi

3
eww/scripts/volume.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
SINK=$(pactl get-default-sink)
pactl get-sink-volume $SINK | awk '{print $5}' | head -n1 | sed 's/%//'