From 8b783b927a0ee90ac309c95cb2ba63889d8ccbfc Mon Sep 17 00:00:00 2001 From: Andre Ramnitz Date: Wed, 25 Jun 2025 22:50:54 +0200 Subject: [PATCH] waybar: full-scale config overhaul --- dot-config/waybar/config.jsonc | 186 +++++----- dot-config/waybar/scripts/scrolling-mpris.py | 89 +++++ dot-config/waybar/scripts/sound-source.sh | 6 + dot-config/waybar/style.css | 368 +++++++++++-------- 4 files changed, 396 insertions(+), 253 deletions(-) create mode 100755 dot-config/waybar/scripts/scrolling-mpris.py create mode 100755 dot-config/waybar/scripts/sound-source.sh diff --git a/dot-config/waybar/config.jsonc b/dot-config/waybar/config.jsonc index 8fa7a332..6cad62d5 100644 --- a/dot-config/waybar/config.jsonc +++ b/dot-config/waybar/config.jsonc @@ -8,7 +8,7 @@ "custom/launcher", "hyprland/workspaces", "custom/voidspacer", - "mpd" + "custom/mpris" ], "modules-center": [ "hyprland/submap", @@ -25,7 +25,8 @@ "group/sysmon", "group/display", "network", - "wireplumber", + "gamemode", + "group/sndpwr", "custom/voidspacer", "group/trayclock", "custom/voidspacer", @@ -33,19 +34,47 @@ ], "custom/launcher": { "format": "󰀻", - "on-click": "killall fuzzel || fuzzel --config=$HOME/.config/fuzzel/fuzzel-startmenu.ini", - "on-click-right": "$HOME/.local/bin/reloadwb.sh", + "on-click": "fuzzel --config=$HOME/.config/fuzzel/fuzzel-startmenu.ini", + "on-click-right": "$HOME/.local/bin/wb reload", "tooltip": false }, "hyprland/workspaces": { - "format": "{icon}", + "on-scroll-down": "hyprctl dispatch workspace r+1", + "on-scroll-up": "hyprctl dispatch workspace r-1", + "on-click": "$HOME/.config/hypr/scripts/workspace.sh", + "format": "{icon} {windows}", + "format-window-separator": " ", + "window-rewrite-default": "", + "window-rewrite": { + "class": "", + "class": "", + "title<.*github.*>": "", + "title<.*youtube.*>": "", + "title<.*reddit.*>": "", + "class": "", + "class": "󱏒", + "title": "", + "class": "", + "class": "", + "class": "", + "class": "󰀶", + "org.kde.skanlite": "󰚫", + "org.rncbc.qpwgraph": "󱡫", + "io.github.ilya_zlobintsev.LACT": "󱡭", + "Ardour": "󱀞", + "krita": "", + "gimp": "", + "class": "󰻞", + "class": "", + "class": "", + }, "format-icons": { - "1": "", + "1": "󰖟", "2": "", "3": "", "4": "", "5": "", - "6": "", + "6": "󰸾", "7": "", "8": "", "9": "", @@ -58,6 +87,7 @@ "show-special": true }, "hyprland/window": { + "min-length": "100", "format": "{title}", "rewrite-default": "👉 {title}", "rewrite": { @@ -66,6 +96,9 @@ "(.*) – Mozilla Firefox": " | $1", "(.*) - qutebrowser": " | $1", "(.*) - Kakoune": " | $1", + "(.*) - Discord": " | $1", + "k (.*)": " | $1", + "kak (.*)": " | $1", "(.*) — Dolphin": " | $1", "lfrun(.*)": "󰀶 | $1", "Now playing(.*)": " | Now playing $1", @@ -85,33 +118,6 @@ "format-en": "en", "format-de": "de" }, - "niri/workspaces": { - "format": "{icon}", - "format-icons": { - // Named workspaces - // (you need to configure them in niri) - "1": "", - "2": "", - "3": "", - - // Icons by state - "active": "", - "default": "" - }, - "niri/window": { - "format": "{}", - "rewrite": { - "(.*) - Mozilla Firefox": "🌎 $1", - "(.*) - zsh": "> [$1]" - } - }, - "niri/language": { - //"format": " 󰌌 {} ", - "format": " 󰌌 {} ", - "format-en": "en", - "format-de": "de" - } -}, "keyboard-state": { "numlock": true, "capslock": true, @@ -121,37 +127,6 @@ "unlocked": " " } }, - "mpd": { - "format": "mpd: {stateIcon} {artist} - {album} - {title} ⸨{songPosition}|{queueLength}⸩ {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}", - "format-disconnected": "", - "format-paused": "", - "format-stopped": "", - "unknown-tag": "N/A", - "interval": 2, - "consume-icons": { - "on": " " - }, - "random-icons": { - "off": "", - "on": " " - }, - "repeat-icons": { - "on": " " - }, - "single-icons": { - "on": "1 " - }, - "state-icons": { - "paused": "", - "playing": "" - }, - "tooltip-format": "{artist} - {album} - {title} | {volume}%", - "tooltip-format-disconnected": "mpd disconnected!", - "on-click": "mpc toggle", - "on-click-backward": "mpc stop && playerctld unshift", - "on-click-middle": "mpc next", - "on-click-right": "mpc prev" - }, "mpris": { "format": "{player}: {player_icon} {dynamic}", "format-paused": "{status_icon} {dynamic}", @@ -172,23 +147,13 @@ "stopped": "" }, "ignored-players": [ - "firefox", "mpd" ] }, - "mpd#volume": { - "format": "{volume} 󱄠", - "format-disconnected": "--- 󱄠", - "format-stopped": "--- 󱄠", - "on-click": "mpc volume 70 > /dev/null 2>&1", - "on-click-right": "mpc volume 100 > /dev/null 2>&1", - "on-scroll-up": "mpc volume +5 > /dev/null 2>&1", - "on-scroll-down": "mpc volume -5 > /dev/null 2>&1" - }, "tray": { - "icon-size": 18, + "icon-size": 16, "spacing": 6, - "show-passive-items": false + "show-passive-items": true }, "cpu": { //"format": "{usage:2}% ", @@ -270,7 +235,8 @@ "" ] }, - "on-click": "pavucontrol", + "on-click": "~/.config/waybar/scripts/sound-source.sh", + "on-click-middle": "pavucontrol", "on-click-right": "helvum" }, "clock": { @@ -298,24 +264,10 @@ } }, "custom/notification": { - "tooltip": false, - "format": "{icon}", - "format-icons": { - "notification": "", - "none": "󰣨", - "dnd-notification": "", - "dnd-none": "", - "inhibited-notification": "", - "inhibited-none": "", - "dnd-inhibited-notification": "", - "dnd-inhibited-none": "" - }, - "return-type": "json", - "exec-if": "pidof swaync-client", - "exec": "swaync-client -swb", - "on-click": "swaync-client -t -sw", - "on-click-right": "swaync-client -d -sw", - "escape": true + "format": "", + "on-click": "~/.config/hypr/scripts/powermenu.sh", + "on-click-middle": "makoctl restore", + "on-click-right": "makoctl dismiss", }, "idle_inhibitor": { "format": "{icon} ", @@ -324,12 +276,6 @@ "deactivated": " off" } }, - "custom/wallpaper": { - "format": "  ", - "on-click": "$HOME/.local/bin/rndwallpaper swww", - "tooltip": false, - "interval": "once" - }, "custom/gammarelay-temperature": { //"format": "{} ", "format": " {}", @@ -363,6 +309,13 @@ "clock" ] }, + "group/sndpwr": { + "orientation": "horizontal", + "modules": [ + "wireplumber", + "power-profiles-daemon" + ] + }, "group/display": { "orientation": "horizontal", "modules": [ @@ -408,6 +361,35 @@ "temperature#gpu" ] }, + "gamemode": { + "format": "{glyph}", + "format-alt": "{glyph} {count}", + "glyph": "", + "hide-not-running": true, + "use-icon": true, + "icon-name": "input-gaming-symbolic", + "icon-spacing": 4, + "icon-size": 20, + "tooltip": true, + "tooltip-format": "Games running: {count}" + }, + "power-profiles-daemon": { + "format": "{icon}", + "tooltip-format": "Power profile: {profile}\nDriver: {driver}", + "tooltip": true, + "format-icons": { + "default": "", + "performance": "", + "balanced": "", + "power-saver": "" + } + }, + "custom/mpris": { + "exec": "python3 -u ~/.config/waybar/scripts/scrolling-mpris.py", + "format": "{text}", + "return-type": "json", + "on-click": "playerctl play-pause" + }, "custom/pipespacer": { "format": "󰇙", "max-length": 1, diff --git a/dot-config/waybar/scripts/scrolling-mpris.py b/dot-config/waybar/scripts/scrolling-mpris.py new file mode 100755 index 00000000..f406a0ca --- /dev/null +++ b/dot-config/waybar/scripts/scrolling-mpris.py @@ -0,0 +1,89 @@ +import subprocess +import time +import json +import sys + +# Customization settings (easy to modify) +GLYPH_FONT_FAMILY="ZedMono NFP" # Set to your desired symbols font +# Those are glyphs that will be always visible at left side of module. +GLYPHS = { + "paused": "", + "playing": "", + "stopped": "" +} +DEFAULT_GLYPH = "" # Glyph when status is unknown or default +TEXT_WHEN_STOPPED = "Nothing playing right now" # Text to display when nothing is playing +SCROLL_TEXT_LENGTH = 25 # Length of the song title part (excludes glyph and space) +REFRESH_INTERVAL = 0.4 # How often the script updates (in seconds) +PLAYERCTL_PATH = "/usr/bin/playerctl" # Path to playerctl, use which playerctl to find yours. + +# Function to get player status using playerctl +def get_player_status(): + try: + result = subprocess.run([PLAYERCTL_PATH, 'status'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + status = result.stdout.decode('utf-8').strip().lower() + if result.returncode != 0 or not status: + return "stopped" # Default to stopped if no status + return status + except Exception as e: + return "stopped" + +# Function to get currently playing song using playerctl +def get_current_song(): + try: + result = subprocess.run([PLAYERCTL_PATH, 'metadata', 'title'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + song_title = result.stdout.decode('utf-8').strip() + if result.returncode != 0 or not song_title: + return None # Return None if no song is playing or an error occurred + return song_title + except Exception as e: + return None + +# Function to generate scrolling text with fixed length +def scroll_text(text, length=SCROLL_TEXT_LENGTH): + text = text.ljust(length) # Ensure the text is padded to the desired length + scrolling_text = text + ' ' + text[:length] # Add space and repeat start for scrolling effect + + for i in range(len(scrolling_text) - length): + yield scrolling_text[i:i + length] # Use a generator to yield scrolling parts + +if __name__ == "__main__": + scroll_generator = None + + while True: + output = {} + + try: + # Get the player status and song title + status = get_player_status() + song = get_current_song() + + # Get the glyph based on player status + glyph = GLYPHS.get(status, DEFAULT_GLYPH) + + if song: + if len(song) > SCROLL_TEXT_LENGTH: # Adjusted for fixed glyph space + if scroll_generator is None: + scroll_generator = scroll_text(song) # Initialize the generator + try: + song_text = next(scroll_generator) + except StopIteration: + scroll_generator = scroll_text(song) + song_text = next(scroll_generator) + else: + song_text = song.ljust(SCROLL_TEXT_LENGTH) # Ensure the song title is padded + scroll_generator = None + else: + song_text = TEXT_WHEN_STOPPED.ljust(SCROLL_TEXT_LENGTH) # Ensure fixed length when stopped + + # Combine glyph and song text with a fixed space + output['text'] = f"{glyph} {song_text}" + + except Exception as e: + output['text'] = f" Error: {str(e)}".ljust(SCROLL_TEXT_LENGTH + 2) # Show error with stop symbol + + # Print the JSON-like output + print(json.dumps(output), end='\n') + + time.sleep(REFRESH_INTERVAL) + diff --git a/dot-config/waybar/scripts/sound-source.sh b/dot-config/waybar/scripts/sound-source.sh new file mode 100755 index 00000000..a02f1536 --- /dev/null +++ b/dot-config/waybar/scripts/sound-source.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +sinks=$(pactl list short sinks | awk 'BEGIN {FS="\t"}; {print $2}' | fuzzel -d --config="$HOME"/.config/fuzzel/fuzzel-centered.ini ) + +pactl set-default-sink "$sinks" + diff --git a/dot-config/waybar/style.css b/dot-config/waybar/style.css index 9a0a5154..2396bc61 100644 --- a/dot-config/waybar/style.css +++ b/dot-config/waybar/style.css @@ -8,14 +8,12 @@ font-size: 12pt; min-height: 7px; font-weight: bold; - padding: 0; - margin: 0; + padding: 0px; + margin: 0px; } /* ----------------------------------- waybar ----------------------------------- */ #waybar { - border-radius: 0px 0px 8px 8px; - /*border: 1px @base00;*/ border: none; color: @base05; background-color: transparent; @@ -26,7 +24,13 @@ padding-left: 0px; padding-right: 0px; padding-bottom: 0px; - background: none; + margin-left: 10px; + margin-right: 10px; + margin-top: 5px; + margin-bottom: 0px; + border: 2px solid alpha(@base03, 0.45); + background: alpha(@base00, 0.45); + border-radius: 5px; } tooltip { @@ -42,24 +46,22 @@ tooltip label { /* ------------------------------------ workspaces begin ------------------------------ */ #workspaces { - border-radius: 0px; padding-left: 5px; padding-right: 5px; border-radius: 0px 0px 4px 4px; - margin-top: 0px; - margin-bottom: 5px; - margin-left: 10px; background: alpha(@base01, 1.00); - border-left: 1px solid; - border-right: 1px solid; - border-bottom: 1px solid; - border-color: alpha(@base04, 0.4); + border: 1px solid @base02; + border-radius: 5px 5px 5px 5px; + margin-top: 2px; + margin-left: 2px; + margin-right: 1px; + margin-bottom: 2px; } #workspaces button { border-radius: 8px; background: @base03; - color: @base00; + color: @base05; border: 1px solid @base03; padding: 0 8px; margin-top: 2px; @@ -71,12 +73,14 @@ tooltip label { #workspaces button:hover { background: alpha(@base07, 1.0); + color: @base00; } -#workspaces button.focused:hover, -#workspaces button.active:hover { +#workspaces button.focused:hover { background: alpha(@base07, 0.7); - border-color: alpha(@base07, 0.9); +} + +#workspaces button.active:hover { } #workspaces button.focused, @@ -87,6 +91,7 @@ tooltip label { padding: 0 8px; color: @base00; transition: all 0.3s ease; + } #workspaces button.urgent { @@ -97,19 +102,76 @@ tooltip label { transition: all 0.3s ease; } + +#taskbar { + padding-left: 5px; + padding-right: 5px; + border-radius: 0px 0px 4px 4px; + background: alpha(@base01, 0.80); + border: 1px solid @base02; + border-radius: 5px 5px 5px 5px; + margin-top: 2px; + margin-left: 2px; + margin-right: 1px; + margin-bottom: 2px; +} + +#taskbar button { + border-radius: 16px; + background: @base03; + color: @base00; + border: 1px solid @base03; + padding: 0 8px; + margin-top: 2px; + margin-left: 1px; + margin-right: 1px; + margin-bottom: 2px; + transition: all 0.3s ease; +} + +#taskbar button:hover { + background: alpha(@base07, 1.0); +} + +#taskbar button.focused:hover, +#taskbar button.active:hover { + background: alpha(@base07, 0.7); + border-color: alpha(@base07, 0.9); +} + +#taskbar button.focused, +#taskbar button.active { + border-radius: 16px; + background: @base0C; + border: 1px solid @base0C; + padding: 0 8px; + color: @base00; + transition: all 0.3s ease; + +} + +#taskbar button.urgent { + border-radius: 16px; + background: @base0A; + border: 1px solid @base02; + color: @base00; + transition: all 0.3s ease; +} + + #window { padding-left: 10px; padding-right: 10px; color: @base05; background-color: alpha(@base01, 1.0); - border-radius: 0px 0px 4px 4px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: 1px solid; - border-right: 1px solid; - border-bottom: 1px solid; - border-color: alpha(@base04, 0.4); + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base02; + border-radius: 5px 5px 5px 5px; + margin-top: 2px; + margin-left: 2px; + margin-right: 1px; + margin-bottom: 2px; } window#waybar { @@ -129,18 +191,14 @@ window#waybar { #custom-launcher { padding-left: 10px; padding-right: 10px; - margin-top: 0px; - margin-left: 0px; + margin-top: 2px; + margin-left: 2px; margin-right: 1px; - margin-bottom: 5px; + margin-bottom: 2px; color: @base00; background: @base09; - border-top: none; - border-left: none; - border-right: 1px solid; - border-bottom: 1px solid; - border-color: @base01; - border-radius: 0px 0px 8px 0px; + border: 1px solid @base01; + border-radius: 8px 8px 8px 8px; } #custom-launcher:hover { @@ -150,18 +208,14 @@ window#waybar { #custom-notification { padding-left: 10px; padding-right: 10px; - margin-top: 0px; + margin-top: 2px; margin-left: 1px; - margin-right: 0px; - margin-bottom: 5px; + margin-right: 2px; + margin-bottom: 2px; color: @base00; background: @base09; - border-top: none; - border-left: 1px solid; - border-right: none; - border-bottom: 1px solid; - border-color: @base01; - border-radius: 0px 0px 0px 8px; + border: 1px solid @base01; + border-radius: 8px 8px 8px 8px; } #custom-notification:hover { @@ -175,21 +229,23 @@ window#waybar { background-color: alpha(@base0D, 0.1); border: none; border-radius: 0px 0px 4px 4px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: 1px solid; - border-right: 1px solid; - border-bottom: 1px solid; - border-color: alpha(@base0D, 0.4); + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 8px 8px 8px 8px; } #mpris { - padding-left: 8px; - padding-right: 8px; - color: @base00; - background: none; + padding-left: 4px; + padding-right: 4px; + color: @base0D; + background-color: alpha(@base0D, 0.1); border: none; + border-radius: 0px 0px 4px 4px; + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 8px 8px 8px 8px; } #submap { @@ -199,13 +255,10 @@ window#waybar { color: @base00; background-color: alpha(@base0A, 0.9); border-radius: 0px 0px 4px 4px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: 2px solid; - border-right: 2px solid; - border-bottom: 2px solid; - border-color: alpha(@base00, 0.9); + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 8px 8px 8px 8px; } /* ------------------------------------ sysmon group begin ------------------------------ */ @@ -216,13 +269,12 @@ window#waybar { background-color: alpha(@base01, 1.0); border: none; border-radius: 0px 0px 0px 4px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: 1px solid; - border-right: none; - border-bottom: 1px solid; - border-color: alpha(@base0B, 0.4); + margin-top: 2px; + margin-bottom: 2px; + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 8px 0px 0px 8px; } #custom-gpuusage { @@ -230,14 +282,10 @@ window#waybar { padding-right: 6px; color: @base0B; background-color: alpha(@base01, 1.0); + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; border-radius: 0px 0px 0px 0px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: none; - border-right: none; - border-bottom: 1px solid; - border-color: alpha(@base0B, 0.4); } #temperature, @@ -249,14 +297,10 @@ window#waybar { padding-right: 6px; color: @base0B; background-color: alpha(@base01, 1.0); + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; border-radius: 0px 0px 0px 0px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: none; - border-right: none; - border-bottom: 1px solid; - border-color: alpha(@base0B, 0.4); } #temperature.critical, @@ -269,8 +313,8 @@ window#waybar { color: @base08; background-color: alpha(@base01, 1.0); border-radius: 0px 0px 0px 0px; - margin-top: 0px; - margin-bottom: 4px; + margin-top: 2px; + margin-bottom: 2px; border-top: none; border-left: none; border-right: none; @@ -284,14 +328,10 @@ window#waybar { color: @base0B; background-color: alpha(@base01, 1.0); border: none; - border-radius: 0px 0px 4px 0px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: none; - border-right: 1px solid; - border-bottom: 1px solid; - border-color: alpha(@base0B, 0.4); + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 0px 8px 8px 0px; } /* ------------------------------------ sysmon group end ------------------------------ */ @@ -303,14 +343,12 @@ window#waybar { color: @base00; background-color: alpha(@base01, 1.0); border-radius: 0px 0px 0px 4px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: 1px solid; - border-right: none; - border-bottom: 1px solid; - border-bottom: 1px solid; - border-color: alpha(@base04, 0.4); + margin-top: 2px; + margin-bottom: 2px; + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 8px 0px 0px 8px; } #clock { @@ -320,13 +358,12 @@ window#waybar { color: @base07; background-color: alpha(@base01, 1.0); border-radius: 0px 0px 4px 0px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: none; - border-right: 1px solid; - border-bottom: 1px solid; - border-color: alpha(@base04, 0.4); + margin-top: 2px; + margin-bottom: 2px; + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 0px 8px 8px 0px; } /* ------------------------------------ trayclock group end ------------------------------ */ @@ -338,13 +375,12 @@ window#waybar { color: @base0A; background-color: alpha(@base01, 1.0); border-radius: 0px 0px 0px 4px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: 1px solid; - border-right: none; - border-bottom: 1px solid; - border-color: alpha(@base0A, 0.4); + margin-top: 2px; + margin-bottom: 2px; + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 8px 0px 0px 8px; } #custom-gammarelay-temperature, @@ -355,13 +391,12 @@ window#waybar { color: @base0A; background-color: alpha(@base01, 1.0); border-radius: 0px 0px 0px 0px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: none; - border-right: none; - border-bottom: 1px solid; - border-color: alpha(@base0A, 0.4); + margin-top: 2px; + margin-bottom: 2px; + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 0px 0px 0px 0px; } #language { @@ -370,13 +405,12 @@ window#waybar { color: @base0A; background-color: alpha(@base01, 1.0); border-radius: 0px 0px 4px 0px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: none; - border-right: 1px solid; - border-bottom: 1px solid; - border-color: alpha(@base0A, 0.4); + margin-top: 2px; + margin-bottom: 2px; + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 0px 8px 8px 0px; } /* ------------------------------------ display group end ------------------------------ */ @@ -384,18 +418,26 @@ window#waybar { /* ------------------------------------ modules bulk config ------------------------------ */ #wireplumber { padding-left: 6px; - padding-right: 6px; + padding-right: 4px; color: @base0C; background-color: alpha(@base01, 1.0); border: none; border-radius: 0px 0px 4px 4px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: 1px solid; - border-right: 1px solid; - border-bottom: 1px solid; - border-color: alpha(@base0C, 0.4); + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 8px 0px 0px 8px; +} + +#power-profiles-daemon { + padding-left: 4px; + padding-right: 6px; + color: @base0C; + background-color: alpha(@base01, 1.0); + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 0px 8px 8px 0px; } #network { @@ -405,28 +447,52 @@ window#waybar { background-color: alpha(@base01, 1.0); border: none; border-radius: 0px 0px 4px 4px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: 1px solid; - border-right: 1px solid; - border-bottom: 1px solid; - border-color: alpha(@base09, 0.4); + margin-top: 2px; + margin-bottom: 2px; + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 8px 8px 8px 8px; +} + +#gamemode { + padding-left: 6px; + padding-right: 2px; + color: @base08; + background-color: alpha(@base01, 1.0); + border: none; + border-radius: 0px 0px 4px 4px; + margin-top: 2px; + margin-bottom: 2px; + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 8px 8px 8px 8px; +} + +#custom-mpris { + padding-left: 4px; + padding-right: 4px; + color: @base0D; + background-color: alpha(@base01, 1.0); + border: none; + border-radius: 0px 0px 4px 4px; + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 8px 8px 8px 8px; } #custom-powermenu { padding-left: 4px; padding-right: 4px; - color: @base09; + color: @base0C; background-color: alpha(@base01, 1.0); border-radius: 0px 0px 4px 4px; - margin-top: 0px; - margin-bottom: 4px; - border-top: none; - border-left: 1px solid; - border-right: 1px solid; - border-bottom: 1px solid; - border-color: alpha(@base09, 0.4); + margin-top: 2px; + margin-bottom: 2px; + border: 1px solid @base01; + border-radius: 8px 8px 8px 8px; } #custom-pipespacer { -- 2.51.2