From cf3767833f835bb8eff86266dd46863f09c7a82c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20G=C3=A9r=C3=B4me?= Date: Tue, 4 Mar 2025 16:17:12 +0200 Subject: [PATCH] Adding base fish config --- .config/fish/config.fish | 57 +++++++++++++++++++++++++ .config/fish/functions/fish_prompt.fish | 46 ++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 .config/fish/config.fish create mode 100644 .config/fish/functions/fish_prompt.fish diff --git a/.config/fish/config.fish b/.config/fish/config.fish new file mode 100644 index 0000000..aad61e7 --- /dev/null +++ b/.config/fish/config.fish @@ -0,0 +1,57 @@ +if status is-interactive + # Commands to run in interactive sessions can go here + + function fish_user_key_bindings + # Execute this once per mode that emacs bindings should be used in + fish_default_key_bindings -M insert + + # Then execute the vi-bindings so they take precedence when there's a conflict. + # Without --no-erase fish_vi_key_bindings will default to + # resetting all bindings. + # The argument specifies the initial mode (insert, "default" or visual). + fish_vi_key_bindings --no-erase insert + end + + function fish_greeting + fastfetch + end + + + # export NVM_DIR="$HOME/.nvm" + # [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm + # [ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && . "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion + + export PATH="$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin" + + export PATH="$PATH:/Users/kapnoc/pkg/flutter/bin" + + export EDITOR='nvim' + export PAGER='less -R' + + # common use aliases + alias ..='cd ..' + alias cl='clear' + alias ll='ls -l' + alias la='ls -la' + alias ne='emacs -nw' + alias vv='nvim' + alias vimr='/Applications/VimR.app/Contents/Resources/vimr' + alias aled="startx -- vt1" + + # git aliases + alias ga='git add' + alias gc='git checkout' + alias gco='git commit' + alias gd='git diff' + alias gl='git log' + alias gpl='git pull' + alias gps='git push' + alias gs='git status' + + # less used aliases + # wttr() + # { + # curl -H "Accept-Language: ${LANG%_*}" wttr.in/"${1:-Helsinki}" + # } + +end diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..1669703 --- /dev/null +++ b/.config/fish/functions/fish_prompt.fish @@ -0,0 +1,46 @@ +# name: RobbyRussel +# +# You can override some default options in your config.fish: +# set -g theme_display_git_untracked no + +function _git_branch_name + echo (command git symbolic-ref HEAD 2> /dev/null | sed -e 's|^refs/heads/||') +end + +function _is_git_dirty + set -l show_untracked (git config --bool bash.showUntrackedFiles) + set -l untracked + if [ "$theme_display_git_untracked" = 'no' -o "$show_untracked" = 'false' ] + set untracked '--untracked-files=no' + end + echo (command git status -s --ignore-submodules=dirty $untracked 2> /dev/null) +end + +function fish_prompt + set -l last_status $status + set -l cyan (set_color -o cyan) + set -l yellow (set_color -o yellow) + set -l red (set_color -o red) + set -l blue (set_color -o blue) + set -l green (set_color -o green) + set -l normal (set_color normal) + + if test $last_status = 0 + set arrow "$green➜ " + else + set arrow "$red➜ " + end + set -l cwd $cyan(basename (prompt_pwd)) + + if [ (_git_branch_name) ] + set -l git_branch $red(_git_branch_name) + set git_info "$blue git:($git_branch$blue)" + + if [ (_is_git_dirty) ] + set -l dirty "$yellow ✗" + set git_info "$git_info$dirty" + end + end + + echo -n -s $arrow ' ' $cwd $git_info $normal ' ' +end