big refactoring

This commit is contained in:
2025-05-07 20:35:17 +02:00
parent 23010ee036
commit 1f045cdf5c
92 changed files with 378 additions and 1324 deletions

View File

@@ -1,92 +1,221 @@
;; /-- Variables -->
(defpoll windows
:interval "1s"
:initial "-"
`sh ~/.config/eww/scripts/xmonad_logs.sh`)
;; /-- Bar -->
(defpoll micClass
:interval "1s"
:initial "micOff"
`sh ~/.config/eww/scripts/mic_class.sh`)
(defwindow bar []
:geometry (geometry
:x "0px"
:y "0px"
:width "100%"
:height "25px"
:anchor "top center"
)
:reserve (struts
:distance "25px"
:side "top")
:exclusive true
:layer "top"
:windowtype "dock"
(box
:orientation "horizontal"
:space-evenly false
:class "bar"
;;(widgetWorkspaces)
;;(widgetLogSeperator)
;;(widgetLayouts)
;;(widgetLogSeperator)
;;(widgetWindows)
(box :hexpand true)
(idle_inhibitor)
(widSep)
(WidgetAudio)
(widSep)
(widgetBacklight)
(widSep)
(widgetCpu)
(widSep)
(widgetMemory)
(widSep)
(widgetBattery)
(widSep)
(widgetNetwork)
(widSep)
(widgetTime)
)
)
(defpoll micIcon
:interval "1s"
:initial "󰍭"
`sh ~/.config/eww/scripts/mic_icon.sh`)
;; /-- Widget Separator -->
(defpoll speakerClass
:interval "1s"
:initial "speakerOff"
`sh ~/.config/eww/scripts/speaker_class.sh`)
(defwidget widSep []
(label
:class "text separator"
:text "|"))
(defpoll speakerIcon
:interval "1s"
:initial ""
`sh ~/.config/eww/scripts/speaker_icon.sh`)
;; /-- Idle Inhibitor -->
(defpoll speakerVolume
:interval "1s"
:initial "0"
`sh ~/.config/eww/scripts/speaker_volume.sh`)
(deflisten idle_inhibitor "journalctl --output=cat --output-fields=JOB_TYPE --user --follow --unit=idle-inhibitor")
(defpoll backlight
:interval "1s"
:initial "0"
`xbacklight -get`)
(defwidget idle_inhibitor []
(box
:space-evenly false
(button
:class "${idle_inhibitor == 'start' ? 'idleOn' : 'idleOff' }"
:onclick "systemctl --user is-active idle-inhibitor.service && systemctl --user stop idle-inhibitor.service || systemctl --user start idle-inhibitor.service"
(label :text "${idle_inhibitor == 'start' ? '󰈈' : '󰛐' }"))))
(defpoll cpu
:interval "1s"
:initial "0"
`sh ~/.config/eww/scripts/cpu.sh`)
;; /-- Audio -->
(defpoll memory
:interval "1s"
:initial "0"
`sh ~/.config/eww/scripts/memory.sh`)
(defvar micClass "micOff")
(defvar micIcon "󰍭")
(defvar speakerClass "speakerOff")
(defvar speakerIcon "")
(defpoll speakerVolume
:interval "1s"
:initial "0"
`sh ~/.config/eww/scripts/audio.sh`)
(defpoll batteryClass
:interval "1s"
:initial "speakerOff"
`sh ~/.config/eww/scripts/battery_class.sh`)
(defwidget WidgetAudio []
(box
:space-evenly false
(label
:class speakerClass
:text "${speakerIcon} ")
(label
:class "text"
:text "${speakerVolume}% ")
(label
:class micClass
:text "${micIcon}")))
(defpoll batteryIcon
:interval "1s"
:initial ""
`sh ~/.config/eww/scripts/battery_icon.sh`)
;; /-- Backlight -->
(defpoll batteryVolume
:interval "1s"
:initial "0"
`sh ~/.config/eww/scripts/battery_volume.sh`)
(defpoll backlight
:interval "1s"
:initial "0"
`xbacklight -get`)
(defpoll networkDown
:interval "1s"
:initial "0"
`sh ~/.config/eww/scripts/network_down.sh`)
(defwidget widgetBacklight []
(box
:space-evenly false
(label
:class "backlight"
:text " ")
(label
:class "text"
:text "${backlight}%")))
(defpoll networkUp
:interval "1s"
:initial "0"
`sh ~/.config/eww/scripts/network_up.sh`)
;; /-- CPU -->
(defpoll date
:interval "1s"
:initial "-"
`date '+ %a %d.%m.%y %H:%M'`)
(defpoll cpu
:interval "1s"
:initial "0"
`sh ~/.config/eww/scripts/cpu.sh`)
(defvar ws1 "ws-empty")
(defvar ws2 "ws-empty")
(defvar ws3 "ws-empty")
(defvar ws4 "ws-empty")
(defvar ws5 "ws-empty")
(defvar ws6 "ws-empty")
(defvar ws7 "ws-empty")
(defvar ws8 "ws-empty")
(defvar ws9 "ws-empty")
(defwidget widgetCpu []
(box
:space-evenly false
(label
:class "cpu"
:text " ")
(label
:class "text"
:text "${cpu}%")))
(defvar layouts "")
;; /-- Memory -->
(defpoll memory
:interval "1s"
:initial "0"
`sh ~/.config/eww/scripts/memory.sh`)
(defwidget widgetMemory []
(box
:space-evenly false
(label
:class "memory"
:text " ")
(label
:class "text"
:text "${memory}%")))
;; /-- Battery -->
(defvar batteryClass "speakerOff")
(defvar batteryIcon "")
(defpoll batteryVolume
:interval "1s"
:initial "0"
`sh ~/.config/eww/scripts/battery.sh`)
(defwidget widgetBattery []
(box
:space-evenly false
(label
:class batteryClass
:text "${batteryIcon} ")
(label
:class "text"
:text "${batteryVolume}%")))
;; /-- Network -->
(defvar networkDown "0")
(defpoll networkUp
:interval "1s"
:initial "0"
`sh ~/.config/eww/scripts/network.sh`)
(defwidget widgetNetwork []
(box
:space-evenly false
(label
:class "networkDown"
:text " ")
(label
:class "text"
:text "${networkDown} ")
(label
:class "networkUp"
:text " ")
(label
:class "text"
:text "${networkUp}")))
;; /-- Time -->
(defpoll date
:interval "1s"
:initial "-"
`date '+ %a %d.%m.%y %H:%M'`)
(defwidget widgetTime []
(box
:space-evenly false
(label
:class "time"
:text " ")
(label
:class "text"
:text "${date}")))
;; /-- XMonad Logs | Old -->
(defvar ws1 "ws-empty")
(defvar ws2 "ws-empty")
(defvar ws3 "ws-empty")
(defvar ws4 "ws-empty")
(defvar ws5 "ws-empty")
(defvar ws6 "ws-empty")
(defvar ws7 "ws-empty")
(defvar ws8 "ws-empty")
(defvar ws9 "ws-empty")
(defvar layouts "")
(defpoll windows
:interval "1s"
:initial "-"
`sh ~/.config/eww/scripts/xmonad_logs.sh`)
;; /-- Blocks -->
(defwidget widgetWorkspaces []
(box
:orientation "horizontal"
@@ -166,141 +295,5 @@
:class "text separator"
:text "⦁"))
(defwidget widgetSpeaker []
(box
:space-evenly false
(label
:class speakerClass
:text "${speakerIcon} ")
(label
:class "text"
:text "${speakerVolume}% ")
(label
:class micClass
:text "${micIcon}")))
(defwidget widgetBacklight []
(box
:space-evenly false
(label
:class "backlight"
:text " ")
(label
:class "text"
:text "${backlight}%")))
(defwidget widgetCpu []
(box
:space-evenly false
(label
:class "cpu"
:text " ")
(label
:class "text"
:text "${cpu}%")))
(defwidget widgetMemory []
(box
:space-evenly false
(label
:class "memory"
:text " ")
(label
:class "text"
:text "${memory}%")))
(defwidget widgetBattery []
(box
:space-evenly false
(label
:class batteryClass
:text "${batteryIcon} ")
(label
:class "text"
:text "${batteryVolume}%")))
(defwidget widgetNetworkDown []
(box
:space-evenly false
(label
:class "networkDown"
:text " ")
(label
:class "text"
:text "${networkDown}")))
(defwidget widgetNetworkUp []
(box
:space-evenly false
(label
:class "networkUp"
:text " ")
(label
:class "text"
:text "${networkUp}")))
(defwidget widgetTime []
(box
:space-evenly false
(label
:class "time"
:text " ")
(label
:class "text"
:text "${date}")))
(defwidget widgetSeperator []
(label
:class "text separator"
:text "|"))
(defwidget idle_inhibitor []
(box :class "idle_inhibitor"
:space-evenly false
(button :class "icon"
:onclick "systemctl --user is-active idle-inhibitor.service && systemctl --user stop idle-inhibitor.service || systemctl --user start idle-inhibitor.service"
(label :text "${idle_inhibitor == 'start' ? '󰈈' : '󰛐' }"))))
;; /-- Bar -->
(defwindow bar []
:geometry (geometry
:x "0px"
:y "0px"
:width "100%"
:height "25px"
:anchor "top center"
)
:reserve (struts
:distance "25px"
:side "top")
:exclusive true
:layer "top"
:windowtype "dock"
(box
:orientation "horizontal"
:space-evenly false
:class "bar"
(widgetWorkspaces)
(widgetLogSeperator)
(widgetLayouts)
(widgetLogSeperator)
(widgetWindows)
(box :hexpand true)
(idle_inhibitor)
(widgetSpeaker)
(widgetSeperator)
(widgetBacklight)
(widgetSeperator)
(widgetCpu)
(widgetSeperator)
(widgetMemory)
(widgetSeperator)
(widgetBattery)
(widgetSeperator)
(widgetNetworkDown)
(widgetSeperator)
(widgetNetworkUp)
(widgetSeperator)
(widgetTime)
)
)

