{ pkgs }:
pkgs.writeShellApplication {
  name = "toolbelt";
  runtimeInputs = with pkgs; [
    cliphist
    fzf
    ripgrep
    gawk
    wl-clipboard
    hyprland
    alsa-utils
    btop
    coreutils
  ];
  text = ''
    cliphistory() {
      selection=$(cliphist list | fzf --preview="
        index=\$(echo {} | awk '{print \$1}'); \
        mime=\$(cliphist decode \$index | file -i -); \
        if echo \"\$mime\" | grep -q 'image'; then \
            echo \$(cliphist list | rg \"^\$index\" | cut -d ' ' -f 2- | fmt -w 30); \
        else \
            cliphist decode \"\$index\" | fmt -w 30; \
        fi" --prompt="> " | awk '{print $1}')
      [ -z "$selection" ] && return 1
      cliphist decode "$selection" | wl-copy
    }
    btop_cmd() {

      if [ "$(cat /etc/hostname)" = "oganesson" ]; then
        hyprctl dispatch resizeactive 20% 155% &&
        moveonscreen --center &&
        btop &&
        hyprctl dispatch resizeactive exact 40% 25% &&
        moveonscreen
      else
        hyprctl dispatch resizeactive exact 60% 68% &&
        moveonscreen --center &&
        btop &&
        hyprctl dispatch resizeactive exact 40% 25% &&
        moveonscreen
      fi
    }

    running=true

    declare -A commands=(
        ["Change Wallpaper"]="moveonscreen --center && if chpaper; then running=false; else moveonscreen; fi"
        ["Change System Color Scheme"]="hyprctl dispatch resizeactive 10% 80% && moveonscreen --center && if chscheme; then running=false; else hyprctl dispatch resizeactive exact 40% 25% && moveonscreen; fi"
        ["Open System Monitor"]="btop_cmd"
        ["Open Volume Controls"]="hyprctl dispatch resizeactive 10% 80% && moveonscreen --center && alsamixer && hyprctl dispatch resizeactive exact 40% 25% && moveonscreen"
        ["Open Keyring"]="hyprctl dispatch resizeactive -300 0 && moveonscreen && if keyring; then running=false; else hyprctl dispatch resizeactive exact 40% 25% && moveonscreen; fi"
        ["View Clipboard History"]="hyprctl dispatch resizeactive 45% 120% && moveonscreen --center && if cliphistory;then running=false; else hyprctl dispatch resizeactive exact 40% 25% && moveonscreen; fi"
    )

    ordered_commands=(
        "Open Keyring"
        "Open System Monitor"
        "Open Volume Controls"
        "Change Wallpaper"
        "Change System Color Scheme"
        "View Clipboard History"
    )

    # Use fzf to select a command with preview
    while $running; do
    selected_command=$(printf "%s\n" "''${ordered_commands[@]}" | fzf --preview="
    cleaned_key=\$(echo {} | tr -d \"'\"); \
    echo \"Cleaned key: \$cleaned_key\"; \
    declare -A descriptions=(
        [\"Change Wallpaper\"]=\"Choose a wallpaper to switch to from the assets/wallpapers folder in the system flake directory. Requires rebuilding the system and restarting hyprpaper.\"
        [\"Change System Color Scheme\"]=\"Changes the base16 color scheme used by stylix to color system applications.\"
        [\"Open System Monitor\"]=\"Opens a btop window.\"
        [\"Open Volume Controls\"]=\"Opens alsamixer.\"
        [\"Open Keyring\"]=\"Opens a fuzzy finder with all of the paths held in ~/.password-store. Selecting one uses pass to copy that password to the clipboard. Password is cleared from clipboard after 45 seconds, and isn't saved to clipboard history.\"
        [\"View Clipboard History\"]=\"Opens clipboard history. Selecting an item copies it to the clipboard.\"
    ); \
    if [[ -v descriptions[\$cleaned_key] ]]; then \
        clear; \
        echo \''${descriptions[\$cleaned_key]} | fmt -w 28; \
    else \
        clear; \
        echo \"No description available\"; \
    fi" --prompt="> ")


     #Execute the selected command if selection is not empty
      if [[ -n $selected_command ]]; then
        eval "''${commands[$selected_command]}"
      else
        running=false
      fi
    done
  '';
}
