// 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,
"on-click-right": "alacritty -e nmtui"
},
"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
}
}