View File

@@ -1,5 +1,5 @@
// <-- Preamble -->
// <-- Colors -->
// /-- Preamble -->
// /-- Colors -->
$white-text: #f5e0dc;
$grey-text: #6c7086;
$grey-background: #1e1e2e;
@@ -10,38 +10,41 @@
$blue: #89b4fa;
$gold: #fab387;
$orange: #fab387;
// <-- Prepare all -->
// /-- Prepare all -->
* {all: unset;}
.text {color: $white-text;}
.separator {padding: 0px 4px;}
// <-- Bar -->
// <-- Widgets -->
// <-- Audio -->
// /-- Bar -->
// /-- Widgets -->
// /-- Idle Inhibtor -->
.idleOn {color: $green;}
.idleOff {color: $green;}
// /-- Audio -->
.micOn {color: $green;}
.micOff {color: $red;}
.speakerOn {color: $green;}
.speakerOff {color: $red;}
// <-- Backlight -->
// /-- Backlight -->
.backlight {color: $yellow;}
// <-- CPU & Memory -->
// /-- CPU & Memory -->
.cpu {color: $violet;}
.memory {color: $blue;}
// <-- Battery -->
// /-- Battery -->
.batteryFull {color: $gold;}
.batteryHalf {color: $green;}
.batteryEmpty {color: $red;}
.batteryCharging {color: $violet;}
.networkDown {color: $red;}
// <-- Network -->
// /-- Network -->
.networkUp {color: $blue;}
// <-- Workspaces -->
// /-- Workspaces -->
.workspace-button {background: $grey-background;}
.ws-current {color: $green;}
.ws-visible {color: $red;}
.ws-hidden {color: $white-text;}
.ws-empty {color: $grey-text;}
.time {color: $orange;}
// <-- Window -->
// /-- Window -->
.bar {
padding: 0.2em 1em;
background: $grey-background;
@@ -49,7 +52,7 @@
font-family: "Fira Code";
font-size: 12px;
}
// <-- Powermenu -->
// /-- Powermenu -->
.powermenu-button {
background-color: #313244;
color: $white-text;
@@ -58,7 +61,7 @@
border-radius: 6px;
font-size: 14px;
}
// <-- Window -->
// /-- Window -->
.powermenu {
background-color: $grey-background;
padding: 20px;

View File

@@ -9,7 +9,7 @@
(label
:text " ")
(button
:onclick "close eww power; ./scripts/blur-lock.sh"
:onclick "close eww power; /home/elias/.config/helperscripts/lock.sh"
:class "powermenu-button"
(label
:text ""))
@@ -23,7 +23,7 @@
(label
:text "")
(button
:onclick "close eww power; ./scripts/logout.sh"
:onclick "close eww power; /home/elias/.config/helperscripts/logout.sh"
:class "powermenu-button"
(label
:text ""))))

