| 1 | { |
| 2 | // ------------------------------------------------------------------------- |
| 3 | // Global configuration |
| 4 | // ------------------------------------------------------------------------- |
| 5 | |
| 6 | "layer": "top", |
| 7 | |
| 8 | "position": "top", |
| 9 | |
| 10 | //"height": 20, |
| 11 | |
| 12 | "margin-left": 10, |
| 13 | "margin-bottom": 0, |
| 14 | "margin-right": 10, |
| 15 | |
| 16 | "spacing": 5, // Gaps between modules (4px) |
| 17 | |
| 18 | "modules-left": [ |
| 19 | //"custom/rofi", |
| 20 | "hyprland/workspaces", |
| 21 | //"hyprland/submap", |
| 22 | "temperature", |
| 23 | //"idle_inhibitor", |
| 24 | //"mpd" |
| 25 | "custom/spotify" |
| 26 | ], |
| 27 | "modules-center": [ |
| 28 | //"hyprland/window" |
| 29 | "clock#date", |
| 30 | "custom/weather" |
| 31 | //"custom/gammastep" |
| 32 | ], |
| 33 | "modules-right": [ |
| 34 | "backlight", |
| 35 | "custom/storage", |
| 36 | "memory", |
| 37 | "cpu", |
| 38 | "battery", |
| 39 | //"pulseaudio", |
| 40 | "wireplumber", |
| 41 | "custom/almanta", |
| 42 | "custom/screenshot_t", |
| 43 | "custom/jetbrains", |
| 44 | "tray", |
| 45 | "custom/power" |
| 46 | ], |
| 47 | |
| 48 | |
| 49 | // ------------------------------------------------------------------------- |
| 50 | // Modules |
| 51 | // ------------------------------------------------------------------------- |
| 52 | |
| 53 | "custom/sp1": { |
| 54 | "format": " | ", |
| 55 | "tooltip": false |
| 56 | }, |
| 57 | "custom/sp2": { |
| 58 | "format": " |", |
| 59 | "tooltip": false |
| 60 | }, |
| 61 | |
| 62 | "custom/jetbrains": { |
| 63 | "format": "", // Nerd Font IntelliJ glyph; fallback: "" |
| 64 | "tooltip": "JetBrains (click to choose IDE; right-click: Toolbox)", |
| 65 | "on-click": "~/.config/waybar/modules/jetbrains_menu.sh", |
| 66 | "on-click-right": "jetbrains-toolbox", |
| 67 | "interval": 0, |
| 68 | "class": "chip jetbrains", |
| 69 | }, |
| 70 | |
| 71 | "custom/almanta": { |
| 72 | "format": "{}", |
| 73 | "return-type": "json", |
| 74 | "interval": 20, |
| 75 | "exec": "/home/mfwolffe/.config/waybar/modules/almanta.sh", |
| 76 | "on-click": "alacritty -e ssh espadon@almanta", |
| 77 | "tooltip": true, |
| 78 | "class": "chip almanta" |
| 79 | }, |
| 80 | |
| 81 | "custom/rofi": { |
| 82 | "format": "", |
| 83 | "tooltip": false, |
| 84 | "on-click-right": "nwg-drawer", |
| 85 | "on-click": "wofi --show run", |
| 86 | "on-click-middle": "pkill -9 wofi" |
| 87 | }, |
| 88 | "custom/screenshot_t":{ |
| 89 | "format":" ", |
| 90 | "on-click": "~/.config/hypr/scripts/screenshot_full", |
| 91 | "on-click-right":"~/.config/hypr/scripts/screenshot_area" |
| 92 | }, |
| 93 | |
| 94 | "clock#1": { |
| 95 | "format": " {:%a}", |
| 96 | "tooltip": false, |
| 97 | "on-click": "gsimplecal" |
| 98 | }, |
| 99 | "clock#2": { |
| 100 | "format": " {:%d-%h-%Y}", |
| 101 | "tooltip": false, |
| 102 | "on-click": "gsimplecal" |
| 103 | }, |
| 104 | "clock#3": { |
| 105 | "format": " {:%H:%M:%S %p}", |
| 106 | "tooltip": false, |
| 107 | "on-click": "gsimplecal" |
| 108 | }, |
| 109 | |
| 110 | "temperature": { |
| 111 | // "thermal-zone": 1, |
| 112 | "interval": 4, |
| 113 | //"hwmon-path": "/sys/class/hwmon/hwmon3/temp1_input", |
| 114 | "critical-threshold": 80, |
| 115 | // "format-critical": " {temperatureC}°C", |
| 116 | "format-critical": " {temperatureC}°C", |
| 117 | "format": "{icon} {temperatureC}°C", |
| 118 | "format-icons": ["", "", ""], |
| 119 | "max-length": 7, |
| 120 | "min-length": 7, |
| 121 | "on-click": "xsensors" |
| 122 | }, |
| 123 | |
| 124 | "memory": { |
| 125 | "interval": 30, |
| 126 | "format": " {used:0.2f} / {total:0.0f} GB", |
| 127 | "on-click": "alacritty -e btop" |
| 128 | }, |
| 129 | |
| 130 | "battery": { |
| 131 | "interval": 2, |
| 132 | "states": { |
| 133 | "good": 95, |
| 134 | "warning": 30, |
| 135 | "critical": 15 |
| 136 | }, |
| 137 | "format": "{icon} {capacity}%", |
| 138 | "format-charging": " {capacity}%", |
| 139 | "format-plugged": " {capacity}%", |
| 140 | "format-icons": [ |
| 141 | "", |
| 142 | "", |
| 143 | "", |
| 144 | "", |
| 145 | "" |
| 146 | ] |
| 147 | }, |
| 148 | "network": { |
| 149 | "format-wifi": " {essid} ({signalStrength}%)", |
| 150 | "format-ethernet": "{ifname}: {ipaddr}/{cidr} ", |
| 151 | "format-linked": "{ifname} (No IP) ", |
| 152 | "format": "", |
| 153 | "format-disconnected": "", |
| 154 | "format-alt": "{ifname}: {ipaddr}/{cidr}", |
| 155 | "on-click": "wl-copy $(ip address show up scope global | grep inet | head -n1 | cut -d/ -f 1 | tr -d [:space:] | cut -c5-)", |
| 156 | "on-click-right": "wl-copy $(ip address show up scope global | grep inet6 | head -n1 | cut -d/ -f 1 | tr -d [:space:] | cut -c6-)", |
| 157 | "tooltip-format": " {bandwidthUpBits} {bandwidthDownBits}\n{ifname}\n{ipaddr}/{cidr}\n", |
| 158 | "tooltip-format-wifi": " {essid} {frequency}MHz\nStrength: {signaldBm}dBm ({signalStrength}%)\nIP: {ipaddr}/{cidr}\n {bandwidthUpBits} {bandwidthDownBits}", |
| 159 | "interval": 10 |
| 160 | }, |
| 161 | "custom/storage": { |
| 162 | "format": " {}", |
| 163 | "format-alt": "{percentage}% ", |
| 164 | "format-alt-click": "click-right", |
| 165 | "return-type": "json", |
| 166 | "interval": 60, |
| 167 | "exec": "~/.config/waybar/modules/storage.sh" |
| 168 | }, |
| 169 | |
| 170 | "backlight": { |
| 171 | "device": "intel_backlight", |
| 172 | "format": "{icon} {percent}%", |
| 173 | "format-alt": "{percent}% {icon}", |
| 174 | "format-alt-click": "click-right", |
| 175 | //"format-icons": ["", ""], |
| 176 | "format-icons": ["", ""], |
| 177 | "on-scroll-down": "brightnessctl s 5%-", |
| 178 | "on-scroll-up": "brightnessctl s +5%" |
| 179 | }, |
| 180 | "idle_inhibitor": { |
| 181 | "format": "{icon}", |
| 182 | "format-icons": { |
| 183 | "activated": "", |
| 184 | "deactivated": "" |
| 185 | }, |
| 186 | "tooltip": "true" |
| 187 | }, |
| 188 | "custom/weather": { |
| 189 | "format": "{}", |
| 190 | "format-alt": "{alt}: {}", |
| 191 | "format-alt-click": "click-right", |
| 192 | "interval": 3600, |
| 193 | "exec": "curl -s 'https://wttr.in/?format=1'", |
| 194 | //"return-type": "json", |
| 195 | //"exec": "~/.config/waybar/modules/weather.sh", |
| 196 | "exec-if": "ping wttr.in -c1" |
| 197 | }, |
| 198 | "custom/pacman": { |
| 199 | "format": "<big></big> {}", |
| 200 | "interval": 3600, // every hour |
| 201 | "exec": "checkupdates | wc -l", // # of updates |
| 202 | "exec-if": "exit 0", // always run; consider advanced run conditions |
| 203 | "on-click": "alacritty -e 'paru'; pkill -SIGRTMIN+8 waybar", // update system |
| 204 | "signal": 8, |
| 205 | "max-length": 5, |
| 206 | "min-length": 3 |
| 207 | }, |
| 208 | |
| 209 | "custom/spotify": { |
| 210 | "exec": "~/.config/waybar/mediaplayer.py --player spotify", |
| 211 | "format": "{} ", |
| 212 | "return-type": "json", |
| 213 | "on-click": "playerctl play-pause", |
| 214 | "on-scroll-up": "playerctl next", |
| 215 | "on-scroll-down": "playerctl previous" |
| 216 | }, |
| 217 | |
| 218 | "custom/media": { |
| 219 | "format": "{0} {1}", |
| 220 | "return-type": "json", |
| 221 | "max-length": 40, |
| 222 | "format-icons": { |
| 223 | "spotify": "", |
| 224 | "default": "🎜" |
| 225 | }, |
| 226 | "escape": true, |
| 227 | //"exec": "~/.config/waybar/mediaplayer.py" // Script in resources folder |
| 228 | // "exec": "~/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name |
| 229 | }, |
| 230 | |
| 231 | "custom/power": { |
| 232 | "format": " ", |
| 233 | "tooltip": false, |
| 234 | "on-click": "wlogout" |
| 235 | }, |
| 236 | |
| 237 | "clock": { |
| 238 | "format": " {:%H:%M %e %b}", |
| 239 | "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", |
| 240 | "today-format": "<b>{}</b>" |
| 241 | }, |
| 242 | |
| 243 | "clock#date": { |
| 244 | "format": " {:%H:%M \n %e %b}", |
| 245 | "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", |
| 246 | "today-format": "<b>{}</b>" |
| 247 | }, |
| 248 | |
| 249 | "custom/gammastep": { |
| 250 | "interval": 5, |
| 251 | "return-type": "json", |
| 252 | "exec": { |
| 253 | "pre": "if unit_status=\"$(systemctl --user is-active gammastep)\"; then\nstatus=\"$unit_status ($(journalctl --user -u gammastep.service -g 'Period: ' | tail -1 | cut -d ':' -f6 | xargs))\"\nelse\nstatus=\"$unit_status\"\nfi", |
| 254 | "alt": "${status:-inactive}", |
| 255 | "tooltip": "Gammastep is $status", |
| 256 | }, |
| 257 | "format": "{icon}", |
| 258 | "format-icons": { |
| 259 | "activating": " ", |
| 260 | "deactivating": " ", |
| 261 | "inactive": "? ", |
| 262 | "active (Night)": " ", |
| 263 | "active (Nighttime)": " ", |
| 264 | "active (Transition (Night)": " ", |
| 265 | "active (Transition (Nighttime)": " ", |
| 266 | "active (Day)": " ", |
| 267 | "active (Daytime)": " ", |
| 268 | "active (Transition (Day)": " ", |
| 269 | "active (Transition (Daytime)": " ", |
| 270 | }, |
| 271 | "on-click": "systemctl --user is-active gammastep && systemctl --user stop gammastep || systemctl --user start gammastep", |
| 272 | }, |
| 273 | |
| 274 | "cpu": { |
| 275 | "interval": 1, |
| 276 | //"format": " {}%", // Icon: microchip |
| 277 | "format": "{max_frequency}GHz <span color=\"darkgray\">| {usage}%</span>", |
| 278 | "max-length": 13, |
| 279 | "min-length": 13 |
| 280 | }, |
| 281 | |
| 282 | "mpd": { |
| 283 | "max-length": 25, |
| 284 | "format": "<span foreground='#bb9af7'></span> {title}", |
| 285 | "format-paused": " {title}", |
| 286 | "format-stopped": "<span foreground='#bb9af7'></span>", |
| 287 | "format-disconnected": "", |
| 288 | "on-click": "mpc --quiet toggle", |
| 289 | "on-click-right": "mpc update; mpc ls | mpc add", |
| 290 | "on-click-middle": "alacritty -e ncmpcpp", |
| 291 | "on-scroll-up": "mpc --quiet prev", |
| 292 | "on-scroll-down": "mpc --quiet next", |
| 293 | "smooth-scrolling-threshold": 5, |
| 294 | "tooltip-format": "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})" |
| 295 | }, |
| 296 | |
| 297 | "custom/title": { |
| 298 | "format": "{}", |
| 299 | "interval": 0, |
| 300 | "return-type": "json", |
| 301 | //"max-length": 35, |
| 302 | "tooltip": false |
| 303 | }, |
| 304 | |
| 305 | "custom/title#name": { |
| 306 | "format": "{}", |
| 307 | "interval": 0, |
| 308 | "return-type": "json", |
| 309 | |
| 310 | "max-length": 35, |
| 311 | "exec": "$HOME/.scripts/title" |
| 312 | }, |
| 313 | |
| 314 | /*"custom/keyboard": { |
| 315 | "format": " {}", |
| 316 | "interval": 1, |
| 317 | "exec": "$HOME/.config/waybar/get_kbdlayout.sh" |
| 318 | },*/ |
| 319 | |
| 320 | "hyprland/workspaces": { |
| 321 | "all-outputs": true, |
| 322 | "format": "{name}", |
| 323 | "format-icons": { |
| 324 | "1": "一", |
| 325 | "2": "二", |
| 326 | "3": "三", |
| 327 | "4": "四", |
| 328 | "5": "五", |
| 329 | "6": "六", |
| 330 | "7": "七", |
| 331 | "8": "八", |
| 332 | "9": "九", |
| 333 | "10": "十", |
| 334 | }, |
| 335 | "on-scroll-up": "hyprctl dispatch workspace e+1 1>/dev/null", |
| 336 | "on-scroll-down": "hyprctl dispatch workspace e-1 1>/dev/null", |
| 337 | "sort-by-number": true, |
| 338 | "active-only": false, |
| 339 | }, |
| 340 | |
| 341 | "hyprland/window": { |
| 342 | "max-length": 100, |
| 343 | "separate-outputs": true |
| 344 | }, |
| 345 | |
| 346 | "pulseaudio": { |
| 347 | "scroll-step": 3, // %, can be a float |
| 348 | "format": "{icon} {volume}% {format_source}", |
| 349 | "format-bluetooth": "{volume}% {icon} {format_source}", |
| 350 | "format-bluetooth-muted": " {icon} {format_source}", |
| 351 | "format-muted": " {format_source}", |
| 352 | //"format-source": "{volume}% ", |
| 353 | //"format-source-muted": "", |
| 354 | "format-source": "", |
| 355 | "format-source-muted": "", |
| 356 | "format-icons": { |
| 357 | "headphone": "", |
| 358 | "hands-free": "", |
| 359 | "headset": "", |
| 360 | "phone": "", |
| 361 | "portable": "", |
| 362 | "car": "", |
| 363 | "default": ["", "", ""] |
| 364 | }, |
| 365 | "on-click": "pavucontrol", |
| 366 | "on-click-right": "amixer sset Master toggle" |
| 367 | }, |
| 368 | |
| 369 | "wireplumber": { |
| 370 | "on-click": "pavucontrol", |
| 371 | "on-click-right": "amixer sset Master toggle 1>/dev/null", |
| 372 | //on-click: "${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle"; |
| 373 | //on-scroll-down: "${wpctl} set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 0.04+"; |
| 374 | //on-scroll-up: "${wpctl} set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 0.04-"; |
| 375 | "format": "<span foreground='#fab387'>{icon}</span> {volume}%", |
| 376 | "format-muted": " ", |
| 377 | "format-source": "", |
| 378 | "format-source-muted": "", |
| 379 | //"format-muted": "<span foreground='#fab387'> </span>", |
| 380 | //"format-icons": [ "<span foreground='#fab387'></span>" ] |
| 381 | "format-icons": { |
| 382 | "headphone": " ", |
| 383 | "hands-free": " ", |
| 384 | "headset": " ", |
| 385 | "phone": " ", |
| 386 | "portable": " ", |
| 387 | "car": " ", |
| 388 | "default": [" ", " ", " "] |
| 389 | }, |
| 390 | }, |
| 391 | |
| 392 | "tray": { |
| 393 | "icon-size": 15, |
| 394 | "spacing": 5 |
| 395 | } |
| 396 | } |