Adding base fish config

This commit is contained in:
Tanguy Gérôme 2025-03-04 16:17:12 +02:00
parent 1edde7b21b
commit cf3767833f
2 changed files with 103 additions and 0 deletions

57
.config/fish/config.fish Normal file
View file

@ -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

View file

@ -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