From 2f64a2097812c1820766909037e724f3415c7576 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sun, 26 Jul 2026 00:13:26 +0530 Subject: feat: migrate to Wayland-native media tools, drop X11 cruft, polish waybar and hyprland MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- modules/desktop/hyprland/default.nix | 22 +++--------------- modules/desktop/hyprland/keybindings.nix | 12 ++++++---- modules/desktop/rofi/theme.mustache.rasi | 18 ++++++++------- modules/desktop/waybar/module/default.nix | 2 +- modules/desktop/waybar/module/network.nix | 4 ++-- modules/desktop/waybar/module/workspaces.nix | 34 ++++++++++++++++++++++++++-- modules/desktop/waybar/style.nix | 9 ++++++-- 7 files changed, 63 insertions(+), 38 deletions(-) (limited to 'modules/desktop') diff --git a/modules/desktop/hyprland/default.nix b/modules/desktop/hyprland/default.nix index 37f22d8..7c5f811 100644 --- a/modules/desktop/hyprland/default.nix +++ b/modules/desktop/hyprland/default.nix @@ -32,7 +32,7 @@ in border_size = 1; col = { active_border = { - colors = [ (toHyprColor base03) ]; + colors = [ (toHyprColor base07) ]; angle = 45; }; inactive_border = toHyprColor base00; @@ -67,29 +67,13 @@ in { name = "size-file-explorer"; match.class = "^(file-explorer)$"; - size = "1280 720"; + size = "1000 600"; } { name = "center-file-explorer"; match.class = "^(file-explorer)$"; center = true; } - - { - name = "float-rofi"; - match.class = "^(rofi)$"; - float = true; - } - { - name = "size-rofi"; - match.class = "^(rofi)$"; - size = "800 600"; - } - { - name = "center-rofi"; - match.class = "^(rofi)$"; - center = true; - } ]; }; }; @@ -98,7 +82,7 @@ in enable = true; package = pkgs.rose-pine-hyprcursor; name = "rose-pine-hyprcursor"; - size = 20; + size = 18; hyprcursor.enable = true; gtk.enable = false; x11.enable = false; diff --git a/modules/desktop/hyprland/keybindings.nix b/modules/desktop/hyprland/keybindings.nix index f8f074c..a72c965 100644 --- a/modules/desktop/hyprland/keybindings.nix +++ b/modules/desktop/hyprland/keybindings.nix @@ -134,9 +134,13 @@ in (bind "SHIFT + 0" "hl.dsp.window.move({ workspace = 10 })") # --- Screenshots --- - (bind "P" (execLuaSingle "grim -g \"$(slurp)\" - | wl-copy")) - (bind "SHIFT + P" ( - execLuaSingle "mkdir -p ~/Pictures/Screenshots && grim -g \"$(slurp)\" ~/Pictures/Screenshots/screenshot-$(date +%Y%m%d-%H%M%S).png" - )) + (lib.optionals (config.media.grim.enable && config.media.slurp.enable) [ + (bind "P" ( + execLuaSingle "${lib.getExe config.media.grim.package} -g \"$(${lib.getExe config.media.slurp.package})\" - | wl-copy" + )) + (bind "SHIFT + P" ( + execLuaSingle "mkdir -p ~/Pictures/Screenshots && ${lib.getExe config.media.grim.package} -g \"$(${lib.getExe config.media.slurp.package})\" ~/Pictures/Screenshots/screenshot-$(date +%Y%m%d-%H%M%S).png" + )) + ]) ]; } diff --git a/modules/desktop/rofi/theme.mustache.rasi b/modules/desktop/rofi/theme.mustache.rasi index d877fe8..794da97 100644 --- a/modules/desktop/rofi/theme.mustache.rasi +++ b/modules/desktop/rofi/theme.mustache.rasi @@ -42,15 +42,15 @@ background-color: transparent; foreground: @base07; - border-color: @base03; + border-color: @base07; separatorcolor: @base02; - selected-normal-background: @base02; + selected-normal-background: @base00; selected-normal-foreground: @base07; - selected-active-background: @base0D; - selected-active-foreground: @base00; - selected-urgent-background: @base08; - selected-urgent-foreground: @base00; + selected-active-background: @base00; + selected-active-foreground: @base07; + selected-urgent-background: @base00; + selected-urgent-foreground: @base0F; normal-background: @base00; normal-foreground: @base03; @@ -78,8 +78,10 @@ mainbox { } inputbar { - background-color: @base01; + background-color: @background; text-color: @foreground; + border: 1.5px; + border-color: @border-color; padding: 10px 14px; spacing: 10px; children: [ "prompt", "entry" ]; @@ -88,7 +90,7 @@ inputbar { prompt { background-color: transparent; text-color: @base04; - font: "JetBrainsMono Nerd Font Bold 11"; + font: "FiraCode Nerd Font Bold 11"; } entry { 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 = "{icon} 󰁅 {bandwidthDownBytes} 󰁝 {bandwidthUpBytes}"; - format-ethernet = " 󰁅 {bandwidthDownBytes} 󰁝 {bandwidthUpBytes}"; + format-wifi = "{icon} 󰁅{bandwidthDownBytes} 󰁝{bandwidthUpBytes}"; + format-ethernet = " 󰁅{bandwidthDownBytes} 󰁝{bandwidthUpBytes}"; format-disconnected = "󰤮 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 "${icon}"; +in { - format = "{name}"; + format = "{windows} {id}"; persistent-workspaces = { "*" = [ 1 @@ -16,4 +21,29 @@ with config.scheme.withHashtag; 10 ]; }; + window-rewrite-default = ""; + window-rewrite = { + "class" = mkWindowRewrite config.web.chromium.enable "#4285F4" ""; + "class" = mkWindowRewrite config.terminal.kitty.enable "#F5A97F" "󰄛"; + "class" = mkWindowRewrite config.media.vlc.enable "#FF8800" "󰕼"; + "class" = mkWindowRewrite config.media.feh.enable "#7EC699" "󰋩"; + "class" = mkWindowRewrite config.office.zathura.enable "#E06C75" ""; + "class" = mkWindowRewrite config.gaming.heroic.enable "#4B93FF" "󱎓"; + "class" = mkWindowRewrite config.gaming.steam.enable "#1B2838" "󰓓"; + "class" = mkWindowRewrite config.development.bruno.enable "#F97316" "󰩃"; + "class" = mkWindowRewrite config.development.vscodium.enable "#3993EE" ""; + "class<.virt-manager-wrapped>" = mkWindowRewrite config.development.qemu.enable "#AD8AFF" "󰟀"; + "class" = mkWindowRewrite config.development.opencode.enable "#98C379" "󰘦"; + "class" = mkWindowRewrite config.security.enteauth.enable "#E5C07B" "󰍀"; + "class" = mkWindowRewrite config.file-management.yazi.enable "#56B6C2" "󰉋"; + "class" = mkWindowRewrite config.file-management.yazi.enable "#56B6C2" "󰉋"; + "class" = mkWindowRewrite config.web.w3m.enable "#8BE9FD" "󰖟"; + "class" = mkWindowRewrite config.networking.bluetui.enable "#BD93F9" ""; + "class" = mkWindowRewrite config.networking.impala.enable "#50FA7B" "󰤢"; + "class" = mkWindowRewrite config.communication.neomutt.enable "#FFB86C" "󰇮"; + "class" = mkWindowRewrite config.desktop.rofi.enable "#BD93F9" ""; + "class" = mkWindowRewrite config.scripts.aria2-run.enable "#8BE9FD" ""; + "class" = mkWindowRewrite config.scripts.screen-recording.enable "#FF5555" ""; + "class" = 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 { -- cgit v1.2.3