{ "__aboutme1": "Moonarch default waybar configuration for Niri.", "__aboutme2": "User overrides go in ~/.config/waybar/config", "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", "custom/cpugov", "bluetooth", "group/sound", "backlight", "group/battery", "group/indicators" ], "group/indicators": { "orientation": "inherit", "modules": [ "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": true } }, "group/battery": { "orientation": "inherit", "modules": [ "battery", "custom/batsaver" ] }, "group/sys": { "orientation": "inherit", "modules": [ "custom/power", "clock" ] }, "tray": { "icon-size": 15, "spacing": 10 }, "clock": { "tooltip-format": "{:%Y %B}\n{calendar}", "format-alt": "{:%d.%m.%Y %H:%M}", "format": "{:%d.%m. %H:%M}", "timezone": "Europe/Berlin", "calendar": { "mode": "month", "mode-mon-col": 3, "weeks-pos": "right", "on-scroll": 1, "on-click-right": "mode", "format": { "months": "{}", "days": "{}", "weeks": "W{}", "weekdays": "{}", "today": "{}" } }, "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" } // "on-click": "evolution" }, "user": { "format": "{user}", "interval": 240, "icon": false, "height": 16, "width": 16, "open-on-click": false }, "pulseaudio": { "format": "{format_source} {icon} {volume}%", "format-bluetooth": "{icon} {volume}% {format_source}", "format-bluetooth-muted": "{icon} {format_source}", "format-muted": "{icon} 0%", "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}{count}", "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}", // "sort-by-app-id": true, "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-if": "which waybar-module-pacman-updates", "exec": "waybar-module-pacman-updates", "on-click": "alacritty paru" }, "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": { // "cava_config": "$XDG_CONFIG_HOME/cava/cava.conf", "framerate": 30, "autosens": 1, //"sensitivity": 50, "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": [ "", "", "", "", "", "", "", "" ] }, "memory": { "interval": 30, "format": "MEM {icon}", "max-length": 10, "tooltip": true, "format-icons": [ "", "", "", "", "", "", "", "" ] }, "custom/cpugov": { "exec": "moonarch-waybar-cpugov", "return-type": "json", "interval": 5, "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": { // "controller": "controller1", // specify the alias of the controller if there are more than 1 on the system "format": "󰂯", "format-disabled": "󰂲", // an empty format will hide the module "format-connected": "{num_connections}", "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": { // Named workspaces // (you need to configure them in niri) "browser": "", "discord": "󰙯", "chat": "", // Icons by state "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": { // Make sure to set the path to the install location on your system // "module_path": "~/.config/waybar/niri-workspaces-enhanced.so", "module_path": "/usr/lib/waybar/libwaybar_niri_workspaces_enhanced.so", // Format string for workspace labels. Available placeholders: // {index} - Workspace index number // {name} - Workspace name (might be empty) // {index-and-name} - Index followed by name if present (e.g., "1 Work") // {value} - Name if present, otherwise index // {separator} - ": " when icons are present, "" when empty // {window-icons} - Formatted icons for windows in workspace "format": "{window-icons}", // Apply separate styles to icons depending on current state "window-icon-format": { "default": "{icon}", "urgent": "{icon}", "focused": "{icon}", }, // A mapping from window app_id to icon. Note that this module does // case-insensitive matching of app_ids, so capitalization doesn't matter. "window-icons": { "com.mitchellh.ghostty": "", "darktable": "", "foot": "", "google-chrome": "", "spotify": "", "steam": "", }, // If no icon is found for a window, the default is used instead "window-icon-default": "*", }, "height": 40, "cffi/niri-windows": { // path where you placed the .so file "module_path": "/usr/lib/waybar-niri-windows.so", // configure the module's behavior "options": { // set the module mode // "graphical" (default): draw a minimap of windows in the current workspace // "text": draws symbols and a focus indicator for each column (mirrors v1 behavior) "mode": "graphical", // ======= graphical mode options ======= // when to show floating windows // - "always": always show floating window view, even if there are no floating windows // - "auto" (default): show floating window view if there are floating windows on the current workspace // - "never": never show floating windows "show-floating": "auto", // pick where the floating windows be shown relative to tiled windows // - "left": show floating windows on the left // - "right" (default): show floating windows on the right "floating-position": "right", // set minimum size of windows, in pixels (default: 1, minimum: 1) // if this value is too large to fit all windows (e.g. in a column with many windows), // it will be reduced "minimum-size": 1, // set spacing between windows/columns, in pixels (default: 1, minimum: 0) // if this value is too large, it will be reduced "spacing": 1, // set minimum size of windows, in pixels, to draw icons for (default: 0, minimum: 0) // if unset or 0, icons will only be drawn for tiled windows that are the only one in their column // if 1+, icons will be drawn for all windows where w >= icon-minimum-size and h >= icon-minimum-size // icons must be set in the "rules" section below for this to have any effect "icon-minimum-size": 0, // account for borders when calculating window sizes; see note below (default: 0, minimum: 0) "column-borders": 0, // border on .column "floating-borders": 0, // border on .floating // trigger actions on tile click (see https://yalter.github.io/niri/niri_ipc/enum.Action.html for available actions) // only actions that take a single window ID are supported // set to an empty string to disable "on-tile-click": "FocusWindow", // (default: FocusWindow) "on-tile-middle-click": "CloseWindow", // (default: CloseWindow) "on-tile-right-click": "", // (default: none) // add CSS classes/icons to windows based on their App ID/Title (see `niri msg windows`) // Go regular expression syntax is supported for app-id and title (see https://pkg.go.dev/regexp/syntax) // rules are checked in the order they are defined - first match wins and checking stops // set "continue" to true to also check and apply subsequent rules even if this rule matches // if multiple rules with icons are applied, the first one will be used // *icons are not drawn for floating windows by default*; set "icon-minimum-size" to enable (see above) "rules": [ // .alacritty will be added to all windows with the App ID "Alacritty" // will be drawn in windows that match { "app-id": "Alacritty", "class": "alacritty", "icon": "" }, // .firefox will be added to all windows with the App ID "firefox" // subsequent rules are also checked and applied for firefox windows { "app-id": "firefox", "class": "firefox", "continue": true }, // .youtube-music will be added to all windows that have "YouTube Music" at the end of their title // will be drawn in windows that match { "title": "YouTube Music$", "class": "youtube-music", "icon": "" } ], // ======= text mode options ======= // customize the symbols used to draw the columns/windows "symbols": { "unfocused": "⋅", "focused": "⊙", "unfocused-floating": "∗", "focused-floating": "⊛", // text to display when there are no windows on the current workspace // if this is an empty string (default), the module will be hidden when there are no windows "empty": "" } }, "actions": { // use niri IPC action names to trigger them (see https://yalter.github.io/niri/niri_ipc/enum.Action.html for available actions) // any action that has no fields is supported "on-scroll-up": "FocusColumnLeft", "on-scroll-down": "FocusColumnRight" // in graphical mode, don't configure click actions here—they're handled by the module above } } }