set fish_greeting ""

function filesize
	for file in $argv
		if [ -f "$file" ]
			echo "$file: $(stat -c %s "$file" | numfmt --to=iec)"
		else
			echo "$file: not found"
		end
	end
end

function _fetch
  if which ufetch > /dev/null 2>&1 && [ "$VSCODE_INJECTION" != "1" ]
    ufetch
  end
end

function _set_env
    if [ "$TERM" = "foot" ] || [ "$TERM" = "xterm-kitty" ]
	    alias ssh="TERM=xterm-256color $(which ssh)"
	    alias gg="TERM=xterm-256color $(which gg)"
    end
    set -x VIRTUAL_ENV_DISABLE_PROMPT
    set -x PF_INFO "ascii title os host kernel uptime memory de"
    set -x FZF_DEFAULT_OPTS "\
        --color=bg+:#1e1e2e,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
        --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
        --color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 \
        --color=selected-bg:#45475a \
        --multi"
end

function _set_aliases
    if which eza > /dev/null 2>&1
        alias ls="eza --icons=auto"
    else if which exa > /dev/null 2>&1
    alias ls="exa --icons=auto"
    end

    if which bat > /dev/null 2>&1
    alias cat="bat"
    else if which batcat > /dev/null 2>&1
        alias cat="batcat"
    end

    if which python > /dev/null 2>&1
        alias py="python"
    end

    if which distrobox-enter > /dev/null 2>&1
        alias denter=distrobox-enter
    end

    if which nvim > /dev/null 2>&1
        alias v "nvim"
        alias V "sudoedit"
        set -x EDITOR nvim
    end

    alias cdt "cd (mktemp -d)"
    alias ":q" exit
end

function arm64cc-env
    set -gx ARCH arm64
    set -gx hardeningDisable all
    set -gx CROSS_COMPILE aarch64-linux-gnu-
end

if which pyenv > /dev/null 2>&1
	pyenv init - | source
end

if status is-interactive
    bind \cl 'clear; _fetch; commandline -f repaint'
    bind \cb btop
    bind \cs 'source ~/.config/fish/config.fish'

    if which zoxide > /dev/null 2>&1
        zoxide init --cmd cd fish | source
    end 
    
    if [ "$reload" = "" ]
        _fetch
    end

    set reload "done"
    _set_aliases
end
_set_env