// ============================================================================= // // Waybar configuration // // Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration // // ============================================================================= { // ------------------------------------------------------------------------- // Global configuration // ------------------------------------------------------------------------- "layer": "top", // If height property would be not present, it'd be calculated dynamically "height": 30, "position": "top", "modules-left": ["custom/menu", "sway/workspaces", "custom/scratchpad"], "modules-center": ["custom/wf-recorder", "sway/mode", "custom/weather"], "modules-right": [ // informational "sway/language", "custom/github", "custom/clipboard", "custom/zeit", "cpu", "temperature", "memory", "battery", // connecting "network", "bluetooth", "custom/valent", // media "custom/playerctl", "custom/idle_inhibitor", "custom/dnd", "pulseaudio", "backlight", // system "custom/adaptive-light", "custom/sunset", "custom/pacman", "tray", "clock" ], // ------------------------------------------------------------------------- // Modules // ------------------------------------------------------------------------- "battery": { "interval": 30, "states": { "warning": 30, "critical": 15 }, "format-charging": "󰂄 {capacity}%", "format": "{icon} {capacity}%", "format-icons": ["󱃍", "󰁺", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"], "tooltip": true }, "clock": { "interval": 60, "format": "{:%e %b %Y %H:%M}", "tooltip": true, "tooltip-format": "{:%B %Y}\n{calendar}", "on-click": "swaymsg exec \\$calendar" }, "cpu": { "interval": 10, "format": "󰘚", "states": { "warning": 70, "critical": 90 }, "on-click": "swaymsg exec \\$once \\$term_float htop", "tooltip": true }, "memory": { "interval": 10, "format": "󰍛", "states": { "warning": 70, "critical": 90 }, "on-click": "swaymsg exec \\$once \\$term_float htop", "tooltip": true }, "network": { "interval": 5, "format-wifi": " ", "format-ethernet": "󰈀", "format-disconnected": "󰖪", "tooltip-format": "{icon} {ifname}: {ipaddr}", "tooltip-format-ethernet": "{icon} {ifname}: {ipaddr}", "tooltip-format-wifi": "{icon} {ifname} ({essid}): {ipaddr}", "tooltip-format-disconnected": "{icon} disconnected", "tooltip-format-disabled": "{icon} disabled", "on-click": "swaymsg exec \\$once \\$term_float nmtui connect" }, "sway/mode": { "format": "{}", "tooltip": false }, "backlight": { "format": "{icon} {percent}%", "format-icons": ["󰃞", "󰃟", "󰃠"], "on-scroll-up": "swaymsg exec \\$brightness_up", "on-scroll-down": "swaymsg exec \\$brightness_down" }, "pulseaudio": { "scroll-step": 5, "format": "{icon} {volume}%{format_source}", "format-muted": "󰖁 {format_source}", "format-source": "", "format-source-muted": " 󰍭", "format-icons": { "headphone": "󰋋", "headset": "󰋎", "default": ["󰕿", "󰖀", "󰕾"] }, "tooltip-format": "{icon}  {volume}% {format_source}", "on-click": "swaymsg exec \\$pulseaudio", "on-click-middle": "swaymsg exec \\$volume_mute", "on-scroll-up": "swaymsg exec \\$volume_up", "on-scroll-down": "swaymsg exec \\$volume_down" }, "temperature": { "critical-threshold": 90, "interval": 5, "format": "{icon}", "tooltip-format": "{temperatureC}°C", "format-icons": ["", "", ""], "tooltip": true, "on-click": "swaymsg exec \"\\$once \\$term_float watch sensors\"" }, "tray": { "icon-size": 21, "spacing": 5 }, "custom/pacman": { "format": "󰀼 {}", "interval": 3600, "return-type": "json", "exec-if": "$HOME/.config/scripts/checkupdates.sh check", "exec": "$HOME/.config/scripts/checkupdates.sh status", "on-click": "$HOME/.config/scripts/checkupdates.sh check && swaymsg exec \\$update-manager", "on-click-middle": "waybar-signal pacman", "signal": 14 }, "bluetooth": { "format": "󰂯", "format-disabled": "󰂲", "on-click": "swaymsg exec \\$bluetooth", "on-click-right": "rfkill toggle bluetooth", "tooltip-format": "{}" }, "sway/language": { "format": " {}", "min-length": 5, "tooltip": false, "on-click": "swaymsg input type:keyboard xkb_switch_layout next" }, "custom/scratchpad": { "interval": "once", "return-type": "json", "format": "{icon}", "format-icons": { "one": "󰖯", "many": "󰖲" }, "exec": "/bin/sh $HOME/.config/scripts/scratchpad.sh", "on-click": "swaymsg 'scratchpad show'", "signal": 7 }, "custom/sunset": { "interval": "once", "tooltip": true, "return-type": "json", "format": "{icon}", "format-icons": { "on": "󰌵", "off": "󰌶" }, "exec": "fallback_latitude=50.1 fallback_longitude=8.7 latitude= longitude= $HOME/.config/scripts/sunset.sh", "on-click": "$HOME/.config/scripts/sunset.sh toggle", "exec-if": "$HOME/.config/scripts/sunset.sh check", "signal": 6 }, "custom/wf-recorder": { "interval": "once", "return-type": "json", "format": "{}", "exec": "echo '{\"class\": \"recording\",\"text\":\"󰑊\",\"tooltip\":\"press $mod+Esc to stop recording\"}'", "exec-if": "pgrep wf-recorder", "on-click": "waybar-signal recorder", "signal": 8 }, "custom/github": { "interval": 300, "tooltip": false, "return-type": "json", "format": " {}", "exec": "gh api '/notifications' -q '{ text: length }' | cat -", "exec-if": "[ -x \"$(command -v gh)\" ] && gh auth status 2>&1 | grep -q -m 1 'Logged in' && test $(gh api '/notifications' -q 'length') -ne 0", "on-click": "test $(gh api '/notifications' -q 'length') -ne 0 && xdg-open https://github.com/notifications && sleep 30 && waybar-signal github", "signal": 4 }, "custom/playerctl": { "interval": "once", "tooltip": true, "return-type": "json", "format": "{icon}", "format-icons": { "Playing": "󰏦", "Paused": "󰐍" }, "exec": "playerctl metadata --format '{\"alt\": \"{{status}}\", \"tooltip\": \"{{playerName}}: {{markup_escape(title)}} - {{markup_escape(artist)}}\" }'", "on-click": "playerctl play-pause", "on-click-right": "playerctl next", "on-scroll-up": "playerctl position 10+", "on-scroll-down": "playerctl position 10-", "signal": 5 }, "custom/clipboard": { "format": "󰨸", "interval": "once", "return-type": "json", "on-click": "swaymsg -q exec '$clipboard'; waybar-signal clipboard", "on-click-right": "swaymsg -q exec '$clipboard-del'; waybar-signal clipboard", "on-click-middle": "rm -f ~/.cache/cliphist/db; waybar-signal clipboard", "exec": "printf '{\"tooltip\":\"%s\"}' $(cliphist list | wc -l)' item(s) in the clipboard\r(Mid click to clear)'", "exec-if": "[ -x \"$(command -v cliphist)\" ] && [ $(cliphist list | wc -l) -gt 0 ]", "signal": 9 }, "custom/weather": { "format": "{}", "tooltip": true, "interval": 3600, // accepts -c/--city -t/--temperature -d/--distance "exec": "$HOME/.config/waybar/scripts/weather.py -t F", "return-type": "json", "on-click": "xdg-open \"https://wttr.in/$(curl -s https://manjaro-sway.download/geoip | jq -r '.city')\"", "on-click-right": "waybar-signal weathr", "signal": 16 }, "custom/zeit": { "return-type": "json", "interval": "once", "format": "{icon}", "format-icons": { "tracking": "󰖷", "stopped": "󰋣" }, "exec": "$HOME/.config/waybar/scripts/zeit.sh status", "on-click": "$HOME/.config/scripts/zeit.sh click; waybar-signal zeit", "exec-if": "[ -x \"$(command -v zeit)\" ]", "signal": 10 }, "custom/dnd": { "interval": "once", "return-type": "json", "format": "{}{icon}", "format-icons": { "default": "󰚢", "dnd": "󰚣" }, "on-click": "$HOME/.config/scripts/dnd.sh toggle; waybar-signal dnd", "on-click-right": "$HOME/.config/scripts/dnd.sh restore", "exec": "$HOME/.config/scripts/dnd.sh status", "signal": 11 }, "custom/adaptive-light": { "interval": "once", "tooltip": true, "return-type": "json", "format": "{icon}", "format-icons": { "on": "󰃡", "off": "󰃠" }, "exec": "$HOME/.config/scripts/wluma.sh", "on-click": "$HOME/.config/scripts/wluma.sh toggle", "exec-if": "$HOME/.config/scripts/wluma.sh check", "signal": 12 }, "custom/valent": { "format": "{icon}", "tooltip": true, "interval": 60, "exec": "$HOME/.config/scripts/valent.py", "exec-if": "[ -x \"$(command -v valent)\" ]", "return-type": "json", "format-icons": { "no-devices": "", "dangerously-empty": "󰂃", "no-signal": "󰞃", "connected": "", "disconnected": "" }, "on-click": "valent", "on-click-middle": "waybar-signal valent", "signal": 13 }, "custom/idle_inhibitor": { "interval": 60, "return-type": "json", "format": "{icon}", "format-icons": { "on": "󰒳", "off": "󰒲" }, "exec": "inhibit-idle", "on-click": "inhibit-idle off; inhibit-idle interactive", "on-click-middle": "inhibit-idle off", "signal": 15 } }