All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 3s
- CI Dockerfile: verify act_runner SHA256, restrict sudoers to safe pacman arguments (S-C1, S-C2) - cliphist: split into cliphist-text + cliphist-image services with Type=simple for proper PID tracking and restart (Q-C3) - batsaver-toggle: validate sysfs input as numeric, check state file write (Q-C2, S-W2) - udev battery rule: add ACTION=="add" filter to avoid firing on every battery event (Q-W3) - cpugov: replace eval with direct expansion, switch waybar module to signal-based updates, send SIGRTMIN+10 after toggle (Q-W1, S-W1, P-W4) - Remove docker group auto-assignment from install scripts (S-I1)
533 lines
18 KiB
Plaintext
533 lines
18 KiB
Plaintext
{
|
||
"__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",
|
||
"bluetooth",
|
||
"group/sound",
|
||
"backlight",
|
||
"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": true
|
||
}
|
||
},
|
||
"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"
|
||
}
|
||
// "on-click": "evolution"
|
||
},
|
||
"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}",
|
||
// "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": [
|
||
"<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/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": {
|
||
// "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": "<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": {
|
||
// Named workspaces
|
||
// (you need to configure them in niri)
|
||
"browser": "",
|
||
"discord": "",
|
||
"chat": "<b></b>",
|
||
|
||
// 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": "<span foreground='red'>{icon}</span>",
|
||
"focused": "<span foreground='blue'>{icon}</span>",
|
||
},
|
||
// 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
|
||
}
|
||
}
|
||
} |