# cursor shapes
set -g fish_cursor_default block
set -g fish_cursor_insert line
set -g fish_cursor_replace_one underscore
set -g fish_cursor_visual block
set -g fish_vi_force_cursor

# XDG thingy
set -gx XDG_BIN_HOME $HOME/.local/bin
set -gx XDG_CONFIG_HOME $HOME/.config
set -gx XDG_CACHE_HOME $HOME/.cache
set -gx XDG_DATA_HOME $HOME/.local/share

# Respect defined XDG specs
set -gx XCURSOR_PATH $HOME/.local/share/icons
set -gx TERMINFO $XDG_DATA_HOME/terminfo
set -gx TERMINFO_DIRS $XDG_DATA_HOME/terminfo:/usr/share/terminfo
set -gx LESSHISTFILE -
set -gx MOST_INITFILE $XDG_CONFIG_HOME/mostrc
set -gx GOPATH $XDG_DATA_HOME/go
set -gx GRADLE_USER_HOME $XDG_DATA_HOME/gradle
set -gx _JAVA_OPTIONS -Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java
set -gx NODE_REPL_HISTORY $XDG_CACHE_HOME/node_repl_history
set -gx NPM_CONFIG_USERCONFIG $XDG_CONFIG_HOME/npm/npmrc
set -gx NPM_CONFIG_PREFIX $XDG_DATA_HOME/npm-global
set -gx CARGO_HOME $XDG_DATA_HOME/cargo
set -gx RUSTUP_HOME $XDG_DATA_HOME/rustup
set -gx BUNDLE_USER_CONFIG $XDG_CONFIG_HOME/bundle
set -gx BUNDLE_USER_CACHE $XDG_CACHE_HOME/bundle
set -gx BUNDLE_USER_PLUGIN $XDG_DATA_HOME/bundle
set -gx GEM_HOME $XDG_DATA_HOME/gem
set -gx GEM_SPEC_CACHE $XDG_CACHE_HOME/gem
set -gx DOCKER_CONFIG $XDG_CONFIG_HOME/docker
set -gx GNUPGHOME $XDG_DATA_HOME/gnupg
set -gx IPYTHONDIR $XDG_CONFIG_HOME/ipython
set -gx JUPYTER_CONFIG_DIR $XDG_CONFIG_HOME/jupyter
set -gx WGETRC $XDG_CONFIG_HOME/wget/wgetrc
set -gx RIPGREP_CONFIG_PATH $XDG_CONFIG_HOME/ripgrep/config
set -gx GHCUP_USE_XDG_DIRS true
set -gx STACK_ROOT $XDG_DATA_HOME/stack
set -gx SQLITE_HISTORY $XDG_DATA_HOME/sqlite/history
set -gx TS_NODE_HISTORY $XDG_DATA_HOME/ts-node/history
set -gx WINEPREFIX $XDG_DATA_HOME/wine/pfx/default
set -gx PYENV_ROOT $XDG_DATA_HOME/pyenv
set -gx MANPATH :$XDG_DATA_HOME/man

# common envs
set -gx VISUAL nvim
set -gx EDITOR $VISUAL
set -gx LESS "-R"
set -gx PAGER less
set -gx MANPAGER "less -R --use-color -Dd+b -Du+g -DS+kc"

# Rust: don't build openssl-sys
set -gx OPENSSL_NO_VENDOR 1

# don't ping proxy.golang.org all the time
set -gx GOPROXY direct

# Microsoft is cancer
set -gx DOTNET_CLI_TELEMETRY_OPTOUT 1

# we build Vagrant ourselves
set -gx VAGRANT_I_KNOW_WHAT_IM_DOING_PLEASE_BE_QUIET true

# puppeteer (for mermaid-cli)
set -gx PUPPETEER_EXECUTABLE_PATH '/usr/bin/chromium-browser'
set -gx PUPPETEER_SKIP_CHROMIUM_DOWNLOAD 'true'

# qt5ct
set -gx QT_QPA_PLATFORMTHEME qt5ct
set -gx QT_PLATFORM_PLUGIN qt5ct

# fzf
{% if theme == 'nord' %}
set -gx FZF_DEFAULT_OPTS "--multi --layout=reverse --inline-info
--color fg:-1,bg:-1,hl:{{ green }},fg+:{{ white1 }},bg+:{{ grey2 }},hl+:{{ green }}
--color pointer:{{ red }},info:{{ grey3 }},spinner:{{ grey3 }},header:{{ grey3 }},prompt:{{ blue }},marker:{{ yellow }}"
{% elif theme == 'onedark' %}
set -gx FZF_DEFAULT_OPTS "--multi --layout=reverse --inline-info
--color fg:-1,bg:-1,hl:{{ purple }},fg+:{{ white1 }},bg+:{{ grey2 }},hl+:{{ purple }}
--color info:{{ green }},prompt:{{ blue }},pointer:{{ red }},marker:{{ yellow }},spinner:{{ blue }},header:{{ blue }}"
{% endif %}
set -gx FZF_DEFAULT_COMMAND "fd --type f --follow --hidden --exclude .git --color never"
set -gx FZF_CTRL_T_OPTS "--no-height --preview '$HOME/.local/libexec/preview {} 2>/dev/null'"
set -gx FZF_CTRL_T_COMMAND "fd . \$dir --follow --hidden --exclude .git --color never"
set -gx FZF_ALT_C_OPTS "--preview 'exa -1a --sort=type --color always --icons {} 2>/dev/null'"
set -gx FZF_ALT_C_COMMAND "fd --type d --follow --hidden --exclude .git --color never"
# set -gx FZF_TMUX 1

# zoxide
set -gx _ZO_DATA_DIR $XDG_DATA_HOME/zoxide
set -gx _ZO_ECHO 1
set -gx _ZO_FZF_OPTS "$FZF_DEFAULT_OPTS --no-multi"
set -gx _ZO_RESOLVE_SYMLINKS 1

# forgit
set -gx FORGIT_COPY_CMD wl-copy
{% if dropbear_ssh_client %}

# use dbclient for rsync
set -gx RSYNC_RSH "dbclient -y"
{% endif %}
