{ "layer": "top", "height": 24, "spacing": 0, "modules-left": ["sway/workspaces", "sway/mode", "sway/window"], "modules-center": [], "modules-right": [ "cpu", "temperature", "custom/memory", "custom/vpn", "network#bond", "custom/dock", "battery", "privacy", "custom/webcam", "pulseaudio", "custom/wifi", "bluetooth", "idle_inhibitor", "custom/notifications", "custom/update", "custom/pacdiff", "custom/arch-audit", "custom/failed-units", "custom/lostfiles", "custom/thunderbird", "clock", "tray", ], "sway/workspaces": { "disable-scroll": true, }, "sway/window": { "max-length": 60, }, "cpu": { "format": "CPU {usage}% {load:0.2f}", "format-low": "CPU {usage}% {load:0.2f}", "format-medium": "CPU {usage}% {load:0.2f}", "format-high": "CPU {usage}% {load:0.2f}", "format-critical": "CPU {usage}% {load:0.2f}", "states": { "low": 0, "medium": 30, "high": 60, "critical": 80, }, "interval": 5, "tooltip": false, "on-click": "ghostty --class=floating -e htop", }, "custom/memory": { "exec": "~/.config/waybar/memory-status.sh", "return-type": "json", "interval": 10, "tooltip": false, "on-click": "ghostty --class=floating -e htop", }, "disk": { "path": "/", "unit": "GB", "interval": 30, "format": "DSK {specific_used:0.1f}G {percentage_used}%", "format-low": "DSK {specific_used:0.1f}G {percentage_used}%", "format-medium": "DSK {specific_used:0.1f}G {percentage_used}%", "format-high": "DSK {specific_used:0.1f}G {percentage_used}%", "format-critical": "DSK {specific_used:0.1f}G {percentage_used}%", "states": { "low": 0, "medium": 30, "high": 60, "critical": 80, }, "tooltip-format": "{path}: {specific_used:0.1f}G / {specific_total:0.1f}G", }, "temperature": { "format": "{temperatureC}°C", "format-cool": "{temperatureC}°C", "format-warm": "{temperatureC}°C", "format-hot": "{temperatureC}°C", "format-scorching": "{temperatureC}°C", "states": { "cool": 0, "warm": 50, "hot": 65, "scorching": 80, }, "interval": 5, }, "custom/wifi": { "exec": "~/.config/waybar/wifi-status.sh", "return-type": "json", "interval": 10, "on-click": "~/.config/waybar/wifi-toggle.sh", }, "network#bond": { "interface": "bond0", "interval": 5, "format": "↓{bandwidthDownBits} ↑{bandwidthUpBits}", "format-disconnected": "bond off", "tooltip-format": "{ifname}: {ipaddr}/{cidr}", }, "custom/vpn": { "exec": "~/.config/waybar/vpn-status.sh", "return-type": "json", "interval": 5, "signal": 8, "on-click": "~/.config/waybar/vpn-toggle.sh", }, "battery": { "format": "{icon} {capacity}%", "format-charging": "󰂄 {capacity}%", "format-plugged": "󰚥 {capacity}%", "format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󰂂", "󰁹"], "states": { "warning": 30, "critical": 15, }, }, "pulseaudio": { "format": "{icon} {volume}%", "format-low": "{icon} {volume}%", "format-medium": "{icon} {volume}%", "format-high": "{icon} {volume}%", "format-critical": "{icon} {volume}%", "format-muted": "󰖁", "format-icons": { "default": ["󰕿", "󰖀", "󰕾"], }, "states": { "low": 0, "medium": 50, "high": 80, "critical": 95, }, "scroll-step": 5, "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", }, "clock": { "format": "{:%a %d %b %H:%M}", "tooltip-format": "{:%Y-%m-%d %H:%M:%S}", "on-click": "~/.config/sway/tb-toggle.sh", }, "tray": { "spacing": 8, }, "idle_inhibitor": { "format": "{icon}", "format-icons": { "activated": "󰛑", "deactivated": "󰛐", }, "tooltip": true, }, "bluetooth": { "format": "󰂯", "format-disabled": "󰂲", "format-off": "󰂲", "format-connected": "󰂰 {device_alias}", "format-connected-battery": "󰂰 {device_alias} {device_battery_percentage}%", "tooltip-format": "{controller_alias}\t{controller_address}", "tooltip-format-connected": "{controller_alias}\n{num_connections} connected\n{device_enumerate}", "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", "on-click": "~/.config/sway/bt-toggle.sh", }, "privacy": { "icon-spacing": 4, "icon-size": 14, "transition-duration": 250, "modules": [ { "type": "screenshare", "tooltip": true }, { "type": "audio-in", "tooltip": true }, ], }, "custom/webcam": { "exec": "~/.config/waybar/webcam-status.sh", "return-type": "json", "interval": 2, "tooltip": true, }, "custom/dock": { "exec": "~/.config/waybar/dock-status.sh", "return-type": "json", "interval": 5, "tooltip": true, }, "custom/notifications": { "exec": "~/.config/waybar/mako-status.sh", "return-type": "json", "interval": 2, "on-click": "~/.config/waybar/mako-history.py", "on-click-right": "makoctl dismiss --all", "on-click-middle": "makoctl restore", "tooltip": true, }, "custom/update": { "exec": "~/.config/waybar/update-status.sh", "return-type": "json", "interval": 60, "on-click": "ghostty --class=floating -e sh -c 'cd ~/dotfiles && just update; printf \"\\n[done — press enter] \"; read _'", "tooltip": true, }, "custom/pacdiff": { "exec": "~/.config/waybar/pacdiff-status.sh", "return-type": "json", "interval": 300, "on-click": "ghostty --class=floating -e sh -c 'sudo sh -c \"DIFFPROG=\\\"nvim -d\\\" pacdiff\"; printf \"\\n[done — press enter] \"; read _'", "tooltip": true, }, "custom/failed-units": { "exec": "~/.config/waybar/failed-units-status.sh", "return-type": "json", "interval": 30, "on-click": "ghostty --class=floating -e sh -c 'echo \"=== system ===\"; systemctl --failed; echo; echo \"=== user ===\"; systemctl --user --failed; printf \"\\n[done — press enter] \"; read _'", "tooltip": true, }, "custom/arch-audit": { "exec": "~/.config/waybar/arch-audit-status.sh", "return-type": "json", "interval": 300, "on-click": "ghostty --class=floating -e nvim -R /run/arch-audit.txt", "tooltip": true, }, "custom/lostfiles": { "exec": "~/.config/waybar/lostfiles-status.sh", "return-type": "json", "interval": 600, "on-click": "ghostty --class=floating -e nvim -R /run/lostfiles.txt", "tooltip": true, }, "custom/thunderbird": { "exec": "~/.config/waybar/tb-unread.sh", "return-type": "json", "interval": 60, "on-click": "~/.config/sway/tb-toggle.sh", "tooltip": true, }, }