From 22bb8db705f5b151be30c2708c1a206f028d13e3 Mon Sep 17 00:00:00 2001 From: mpuchstein Date: Thu, 6 Mar 2025 21:40:36 +0100 Subject: [PATCH] added the workspace widget --- eww/eww.scss | 26 +++++++++++++++++++++++++- eww/eww.yuck | 5 +++-- eww/widgets/hypr_activewindow.yuck | 20 +++++++++++--------- eww/widgets/hypr_workspaces.yuck | 17 +++++++++++++---- eww/widgets/{music.yuck => media.yuck} | 0 5 files changed, 52 insertions(+), 16 deletions(-) rename eww/widgets/{music.yuck => media.yuck} (100%) diff --git a/eww/eww.scss b/eww/eww.scss index d785b17..fd97f9a 100644 --- a/eww/eww.scss +++ b/eww/eww.scss @@ -1,9 +1,33 @@ - /* Widgets */ +* { + all: unset; +} + +/* Widgets */ .lorem-text { background: darkgrey; color: black; } +.workspace{ + background: #ffffff; + color: #000000; + + &--activ{ + background: #000000; + color: #ffffff; + } +} + +.activewindow{ + background: #98C379; + color: #ffffff; + + &--xwayland{ + background: red; + color: black; + } +} + .music { background: transparent; color: transparent; diff --git a/eww/eww.yuck b/eww/eww.yuck index 2dbefe2..63c6551 100644 --- a/eww/eww.yuck +++ b/eww/eww.yuck @@ -1,6 +1,7 @@ -(include "./widgets/music.yuck") +(include "./widgets/media.yuck") (include "./widgets/lorem.yuck") (include "./widgets/hypr_activewindow.yuck") +(include "./widgets/hypr_workspaces.yuck") (defwindow topbar_0 :monitor 1 @@ -27,7 +28,7 @@ :space-evenly true :spacing 5 :halign 'start' - (active_window))) + (hypr_workspaces)(hypr_active_window))) (defwidget center [] diff --git a/eww/widgets/hypr_activewindow.yuck b/eww/widgets/hypr_activewindow.yuck index 8daf6d2..edbde88 100644 --- a/eww/widgets/hypr_activewindow.yuck +++ b/eww/widgets/hypr_activewindow.yuck @@ -1,4 +1,4 @@ -(deflisten activewindow :initial "..." "hyprman -f activewindow") +(deflisten activewindow :initial "..." "hyprman -a") (defvar windowIcons `{ @@ -17,18 +17,20 @@ (image :limit-width 10 :icon-size: 12 - :icon {activewindow.data.window_class})) + :icon {activewindow.class})) (defwidget windowTitle [] (label - :class "windowIcon" - :limit-width 10 - :text {activewindow.data.window_title})) + :class "windowTitle" + :limit-width 25 + :unindent true + :text "${activewindow.title}")) -(defwidget active_window [] +(defwidget hypr_active_window [] (box - :class "activewindow" - :halign "center" + :class "activewindow${activewindow.xwayland == true ? '--xwayland' : ''}" + :halign "left" :valign "center" :spacing 1 - (windowIcon) (windowTitle))) + :tooltip {activewindow.class} + (windowTitle))) diff --git a/eww/widgets/hypr_workspaces.yuck b/eww/widgets/hypr_workspaces.yuck index f04d198..5987161 100644 --- a/eww/widgets/hypr_workspaces.yuck +++ b/eww/widgets/hypr_workspaces.yuck @@ -1,5 +1,4 @@ -(deflisten events :initial "" - ../scripts/hyprman) +(deflisten workspaces :initial "" "hyprman -w") (defvar workspaceIcons '{ "empty": "", @@ -7,6 +6,16 @@ "focused": "󱓻" }') -(defvar seperator " ") - +(defwidget hypr_workspaces [] + (box + :space-evenly true + (for workspace in workspaces + (eventbox + :onclick "hyprctl dispatch workspace ${workspace.id}" + :tooltip "current: ${workspace.name}" + (label + :class "workspace${workspace.active == true ? '--activ' : ''}" + :text "${workspace.windows > 0 ? workspaceIcons.full : workspaceIcons.empty}"))))) + + diff --git a/eww/widgets/music.yuck b/eww/widgets/media.yuck similarity index 100% rename from eww/widgets/music.yuck rename to eww/widgets/media.yuck