//  __  __           _       _            
// |  \/  | ___   __| |_   _| | ___  ___  
// | |\/| |/ _ \ / _` | | | | |/ _ \/ __| 
// | |  | | (_) | (_| | |_| | |  __/\__ \ 
// |_|  |_|\___/ \__,_|\__,_|_|\___||___/ 
//                                        
//  
// by Stephan Raabe (2023) 
// ----------------------------------------------------- 
//
{
    // Workspaces
    "hyprland/workspaces" : {
        "on-click": "activate",
        "active-only": false,
        "all-outputs": true,
        "format": "{}",
        "format-icons": {
			"urgent": "",
			"active": "",
			"default": ""
        },
        "persistent-workspaces": {
             "*": 5
        }       
    },

    // Taskbar
    "wlr/taskbar": {
        "format": "{icon}",
        "icon-size": 18,
        "tooltip-format": "{title}",
        "on-click": "activate",
        "on-click-middle": "close",
        "ignore-list": [
           "Alacritty"
        ],
        "app_ids-mapping": {
            "firefoxdeveloperedition": "firefox-developer-edition"
        },
        "rewrite": {
            "Firefox Web Browser": "Firefox",
            "Foot Server": "Terminal"
        }
    },

    // Hyprland Window
    "hyprland/window": {
        "rewrite": {
            "(.*) - Brave": "$1",
            "(.*) - Chromium": "$1",
            "(.*) - Brave Search": "$1",
            "(.*) - Outlook": "$1",
            "(.*) Microsoft Teams": "$1"
        },
        "separate-outputs": true
    },

    // Cliphist
    "custom/cliphist": {
        "format": "",
        "on-click": "sleep 0.1 && ~/dotfiles/scripts/cliphist.sh",
        "on-click-right": "sleep 0.1 && ~/dotfiles/scripts/cliphist.sh d",
        "on-click-middle": "sleep 0.1 && ~/dotfiles/scripts/cliphist.sh w",
        "tooltip": false
    },

    // Updates Count
    "custom/updates": {
        "format": "  {}",
        "tooltip-format": "{}",
        "escape": true,
        "return-type": "json",       
        "exec": "~/dotfiles/scripts/updates.sh",
        "restart-interval": 60,
        "on-click": "alacritty -e ~/dotfiles/scripts/installupdates.sh",
        "tooltip": false
    },

    // Theme Starter Label
    "custom/starter": {
        "format": "THEME STARTER",
        "tooltip": false
    },
    
    // Wallpaper
    "custom/wallpaper": {
        "format": "",
        "on-click": "~/dotfiles/hypr/scripts/wallpaper.sh select",
        "on-click-right": "~/dotfiles/hypr/scripts/wallpaper.sh",
        "tooltip": false
    },

    // Waybar Themes
    "custom/waybarthemes": {
        "format": "",
        "on-click": "~/dotfiles/waybar/themeswitcher.sh",
        "tooltip": false
    },
    
    // Settings
    "custom/settings": {
        "format": "",
        "on-click": "~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage",
        "tooltip": false
    },

    // Keybindings
    "custom/keybindings": {
        "format": "",
        "on-click": "~/dotfiles/hypr/scripts/keybindings.sh",
        "tooltip": false
    },

    // Filemanager Launcher
    "custom/filemanager": {
        "format": "",
        "on-click": "thunar",
        "tooltip": false
    },

    // Browser Launcher
    "custom/browser": {
        "format": "",
        "on-click": "~/dotfiles/.settings/browser.sh",
        "tooltip": false
    },    

    // ML4W Welcome App
    "custom/ml4w-welcome": {
        "on-click": "~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage",
        "format": " ",
        "tooltip": false
    },

    // ChatGPT Launcher
    "custom/chatgpt": {
        "format": "",
        "on-click": "chromium --app=https://chat.openai.com",
        "tooltip": false
    },

    // Rofi Application Launcher
    "custom/appmenu": {
        "format": "Apps",
        "on-click": "rofi -show drun -replace",
        "on-click-right": "~/dotfiles/hypr/scripts/keybindings.sh",
        "tooltip": false
    },
    
    // Power Menu
    "custom/exit": {
        "format": "",
        "on-click": "wlogout",
        "tooltip": false
    },

    // Keyboard State
    "keyboard-state": {
        "numlock": true,
        "capslock": true,
        "format": "{name} {icon}",
        "format-icons": {
            "locked": "",
            "unlocked": ""
        }
    },

    // System tray
    "tray": {
        // "icon-size": 21,
        "spacing": 10
    },

    // Clock
    "clock": {
        // "timezone": "America/New_York",
        "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
        "format-alt": "{:%Y-%m-%d}"
    },

    // System
    "custom/system": {
        "format": "",
        "tooltip": false
    },

    // CPU
    "cpu": {
        "format": "/ C {usage}% ",
        "on-click": "alacritty -e htop"
    },

    // Memory
    "memory": {
        "format": "/ M {}% ",
        "on-click": "alacritty -e htop"
    },

    // Harddisc space used
    "disk": {
        "interval": 30,
        "format": "D {percentage_used}% ",
        "path": "/",
        "on-click": "alacritty -e htop"
    }, 

    "hyprland/language": {
        "format": "/ K {short}"
    },

    // Group Hardware
    "group/hardware": {
        "orientation": "inherit",
        "drawer": {
            "transition-duration": 300,
            "children-class": "not-memory",
            "transition-left-to-right": false
        },        
        "modules": [
            "custom/system",
            "disk",
            "cpu",
            "memory",
            "hyprland/language"
        ]
    },
    
    // Group Settings
    "group/settings": {
        "orientation": "inherit",
        "drawer": {
            "transition-duration": 300,
            "children-class": "not-memory",
            "transition-left-to-right": false
        },        
        "modules": [
            "custom/settings",
            "custom/waybarthemes",
            "custom/wallpaper"
        ]
    },

    // Group Quicklinks
    "group/quicklinks": {
        "orientation": "horizontal",
        "modules": [
            "custom/filemanager",
            "custom/browser"
         ]
    },

    // Network
    "network": {
        "format": "{ifname}",
        "format-wifi": "   {signalStrength}%",
        "format-ethernet": "  {ipaddr}",
        "format-disconnected": "Not connected", //An empty format will hide the module.
        "tooltip-format": " {ifname} via {gwaddri}",
        "tooltip-format-wifi": "   {essid} ({signalStrength}%)",
        "tooltip-format-ethernet": "  {ifname} ({ipaddr}/{cidr})",
        "tooltip-format-disconnected": "Disconnected",
        "max-length": 50,
        "on-click": "alacritty -e nmtui"
    },

    // Battery
    "battery": {
        "states": {
            // "good": 95,
            "warning": 30,
            "critical": 15
        },
        "format": "{icon}   {capacity}%",
        "format-charging": "  {capacity}%",
        "format-plugged": "  {capacity}%",
        "format-alt": "{icon}  {time}",
        // "format-good": "", // An empty format will hide the module
        // "format-full": "",
        "format-icons": [" ", " ", " ", " ", " "]
    },

    // Pulseaudio
    "pulseaudio": {
        // "scroll-step": 1, // %, can be a float
        "format": "{icon} {volume}%",
        "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"
    },

    // Bluetooth
    "bluetooth": {
        "format-disabled": "",
        "format-off": "",
        "interval": 30,
        "on-click": "blueman-manager",
        "format-no-controller": ""
    },

    // Other
    "user": {
        "format": "{user}",
        "interval": 60,
        "icon": false,
    },

    // Idle Inhibator
    "idle_inhibitor": {
        "format": "{icon}",
        "tooltip": true,
        "format-icons":{
            "activated": "",
            "deactivated": ""
        },
        "on-click-right": "hyprlock"        
    }
}
