// vim: ft=jsonc { "layer": "top", // Waybar at top layer // "position": "bottom", // Waybar position (top|bottom|left|right) // "height": 30, // Waybar height (to be removed for auto height) // "width": 1280, // Waybar width "spacing": 4, // Gaps between modules (4px) "output": "${PRIMARY_DISPLAY}", // Choose the order of the modules "modules-left": ["wlr/workspaces", "hyprland/window"], "modules-center": ["custom/inhibit", "idle_inhibitor", "custom/dunst"], "modules-right": ["hyprland/submap", "custom/wifionice", "custom/spotify", "pulseaudio", "custom/network", "cpu", "memory", "temperature", "backlight", "battery", "clock", "tray"], // Modules configuration "wlr/workspaces": { "disable-scroll": false, "sort-by-number": true, "all-outputs": true, "warp-on-scroll": false, "format": "{name}: {icon}", "format-icons": { "1": "", "2": "", "3": "", "4": "", "5": "", "urgent": "", "focused": "", "default": "" } }, "keyboard-state": { "numlock": true, "capslock": true, "format": "{name} {icon}", "format-icons": { "locked": "", "unlocked": "" } }, "custom/spotify": { "exec": "/usr/bin/python3 ~/.config/waybar/scripts/mediaplayer.py --player spotify", "format": "{} ", "return-type": "json", "escape": true, "on-click": "playerctl play-pause", "on-scroll-up": "playerctl next", "on-scroll-down": "playerctl previous" }, "custom/inhibit": { "format": "☕", "on-click": "systemd-inhibit --what=handle-lid-switch --who=waybar --why='Inhibiting suspend' --mode=block sleep 120 & notify-send 'Inhibiting suspend' 'Waybar will prevent the system from suspending for 2 minutes'" }, "custom/dunst": { "exec": "~/.config/waybar/scripts/dunst.sh", "return-type": "json", "on-click": "dunstctl set-paused toggle", "on-click-middle": "dunstctl context", "on-click-right": "dunstctl history-pop", "restart-interval": 1 }, "custom/wifionice": { "exec": "~/.config/waybar/scripts/wifionice.sh", "escape": true }, "idle_inhibitor": { "format": "{icon}", "format-icons": { "activated": "", "deactivated": "" } }, "tray": { // "icon-size": 21, "spacing": 10 }, "clock": { // "timezone": "America/New_York", "tooltip-format": "{:%Y %B}\n{calendar}", "format-alt": "{:%Y-%m-%d}" }, "cpu": { "format": "{usage}% ", "tooltip": false }, "memory": { "format": "{}% " }, "temperature": { // "thermal-zone": 2, // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", "critical-threshold": 80, // "format-critical": "{temperatureC}°C {icon}", "format": "{temperatureC}°C {icon}", "format-icons": ["", "", ""] }, "backlight": { // "device": "acpi_video1", "format": "{percent}% {icon}", "format-icons": ["", "", "", "", "", "", "", "", ""] }, "battery": { "states": { // "good": 95, "warning": 30, "critical": 15 }, "format": "{capacity}% {icon}", "format-charging": "{capacity}% ", "format-plugged": "{capacity}% ", "format-alt": "{time} {icon}", // "format-good": "", // An empty format will hide the module // "format-full": "", "format-icons": ["", "", "", "", ""] }, "battery#bat2": { "bat": "BAT2" }, "custom/network": { "format": "{}", "max-length": 40, "escape": true, "exec": "$HOME/.config/hypr/hooks/networkmanager.sh 2> /dev/null" // Script in resources folder }, "pulseaudio": { // "scroll-step": 1, // %, can be a float "format": "{volume}% {icon} {format_source}", "format-bluetooth": "{volume}% {icon} {format_source}", "format-bluetooth-muted": " {icon} {format_source}", "format-muted": " {format_source}", "format-source": "{volume}% ", "format-source-muted": "", "format-icons": { "headphone": "", "hands-free": "", "headset": "", "phone": "", "portable": "", "car": "", "default": ["", "", ""] }, "on-click": "pavucontrol" }, "custom/media": { "format": "{icon} {}", "return-type": "json", "max-length": 40, "format-icons": { "spotify": "", "default": "🎜" }, "escape": true, "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name } }