Hi All,
I have been trying to setup my Hyprland over the last couple of days, not played with it since around Christmas time, so very very very new to Hyprland, but loving it. I am currently running Hyprland on CachyOS, I know, but I alike it and I have got the feels for it.
I have an issue with my setup, using Cava in Waybar, where the number bars has doubled (I want 10) to 20. With half of them not being used and being static, as per the picture.
![]()
I am using Dopamine as my media player
Regardless of what I try, even sullied myself using googles AI to help but to no avail as I am new and still figuring things out.
I have split the various parts of the hyprland.lua file in separate appropriately name modules in ~/.config/hypr/modules/
my config.jsonc looks like this -
{
"spacing": 10, // Adjust this value as needed
// "width": 1000,
// π ADD THESE THREE LINES TO FORCE THE GAP π
"margin-top": 5,
"margin-left": 15,
"margin-right": 15,
"layer": "top",
"modules-left": [
"hyprland/workspaces",
// "hyprland/mode
"pulseaudio",
"custom/media",
"cava"
],
// "modules-center": [
// "hyprland/window"
// "custom/media"
// ],
"modules-right": [
"clock",
"battery"
],
"clock": {
"format": "{:%a/%d/%b %H:%M}"
},
"hyprland/workspaces": {
// "format": "{name}: {icon}",
"format": "{icon}",
"format-icons": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"active": "ο",
"default": "ο"
// },
// "persistent-workspaces": {
// "*": 5, // 5 workspaces by default on every monitor
},
"battery": {
"interval": 60,
"format": "{icon} {capacity}% ",
"format-icons": {
"default": ["σ°", "σ°Ί", "σ°»", "σ°Ό", "σ°½", "σ°Ύ", "σ°Ώ", "σ°", "σ°", "σ°", "σ°Ή"],
"charging": ["σ°’", "σ°’", "σ°", "σ°", "σ°", "σ°’", "σ°", "σ°’", "σ°", "σ°", "σ°
"]
}
}
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon}", //{format_source}",
"format-bluetooth": "{volume}% {icon}ο", // {format_source}",
"format-bluetooth-muted": "σ°
Ά {icon}ο", // {format_source}",
"format-muted": "σ°
Ά", //{format_source}",
"format-source": "{volume}% ο°",
"format-source-muted": "ο±",
"format-icons": {
"headphone": "ο₯",
"hands-free": "σ°",
"headset": "σ°",
"phone": "ο",
"portable": "ο",
"car": "οΉ",
"default": [
"ο¦",
"ο§",
"ο¨"
},
"scrol-step": 1,
"on-click": "pavucontrol",
"ignored-sinks": [
"Easy Effects Sink"
]
},
"cava": {
//"cava_config": "/home/roger/.config/cava/cava.conf",
"framerate": 30,
"autosens": 1,
"sensitivity": 100,
"bars": 10,
"lower_cutoff_freq": 50,
"higher_cutoff_freq": 10000,
"hide_on_silence": false,
"format_silent": "quiet",
"method": "pulse",
"source": "auto",
"stereo": true,
"reverse": true,
"bar_delimitor": 0,
"monstercat": false,
"waves": false,
"noise_reduction": 0.07,
"input_delay": 2,
"format-icons": [" ","β","β","β","β
","β","β","β"],
"actions": {
"on-click-right": "mode"
}
}, // FIXED: Added missing closing braces
// Fixed: Added closing bracket to separate Cava from Custom/Media
"custom/media": {
"format": "{icon} {text}", // Changed {} to {text} to satisfy the new fmt library rules
"return-type": "json",
"max-length": 40,
"format-icons": {
"Playing": "ο
",
"Paused": "ο",
"default": "π΅"
},
"escape": true,
"exec": "playerctl --ignore-player=firefox metadata --format '{\"text\": \"{{artist}} - {{title}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' --follow 2>/dev/null",
"on-click": "playerctl --ignore-player=firefox play-pause",
"on-scroll-up": "playerctl --ignore-player=firefox next",
"on-scroll-down": "playerctl --ignore-player=firefox previous"
}
}
// = ignore line
I have my styles.css file setup like, just in case this is causing a conflict, that I have no idea about.
@import "colors/gruvbox-material.css";
* {
all: unset; /* do this for every theme, other wise it will be a disaster burger */
font-family: "Iosevka Nerd Font Propa", monospace;
font-size: 15px;
}
window#waybar {
/* 1. Fix: Adds a 10px gap at the Top, Left, and Right of the screen */
/* Syntax: margin: [top] [right] [bottom] [left]; */
margin: 10px 10px 0px 10px;
/* 1. Make the border transparent so the gradient underneath shows through */
border: 1px solid transparent;
border-radius: 10px 10px 10px 10px;
min-height: 38px;
/* 2. LAYER 1: Your solid bar background (@bg0 to @bg0 means no fade) */
/* LAYER 2: Your 45-degree border gradient (GTK prefers directional text over '45deg') */
background-image:
linear-gradient(@bg0, @bg0),
linear-gradient(to bottom right, #ffffff, #00007f);
/* 3. Tell Layer 1 to stop at the inner padding edge, and Layer 2 to extend to the border edge */
background-origin: border-box;
background-clip: padding-box, border-box;
color: @fg;
}
/* 4. Fix: Targets the actual layout container to add space at the ends of your bar*/
window#waybar > box {
padding-left: 10px;
padding-right: 10px;
/* Syntax: box-shadow: [horizontal offset] [vertical offset] [blur radius] [color]; */
/*box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.9);*/
/* Ensures the shadow follows the bar's bottom-rounded theme */
border-radius: 0px 10px 0px 10px;
}
#workspaces {
min-width: 100px;
font-size: 0.2rem;
padding: 2px 4px;
margin: 6px 0;
border-radius: 99px;
}
#workspaces button {
background-color: @bg4;
color: transparent;
padding: 0px 10px;
border-radius: 10px;
margin: 0px 4px;
min-width: 4px;
}
#workspaces button.active {
background-color: @white;
min-width: 1.2rem;
transition: none;
}
#custom-media {
background-color: transparent;
color: @white; /* Nice green text when playing */
padding: 3px 15px;
margin: 0px 4px;
border-radius: 10px;
}
#custom-media.Paused {
color: #00007f; /* Automatically flips to Orange when you pause track */
}
#cava {
margin: 12px;
font-size: 1.0rem;
letter-spacing: 1px;
}
I have not touched cava config, so it all set to default.
And for the life of me, I have no idea why the proper font symbols are not showing, just getting square boxes like this, despite having installed the JetBrains fonts required to show them.
Hyprland version
Hyprland 0.56.2 built from branch v0.56.2 at commit efb50993780079460b0cbed1363e2166a2de1d9f clean ([gha] Nix: update inputs).
Date: Wed Aug 5 14:13:21 2026
Tag: v0.56.2, commits: 7661
Libraries:
Hyprgraphics: built against 0.5.1, system has 0.5.1
Hyprutils: built against 0.14.0, system has 0.14.1
Hyprcursor: built against 0.1.13, system has 0.1.13
Hyprlang: built against 0.6.8, system has 0.6.8
Aquamarine: built against 0.14.0, system has 0.14.0
Version ABI string: efb50993780079460b0cbed1363e2166a2de1d9f_aq_0.14_hu_0.14_hg_0.5_hc_0.1_hlg_0.6
no flags were set