aboutsummaryrefslogtreecommitdiffstats
path: root/modules/desktop/waybar
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-26 00:13:26 +0530
committerArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-26 00:13:26 +0530
commit2f64a2097812c1820766909037e724f3415c7576 (patch)
tree8dd91e2d68df1530e3db00db82be91135c672e36 /modules/desktop/waybar
parent550cadaf45165ccbc3dbe050a45d0d041c2c221d (diff)
downloadhome-manager-config-2f64a2097812c1820766909037e724f3415c7576.tar.gz
home-manager-config-2f64a2097812c1820766909037e724f3415c7576.zip
feat: migrate to Wayland-native media tools, drop X11 cruft, polish waybar and hyprland
- Switch ffmpeg/maim/slop → grim/slurp/wf-recorder (X11→Wayland) - Rewrite screen-recording script for wf-recorder+slurp - Add window-rewrite icons and style workspace buttons in waybar - Set --class on kitty desktop entries for correct hyprland window matching - Remove i3-keybindings script and stale rofi window rules - Tweak cursor size, border colors, file-explorer dimensions
Diffstat (limited to 'modules/desktop/waybar')
-rw-r--r--modules/desktop/waybar/module/default.nix2
-rw-r--r--modules/desktop/waybar/module/network.nix4
-rw-r--r--modules/desktop/waybar/module/workspaces.nix34
-rw-r--r--modules/desktop/waybar/style.nix9
4 files changed, 42 insertions, 7 deletions
diff --git a/modules/desktop/waybar/module/default.nix b/modules/desktop/waybar/module/default.nix
index 628b534..ee2918a 100644
--- a/modules/desktop/waybar/module/default.nix
+++ b/modules/desktop/waybar/module/default.nix
@@ -6,7 +6,7 @@
with config.scheme.withHashtag;
{
mainBar = {
- "hyprland/workspaces" = import ./workspaces.nix { inherit config; };
+ "hyprland/workspaces" = import ./workspaces.nix { inherit config lib; };
"hyprland/window" = import ./window.nix { inherit config; };
"pulseaudio" = import ./volume.nix {
inherit config;
diff --git a/modules/desktop/waybar/module/network.nix b/modules/desktop/waybar/module/network.nix
index 514d54e..fb1e836 100644
--- a/modules/desktop/waybar/module/network.nix
+++ b/modules/desktop/waybar/module/network.nix
@@ -3,8 +3,8 @@ with config.scheme.withHashtag;
{
interval = 2;
- format-wifi = "<span foreground='${iconColor}'>{icon}</span> 󰁅 {bandwidthDownBytes} 󰁝 {bandwidthUpBytes}";
- format-ethernet = "<span foreground='${iconColor}'></span> 󰁅 {bandwidthDownBytes} 󰁝 {bandwidthUpBytes}";
+ format-wifi = "<span foreground='${iconColor}'>{icon}</span> 󰁅{bandwidthDownBytes} 󰁝{bandwidthUpBytes}";
+ format-ethernet = "<span foreground='${iconColor}'></span> 󰁅{bandwidthDownBytes} 󰁝{bandwidthUpBytes}";
format-disconnected = "<span foreground='${iconColor}'>󰤮</span> Disconnected";
tooltip-format = "{ifname}";
diff --git a/modules/desktop/waybar/module/workspaces.nix b/modules/desktop/waybar/module/workspaces.nix
index b3625dc..a16b9e5 100644
--- a/modules/desktop/waybar/module/workspaces.nix
+++ b/modules/desktop/waybar/module/workspaces.nix
@@ -1,7 +1,12 @@
-{ config }:
+{ config, lib }:
with config.scheme.withHashtag;
+let
+ mkWindowRewrite =
+ enable: color: icon:
+ lib.mkIf enable "<span font_size='150%' color='${color}'>${icon}</span>";
+in
{
- format = "{name}";
+ format = "{windows} <span rise='-3000' font_size='small'>{id}</span>";
persistent-workspaces = {
"*" = [
1
@@ -16,4 +21,29 @@ with config.scheme.withHashtag;
10
];
};
+ window-rewrite-default = "";
+ window-rewrite = {
+ "class<chromium-browser>" = mkWindowRewrite config.web.chromium.enable "#4285F4" "";
+ "class<kitty>" = mkWindowRewrite config.terminal.kitty.enable "#F5A97F" "󰄛";
+ "class<vlc>" = mkWindowRewrite config.media.vlc.enable "#FF8800" "󰕼";
+ "class<feh>" = mkWindowRewrite config.media.feh.enable "#7EC699" "󰋩";
+ "class<org.pwmt.zathura>" = mkWindowRewrite config.office.zathura.enable "#E06C75" "";
+ "class<heroic>" = mkWindowRewrite config.gaming.heroic.enable "#4B93FF" "󱎓";
+ "class<Steam>" = mkWindowRewrite config.gaming.steam.enable "#1B2838" "󰓓";
+ "class<bruno>" = mkWindowRewrite config.development.bruno.enable "#F97316" "󰩃";
+ "class<codium>" = mkWindowRewrite config.development.vscodium.enable "#3993EE" "";
+ "class<.virt-manager-wrapped>" = mkWindowRewrite config.development.qemu.enable "#AD8AFF" "󰟀";
+ "class<opencode>" = mkWindowRewrite config.development.opencode.enable "#98C379" "󰘦";
+ "class<io.ente.auth>" = mkWindowRewrite config.security.enteauth.enable "#E5C07B" "󰍀";
+ "class<file-explorer>" = mkWindowRewrite config.file-management.yazi.enable "#56B6C2" "󰉋";
+ "class<yazi>" = mkWindowRewrite config.file-management.yazi.enable "#56B6C2" "󰉋";
+ "class<w3m>" = mkWindowRewrite config.web.w3m.enable "#8BE9FD" "󰖟";
+ "class<bluetui>" = mkWindowRewrite config.networking.bluetui.enable "#BD93F9" "";
+ "class<impala>" = mkWindowRewrite config.networking.impala.enable "#50FA7B" "󰤢";
+ "class<neomutt>" = mkWindowRewrite config.communication.neomutt.enable "#FFB86C" "󰇮";
+ "class<rofi>" = mkWindowRewrite config.desktop.rofi.enable "#BD93F9" "";
+ "class<aria2-run>" = mkWindowRewrite config.scripts.aria2-run.enable "#8BE9FD" "";
+ "class<screen-recording>" = mkWindowRewrite config.scripts.screen-recording.enable "#FF5555" "";
+ "class<system-monitor>" = mkWindowRewrite config.scripts.system-monitor.enable "#50FA7B" "󰄨";
+ };
}
diff --git a/modules/desktop/waybar/style.nix b/modules/desktop/waybar/style.nix
index 861555e..b0da995 100644
--- a/modules/desktop/waybar/style.nix
+++ b/modules/desktop/waybar/style.nix
@@ -32,7 +32,7 @@ with config.scheme.withHashtag;
#window, #pulseaudio, #battery, #custom-vpn, #network,
#clock.time, #memory, #cpu, #clock.date {
- border: 1.5px solid ${base03};
+ border: 1.5px solid ${base07};
color: ${base07};
padding: 0 8px;
}
@@ -45,6 +45,7 @@ with config.scheme.withHashtag;
min-width: 24px;
min-height: 24px;
margin: 0 2px;
+ font-size: 30px;
}
#workspaces button:hover {
@@ -52,7 +53,11 @@ with config.scheme.withHashtag;
}
#workspaces button.active {
- background: ${base03};
+ border-color: ${base07};
+ }
+
+ #workspaces button.empty {
+ color: ${base03};
}
#workspaces button.urgent {