{
  "layer": "top",
  "position": "top",
  "height": 40,
  "width": 1905,
  "spacing": 1,
  "reload_style_on_change": true,
  "fixed-center": true,
  "margin": "10 5 0 5",
  "modules-left": [
    "custom/launcher",
    "hyprland/workspaces",
    "tray",
    "hyprland/submap",
    "custom/mpd-scroll",
    "custom/firefox-scroll",
    "cava",
  ],
  "modules-center": ["hyprland/window"],
  "modules-right": [
    "hyprland/scratchpad",
    "idle_inhibitor",
    "custom/updates",
    // "custom/kernel",
    // "disk#ssd",
    // "temperature",
    // "cpu",
    // "memory",
    // "custom/weather",
    "bluetooth",
    "network",
    "pulseaudio",
    "battery",
    "clock",
  ],

  "bluetooth": {
    "format-on": "bt ",
    "format-off": "bt ({status}) ",
    "format-connected": "{device_alias} ",
    "format-connected-battery": "{device_alias} [{device_battery_percentage}%] ",
    "format-device-preference": ["ugreen_1", "ugreen_2"],
    "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}%",
    "on-click": "blueman-manager",
  },
  "hyprland/submap": {
    "format": "{}",
    "max-length": 8,
    "tooltip": false,
  },
  "hyprland/scratchpad": {
    "format": "{icon} {count}",
    "show-empty": false,
    "format-icons": ["", ""],
    "tooltip": true,
    "tooltip-format": "{app}: {title}",
  },
  "idle_inhibitor": {
    "format": "{icon}",
    "format-icons": {
      "activated": "",
      "deactivated": "",
    },
  },
  "tray": {
    "icon-size": 14,
    "spacing": 10,
  },
  "clock": {
    "interval": 60,
    "timezone": "America/Los_Angeles",
    "format": "{:%R }",
    "format-alt": "{:%F %R }",
    "tooltip-format": "<tt><small>{calendar}</small></tt>",
    "calendar": {
      "mode": "year",
      "mode-mon-col": 3,
      "weeks-pos": "right",
      "on-scroll": 1,
      "on-click-right": "mode",
      "format": {
        "months": "<span color='#cba6f7'><b>{}</b></span>",
        "days": "<span color='#cdd6f4'><b>{}</b></span>",
        "weeks": "<span color='#94e2d5'>W{}</span>",
        "weekdays": "<span color='#f9e2af'><b>{}</b></span>",
        "today": "<span color='#f5e0dc'><b><u>{}</u></b></span>",
      },
    },
    "actions": {
      "on-click-right": "mode",
      "on-click-forward": "tz_up",
      "on-click-backward": "tz_down",
      "on-scroll-up": "shift_up",
      "on-scroll-down": "shift_down",
    },
  },
  "cpu": {
    "interval": 3,
    "format": "{usage}% ",
    "on-click": "ghostty --initial-command=btop",
  },
  "memory": {
    "interval": 3,
    "format": "{}% ",
    "on-click": "ghostty --initial-command=btop",
    "tooltip-format": "Used: {used:0.1f}G/{total:0.1f}G. Swap: {swapUsed:0.1f}G/{swapTotal:0.1f}G",
    "states": {
      "critical": 80,
    },
  },
  "temperature": {
    "interval": 3,
    "hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input",
    "critical-threshold": 90,
    "format-critical": "{temperatureC}°C {icon}",
    "format": "{temperatureC}°C {icon}",
    "format-icons": ["", "", ""],
  },
  "disk#ssd": {
    "interval": 60,
    "format": "{path} {free} ",
    "path": "/",
    "tooltip": true,
    "warning": 80,
    "critical": 90,
  },
  "network": {
    "interval": 60,
    "interface-ethernet": "enp1s*",
    "interface-wifi": "wlan0",
    "format-ethernet": "eth ",
    "format-wifi": "{essid} ({signalStrength}%) ",
    "tooltip-format-ethernet": "{ifname}: {ipaddr}/{cidr} ",
    "tooltip-format-wifi": "{ifname}: {ipaddr}/{cidr} ",
    "format-linked": "(No IP) ",
    "format-disconnected": "Disconnected ⚠",
  },
  "custom/weather": {
    "interval": 600,
    "exec": "~/.config/waybar/scripts/wttr.sh Los_Angeles",
    "return-type": "json",
    "format": "{}",
    "tooltip": true,
  },
  "custom/kernel": {
    "exec": "uname -r | sed -E 's/^([0-9]+\\.[0-9]+\\.[0-9]+)-.*-([a-zA-Z0-9]+)/\\1-\\2/'",
    "format": "{} ",
  },
  "pulseaudio": {
    "scroll-step": 2,
    // "format": "{volume}% {icon} {format_source}",
    // "format-bluetooth": "{volume}% {icon} {format_source}",
    // "format-bluetooth-muted": " {icon} {format_source}",
    "format": "{volume}% {icon}",
    "format-bluetooth": "{volume}% {icon}",
    "format-bluetooth-muted": " {icon}",
    "format-muted": " {format_source}",
    "format-source": "{volume}% ",
    "format-source-muted": "",
    "ignored-sinks": ["Easy Effects Sink"],
    "format-icons": {
      "headphone": " ",
      "hands-free": "",
      "headset": "",
      "phone": "",
      "portable": "",
      "car": "",
    },
    "on-click": "pavucontrol",
  },
  "custom/pipewire": {
    "tooltip": false,
    "max-length": 6,
    "exec": "$HOME/.config/waybar/scripts/pipewire.sh",
    "on-click-right": "qpwgraph",
    "scroll-step": 2,
    "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": "",
    },
    "on-click": "pavucontrol",
  },
  "hyprland/workspaces": {
    "format": "{icon}",
    "format-icons": {
      "1": "一",
      "2": "二",
      "3": "三",
      "4": "四",
      "5": "五",
      "6": "六",
      "7": "七",
      "8": "八",
      "9": "九",
      "10": "十",
      // "11": "一",
      // "12": "二",
      // "13": "三",
      // "14": "四",
      // "15": "五",
      // "16": "六",
      // "17": "七",
      // "18": "八",
      // "19": "九",
      // "20": "十",
    },
    "persistent-workspaces": {
      // "*": 10,
      "*": 5,
    },
    "sort-by": "number",
    "all-outputs": false,
  },
  "hyprland/window": {
    "max-length": 88,
  },
  "custom/updates": {
    "format": "{} {icon}",
    "return-type": "json",
    "format-icons": {
      "has-updates": "",
      "updated": "",
    },
    "exec-if": "which waybar-module-pacman-updates",
    "exec": "waybar-module-pacman-updates --no-zero-output --tooltip-align-columns",
  },
  "custom/launcher": {
    "format": "{icon}",
    "format-icons": [" "],
    "on-click": "rofi -show drun",
    "tooltip": false,
  },
  "custom/firefox-scroll": {
    "exec": "$HOME/.config/waybar/scripts/scroll-firefox.sh",
    "format": "<span color='#E66000'> </span>{}",
    "max-length": 30,
    "on-click": "playerctl -p firefox play-pause",
    "hide-empty-text": true,
  },
  "custom/mpd-scroll": {
    "escape": "true",
    "exec": "$HOME/.config/waybar/scripts/scroll-mpd.sh",
    "format": "{}",
    "max-length": 30,
    "on-click": "mpc toggle",
    "on-click-right": "ghostty --initial-command=ncmpcpp",
    "on-scroll-down": "mpc volume -5",
    "on-scroll-up": "mpc volume +5",
    "hide-empty-text": true,
  },
  "cava": {
    // "cava_config": "$HOME/.config/cava/config",
    "framerate": 144,
    "autosens": 0,
    "sensitivity": 100,
    "bars": 18,
    "lower_cutoff_freq": 50,
    "higher_cutoff_freq": 10000,
    "method": "pipewire",
    "source": "auto",
    "stereo": true,
    "reverse": false,
    "bar_delimiter": 0,
    "monstercat": false,
    "waves": false,
    "noise_reduction": 0.77,
    "input_delay": 4,
    "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
    "actions": {
      "on-click-right": "mode",
    },
  },
  "battery": {
    "states": {
      "good": 75,
      "warning": 30,
      "critical": 15,
    },
    "format": "{capacity}% {icon}",
    "format-full": "{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": ["", "", "", "", ""],
  },
}
