feat(eww): add mediaplayer widget, fix workspaces, window and audio widgets

This commit is contained in:
João Dias
2024-11-24 11:14:12 -03:00
parent 88af8f4a37
commit f7ae531efd
11 changed files with 115 additions and 71 deletions
+21
View File
@@ -0,0 +1,21 @@
(deflisten media :initial "{}"
`python3 ./scripts/mediaplayer.py`)
(defwidget media []
(box :class "mediaplayer"
:space-evenly false
:visible true
(label :text "${media.title} - ${media.artist}")
(button :class "previous"
:onclick "playerctl previous --player=${media.player}"
"󰒮")
(button :class "toggle play-pause"
:onclick "playerctl play-pause --player=${media.player}"
{ media.status == "playing" ? "󰏤" : "󰐊" })
(button :class "next"
:onclick "playerctl next --player=${media.player}"
"󰒭")
)
)
+4 -6
View File
@@ -1,10 +1,8 @@
(defpoll windowInfo :interval "250ms"
"sh ./scripts/get-window.sh")
(defvar widget_window_visible true)
(deflisten active_window :initial ""
`sh -c 'source ./scripts/window.sh; get_active_window'`)
(defwidget window []
(button :visible "${widget_window_visible}"
"${windowInfo}")
(button :visible { active_window.class == "null" ? false : true }
"${active_window.class}: ${active_window.title}")
)
+11 -8
View File
@@ -1,15 +1,18 @@
(deflisten json_workspaces
:initial "[{1: {}, 2:{}}]"
`hyprctl -j workspaces`)
(deflisten json_workspaces :initial '[{"id": "1"},{"id": "2"}]'
`sh ./scripts/workspaces.sh`)
(deflisten json_active_workspace :initial '{ "id": 1 }'
`sh ./scripts/active-workspace.sh`)
(defwidget workspaces []
(eventbox :onscroll "[[ {} =~ up ]] && hyprctl dispatch workspace e+1 || hyprctl dispatch workspace e-1"
(eventbox :onscroll "[[ {} == up ]] && hyprctl dispatch workspace e+1 || hyprctl dispatch workspace e-1"
(box :class "workspaces"
(for i in json_workspaces
(button :onclick "hyprctl dispatch workspace ${i}"
"${i[0].num}")
(for workspace in json_workspaces
(button :onclick "hyprctl dispatch workspace ${workspace.id}"
:class "${ json_active_workspace.id == workspace.id ? "active" : "default" }"
"${workspace.id}")
)
)
)
)
)