[eww] Add workspaces & systray

This commit is contained in:
Viyurz 2024-10-21 11:14:08 +02:00
parent c8ab72f878
commit e4b35d69e8
Signed by: Viyurz
SSH key fingerprint: SHA256:IskOHTmhHSJIvAt04N6aaxd5SZCVWW1Guf9tEcxIMj8
5 changed files with 85 additions and 16 deletions

View file

@ -36,26 +36,38 @@
}
}
label {
label, .systray {
padding: 6px;
}
.workspace {
color: $foreground;
label {
padding: 0 10px;
}
}
.workspace:hover {
background-color: $hovered;
}
.workspace.active {
background-color: $selected;
}
scale {
padding: 0 4px;
}
scale slider {
slider {
all: unset;
}
scale trough {
}
trough {
min-height: 6px;
min-width: 60px;
}
progressbar trough {
}
progressbar trough {
border: 2px solid $accent2;
border-radius: 16px;
}
}
progress {

View file

@ -15,21 +15,45 @@
; Window Title
(deflisten window-title "hyprctl activewindow -j | jq --raw-output .title; socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | stdbuf -o0 awk -F '>>|,' '/^activewindow>>/{print $3}'")
; Workspaces
(deflisten workspaces "~/.config/eww/scripts/get-workspaces.sh")
(deflisten active-workspace "~/.config/eww/scripts/get-active-workspace.sh")
; Widgets
(defwidget bar-left []
(box :halign "start"
:space-evenly false
(workspaces)
(systray :spacing 8
:icon-size 16
:class "systray"
)
)
)
(defwidget workspaces []
(eventbox :onscroll "~/.config/eww/scripts/change-active-workspace.sh {} ${active-workspace}"
(box :spacing 0
(for workspace in workspaces
(eventbox :onclick "hyprctl dispatch workspace ${workspace}"
:class "workspace ${workspace == active-workspace ? "active" : ""}"
(label :text "${workspace}")
)
)
)
)
)
(defwidget bar-middle []
(label :limit-width 2
:text "${window-title}"
)
)
(defwidget bar-right []
(box :halign "end"
:space-evenly false

View file

@ -0,0 +1,21 @@
#!/usr/bin/env bash
function clamp {
min=$1
max=$2
val=$3
python -c "print(max($min, min($val, $max)))"
}
direction=$1
current=$2
if test "$direction" = "down"
then
target=$(clamp 1 10 $(($current+1)))
echo "jumping to $target"
hyprctl dispatch workspace $target
elif test "$direction" = "up"
then
target=$(clamp 1 10 $(($current-1)))
echo "jumping to $target"
hyprctl dispatch workspace $target
fi

View file

@ -0,0 +1,6 @@
#!/usr/bin/env bash
hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id'
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}'

View file

@ -0,0 +1,6 @@
#!/usr/bin/env bash
hyprctl workspaces -j | jq -c '[.[].id] | map(tostring)'
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
hyprctl workspaces -j | jq -c '[.[].id] | map(tostring)'
done