small amounts of work on ws monitor

This commit is contained in:
Schrottkatze 2025-03-14 13:09:28 +01:00
parent bc6d1a94a5
commit 582b4cbe3f
Signed by: schrottkatze
SSH key fingerprint: SHA256:FPOYVeBy3QP20FEM42uWF1Wa/Qhlk+L3S2+Wuau/Auo
3 changed files with 19 additions and 14 deletions
modules/desktop-environment/home/panels/eww/configDir
programs/bar-ws-monitor/src

View file

@ -3,8 +3,8 @@
:class "workspaces"
(for workspace in workspaces
(button
:style "border-bottom: 4px solid ${workspace.color}"
:class "${workspace.active ? "focused" : 0}"
:style "border-bottom: 4px solid ${workspace.color}${workspace.active ? "; background-color: #3c3836" : ""}"
:class "${workspace.focused ? "focused" : ""}"
:onclick "swaymsg workspace ${workspace.name}"
(label :text "${workspace.idx}")
)

View file

@ -10,10 +10,6 @@ label {
border: 0px;
}
.workspaces button.urgent {
background-color: #cc241d;
}
.workspaces button.focused {
background-color: #504935;
}
@ -37,4 +33,4 @@ label {
.traveldingsWindow {
border-radius: 15px;
}
}

View file

@ -46,6 +46,7 @@ fn main() -> Result<(), std::io::Error> {
.values()
.map(|it| it.clone())
.collect::<Vec<Workspace>>();
workspaces.sort_by(|a, b| a.idx.cmp(&b.idx));
workspaces.sort_by(|a, b| {
a.output
@ -71,13 +72,21 @@ fn main() -> Result<(), std::io::Error> {
let results = workspaces
.iter()
.map(|ws| WsData {
color: output_colors_lut[&ws.output.clone().expect("unreachable")]
[if ws.is_active { 1 } else { 0 }],
idx: ws.idx,
focused: ws.is_focused,
active: ws.is_active,
})
.map(
|Workspace {
idx,
output,
is_active,
is_focused,
..
}| WsData {
color: output_colors_lut[&output.clone().expect("unreachable")]
[if *is_active { 1 } else { 0 }],
idx: *idx,
focused: *is_focused,
active: *is_active,
},
)
.collect::<Vec<_>>();
println!("{}", serde_json::to_string(&results).unwrap());