View File

@@ -0,0 +1,27 @@
mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}')
volume=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | tr -d '%')
# /-- Mic -->
if pactl get-source-mute @DEFAULT_SOURCE@ | grep -q "yes"; then
eww update micClass="micOff"
eww update micIcon="󰍭"
else
eww update micClass="micOn"
eww update micIcon="󰍬"
fi
# /-- Speaker -->
if [[ "$mute" == "yes" ]]; then
eww update speakerClass="speakerOff"
eww update speakerIcon=""
elif [[ "$volume" -le 100 ]]; then
eww update speakerClass="speakerOn"
eww update speakerIcon=""
else
eww update speakerClass="speakerOn"
eww update speakerIcon=""
fi
echo "$volume"

View File

@@ -0,0 +1,25 @@
bat=$(cat /sys/class/power_supply/BAT0/capacity)
stat=$(cat /sys/class/power_supply/AC/online)
if [ ! -d "/sys/class/power_supply/BAT0" ]; then
bat="100"
eww update batteryClass="batteryFull"
eww update batteryIcon=""
elif [[ $stat == 1 ]]; then
eww update batteryClass="batteryCharging"
eww update batteryIcon=""
elif [[ $bat -le 10 ]]; then
eww update batteryClass="batteryEmpty"
eww update batteryIcon=""
elif [[ $bat -le 50 ]]; then
eww update batteryClass="batteryHalf"
eww update batteryIcon=""
elif [[ $bat -le 80 ]]; then
eww update batteryClass="batteryHalf"
eww update batteryIcon=""
else
eww update batteryClass="batteryFull"
eww update batteryIcon=""
fi
echo "$bat"

