Changelog
A nice guide on ArchWiki. A configuration for Bash:
# Drop in to fish shell if: # 1. Parent shell is not fish # 2. Not executing a bash command, e.g. 'bash -c' if [[ $(ps --no-header --pid=$PPID --format=comm) != "fish" && -z ${BASH_EXECUTION_STRING} && ${SHLVL} == 1 ]] then shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION='' exec fish $LOGIN_OPTION fi
Commentary on the fish shell by Julia initially, more recently, and on modern terminal setups.
A checklist for new users (like me) to configure Fish:
fish_config to configure via a web browser.Also apparently dotfiles are a thing: https://dotfiles.github.io/
Also Bass might be interesting: https://github.com/edc/bass
set -U fish_greeting
.bashrc checks whether to activate the Fish shell, or on the client side VSCode set remote.SSH.useLocalServer = false in the workspace configuration. webbrowser.open line in /usr/share/fish/tools/web_config/webconfig.py.$PWD for (prompt_pwd)function fish_prompt --description 'Informative prompt'
#Save the return status of the previous command
set -l last_pipestatus $pipestatus
set -lx __fish_last_status $status # Export for __fish_print_pipestatus.
if functions -q fish_is_root_user; and fish_is_root_user
printf '%s@%s %s%s%s# ' $USER (prompt_hostname) (set -q fish_color_cwd_root
and set_color $fish_color_cwd_root
or set_color $fish_color_cwd) \
(prompt_pwd) (set_color normal)
else
set -l status_color (set_color $fish_color_status)
set -l statusb_color (set_color --bold $fish_color_status)
#set -l pipestatus_string (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus)
printf '[%s] %s%s@%s %s%s %s \n> ' \
(date "+%H:%M:%S") \
(set_color brred) $USER (prompt_hostname) \
(set_color $fish_color_cwd) (prompt_pwd) \
(set_color normal)
end
end
To start ssh-agent, eval (ssh-agent).