From 89bdb526f0befba69d95a8895cc9db0a90978934 Mon Sep 17 00:00:00 2001 From: Felix Schulze Date: Sat, 28 Jun 2025 13:24:47 +0200 Subject: [PATCH] hurricane: 122 current 2025-06-28 13:24:35 25.05.20250620.b2485d5 6.15.3 * big waybar fixes --- modules/common.nix | 1 + modules/desktops/hyprland-desktop.nix | 1 + modules/hm/waybar.nix | 189 +++++++++++++++++++++----- modules/programs.nix | 1 + 4 files changed, 161 insertions(+), 31 deletions(-) diff --git a/modules/common.nix b/modules/common.nix index 8785dc8..9d65d8c 100644 --- a/modules/common.nix +++ b/modules/common.nix @@ -125,6 +125,7 @@ pulse.enable = true; # PulseAudio compatibility wireplumber.enable = true; # Session manager }; + playerctld.enable = true; # Playerctl daemon for media controls # Antivirus protection with automatic updates clamav = { diff --git a/modules/desktops/hyprland-desktop.nix b/modules/desktops/hyprland-desktop.nix index 2d7f842..428e51d 100644 --- a/modules/desktops/hyprland-desktop.nix +++ b/modules/desktops/hyprland-desktop.nix @@ -107,6 +107,7 @@ mako # Notification daemon hyprlock # Screen lock utility hyprpicker # Color picker + waybar-mpris # MPRIS support for waybar # ---- CLIPBOARD & INPUT ---- wl-clipboard # Clipboard utilities for Wayland diff --git a/modules/hm/waybar.nix b/modules/hm/waybar.nix index b18d0f3..6b096de 100644 --- a/modules/hm/waybar.nix +++ b/modules/hm/waybar.nix @@ -3,22 +3,22 @@ enable = true; settings = [ { - output = ["eDP-1"]; + output = ["DP-3" "eDP-1"]; spacing = 8; - "modules-left" = ["hyprland/workspaces"]; - "modules-center" = ["mpris" "cava" "hyprland/window"]; - "modules-right" = ["idle_inhibitor" "custom/audio_idle_inhibitor" "wireplumber" "backlight" "battery" "clock" "tray"]; + "modules-left" = ["hyprland/workspaces" "cava" "mpris"]; + "modules-center" = ["hyprland/window"]; + "modules-right" = ["idle_inhibitor" "wireplumber" "backlight" "load" "power-profiles-daemon" "battery" "clock" "tray"]; + "hyprland/workspaces" = { "all-outputs" = false; - "warp-on-scroll" = true; - "enable-bar-scroll" = true; }; "hyprland/window" = { format = "{title}"; "max-length" = 60; "all-outputs" = true; + "separate-outputs" = true; }; - load = {format = " {}";}; + load = {format = " {load1}";}; backlight = { format = "{icon} {percent}%"; "format-icons" = ["" "" "" "" "" "" "" "" ""]; @@ -29,19 +29,20 @@ "format-alt" = " {:%a %F}"; }; cava = { - framerate = 30; + framerate = 60; autosens = 1; - bars = 14; + bars = 10; "lower_cutoff_freq" = 50; "higher_cutoff_freq" = 10000; method = "pulse"; source = "auto"; - stereo = true; + stereo = false; "bar_delimiter" = 0; "noise_reduction" = 0.77; "input_delay" = 2; "hide_on_silence" = true; - "format-icons" = [" " "▂" "▃" "▄" "▅" "▆" "▇" "█"]; + "sleep_timer" = 3; + "format-icons" = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"]; actions = {"on-click-right" = "mode";}; }; "idle_inhibitor" = { @@ -55,6 +56,17 @@ "icon-size" = 14; spacing = 10; }; + "power-profiles-daemon" = { + "format" = "{icon}"; + "tooltip-format" = "Power profile: {profile}\nDriver: {driver}"; + "tooltip" = true; + "format-icons" = { + "default" = ""; + "performance" = ""; + "balanced" = ""; + "power-saver" = ""; + }; + }; battery = { states = { warning = 30; @@ -79,18 +91,114 @@ "dynamic-order" = ["title" "artist"]; }; - "custom/audio_idle_inhibitor" = { - format = "{icon}"; - exec = "sway-audio-idle-inhibit --dry-print-both-waybar --ignore-source-outputs cava"; - "exec-if" = "which sway-audio-idle-inhibit"; - "return-type" = "json"; + wireplumber = { + "scroll-step" = 1; + format = "{icon} {volume}%"; + "format-bluetooth" = "{icon} {volume}% "; + "format-bluetooth-muted" = "󰆪 {icon}"; + "format-muted" = "󰆪"; "format-icons" = { - output = ""; - input = ""; - "output-input" = " "; - none = ""; + headphone = ""; + "hands-free" = "󰂑"; + headset = "󰂑"; + phone = ""; + portable = ""; + car = ""; + default = ["" "" ""]; + }; + "on-click" = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; + "on-click-right" = "pavucontrol"; + }; + } + { + output = ["HDMI-A-1"]; + spacing = 8; + "modules-left" = ["hyprland/workspaces" "cava" "mpris"]; + "modules-center" = ["hyprland/window"]; + "modules-right" = ["clock"]; + + "hyprland/workspaces" = { + "all-outputs" = false; + }; + "hyprland/window" = { + format = "{title}"; + "max-length" = 60; + "all-outputs" = true; + "separate-outputs" = true; + }; + load = {format = " {load1}";}; + backlight = { + format = "{icon} {percent}%"; + "format-icons" = ["" "" "" "" "" "" "" "" ""]; + }; + clock = { + "tooltip-format" = "{:%Y %B}\n{calendar}"; + format = " {:%H:%M}"; + "format-alt" = " {:%a %F}"; + }; + cava = { + framerate = 60; + autosens = 1; + bars = 10; + "lower_cutoff_freq" = 50; + "higher_cutoff_freq" = 10000; + method = "pulse"; + source = "auto"; + stereo = false; + "bar_delimiter" = 0; + "noise_reduction" = 0.77; + "input_delay" = 2; + "hide_on_silence" = true; + "sleep_timer" = 3; + "format-icons" = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"]; + actions = {"on-click-right" = "mode";}; + }; + "idle_inhibitor" = { + format = "{icon}"; + "format-icons" = { + activated = ""; + deactivated = ""; }; }; + tray = { + "icon-size" = 14; + spacing = 10; + }; + "power-profiles-daemon" = { + "format" = "{icon}"; + "tooltip-format" = "Power profile: {profile}\nDriver: {driver}"; + "tooltip" = true; + "format-icons" = { + "default" = ""; + "performance" = ""; + "balanced" = ""; + "power-saver" = ""; + }; + }; + battery = { + states = { + warning = 30; + critical = 15; + }; + format = "{icon} {capacity}%"; + "format-full" = "{icon} {capacity}%"; + "format-charging" = "󰃨 {capacity}%"; + "format-plugged" = " {capacity}%"; + "format-alt" = "{icon} {time}"; + "format-icons" = ["" "" "" "" ""]; + }; + mpris = { + format = "{status_icon} {dynamic}"; + interval = 1; + "dynamic-len" = 60; + "status-icons" = { + playing = "▶"; + paused = "⏸"; + stopped = ""; + }; + "dynamic-order" = ["title" "artist"]; + }; + wireplumber = { "scroll-step" = 1; format = "{icon} {volume}%"; @@ -158,12 +266,12 @@ } window#waybar { - font-family: Iosevka Nerd Font Propo, monospace; + font-family: Intel One Mono, Symbols Nerd Font Mono, monospace; background-color: transparent; border-bottom: 0px; color: @fg; transition-property: background-color; - transition-duration: .5s; + transition-duration: .4s; } window#waybar.hidden { @@ -184,14 +292,10 @@ } */ + .modules-left, + .modules-center, .modules-right { - margin: 10px 10px 0 0; - } - .modules-center { - margin: 10px 0 0 0; - } - .modules-left { - margin: 10px 0 0 10px; + margin: 15px 15px 0; } button { @@ -231,10 +335,11 @@ } #workspaces button:hover { - color: @yellow; + color: @orange; } - #workspaces button.focused { + #workspaces button.active { + color: @yellow; background-color: @bg3; /* box-shadow: inset 0 -3px #ffffff; */ } @@ -255,6 +360,7 @@ #wireplumber, #tray, #mpris, + #power-profiles-daemon, #load { padding: 0 10px; background-color: @bg; @@ -287,11 +393,32 @@ padding: 0 5px; } + #cava.silent { + background-color: transparent; + color: transparent; + padding: 0; + } + #battery.charging, #battery.plugged { background-color: @green; color: @fglight; } + #power-profiles-daemon.performance { + background-color: @red; + color: @fglight; + } + + #power-profiles-daemon.balanced { + background-color: @blue; + color: @fglight; + } + + #power-profiles-daemon.power-saver { + background-color: @green; + color: @fglight; + } + @keyframes blink { to { background-color: @bg; diff --git a/modules/programs.nix b/modules/programs.nix index e9c4ff8..0883d34 100644 --- a/modules/programs.nix +++ b/modules/programs.nix @@ -80,6 +80,7 @@ in { darktable # Raw editor imagemagick # Image processing mpv # Video player + cava # Audio visualizer ]; programs = {