dotfiles/.config/waybar/config.jsonc

349 lines
11 KiB
JSON
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",
"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": "<big>{:%B %Y}</big>\n<tt>{calendar}</tt>",
"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": "<span style=\"italic\">{}</span>",
"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 <city> -t/--temperature <C/F> -d/--distance <km/miles>
"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
}
}