View File

@@ -1,16 +0,0 @@
bat=$(cat /sys/class/power_supply/BAT0/capacity)
stat=$(cat /sys/class/power_supply/AC/online)
class="batteryFull"
if [ ! -d "/sys/class/power_supply/BAT0" ]; then
class="batteryFull"
elif [[ $stat == 1 ]]; then
class="batteryCharging"
elif [[ $bat -le 10 ]]; then
class="batteryEmpty"
elif [[ $bat -le 80 ]]; then
class="batteryHalf"
fi
echo "$class"

View File

@@ -1,18 +0,0 @@
bat=$(cat /sys/class/power_supply/BAT0/capacity)
stat=$(cat /sys/class/power_supply/AC/online)
icon=""
if [ ! -d "/sys/class/power_supply/BAT0" ]; then
icon=""
elif [[ $stat == 1 ]]; then
icon=""
elif [[ $bat -le 10 ]]; then
icon=""
elif [[ $bat -le 50 ]]; then
icon=""
elif [[ $bat -le 80 ]]; then
icon=""
fi
echo "$icon"

View File

@@ -1,7 +0,0 @@
bat=$(cat /sys/class/power_supply/BAT0/capacity)
if [ ! -d "/sys/class/power_supply/BAT0" ]; then
bat="100"
fi
echo "$bat"

View File

@@ -1 +0,0 @@
betterlockscreen --lock blur

View File

@@ -1,5 +1,4 @@
cpu_idle=$(top -bn1 | awk '/Cpu\(s\)/ {print $8}')
cpu_used=$(awk "BEGIN {print 100 - $cpu_idle}")
# Print only the numeric result
printf "%.0f\n" "$cpu_used"

View File

@@ -1 +0,0 @@
pkill river

View File

@@ -1,5 +0,0 @@
if pactl get-source-mute @DEFAULT_SOURCE@ | grep -q "yes"; then
echo "micOff"
else
echo "micOn"
fi

View File

@@ -1,5 +0,0 @@
if pactl get-source-mute @DEFAULT_SOURCE@ | grep -q "yes"; then
echo "󰍭" # muted
else
echo "󰍬" # unmuted
fi

View File

@@ -0,0 +1,16 @@
# You can change this if your interface is named differently (e.g., eth0, enp3s0)
INTERFACE=$(ip route get 1.1.1.1 | awk '{print $5; exit}')
# /-- Uprate -->
TX_PREV=$(cat /sys/class/net/"$INTERFACE"/statistics/tx_bytes)
sleep 1
TX_CUR=$(cat /sys/class/net/"$INTERFACE"/statistics/tx_bytes)
TX_RATE=$(((TX_CUR - TX_PREV) / 1024))
# /-- Downrate -->
RX_PREV=$(cat /sys/class/net/"$INTERFACE"/statistics/rx_bytes)
sleep 1
RX_CUR=$(cat /sys/class/net/"$INTERFACE"/statistics/rx_bytes)
eww update networkDown=$(((RX_CUR - RX_PREV) / 1024))
echo "${TX_RATE}"

View File

@@ -1,11 +0,0 @@
# You can change this if your interface is named differently (e.g., eth0, enp3s0)
INTERFACE=$(ip route get 1.1.1.1 | awk '{print $5; exit}')
RX_PREV=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
sleep 1
RX_CUR=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
# Calculate download/upload in KiB/s
RX_RATE=$(((RX_CUR - RX_PREV) / 1024))
# Output formatted for Eww
echo "${RX_RATE}"

View File

@@ -1,8 +0,0 @@
# You can change this if your interface is named differently (e.g., eth0, enp3s0)
INTERFACE=$(ip route get 1.1.1.1 | awk '{print $5; exit}')
TX_PREV=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
sleep 1
TX_CUR=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
TX_RATE=$(((TX_CUR - TX_PREV) / 1024))
echo "${TX_RATE}"

View File

@@ -1,8 +0,0 @@
mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}')
volume=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | tr -d '%')
if [[ "$mute" == "yes" ]]; then
echo "speakerOff" # muted icon
else
echo "speakerOn" # high volume
fi

View File

@@ -1,10 +0,0 @@
mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}')
volume=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | tr -d '%')
if [[ "$mute" == "yes" ]]; then
echo "" # muted icon
elif [[ "$volume" -le 100 ]]; then
echo "" # low volume
else
echo "" # high volume
fi

View File

@@ -1,4 +0,0 @@
volume=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | tr -d '%')
half_volume=$((volume / 2))
echo "$half_volume"