// =============================================================================
//
// Waybar configuration
//
// Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
//
// =============================================================================

{
    // -------------------------------------------------------------------------
    // Global configuration
    // -------------------------------------------------------------------------

    "layer": "top",

    "position": "top",

    "fixed-center": false,

    // If height property would be not present, it'd be calculated dynamically
    "height": 16,

    "modules-left": [
        "sway/workspaces",
        "sway/mode"
    ],
    "modules-center": [
        "sway/window"
    ],
    "modules-right": [
        //"network",
        "memory",
        "cpu",
        "temperature#cpu",
        "temperature#gpu",
        "pulseaudio",
        //"battery",
        "custom/dualsense",
        "idle_inhibitor",
        "custom/swaync",
        "tray",
        "clock"
    ],


    // -------------------------------------------------------------------------
    // Modules
    // -------------------------------------------------------------------------

    "idle_inhibitor": {
        "format": "{icon}",
        "format-icons": {
            "activated": " ",
            "deactivated": " "
        }
    },

    "battery": {
        "interval": 10,
        "states": {
            "warning": 30,
            "critical": 15
        },
        // Connected to AC
        "format": "  {icon}  {capacity}%", // Icon: bolt
        // Not connected to AC
        "format-discharging": "{icon}  {capacity}%",
        "format-icons": [
            "", // Icon: battery-full
            "", // Icon: battery-three-quarters
            "", // Icon: battery-half
            "", // Icon: battery-quarter
            ""  // Icon: battery-empty
        ],
        "tooltip": true
    },

    "clock": {
      "interval": 10,
      "timezones": ["Europe/Berlin", "America/Los_Angeles", "America/Phoenix"],
      "format": "  {:%a %e %b, %H:%M %Z}", // Icon: calendar-alt
      "tooltip-format": "<big>{:%B %Y}</big>\n<tt><small>{calendar}</small></tt>",
      "today-format": "<b><u><span color=\"red\">{}</span></u></b>",
      "on-click": "gsimplecal"
    },

    "cpu": {
        "interval": 5,
        "format": " {usage}% ({load})", // Icon: microchip
        "states": {
          "warning": 70,
          "critical": 90
        }
    },

    "custom/keyboard-layout": {
      "exec": "swaymsg -t get_inputs | grep -m1 'xkb_active_layout_name' | cut -d '\"' -f4",
      // Interval set only as a fallback, as the value is updated by signal
      "interval": 30,
      "format": "  {}", // Icon: keyboard
      // Signal sent by Sway key binding (~/.config/sway/key-bindings)
      "signal": 1, // SIGHUP
      "tooltip": false
    },

    "custom/dualsense": {
      "tooltip": false,
      "return-type": "json",
      "exec": "$HOME/.config/waybar/_modules/dualsense-notifier.sh",
      "on-click": "dualsensectl power-off",
    },

    "memory": {
        "interval": 5,
        "format": " {}%", // Icon: memory
        "states": {
            "warning": 70,
            "critical": 90
        }
    },

    "network": {
        "interval": 5,
        "format-wifi": "  {essid} ({signalStrength}%)", // Icon: wifi
        "format-ethernet": "  {ifname}: {ipaddr}/{cidr}", // Icon: ethernet
        "format-disconnected": "⚠  Disconnected",
        "tooltip-format": "{ifname}: {ipaddr}"
    },

    "sway/mode": {
        "format": "<span style=\"italic\">  {}</span>", // Icon: expand-arrows-alt
        "tooltip": false
    },

    "sway/window": {
        "format": "{}",
        "max-length": 120
    },

    "sway/workspaces": {
        "all-outputs": false,
        "disable-scroll": false,
        "format": "{name}",
        "enable-bar-scroll": false,
        "disable-scroll-wraparound": true,
        "warp-on-scroll": true,
        "format-icons": {
            "1:www": "龜", // Icon: firefox-browser
            "2:mail": "", // Icon: mail
            "3:editor": "", // Icon: code
            "4:terminals": "", // Icon: terminal
            "5:portal": "", // Icon: terminal
            "urgent": "",
            "focused": "",
            "default": ""
        }
    },

    "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"
    },

    "temperature#gpu": {
      "hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:03.1/0000:05:00.0/0000:06:00.0/0000:07:00.0/hwmon",
      "input-filename": "temp2_input",
      "critical-threshold": 110,
      "interval": 5,
      "format": "{icon} {temperatureC}°C",
      "format-icons": [
          "", // Icon: temperature-empty
          "", // Icon: temperature-quarter
          "", // Icon: temperature-half
          "", // Icon: temperature-three-quarters
          ""  // Icon: temperature-full
      ],
      "tooltip": true
    },

    "temperature#cpu": {
      "hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:18.3/hwmon/",
      "input-filename": "temp1_input",
      "critical-threshold": 90,
      "interval": 5,
      "format": "{icon} {temperatureC}°C",
      "format-icons": [
          "", // Icon: temperature-empty
          "", // Icon: temperature-quarter
          "", // Icon: temperature-half
          "", // Icon: temperature-three-quarters
          ""  // Icon: temperature-full
      ],
      "tooltip": true
    },

    "custom/swaync": {
        "tooltip": false,
        "format": "{icon}",
        "format-icons": {
            "notification": "<span foreground='red'> </span>",
            "none": " ",
            "dnd-notification": "<span foreground='red'> </span>",
            "dnd-none": " ",
            "inhibited-notification": "<span foreground='red'> </span>",
            "inhibited-none": " ",
            "dnd-inhibited-notification": "<span foreground='red'> </span>",
            "dnd-inhibited-none": " "
        },
        "return-type": "json",
        "exec-if": "which swaync-client",
        "exec": "swaync-client -swb",
        "on-click": "swaync-client -t -sw",
        "on-click-right": "swaync-client -d -sw",
        "escape": true
    },

    "tray": {
        "icon-size": 16,
        "spacing": 8
    }

}
