From 1e811035a5400ffcd34d9095734fb609dbcb5877 Mon Sep 17 00:00:00 2001 From: Nils Pukropp Date: Tue, 31 Mar 2026 10:20:16 +0200 Subject: [PATCH] updated waybar + hypr rules --- alacritty/alacritty.toml | 5 + fuzzel/fuzzel.ini | 23 +++- hypr/hyprpaper.conf | 4 +- hypr/lid_state.conf | 1 + hypr/modules/theme.conf | 6 +- hypr/modules/window_rules.conf | 12 ++ mimeapps.list | 1 + waybar/config.jsonc | 51 +++++---- waybar/config.jsonc.new | 202 --------------------------------- waybar/style.css | 182 +++++++++++++++-------------- 10 files changed, 162 insertions(+), 325 deletions(-) delete mode 100644 waybar/config.jsonc.new diff --git a/alacritty/alacritty.toml b/alacritty/alacritty.toml index 42edbdb..cfcfbe6 100644 --- a/alacritty/alacritty.toml +++ b/alacritty/alacritty.toml @@ -104,3 +104,8 @@ ipc_socket = true ## Import additional configuration files. import = ["~/.config/alacritty/colors.toml", "~/.config/alacritty/fonts.toml"] + +[[keyboard.bindings]] +key = "Return" +mods = "Shift" +chars = "\u001B\r" diff --git a/fuzzel/fuzzel.ini b/fuzzel/fuzzel.ini index 53d23c8..a7a38b2 100644 --- a/fuzzel/fuzzel.ini +++ b/fuzzel/fuzzel.ini @@ -1,13 +1,28 @@ include=~/.config/fuzzel/catppuccin-fuzzel/themes/catppuccin-mocha/red.ini +include=~/.config/fuzzel/catppuccin-fuzzel/themes/catppuccin-mocha/red.ini [main] font=FiraCode Nerd Font:size=14 terminal=alacritty dpi-aware=no -prompt="> " -icon-theme=Papirus-Dark -show-actions=yes + +width=45 +lines=8 +horizontal-pad=20 +vertical-pad=20 +inner-pad=10 + +prompt=" " + +show-actions=no +layer=overlay [border] -radius=4 +radius=12 width=2 + +[colors] +background=1e1e2e80 +# Matches the background so the counter becomes invisible for a cleaner look +counter=1e1e2eff +border=f38ba8ff diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf index a9bbcdf..ef47984 100644 --- a/hypr/hyprpaper.conf +++ b/hypr/hyprpaper.conf @@ -1,5 +1,5 @@ wallpaper { monitor = - path = ~/Pictures/mandelbrot.png - fit_mode = fill + path = ~/Pictures/reze/reze.png + fit_mode = cover } diff --git a/hypr/lid_state.conf b/hypr/lid_state.conf index e69de29..8b13789 100644 --- a/hypr/lid_state.conf +++ b/hypr/lid_state.conf @@ -0,0 +1 @@ + diff --git a/hypr/modules/theme.conf b/hypr/modules/theme.conf index 933f4cd..42e31d9 100644 --- a/hypr/modules/theme.conf +++ b/hypr/modules/theme.conf @@ -13,7 +13,7 @@ general { # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors # col.active_border = rgba(cba6f7ee) rgba(f38ba8ee) 45deg - col.active_border = rgb($mauveAlpha) rgb($blueAlpha) 30deg + col.active_border = $red $blue 30deg col.inactive_border = rgb($surface2Alpha) # Set to true enable resizing windows by clicking and dragging on borders and gaps @@ -27,8 +27,8 @@ general { # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { - rounding = 4 - rounding_power = 1 + rounding = 12 + rounding_power = 3 # Change transparency of focused and unfocused windows active_opacity = 1.0 diff --git a/hypr/modules/window_rules.conf b/hypr/modules/window_rules.conf index b06e091..7d7af50 100644 --- a/hypr/modules/window_rules.conf +++ b/hypr/modules/window_rules.conf @@ -75,3 +75,15 @@ windowrule = no_blur 1, match:class $steam, match:title negative:^(Steam)$ # Allow tearing for games started with Gamescope windowrule = immediate 1, match:class $gamescope + + +# Layer rules + +# waybar blur +layerrule = blur on, match:namespace bottom +layerrule = blur on, match:namespace top +layerrule = ignore_alpha 0.5, match:namespace bottom +layerrule = ignore_alpha 0.5, match:namespace top +# launcher blur +layerrule = blur on, match:namespace launcher +layerrule = ignore_alpha 0.5, match:namespace launcher diff --git a/mimeapps.list b/mimeapps.list index ace3ae3..195b926 100644 --- a/mimeapps.list +++ b/mimeapps.list @@ -17,6 +17,7 @@ x-scheme-handler/unknown=google-chrome.desktop application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop x-scheme-handler/ror2mm=r2modman.desktop image/webp=feh.desktop +x-scheme-handler/claude-cli=claude-code-url-handler.desktop [Added Associations] application/pdf=org.pwmt.zathura-pdf-poppler.desktop; diff --git a/waybar/config.jsonc b/waybar/config.jsonc index 54cc422..9ab7848 100644 --- a/waybar/config.jsonc +++ b/waybar/config.jsonc @@ -45,7 +45,7 @@ "custom/gamemode": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs game", + "exec": "fluxo-rs game", "on-click": "~/.config/hypr/scripts/gamemode.sh & disown", "interval": 1 }, @@ -54,7 +54,7 @@ "custom/power_status": { "format": "{} ", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs power", + "exec": "fluxo-rs power", "on-click": "~/.config/hypr/scripts/powermenu.sh & disown", "interval": 5 } @@ -71,11 +71,18 @@ "modules-left": [ "custom/sys", - "custom/cpu", - "custom/mem", - "custom/network", + "group/hardware", // Replaced individual modules with a group "custom/disk-root" ], + // Add the group definition anywhere in the bottom bar block: + "group/hardware": { + "orientation": "horizontal", + "modules": [ + "custom/cpu", + "custom/mem", + "custom/network" + ] + }, "modules-center": [ ], "modules-right": [ @@ -88,26 +95,26 @@ "custom/sys": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs sys", + "exec": "fluxo-rs sys", "interval": 5 }, "custom/cpu": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs cpu", + "exec": "fluxo-rs cpu", "on-click": "zenmonitor & disown", "interval": 3 }, "custom/mem": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mem", + "exec": "fluxo-rs mem", "interval": 3 }, "custom/network": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs net", + "exec": "fluxo-rs net", "interval": 2 }, @@ -115,7 +122,7 @@ "custom/disk-root": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs disk /", + "exec": "fluxo-rs disk /", "interval": 30 }, @@ -123,31 +130,31 @@ "custom/volume": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs vol", + "exec": "fluxo-rs vol", "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", "on-scroll-up": "wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+", "on-scroll-down": "wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-", - "on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs vol --cycle", + "on-click-right": "fluxo-rs vol --cycle", "on-click-middle": "pavucontrol", "interval": 1 }, "custom/mic": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mic", + "exec": "fluxo-rs mic", "on-click": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle", "on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%+", "on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%-", - "on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mic --cycle", + "on-click-right": "fluxo-rs mic --cycle", "on-click-middle": "pavucontrol", "interval": 1 }, "custom/bluetooth-audio": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs bt", - "on-click": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs bt menu", - "on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs bt disconnect", + "exec": "fluxo-rs bt", + "on-click": "fluxo-rs bt menu", + "on-click-right": "fluxo-rs bt disconnect", "interval": 3 } @@ -156,22 +163,22 @@ "custom/gpu": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs gpu", + "exec": "fluxo-rs gpu", "on-click": "lact gui & disown", "interval": 3 }, "custom/btrfs": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs pool", + "exec": "fluxo-rs pool", "interval": 30 }, "custom/pixelbuds_pro": { "format": "{}", "return-type": "json", - "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds", - "on-click": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds connect & disown", - "on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds cycle_anc & disown", + "exec": "fluxo-rs buds", + "on-click": "fluxo-rs buds connect & disown", + "on-click-right": "fluxo-rs buds cycle_anc & disown", "interval": 5 }, "custom/gpu-screen-recorder": { diff --git a/waybar/config.jsonc.new b/waybar/config.jsonc.new deleted file mode 100644 index 55b8b2d..0000000 --- a/waybar/config.jsonc.new +++ /dev/null @@ -1,202 +0,0 @@ -// ~/.config/waybar/config.jsonc -{ - "layer": "top", - "position": "top", - "height": 36, - "modules-left": [ - "hyprland/workspaces" - ], - "modules-center": [ - ], - "modules-right": [ - // "custom/bluetooth-audio", - // "custom/pixelbuds_pro", - "custom/mem", - "custom/cpu", - "custom/gpu", - "custom/disk-root", - "custom/disk-gdrive", - "custom/disk-data", - "custom/disk-games", - // "network", - "custom/audio-output", - "wireplumber", - "tray", - "custom/gpu-screen-recorder", - "custom/gamemode", - "clock" - ], - "hyprland/workspaces": { - "format": "{icon}", - "on-click": "activate" - }, - "hyprland/window": { - "format": "{}", - "max-length": 35 - }, - "clock": { - "format": "{:%a %d %b %H:%M}", - "format-alt": false, - "on-click-right": "xdg-open https://calendar.proton.me/u/0/month &> /dev/null & disown", - "tooltip": false, - }, - "cpu": { - "format": "CPU: {usage}%", - "tooltip": true, - "interval": 1 - }, - "memory": { - "format": "MEM: {used}/{total}GB", - "interval": 3 - }, - "network": { - "format-wifi": "{essid} ({signalStrength}%): {ipaddr}", - "format-ethernet": "{ifname}: {ipaddr}", - "format-disconnected": "Disconnected", - "tooltip-format": "{ifname} via {gwaddr}" - }, - "wireplumber": { - "format": "{volume}% {icon}", - "format-muted": "--- ", - "format-icons": { - "headphone": "", - "hands-free": "", - "default": ["", "", ""] - }, - "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", - "on-click-right": "~/.config/waybar/scripts/audio.sh cycle", - "on-click-middle": "pavucontrol", - "scroll-step": 1 - }, - - "custom/bluetooth-audio": { - "format": "{}", - "return-type": "json", - "exec": "~/.config/waybar/scripts/bluetooth_audio.sh", - "interval": 3, - "on-click": "~/.config/waybar/scripts/bluetooth_audio.sh disconnect & disown" - }, - - "pulseaudio": { - "format": "{icon} {volume}%", - "format-muted": " Muted", - "format-icons": { - "headphone": "", - "hands-free": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": ["", ""] - }, - "on-click": "pavucontrol & disown" - }, - "tray": { - "icon-size": 18, - "spacing": 10 - }, - "custom/power": { - "format": "", - "tooltip": false, - "on-click": "~/.config/hypr/scripts/powermenu.sh & disown" - }, - "custom/tlp": { - "format": "{}", - "exec": "~/.config/waybar/scripts/tlp-profile.sh", - "return-type": "json", - "interval": 5 - }, - "battery": { - "states": { - "warning": 30, - "critical": 15 - }, - "format": "{capacity}%", - "format-charging": "{capacity}%", - "format-plugged": "{capacity}%", - "format-alt": "{time} {icon}", - "format-full": "{capacity}%", - "format-icons": ["", "", "", "", ""] - }, - "custom/pixelbuds_pro": { - "format": "{}", - "return-type": "json", - "exec": "~/.config/waybar/scripts/pixelbuds_pro_control.sh", - "interval": 5, - "on-click": "~/.config/waybar/scripts/pixelbuds_pro_control.sh connect & disown", - "on-click-right": "~/.config/waybar/scripts/pixelbuds_pro_control.sh cycle_anc & disown" - }, - "custom/audio-output": { - "format": "{}", - "return-type": "json", - "exec": "/home/narl/.config/waybar/scripts/audio.sh show", - "on-click": "/home/narl/.config/waybar/scripts/audio.sh cycle & disown", - "interval": 1 - }, - "custom/gamemode": { - "format": "{}", - "return-type": "json", - "exec": "~/.config/waybar/scripts/gamemode_status.sh", - "on-click": "~/.config/hypr/scripts/gamemode.sh & disown", - "interval": 1 - }, - "custom/gpu-screen-recorder": { - "format": "{}", - "return-type": "json", - "exec": "~/.config/waybar/scripts/gpu-screen-recorder-status.sh", - "on-click-right": "~/.config/hypr/scripts/replay-ctrl.sh save & disown", - "on-click-middle": "nautilus ~/Videos/replay & disown", - "on-click": "~/.config/waybar/scripts/toggle-replay.sh & disown", - "interval": 1 - }, - "custom/gpu": { - "format": "{}", - "return-type": "json", - "exec": "~/.config/waybar/scripts/gpu_info.sh", - "on-click": "lact gui & disown", - "interval": 3 - }, - "custom/cpu": { - "format": "{}", - "return-type": "json", - "exec": "~/.config/waybar/scripts/cpu_info.sh", - "on-click": "zenmonitor & disown", - "interval": 3 - }, - "custom/mem": { - "format": "{}", - "return-type": "json", - "exec": "~/.config/waybar/scripts/memory.sh", - "interval": 3 - }, - "custom/btrfs": { - "format": "{}", - "exec": "~/.config/waybar/scripts/btrfs.sh", - "return-type": "json", - "interval": 30 - }, - "custom/disk-root": { - "format": "{}", - "return-type": "json", - "exec": "~/.config/waybar/scripts/disk_info.sh /", - "interval": 30 - }, - "custom/disk-gdrive": { - "format": "{}", - "return-type": "json", - "exec": "~/.config/waybar/scripts/disk_info.sh ~/gdrive", - "interval": 30 - }, - "custom/disk-data": { - "format": "{}", - "return-type": "json", - "exec": "~/.config/waybar/scripts/disk_info.sh ~/data", - "interval": 30 - }, - "custom/disk-games": { - "format": "{}", - "return-type": "json", - "exec": "~/.config/waybar/scripts/disk_info.sh ~/games", - "interval": 30 - } -} diff --git a/waybar/style.css b/waybar/style.css index ba5bac4..0623ea3 100644 --- a/waybar/style.css +++ b/waybar/style.css @@ -4,13 +4,11 @@ /* --- Global Reset --- */ * { border: none; - border-radius: 0; + border-radius: 12px; min-height: 0; - font-family: - JetBrainsMono Nerd Font, - monospace; - font-size: 13px; - transition: all 0.2s ease; + font-family: JetBrainsMono Nerd Font, sans-serif; + font-size: 12px; + transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); } /* --- Bar Background (Floating Island Style) --- */ @@ -19,32 +17,6 @@ window#waybar { color: @text; } -/* --- Shared Island Styling --- */ -#workspaces, -#window, -#clock, -#tray, -#custom-sys, -#custom-cpu, -#custom-gpu, -#custom-mem, -#custom-network, -#custom-btrfs, -#custom-disk-root, -#custom-pixelbuds_pro, -#custom-bluetooth-audio, -#custom-volume, -#custom-mic, -#custom-gamemode, -#custom-gpu-screen-recorder, -#custom-power_status { - background-color: alpha(@surface0, 0.95); - margin: 4px 2px; - padding: 0 12px; - border-radius: 5px; - border: 1px solid alpha(@surface1, 0.5); -} - /* --- Top Bar Special Handling --- */ window#waybar.top { margin-top: 6px; @@ -55,33 +27,65 @@ window#waybar.bottom { margin-bottom: 6px; } +/* --- Shared Island Styling --- */ +#workspaces, +#window, +#tray, +#custom-sys, +#hardware, +#custom-disk-root, +#custom-bluetooth-audio, +#custom-volume, +#custom-mic, +#custom-gamemode, +#custom-power_status { + background-color: alpha(@surface0, 0.8); + margin: 4px 6px; + padding: 4px 16px; + border: 1px solid alpha(@surface1, 0.5); + box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15); + color: @text; /* Unifies all standard text to the soft Catppuccin white */ +} + /* --- Workspaces --- */ +#workspaces { + padding: 2px 8px; +} + #workspaces button { - padding: 0 8px; - margin: 4px 2px; - border-radius: 5px; - color: @subtext0; - background-color: transparent; + padding: 0; + margin: 4px; + min-width: 12px; + min-height: 12px; + background-color: @subtext0; /* Subtle dark gray for inactive */ + color: transparent; + border-radius: 12px; + transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); } #workspaces button.active { - color: @blue; - background-color: @surface1; -} - -#workspaces button.urgent { - color: @red; + min-width: 30px; + background-color: @mauve; /* Signature Catppuccin accent */ } #workspaces button:hover { - background-color: @surface2; - color: @text; + background-color: @lavender; + min-width: 20px; +} + +#workspaces button.urgent { + background-color: @red; } /* --- Clock (Centered Pill) --- */ #clock { - color: @red; - font-weight: bold; + background: linear-gradient(45deg, @mauve, @lavender); /* Cohesive pastel gradient */ + color: @base; + font-weight: 900; + margin: 4px 6px; + padding: 4px 20px; + border-radius: 12px; + box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15); } /* --- Power Status --- */ @@ -90,86 +94,80 @@ window#waybar.bottom { } #custom-power_status.charging { color: @green; - border-color: @green; -} -#custom-power_status.bat { - color: @blue; } #custom-power_status.warning { - color: @red; + color: @peach; } #custom-power_status.critical { color: @red; - border-color: @red; animation: blink 1s infinite alternate; } @keyframes blink { to { - background-color: alpha(@red, 0.4); + color: @base; + background-color: @red; } } -/* --- Hardware Metrics (Left Bottom) --- */ -#custom-sys { - color: @red; -} -#custom-cpu { - color: @blue; -} -#custom-mem { - color: @red; -} -#custom-network { - color: @blue; +/* --- Hardware Group (Left Bottom) --- */ +#hardware { + border-radius: 24px; + padding: 4px 10px; } -#custom-cpu.high, -#custom-mem.high { - color: @red; +/* Strip backgrounds and borders from the items inside the group */ +#custom-cpu, +#custom-mem, +#custom-network { + background-color: transparent; + border: none; + box-shadow: none; + margin: 0; + padding: 0 8px; } -#custom-cpu.max, -#custom-mem.max { - color: @red; + +/* Subtle vertical separator line between them */ +#custom-cpu, +#custom-mem { + border-right: 1px solid alpha(@surface1, 0.5); + border-radius: 0; } +/* Hardware Semantic Alerts */ +#custom-cpu.high, #custom-mem.high { color: @peach; } +#custom-cpu.max, #custom-mem.max { color: @red; } + /* --- Center Bottom Utilities --- */ -#custom-gamemode { - color: @red; -} #custom-gamemode.active { - color: @blue; - border-color: @blue; + color: @mauve; /* Matches the workspace accent */ padding-left: 9px; } -/* --- Right Bottom Controls --- */ -#custom-disk-root { - color: @blue; -} -#custom-volume { - color: @red; -} -#custom-mic { - color: @blue; -} +/* --- Right Bottom Controls Semantic Alerts --- */ #custom-volume.muted, #custom-mic.muted { - color: @overlay0; + color: @overlay0; /* Dims when muted */ } -#custom-bluetooth-audio { - color: @blue; +/* --- Hover States --- */ +#custom-volume:hover, +#custom-mic:hover, +#custom-bluetooth-audio:hover, +#custom-power_status:hover { + background-color: @surface1; + color: @mauve; /* Subtle accent color on hover instead of jarring borders */ } /* --- Tooltip --- */ tooltip { - background-color: alpha(@base, 0.95); + background-color: alpha(@base, 0.9); border: 1px solid @surface1; - border-radius: 5px; + border-radius: 8px; } tooltip label { color: @text; padding: 8px; } +