// ~/.config/waybar/config.jsonc
{
"layer": "top",
"position": "top",
"height": 35,
"modules-left": ["hyprland/workspaces", "hyprland/window"],
"modules-center": [],
"modules-right": ["tray", "wireplumber", "custom/pixelbuds", "custom/anc", "network", "cpu", "memory", "custom/tlp", "clock", "custom/power"],
"hyprland/workspaces": {
"format": "{icon}",
"on-click": "activate"
},
"hyprland/window": {
"format": "{}",
"max-length": 35
},
"clock": {
"format": "{:%I:%M %p}",
"format-alt": "{:%a, %b %d}",
"tooltip-format": "{:%Y %B}\n{calendar}"
},
"cpu": {
"format": "CPU: {usage}%",
"tooltip": true
},
"memory": {
"format": "MEM: {}%"
},
"network": {
"format-wifi": "{essid} ({signalStrength}%): {ipaddr}",
"format-ethernet": "{ifname}: {ipaddr}",
"format-disconnected": "Disconnected",
"tooltip-format": "{ifname} via {gwaddr}",
},
"wireplumber": {
"format": "{volume}% {icon}",
"format-muted": "Muted ",
"format-icons": {
"headphone": "",
"hands-free": "",
"default": ["", ""]
},
"on-click": "pavucontrol",
"scroll-step": 1
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": " Muted",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", ""]
},
"on-click": "pavucontrol"
},
"tray": {
"icon-size": 18,
"spacing": 10
},
"custom/power": {
"format": "",
"tooltip": false,
"on-click": "~/.config/hypr/scripts/powermenu.sh"
},
"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": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/pixelbuds.sh",
"interval": 5, // Check status every 30 seconds
"on-click": "bluetoothctl disconnect B4:23:A2:09:D3:53" // Optional: opens Bluetooth manager on click
},
"custom/anc": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/anc_control.sh",
"interval": 5, // Check status every 5 seconds
"on-click": "~/.config/waybar/scripts/anc_control.sh off", // Left-click
"on-click-right": "~/.config/waybar/scripts/anc_control.sh cycle" // Right-click
}
}