nevaforget 2363e76b4a
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 4s
feat: add moonarch-waybar config merger wrapper
Waybar's include directive cannot merge arrays, making per-machine
module customization impossible without duplicating the entire config.

moonarch-waybar merges an optional ~/.config/waybar/userconfig with
the system config, supporting prepend/append on module arrays and
object merge for module definitions. Generates user style.css with
@import of system styles on first run.

System waybar config converted from JSONC to valid JSON for jq
compatibility. Niri startup and hotkey updated to use the wrapper.
2026-04-09 17:04:24 +02:00

487 lines
14 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"__aboutme1": "Moonarch default waybar configuration for Niri.",
"__aboutme2": "Deployed to /etc/xdg/waybar/ by moonarch-git package.",
"layer": "top",
"margin-top": 0,
"spacing": 5,
"fixed-center": true,
"modules-left": [
"group/sys",
"niri/workspaces",
"wlr/taskbar",
"niri/window"
],
"modules-center": [
],
"modules-right": [
"tray",
"mpris",
"bluetooth",
"group/sound",
"group/brightness",
"group/bat",
"group/indicators"
],
"group/indicators": {
"orientation": "inherit",
"modules": [
"custom/cpugov",
"gamemode",
"custom/updates",
"idle_inhibitor",
"custom/notification",
"privacy"
]
},
"group/stats": {
"orientation": "inherit",
"modules": [
"custom/cpugov",
"cpu",
"memory",
"custom/gpu-usage"
],
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
}
},
"group/sound": {
"orientation": "inherit",
"modules": [
"pulseaudio",
"pulseaudio/slider"
],
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
}
},
"group/brightness": {
"orientation": "inherit",
"modules": [
"custom/nightlight",
"backlight",
"backlight/slider"
],
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
}
},
"group/bat": {
"orientation": "inherit",
"modules": [
"battery",
"custom/batsaver"
]
},
"group/sys": {
"orientation": "inherit",
"modules": [
"custom/power",
"clock"
]
},
"tray": {
"icon-size": 15,
"spacing": 10
},
"clock": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "<b>{:%d.%m.%Y %H:%M}</b>",
"format": "<b>{:%d.%m. %H:%M}</b>",
"timezone": "Europe/Berlin",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"weeks-pos": "right",
"on-scroll": 1,
"on-click-right": "mode",
"format": {
"months": "<span color='#b4befe'><b>{}</b></span>",
"days": "<span color='#bac2de'><b>{}</b></span>",
"weeks": "<span color='#f5e0dc'><b>W{}</b></span>",
"weekdays": "<span color='#f9e2af'><b>{}</b></span>",
"today": "<span color='#f38ba8'><b><u>{}</u></b></span>"
}
},
"actions": {
"on-click-right": "mode",
"on-click-forward": "tz_up",
"on-click-backward": "tz_down",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down",
"on-click-middle": "alarm-clock-applet"
}
},
"user": {
"format": "{user}",
"interval": 240,
"icon": false,
"height": 16,
"width": 16,
"open-on-click": false
},
"pulseaudio": {
"format": "{format_source} {icon} <small>{volume}%</small>",
"format-bluetooth": "{icon} {volume}% {format_source}",
"format-bluetooth-muted": "{icon} {format_source}",
"format-muted": "{icon} <b>0</b>%",
"format-source": "",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": [
"",
"",
"󰕾"
]
},
"on-click": "moonarch-sink-switcher &",
"on-click-right": "pavucontrol",
"scroll-step": 5.0,
"max-volume": 99
},
"pulseaudio/slider": {
"min": 0,
"max": 99,
"orientation": "horizontal"
},
"mpris": {
"format": "⏸ {title:.10}",
"format-paused": "▶ {player}",
"player-icons": {
"default": "⏸",
"mpv": "🎵",
"spotify": "",
"firefox": "󰈹",
"mercury": "󰈹"
},
"status-icons": {
"paused": "⏸"
}
},
"custom/power": {
"format": "󰣇",
"on-click": "moonset",
"tooltip-format": "Session Menu"
},
"gamemode": {
"format": "{glyph}<small>{count}</small>",
"format-alt": "{glyph}",
"glyph": "󰺵",
"hide-not-running": true,
"use-icon": true,
"icon-name": "input-gaming-symbolic",
"icon-spacing": 1,
"icon-size": 12,
"tooltip": true,
"tooltip-format": "Games running: {count}"
},
"wlr/taskbar": {
"markup": true,
"format": "{icon}",
"icon-size": 16,
"tooltip-format": "{title:.100}",
"on-click": "activate",
"on-click-middle": "close",
"on-right-middle": "minimize-raise",
"ignore-list": ["title<>"],
"app_ids-mapping": {
"firefoxdeveloperedition": "firefox-developer-edition"
},
"rewrite": {
"Mozilla Firefox": "Firefox",
"firefox": "Firefox",
"VSCodium": "Code",
"codium": "Code",
"Alacritty": "Terminal"
},
"squash-list": [
"firefox"
]
},
"custom/updates": {
"format": "{icon}",
"return-type": "json",
"format-icons": {
"has-updates": "󱍷",
"updated": "󰂪"
},
"exec": "moonarch-waybar-updates",
"interval": 60,
"on-click": "foot moonarch-update"
},
"custom/notification": {
"tooltip": true,
"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": "which swaync-client",
"exec": "swaync-client -swb",
"on-click": "swaync-client -t -sw",
"on-click-right": "swaync-client -d -sw",
"escape": true
},
"cava": {
"framerate": 30,
"autosens": 1,
"bars": 2,
"lower_cutoff_freq": 50,
"higher_cutoff_freq": 10000,
"method": "pipewire",
"source": "auto",
"stereo": true,
"reverse": false,
"bar_delimiter": 0,
"monstercat": true,
"hide_on_silence": true,
"waves": true,
"noise_reduction": 0.77,
"input_delay": 2,
"sleep_timer": 5,
"format-icons": [
"▁",
"▂",
"▃",
"▄",
"▅",
"▆",
"▇",
"█"
],
"actions": {
"on-click-right": "mode"
}
},
"cpu": {
"interval": 10,
"format": "CPU {icon}",
"max-length": 10,
"format-icons": [
"<span color='#69ff94' size='8pt' rise='1.5pt'>▁</span>",
"<span color='#2aa9ff' size='8pt' rise='1.5pt'>▂</span>",
"<span color='#f8f8f2' size='8pt' rise='1.5pt'>▃</span>",
"<span color='#f8f8f2' size='8pt' rise='1.5pt'>▄</span>",
"<span color='#ffffa5' size='8pt' rise='1.5pt'>▅</span>",
"<span color='#ffffa5' size='8pt' rise='1.5pt'>▆</span>",
"<span color='#ff9977' size='8pt' rise='1.5pt'>▇</span>",
"<span color='#dd532e' size='8pt' rise='1.5pt'>█</span>"
]
},
"memory": {
"interval": 30,
"format": "MEM {icon}",
"max-length": 10,
"tooltip": true,
"format-icons": [
"<span color='#69ff94' size='8pt' rise='1.5pt'>▁</span>",
"<span color='#2aa9ff' size='8pt' rise='1.5pt'>▂</span>",
"<span color='#f8f8f2' size='8pt' rise='1.5pt'>▃</span>",
"<span color='#f8f8f2' size='8pt' rise='1.5pt'>▄</span>",
"<span color='#ffffa5' size='8pt' rise='1.5pt'>▅</span>",
"<span color='#ffffa5' size='8pt' rise='1.5pt'>▆</span>",
"<span color='#ff9977' size='8pt' rise='1.5pt'>▇</span>",
"<span color='#dd532e' size='8pt' rise='1.5pt'>█</span>"
]
},
"custom/nightlight": {
"exec": "moonarch-waybar-nightlight",
"return-type": "json",
"interval": "once",
"signal": 11,
"on-click": "moonarch-nightlight",
"format": "{}"
},
"custom/cpugov": {
"exec": "moonarch-waybar-cpugov",
"return-type": "json",
"interval": 60,
"signal": 10,
"on-click": "moonarch-cpugov"
},
"custom/gpu-usage": {
"exec": "moonarch-waybar-gpustat",
"return-type": "json",
"restart-interval": 10
},
"battery": {
"bat": "BAT0",
"interval": 60,
"states": {
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-icons": [
"󰂎",
"󰁺",
"󰁻",
"󰁼",
"󰁽",
"󰁾",
"󰁿",
"󰂀",
"󰂁",
"󰂂",
"󰁹"
],
"max-length": 25,
"on-click": "moonarch-batsaver-toggle"
},
"custom/batsaver": {
"exec": "moonarch-waybar-batsaver",
"return-type": "json",
"interval": 30,
"signal": 9
},
"bluetooth": {
"format": "󰂯",
"format-disabled": "󰂲",
"format-connected": "<small>{num_connections}</small>",
"tooltip-format": "{controller_alias}\t{controller_address}",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{device_enumerate}\t{device_battery_percentage}%",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"on-click": "blueberry"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "󱎴",
"deactivated": "󰷛"
},
"tooltip-format-activated": "󱎴 No Lockscreen on idle",
"tooltip-format-deactivated": "󰷛 Lockscreen on idle"
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "󰓅",
"performance": "󰓅",
"balanced": "󰾅",
"power-saver": "󰌪"
}
},
"privacy": {
"icon-spacing": 4,
"icon-size": 12,
"transition-duration": 250,
"modules": [
{
"type": "screenshare",
"tooltip": true,
"tooltip-icon-size": 12
},
{
"type": "audio-out",
"tooltip": true,
"tooltip-icon-size": 12
},
{
"type": "audio-in",
"tooltip": true,
"tooltip-icon-size": 12
}
]
},
"niri/workspaces": {
"format": "{icon}",
"format-icons": {
"browser": "",
"discord": "󰙯",
"chat": "<b></b>",
"active": "",
"default": ""
}
},
"niri/window": {
"format": "{}",
"rewrite": {
"(.*) - Mozilla Firefox": "🌎 $1",
"(.*) - zsh": "> [$1]"
}
},
"backlight": {
"device": "intel_backlight",
"format": "{percent}% {icon}",
"format-icons": ["󰃟", "󰃠"]
},
"backlight/slider": {
"min": 10,
"max": 100,
"orientation": "horizontal",
"device": "intel_backlight"
},
"cffi/niri-workspaces-enhanced": {
"module_path": "/usr/lib/waybar/libwaybar_niri_workspaces_enhanced.so",
"format": "{window-icons}",
"window-icon-format": {
"default": "{icon}",
"urgent": "<span foreground='red'>{icon}</span>",
"focused": "<span foreground='blue'>{icon}</span>"
},
"window-icons": {
"com.mitchellh.ghostty": "",
"darktable": "",
"foot": "",
"google-chrome": "",
"spotify": "",
"steam": ""
},
"window-icon-default": "*"
},
"height": 40,
"cffi/niri-windows": {
"module_path": "/usr/lib/waybar-niri-windows.so",
"options": {
"mode": "graphical",
"show-floating": "auto",
"floating-position": "right",
"minimum-size": 1,
"spacing": 1,
"icon-minimum-size": 0,
"column-borders": 0,
"floating-borders": 0,
"on-tile-click": "FocusWindow",
"on-tile-middle-click": "CloseWindow",
"on-tile-right-click": "",
"rules": [
{ "app-id": "Alacritty", "class": "alacritty", "icon": "" },
{ "app-id": "firefox", "class": "firefox", "continue": true },
{ "title": "YouTube Music$", "class": "youtube-music", "icon": "" }
],
"symbols": {
"unfocused": "⋅",
"focused": "⊙",
"unfocused-floating": "",
"focused-floating": "⊛",
"empty": ""
}
},
"actions": {
"on-scroll-up": "FocusColumnLeft",
"on-scroll-down": "FocusColumnRight"
}
}
}