一键导入
waybar
Manage and configure Waybar status bar. Use when user asks about waybar, status bar modules, bar layout, or wants to customize their top/bottom panel.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Manage and configure Waybar status bar. Use when user asks about waybar, status bar modules, bar layout, or wants to customize their top/bottom panel.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | waybar |
| description | Manage and configure Waybar status bar. Use when user asks about waybar, status bar modules, bar layout, or wants to customize their top/bottom panel. |
Manage your Waybar configuration using natural language commands.
This system uses Omarchy, which provides wrapper commands and default configs for Waybar.
| Command | Purpose |
|---|---|
omarchy-restart-waybar | Restart Waybar (preferred over pkill) |
omarchy-toggle-waybar | Show/hide Waybar |
omarchy-refresh-waybar | Reset to Omarchy defaults (creates backup) |
IMPORTANT: Use omarchy-restart-waybar instead of pkill or killall for reloading.
Omarchy maintains default configs at:
~/.local/share/omarchy/config/waybar/config.jsonc~/.local/share/omarchy/config/waybar/style.cssRunning omarchy-refresh-waybar will:
config.jsonc.bak.1754426383)The default config includes these Omarchy modules:
"custom/omarchy": {
"format": "<span font='omarchy'>\ue900</span>",
"on-click": "omarchy-menu",
"on-click-right": "xdg-terminal-exec",
"tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space"
}
"custom/update": {
"exec": "omarchy-update-available",
"on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update",
"signal": 7,
"interval": 21600
}
"custom/screenrecording-indicator": {
"on-click": "omarchy-cmd-screenrecord",
"exec": "$OMARCHY_PATH/default/waybar/indicators/screen-recording.sh",
"signal": 8,
"return-type": "json"
}
Many modules use Omarchy launchers for click actions:
| Handler | Purpose |
|---|---|
omarchy-menu | Main Omarchy menu |
omarchy-menu power | Power menu (shutdown, reboot, etc.) |
omarchy-launch-wifi | WiFi network selector |
omarchy-launch-bluetooth | Bluetooth device manager |
omarchy-launch-or-focus-tui btop | System monitor |
omarchy-launch-or-focus-tui wiremix | Audio mixer |
omarchy-launch-floating-terminal-with-presentation <cmd> | Run command in floating terminal |
omarchy-cmd-screenrecord | Toggle screen recording |
omarchy-tz-select | Timezone selector |
~/.config/waybar/config.jsonc # User configuration (JSONC format)
~/.config/waybar/style.css # User styling
When the user asks to modify their Waybar config:
cat ~/.config/waybar/config.jsonc
cp ~/.config/waybar/config.jsonc ~/.config/waybar/config.jsonc.bak.$(date +%s)
Use the Edit tool to modify the JSONC file. Preserve:
# Remove comments and validate JSON structure
sed 's|//.*||g' ~/.config/waybar/config.jsonc | jq . > /dev/null && echo "Valid JSON" || echo "Invalid JSON"
omarchy-restart-waybar
Waybar has three module sections:
modules-left - Left side (default: Omarchy menu, workspaces)modules-center - Center (default: clock, update indicator, screen recording)modules-right - Right side (default: tray, bluetooth, network, audio, cpu, battery)clock, battery, cpu, memory, network, bluetooth, pulseaudio, tray, hyprland/workspacescustom/<name> - User-defined with exec scriptsgroup/<name> - Container for multiple modules (e.g., group/tray-expander)Example - adding memory module:
// In modules-right array:
"modules-right": ["memory", "cpu", "battery"],
// Add configuration:
"memory": {
"interval": 30,
"format": "{percentage}% ",
"tooltip-format": "{used:0.1f}G / {total:0.1f}G",
"on-click": "omarchy-launch-or-focus-tui btop"
}
Remove from section array. Config block can remain (harmless).
Remove from one section array, add to another.
Simple text output:
"custom/mymodule": {
"exec": "/path/to/script.sh",
"interval": 10,
"format": "{}",
"on-click": "command-to-run"
}
JSON output (for dynamic text/tooltip/class):
"custom/mymodule": {
"exec": "/path/to/script.sh",
"return-type": "json",
"interval": 10
}
Script outputs: {"text": "display", "tooltip": "hover text", "class": "css-class"}
For modules that should update on events (not intervals):
"custom/mymodule": {
"exec": "/path/to/script.sh",
"signal": 9,
"return-type": "json"
}
Trigger update from anywhere: pkill -SIGRTMIN+9 waybar
| Module | Purpose | Key Settings |
|---|---|---|
clock | Time/date | format, format-alt, timezone |
battery | Battery status | format, states, format-icons |
cpu | CPU usage | interval, format |
memory | RAM usage | interval, format |
network | Network status | format-wifi, format-ethernet |
bluetooth | Bluetooth | format, format-connected |
pulseaudio | Audio | format, format-muted, scroll-step |
tray | System tray | icon-size, spacing |
hyprland/workspaces | Workspaces | format, format-icons, persistent-workspaces |
| Module | Purpose |
|---|---|
hyprland/workspaces | Workspace indicator/switcher |
hyprland/window | Active window title |
hyprland/submap | Current submap/mode |
hyprland/language | Keyboard layout |
clock: {:%H:%M}, {:%A}, {:%d %B}, {:L%A %H:%M} (locale-aware)
battery: {capacity}, {icon}, {time}, {power}
cpu: {usage}, {avg_frequency}
memory: {percentage}, {used}, {total}
network: {essid}, {signalStrength}, {bandwidthDownBytes}, {bandwidthUpBytes}
Common glyphs used in this config:
- CPU// - Bluetooth off/connected/disabled// - WiFi strong/weak/disconnected/ - Battery full/low// - Volume levels - Screen recording#clock {
color: #ffffff;
padding: 0 10px;
}
#battery.warning {
color: #ff0000;
}
#custom-omarchy {
font-family: omarchy;
}
omarchy-restart-waybar to apply changescustom/omarchy or custom/update unless intentionalIf something breaks:
# Restore from most recent backup
cp ~/.config/waybar/config.jsonc.bak.TIMESTAMP ~/.config/waybar/config.jsonc
omarchy-restart-waybar
# Or reset to Omarchy defaults (backs up current first)
omarchy-refresh-waybar