// vim: set ft=json: // not actually json, but better than nothing { "layer": "top", "position": "top", "height": 24, // Waybar height (to be removed for auto height) // Position/Order of modules "modules-left": [ "sway/workspaces", "sway/mode" ], "modules-center": [], "modules-right": [ "tray", "custom/redshift", "idle_inhibitor", "backlight", "mpd", "pulseaudio", "network", "custom/vpn", "network#speed", "memory", "cpu", "temperature", "battery", "clock" ], // Modules configuration "sway/workspaces": { "disable-scroll": true }, "sway/mode": { "format": "{}" }, "mpd": { "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} – {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ", "format-disconnected": "Disconnected ", "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", "unknown-tag": "N/A", "interval": 2, "consume-icons": { "on": " " }, "random-icons": { "off": "劣 ", "on": "列 " }, "repeat-icons": { "on": "凌 " }, "single-icons": { "on": "綾 " }, "state-icons": { "paused": "", "playing": "契" }, "tooltip-format": "MPD (connected)", "tooltip-format-disconnected": "MPD (disconnected)" }, "idle_inhibitor": { "format": "{icon}", "format-icons": { "activated": " ", "deactivated": " " } }, "tray": { // "icon-size": 21, "spacing": 5 }, "clock": { "format": "{:%H:%M %Z}", "format-alt": "{:%Y-%m-%d (%a)}", "tooltip-format": "{:%Y %B}\n{calendar}" }, "cpu": { "interval": 2, "format": "{usage:2}% ﬙ ", "tooltip": false }, "memory": { "interval": 2, "format": "{:2}%  " }, "temperature": { "critical-threshold": 80, "format": "{temperatureC}°C {icon}", "format-icons": ["", "", "", "", ""] }, "backlight": { "format": "{percent}% {icon}", "format-icons": [" ", " ", " ", " ", " ", " ", " "], "on-scroll-up": "brightnessctl set +5%", "on-scroll-down": "brightnessctl set 5%-" }, "battery": { "interval": 5, "states": { "good": 95, "warning": 30, "critical": 15 }, "format": "{capacity}% {icon}", "format-charging": "{capacity}% ", "format-plugged": "{capacity}% ﮣ", "format-alt": "{time} {icon}", "format-icons": ["", "", "", "", "", "", "", "", "", "", ""] }, "network": { "format-wifi": "{essid} ({signalStrength}%) 直 ", "format-ethernet": "{ifname}: {ipaddr}/{cidr}  ", "format-linked": "{ifname} (No IP)  ", "format-disconnected": "Disconnected ⚠ ", "format-alt": "{ifname}: {ipaddr}/{cidr}", "tooltip": false }, "network#speed": { "interval": 2, "format": "{bandwidthDownBits:>8}  {bandwidthUpBits:>8} 祝", "format-alt": "{bandwidthDownOctets:>8}  {bandwidthUpOctets:>8} 祝", "format-disconnected": " 0b/s 祝 0b/s", "tooltip": false }, "pulseaudio": { "format": "{volume}% {icon} {format_source}", "format-bluetooth": "{volume}% {icon} {format_source}", "format-bluetooth-muted": "遼 {icon} {format_source}", // FIXME: see below "format-muted": "遼 {format_source}", // FIXME: use normal mute icon (ﱝ ), which for some reason is displayed right of the source? "format-source": "{volume}% \u2009", "format-source-muted": "\u2009", "format-icons": { "headphone": " ", "hands-free": " ", "headset": " ", "phone": " ", "portable": " ", "car": " ", "default": ["奄", "奔", "墳"] }, "on-click": "pavucontrol" }, "custom/vpn": { "interval": 10, "exec": "ip -j link | jq --unbuffered --compact-output '[[.[].ifname | select(. | startswith(\"mullvad\"))][] | split(\"-\")[1] + \" \u2009\"] as $conns | { text: ($conns[0] // \"\"), class: (if $conns | length > 0 then \"connected\" else \"disconnected\" end) }'", "return-type": "json", "format": "{}", "tooltip": false }, "custom/redshift": { "interval": 10, "exec": "systemctl --user show redshift | grep -q ActiveState=active && echo '{\"tooltip\": \"Redshift active\", \"class\": \"active\"}' || echo '{\"tooltip\": \"Redshift inactive\", \"class\": \"inactive\"}'", "on-click": "systemctl --user show redshift | grep -q ActiveState=active && systemctl --user stop redshift || systemctl --user start redshift", "return-type": "json", "format": "", "tooltip": false } }