dotfiles/.config/waybar/config.jsonc

315 lines
9.5 KiB
Plaintext
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// =============================================================================
//
// 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",
"cpu",
"memory",
"disk",
"battery",
"temperature",
// connecting
"network",
//"bluetooth",
// media
//"custom/playerctl",
"idle_inhibitor",
"pulseaudio",
"backlight",
// system
//"custom/sunset",
//"custom/pacman",
//"clock",
"custom/clock",
"tray"
],
// -------------------------------------------------------------------------
// Modules
// -------------------------------------------------------------------------
"battery": {
"interval": 30,
"states": {
"warning": 30,
"critical": 15
},
"format-charging": " {capacity}%",
"format": "{icon} {capacity}%",
"format-icons": ["", "", "", "", "", ""],
"tooltip": true
//"bat": "BAT0"
},
"custom/clock": {
"exec": "echo ' '$(date +'%e %b %Y %H:%M')' '",
"interval": 60,
"tooltip": true,
"tooltip-format": "<big>{:%B %Y}</big>\n<tt>{calendar}</tt>",
"on-click": "swaymsg exec \\$calendar"
},
"clock": {
"interval": 60,
"format": "{:%e %b %Y %H:%M}",
"tooltip": true,
"tooltip-format": "<big>{:%B %Y}</big>\n<tt>{calendar}</tt>",
"on-click": "swaymsg exec \\$calendar"
},
"cpu": {
"interval": 5,
"format": "﬙ {usage}%",
"states": {
"warning": 70,
"critical": 90
},
"on-click": "swaymsg exec \\$term_float htop"
},
"memory": {
"interval": 5,
"format": " {}%",
"states": {
"warning": 70,
"critical": 90
},
"on-click": "swaymsg exec \\$term_float htop"
},
"network": {
"interval": 5,
"format-wifi": " ",
"format-ethernet": "",
"format-disconnected": "睊",
"tooltip-format": "{ifname} ({essid}): {ipaddr}",
"on-click": "swaymsg exec \\$term_float nmtui"
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>",
"tooltip": false
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"backlight": {
"format": "{icon} {percent}%",
"format-icons": ["", "", ""],
"on-scroll-up": "light -A 1",
"on-scroll-down": "light -U 1"
},
"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"
},
"temperature": {
"critical-threshold": 90,
"interval": 5,
"format": "{icon} {temperatureC}°C",
"format-icons": ["", "", ""],
"tooltip": false,
"on-click": "swaymsg exec \"\\$term_float watch sensors\""
},
"tray": {
"icon-size": 21,
"spacing": 5
},
//"custom/pacman": {
// "format": " {}",
// "interval": 3600,
// "exec-if": "[ $(pamac checkupdates -q | wc -l) -gt 0 ]",
// "exec": "pamac checkupdates -q | wc -l",
// "on-click": "pamac-manager --updates; pkill -RTMIN+4 waybar",
// "signal": 4
//},
"custom/menu": {
"format": "",
"on-click": "swaymsg exec \\$menu",
"tooltip": false
},
"bluetooth": {
"format": " {status}",
"format-connected": " {status}",
"format-connected-battery": " {status} {device_battery_percentage}%",
//"format-connected": " {device_alias}",
//"format-connected-battery": " {device_alias} {device_battery_percentage}%",
//"format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%"
},
"sway/language": {
"format": " {}",
"min-length": 5,
"tooltip": false,
"on-click": "swaymsg input $(swaymsg -t get_inputs --raw | jq '[.[] | select(.type == \"keyboard\")][0] | .identifier') xkb_switch_layout next"
},
"custom/scratchpad": {
"interval": "once",
"return-type": "json",
"format": "{icon}",
"format-icons": {
"one": "类",
"many": "缾"
},
"exec": "/bin/sh ~/.config/waybar/scripts/scratchpad.sh",
"on-click": "swaymsg 'scratchpad show'",
"signal": 7
},
"custom/sunset": {
"interval": "once",
"tooltip": false,
"return-type": "json",
"format": "{icon}",
"format-icons": {
"on": "",
"off": ""
},
"exec": "~/.config/waybar/scripts/sunset.sh",
"on-click": "~/.config/waybar/scripts/sunset.sh toggle; pkill -RTMIN+6 waybar",
"exec-if": "~/.config/waybar/scripts/sunset.sh check",
"signal": 6
},
"custom/wf-recorder": {
"interval": "once",
"return-type": "json",
"format": "{}",
"tooltip-format": "{tooltip}",
"exec": "echo '{\"class\": \"recording\",\"text\":\"雷\",\"tooltip\":\"press $mod+Esc to stop recording\"}'",
"exec-if": "pgrep wf-recorder",
"on-click": "killall -s SIGINT wf-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' && gh api '/notifications' -q 'length' | grep -q -m 1 '0' ; test $? -eq 1",
"on-click": "xdg-open https://github.com/notifications && sleep 30 && pkill -RTMIN+4 waybar",
"signal": 4
},
"disk": {
"interval": 30,
"format": " {free}",
"path": "/"
},
"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; pkill -RTMIN+5 waybar",
"on-click-right": "playerctl next; pkill -RTMIN+5 waybar",
"on-scroll-up": "playerctl position 10+; pkill -RTMIN+5 waybar",
"on-scroll-down": "playerctl position 10-; pkill -RTMIN+5 waybar",
"signal": 5
},
"custom/clipboard": {
"format": "",
"interval": "once",
"return-type": "json",
"on-click": "swaymsg -q exec '$clipboard'; pkill -RTMIN+9 waybar",
"on-click-right": "swaymsg -q exec '$clipboard-del'; pkill -RTMIN+9 waybar",
"on-click-middle": "rm -f ~/.cache/cliphist/db; pkill -RTMIN+9 waybar",
"exec": "printf '{\"tooltip\":\"%s\"}' $(cliphist list | wc -l)",
"exec-if": "[ -x \"$(command -v cliphist)\" ] && [ $(cliphist list | wc -l) -gt 0 ]",
"signal": 9
},
"custom/weather": {
"icon-size": 42,
"format": "{icon} {}",
"tooltip": true,
"interval": 3600,
// accepts a location as an argument (in quotes)
"exec": "~/.config/sway/waybar/scripts/weather.py",
"return-type": "json",
"format-icons": {
"Unknown": "",
"Cloudy": "摒",
"Fog": "",
"HeavyRain": "",
"HeavyShowers": "",
"HeavySnow": "",
"HeavySnowShowers": "ﰕ",
"LightRain": "",
"LightShowers": "",
"LightSleet": "",
"LightSleetShowers": "",
"LightSnow": "",
"LightSnowShowers": "ﭽ",
"PartlyCloudy": "",
"Sunny": "",
"ThunderyHeavyRain": "ﭼ",
"ThunderyShowers": "",
"ThunderySnowShowers": "",
"VeryCloudy": ""
}
}
}