{
"layer": "top",
"position": "top",
"exclusive": true, // keep the gap reserved
"margin-top": 8, // gap from the top edge
"margin-left": 10, // gap from the left edge
"margin-right": 10, // gap from the right edge
"margin-bottom": 0,
/* order: 1-2-3 | window-title | tray + clock */
"modules-left": [ "custom/group1", "custom/group2", "custom/group3", "custom/group4","custom/group5","custom/group6","custom/group7","custom/group8","custom/group9","custom/group10"],
"modules-center": [ "hyprland/window" ],
"modules-right": [ "tray", "custom/separator", "network", "bluetooth", "custom/separator", "disk", "cpu", "memory", "pulseaudio", "custom/separator", "clock"],
"custom/group1": {
"exec": "~/.config/waybar/scripts/groups.sh 1",
"return-type": "json",
"interval": 1,
"on-click": "~/.config/waybar/scripts/groups.sh click 1"
},
"custom/group2": {
"exec": "~/.config/waybar/scripts/groups.sh 2",
"return-type": "json",
"interval": 1,
"on-click": "~/.config/waybar/scripts/groups.sh click 2"
},
"custom/group3": {
"exec": "~/.config/waybar/scripts/groups.sh 3",
"return-type": "json",
"interval": 1,
"on-click": "~/.config/waybar/scripts/groups.sh click 3"
},
"custom/group4": {
"exec": "~/.config/waybar/scripts/groups.sh 4",
"return-type": "json",
"interval": 1,
"on-click": "~/.config/waybar/scripts/groups.sh click 4"
},
"custom/group5": {
"exec": "~/.config/waybar/scripts/groups.sh 5",
"return-type": "json",
"interval": 1,
"on-click": "~/.config/waybar/scripts/groups.sh click 5"
},
"custom/group6": {
"exec": "~/.config/waybar/scripts/groups.sh 6",
"return-type": "json",
"interval": 1,
"on-click": "~/.config/waybar/scripts/groups.sh click 6"
},
"custom/group7": {
"exec": "~/.config/waybar/scripts/groups.sh 7",
"return-type": "json",
"interval": 1,
"on-click": "~/.config/waybar/scripts/groups.sh click 7"
},
"custom/group8": {
"exec": "~/.config/waybar/scripts/groups.sh 8",
"return-type": "json",
"interval": 1,
"on-click": "~/.config/waybar/scripts/groups.sh click 8"
},
"custom/group9": {
"exec": "~/.config/waybar/scripts/groups.sh 9",
"return-type": "json",
"interval": 1,
"on-click": "~/.config/waybar/scripts/groups.sh click 9"
},
"custom/group10": {
"exec": "~/.config/waybar/scripts/groups.sh 10",
"return-type": "json",
"interval": 1,
"on-click": "~/.config/waybar/scripts/groups.sh click 10"
},
// "custom/page1": {
// "exec": "~/.config/waybar/scripts/page.sh 1",
// "exec-persistent": true,
// "return-type": "json"
// },
// "custom/page2": {
// "exec": "~/.config/waybar/scripts/page.sh 2",
// "exec-persistent": true,
// "return-type": "json"
// },
// "custom/page3": {
// "exec": "~/.config/waybar/scripts/page.sh 3",
// "exec-persistent": true,
// "return-type": "json"
// },
// "custom/page4": {
// "exec": "~/.config/waybar/scripts/page.sh 4",
// "exec-persistent": true,
// "return-type": "json"
// },
// "custom/page5": {
// "exec": "~/.config/waybar/scripts/page.sh 5",
// "exec-persistent": true,
// "return-type": "json"
// },
// "custom/page6": {
// "exec": "~/.config/waybar/scripts/page.sh 6",
// "exec-persistent": true,
// "return-type": "json"
// },
// "custom/page7": {
// "exec": "~/.config/waybar/scripts/page.sh 7",
// "exec-persistent": true,
// "return-type": "json"
// },
// "custom/page8": {
// "exec": "~/.config/waybar/scripts/page.sh 8",
// "exec-persistent": true,
// "return-type": "json"
// },
// "custom/page9": {
// "exec": "~/.config/waybar/scripts/page.sh 9",
// "exec-persistent": true,
// "return-type": "json"
// },
// "custom/page10": {
// "exec": "~/.config/waybar/scripts/page.sh 10",
// "exec-persistent": true,
// "return-type": "json"
// },
"hyprland/window": { "format": "{title}", "max-length": 60 },
// "tray": { "icon-size": 16, "spacing": 6 },
"tray": { "icon-size": 16, "spacing": 10 },
"pulseaudio": {
// ——— behaviour ———
"scroll-step": 5, // ± 5 % per wheel-step
"max-volume": 150, // allow 0 – 150 %
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"on-click-right": "pavucontrol",
// ——— appearance ———
"markup": "pango", // enable coloured markup
"format": "{icon} {volume}%",
"format-muted": " muted",
// choose the glyphs you like (Nerd Font / Font Awesome)
"format-icons": {
"default": "", // speaker
"muted": "", // muted speaker
"headphones": ""
}
},
"custom/separator": {
// emit a JSON object with field "text"
"exec": "echo '{\"text\":\"|\"}'",
// treat stdout as JSON
"return-type": "json",
// wrap the text in a colored Pango span
"format": "{text}",
"markup": "pango",
// refresh only hourly
"interval": 3600
},
"cpu": {
"interval": 1, // update every second
"markup": "pango",
"format": " {usage}%"
},
"memory": {
"interval": 2, // fast enough, still light
"markup": "pango",
"format": " {percentage}%"
},
"disk": {
"interval": 30, // disks change slowly
"path": "/",
"markup": "pango",
"format": " {percentage_used}%"
},
/* ─── CLOCK (add date) ──────────────────────────────────── */
"clock": {
"interval": 1,
"format": "{:%Y-%m-%d %H:%M:%S}",
"format-alt": "{:%Y-%m-%d %H:%M}"
},
/* ─── NETWORK ─────────────────────────────────────────────── */
"network": {
"interface": ["enp.*", "eth.*"], // wired NICs (regex—adjust if needed)
"interval": 3,
"markup": "pango",
"format-ethernet": " up",
"format-wifi": " {essid}",
// "format-linked": " link",
"format-unknown": " up",
"format-disconnected":" down",
"on-click": "nm-connection-editor"
},
}