diff --git a/config/alias b/config/alias index 033acc9..5d71ca2 100755 --- a/config/alias +++ b/config/alias @@ -33,6 +33,8 @@ alias .c='cd $HOME/Code' alias .d='cd $DOTFILES' alias .l='cd $HOME/.local' alias .o='cd $HOME/Code/ivuorinen/obsidian/' +alias .s='cd $HOME/Code/s' +alias .p='cd $HOME/Code/ivuorinen' # Shortcuts for listing alias ll="ls -la" diff --git a/config/exports b/config/exports index 711bbdb..709a0e4 100755 --- a/config/exports +++ b/config/exports @@ -14,6 +14,10 @@ # if DOTFILES is not set, set it to the default location [ -z "${DOTFILES:-}" ] && export DOTFILES="$HOME/.dotfiles" +# Editor settings +[ -z "${EDITOR:-}" ] && export EDITOR="nvim" +[ -z "${VISUAL:-}" ] && export VISUAL="code" + export PATH="$XDG_BIN_HOME:$DOTFILES/local/bin:$XDG_DATA_HOME/bob/nvim-bin:$XDG_DATA_HOME/cargo/bin:/opt/homebrew/bin:/usr/local/bin:$PATH" if ! command -v msg &> /dev/null; then @@ -304,7 +308,7 @@ export ANTIDOTE_PLUGINS="$XDG_CONFIG_HOME/zsh/antidote_plugins" # https://docs.ansible.com/ansible/latest/reference_appendices/config.html msg "Setting up Ansible configuration" export ANSIBLE_HOME="$XDG_CONFIG_HOME/ansible" -export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible.cfg" +export ANSIBLE_CONFIG="$ANSIBLE_HOME/ansible.cfg" export ANSIBLE_GALAXY_CACHE_DIR="$XDG_CACHE_HOME/ansible/galaxy_cache" x-dc "$ANSIBLE_HOME" x-dc "$ANSIBLE_GALAXY_CACHE_DIR" @@ -325,11 +329,30 @@ export AWS_CONFIGURE_OUTPUT=true export AWS_CONFIGURE_PROFILE=true export AWS_CONFIGURE_PROMPT=true export AWS_CONFIGURE_PROMPT_DEFAULT="default" +export AWS_SESSION_TOKEN="${XDG_STATE_HOME}/aws/session_token" +export AWS_CONFIGURE_SESSION=true +export AWS_CONFIGURE_SESSION_DURATION=7200 +export AWS_CONFIGURE_SESSION_MFA=true # bob manages nvim versions msg "Setting up bob configuration" x-path-prepend "$XDG_DATA_HOME/bob/nvim-bin" +# Mason (nvim package manager) +msg "Setting up Mason configuration" +export MASON_HOME="$XDG_DATA_HOME/nvim/mason" + +# Neovim environment variables +msg "Setting up Neovim configuration" +[ -z "${NVIM_STATE:-}" ] && export NVIM_STATE="$XDG_STATE_HOME/nvim" +[ -z "${NVIM_CONFIG_HOME:-}" ] && export NVIM_CONFIG_HOME="$XDG_CONFIG_HOME/nvim" +[ -z "${NVIM_DATA_HOME:-}" ] && export NVIM_DATA_HOME="$XDG_DATA_HOME/nvim" +[ -z "${NVIM_CACHE_HOME:-}" ] && export NVIM_CACHE_HOME="$XDG_CACHE_HOME/nvim" +[ -z "${NVIM_LOG_PATH:-}" ] && export NVIM_LOG_PATH="$NVIM_STATE/log" +[ -z "${NVIM_SESSION_PATH:-}" ] && export NVIM_SESSION_PATH="$NVIM_STATE/session" +[ -z "${NVIM_SHADA_PATH:-}" ] && export NVIM_SHADA_PATH="$NVIM_STATE/shada" +[ -z "${NVIM_UNDO_PATH:-}" ] && export NVIM_UNDO_PATH="$NVIM_STATE/undo" + # bkt (shell command caching tool) configuration msg "Setting up bkt configuration" export BKT_TTL=1m @@ -350,17 +373,38 @@ export COMPOSER_HOME="$XDG_STATE_HOME/composer" export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin" export PATH="$COMPOSER_BIN:$PATH" +# NVM/Node +msg "Setting up NVM configuration" +export NVM_DIR="$XDG_DATA_HOME/nvm" + +# Yarn +msg "Setting up Yarn configuration" +export YARN_GLOBAL_FOLDER="$XDG_DATA_HOME/yarn" + # docker, https://docs.docker.com/engine/reference/commandline/cli/ msg "Setting up Docker configuration" export DOCKER_CONFIG="${XDG_CONFIG_HOME}/docker" x-dc "$DOCKER_CONFIG" # Docker: Disable snyk ad export DOCKER_SCAN_SUGGEST=false +export DOCKER_HIDE_LEGACY_COMMANDS=true + +# direnv +msg "Setting up direnv configuration" +export DIRENV_LOG_FORMAT="" # fzf export FZF_BASE="${XDG_CONFIG_HOME}/fzf" export FZF_DEFAULT_OPTS='--height 40% --tmux bottom,40% --layout reverse --border top' +# FNM (Fast Node Manager) +msg "Setting up FNM configuration" +export FNM_DIR="$XDG_DATA_HOME/fnm" +export FNM_VERSION_FILE_STRATEGY="recursive" +export FNM_USE_ON_CD=true +export FNM_COREPACK_ENABLED=true +export FNM_RESOLVE_ENGINES=true + # GnuPG # https://gnupg.org/documentation/manuals/gnupg/Invoking-GPG.html msg "Setting up GnuPG configuration" @@ -395,7 +439,7 @@ export OP_CACHE="$XDG_STATE_HOME/1password" # pyenv, python environments msg "Setting up Python configuration" export WORKON_HOME="$XDG_DATA_HOME/virtualenvs" -export PYENV_ROOT="$XDG_STATE_HOME/pyenv" +export PYENV_ROOT="$XDG_DATA_HOME/pyenv" ## for MichaelAquilina/zsh-autoswitch-virtualenv export AUTOSWITCH_VIRTUAL_ENV_DIR="$WORKON_HOME" export PATH="$PYENV_ROOT/bin:$PYENV_ROOT/shims:$PATH" @@ -404,7 +448,14 @@ x-have pyenv && eval "$(pyenv init -)" # Rust / cargo msg "Setting up Rust/Cargo configuration" -export RUST_WITHOUT=rust-docs +export CARGO_HOME="$XDG_DATA_HOME/cargo" +export CARGO_BIN_HOME="$XDG_BIN_HOME" +export RUSTUP_HOME="$XDG_DATA_HOME/rustup" +export RUST_WITHOUT="clippy,docs,rls" + +# Poetry +msg "Setting up Poetry configuration" +export POETRY_HOME="$XDG_DATA_HOME/poetry" # sonarlint # https://www.sonarlint.org/ @@ -433,6 +484,10 @@ export ZSH_TMUX_UNICODE=true export ZSH_TMUX_AUTOQUIT=false export ZSH_TMUX_DEFAULT_SESSION_NAME=main +# tms (tmux session manager) +msg "Setting up tms configuration" +export TMS_CONFIG_FILE="$XDG_CONFIG_HOME/tms/config.toml" + # wakatime, https://github.com/wakatime/wakatime-cli msg "Setting up Wakatime configuration" export WAKATIME_HOME="$XDG_STATE_HOME/wakatime" @@ -442,12 +497,31 @@ x-dc "$WAKATIME_HOME" msg "Setting up LM Studio configuration" export PATH="$PATH:$HOME/.lmstudio/bin" +# Screen +msg "Setting up screen configuration" +export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc" + +# Zoxide +msg "Setting up Zoxide configuration" +export _ZO_DATA_DIR="$XDG_DATA_HOME/zoxide" +export _ZO_EXCLUDE_DIRS="$XDG_DATA_HOME" + # Misc msg "Setting up miscellaneous configuration" export ZSHZ_DATA="$XDG_STATE_HOME/z" export CHEAT_USE_FZF=true export SQLITE_HISTORY="${XDG_CACHE_HOME}/sqlite_history" +# Additional PATH entries (aligned with fish config) +[ -d "$XDG_DATA_HOME/mise/shims" ] && export PATH="$XDG_DATA_HOME/mise/shims:$PATH" +[ -d "$NVM_DIR/bin" ] && export PATH="$NVM_DIR/bin:$PATH" +[ -d "$YARN_GLOBAL_FOLDER/bin" ] && export PATH="$YARN_GLOBAL_FOLDER/bin:$PATH" +[ -d "$MASON_HOME/bin" ] && export PATH="$MASON_HOME/bin:$PATH" +[ -d "$HOME/.dotnet/tools" ] && export PATH="$HOME/.dotnet/tools:$PATH" +[ -d "$FNM_DIR" ] && export PATH="$FNM_DIR:$PATH" +[ -d "$POETRY_HOME/bin" ] && export PATH="$POETRY_HOME/bin:$PATH" +[ -d "$HOME/.opencode/bin" ] && export PATH="$HOME/.opencode/bin:$PATH" + if [ -f "$XDG_CONFIG_HOME/exports-secret" ]; then source "$XDG_CONFIG_HOME/exports-secret"; fi if [ -f "$XDG_CONFIG_HOME/exports-local" ]; then source "$XDG_CONFIG_HOME/exports-local"; fi # shellcheck source=./exports-lakka diff --git a/config/fish/alias.fish b/config/fish/alias.fish index 8f99e51..0047dc7 100644 --- a/config/fish/alias.fish +++ b/config/fish/alias.fish @@ -1,6 +1,7 @@ # Set aliases for fish shell -alias vim='vim -u "$XDG_CONFIG_HOME/vim/vimrc"' +alias vim='nvim' +alias vi='nvim' # eza aliases if eza is installed if type -q eza >/dev/null @@ -92,5 +93,40 @@ function configure_tide \ --transient=Yes end +# Navigation aliases +abbr --add .. 'cd ..' +abbr --add ... 'cd ../..' +abbr --add .... 'cd ../../..' + +# Interesting folders +function .b --wraps='cd $XDG_BIN_HOME' --description 'cd $XDG_BIN_HOME' + cd $XDG_BIN_HOME $argv +end + +function .l --wraps='cd ~/.local' --description 'cd ~/.local' + cd ~/.local $argv +end + +function .o --wraps='cd ~/Code/ivuorinen/obsidian/' --description 'cd ~/Code/ivuorinen/obsidian/' + cd ~/Code/ivuorinen/obsidian/ $argv +end + +# cd to git root directory +function cdgr --description 'cd to git root' + if git rev-parse --is-inside-work-tree &>/dev/null + cd (git rev-parse --show-toplevel) + else + echo >&2 "Not in a git repository" + end +end + +# Colored grep +abbr --add grep 'grep --color' + +# Date helpers +alias isodate="date +'%Y-%m-%d'" +alias x-datetime="date +'%Y-%m-%d %H:%M:%S'" +alias x-timestamp="date +'%s'" + # Random abbreviations abbr --add stats onefetch --nerd-fonts --true-color never diff --git a/config/fish/exports.fish b/config/fish/exports.fish index fb9abc2..61146e8 100644 --- a/config/fish/exports.fish +++ b/config/fish/exports.fish @@ -61,11 +61,14 @@ set -q AWS_CONFIG_FILE; or set -x AWS_CONFIG_FILE "$XDG_STATE_HOME/aws/config" set -q AWS_SHARED_CREDENTIALS_FILE; or set -x AWS_SHARED_CREDENTIALS_FILE "$XDG_STATE_HOME/aws/credentials" set -q AWS_SESSION_TOKEN; or set -x AWS_SESSION_TOKEN "$XDG_STATE_HOME/aws/session_token" set -q AWS_DATA_PATH; or set -x AWS_DATA_PATH "$XDG_DATA_HOME/aws" +set -q AWS_DEFAULT_REGION; or set -x AWS_DEFAULT_REGION eu-west-1 set -q AWS_DEFAULT_OUTPUT; or set -x AWS_DEFAULT_OUTPUT table set -q AWS_CONFIGURE_KEYS; or set -x AWS_CONFIGURE_KEYS true set -q AWS_CONFIGURE_SESSION; or set -x AWS_CONFIGURE_SESSION true set -q AWS_CONFIGURE_SESSION_DURATION; or set -x AWS_CONFIGURE_SESSION_DURATION 7200 set -q AWS_CONFIGURE_SESSION_MFA; or set -x AWS_CONFIGURE_SESSION_MFA true +set -q AWS_CONFIGURE_REGION; or set -x AWS_CONFIGURE_REGION true +set -q AWS_CONFIGURE_OUTPUT; or set -x AWS_CONFIGURE_OUTPUT true set -q AWS_CONFIGURE_PROFILE; or set -x AWS_CONFIGURE_PROFILE true set -q AWS_CONFIGURE_PROMPT; or set -x AWS_CONFIGURE_PROMPT true set -q AWS_CONFIGURE_PROMPT_DEFAULT; or set -x AWS_CONFIGURE_PROMPT_DEFAULT true @@ -107,7 +110,7 @@ set -q FZF_DEFAULT_OPTS; or set -x FZF_DEFAULT_OPTS \ set -q GNUPGHOME; or set -x GNUPGHOME "$XDG_DATA_HOME/gnupg" # Go configuration -# set -q GOPATH; or set -x GOPATH "$XDG_DATA_HOME/go" +set -q GOPATH; or set -x GOPATH "$XDG_DATA_HOME/go" set -q GOBIN; or set -x GOBIN "$XDG_BIN_HOME" set -q GOENV_ROOT; or set -x GOENV_ROOT "$XDG_DATA_HOME/goenv" @@ -169,6 +172,15 @@ x-dc "$WAKATIME_HOME" set -q _ZO_DATA_DIR; or set -x _ZO_DATA_DIR "$XDG_DATA_HOME/zoxide" set -q _ZO_EXCLUDE_DIRS; or set -x _ZO_EXCLUDE_DIRS "$XDG_DATA_HOME" +# bkt (shell command caching tool) configuration +set -q BKT_TTL; or set -x BKT_TTL 1m + +# Manpager +set -q MANPAGER; or set -x MANPAGER "less -X" + +# Lando +fish_add_path "$HOME/.lando/bin" + # Miscellaneous configuration set -q CHEAT_USE_FZF; or set -x CHEAT_USE_FZF true set -q SQLITE_HISTORY; or set -x SQLITE_HISTORY "$XDG_CACHE_HOME/sqlite/sqlite_history"