67 lines
2.3 KiB
Django/Jinja
67 lines
2.3 KiB
Django/Jinja
# {{ ansible_managed }}
|
|
# Fish shell configuration — deployed by cli_modern role
|
|
|
|
if status is-interactive
|
|
|
|
# ── Prompt ──────────────────────────────────────────────
|
|
{% if cli_modern_install_starship %}
|
|
starship init fish | source
|
|
{% endif %}
|
|
|
|
# ── Navigation ──────────────────────────────────────────
|
|
{% if cli_modern_install_zoxide %}
|
|
zoxide init fish | source
|
|
{% endif %}
|
|
|
|
{% if cli_modern_install_fzf %}
|
|
# fzf.fish plugin handles keybindings (Ctrl+R history, Ctrl+F files)
|
|
# Set fzf default options
|
|
set -gx FZF_DEFAULT_OPTS "--height 40% --layout=reverse --border --info=inline"
|
|
{% endif %}
|
|
|
|
# ── Aliases ─────────────────────────────────────────────
|
|
{% if cli_modern_install_eza %}
|
|
alias ls "eza --icons --group-directories-first"
|
|
alias ll "eza -la --icons --group-directories-first --git"
|
|
alias lt "eza --tree --level=2 --icons"
|
|
{% endif %}
|
|
|
|
{% if cli_modern_install_bat %}
|
|
alias cat "bat --paging=never"
|
|
alias catp "bat"
|
|
{% endif %}
|
|
|
|
# Git shortcuts
|
|
alias gs "git status"
|
|
alias gd "git diff"
|
|
alias gl "git log --oneline -20"
|
|
alias gp "git pull"
|
|
|
|
# Docker shortcuts
|
|
alias dc "docker compose"
|
|
alias dps "docker ps --format 'table {{ '{{' }}.Names{{ '}}' }}\t{{ '{{' }}.Status{{ '}}' }}\t{{ '{{' }}.Ports{{ '}}' }}'"
|
|
alias dlogs "docker compose logs -f"
|
|
|
|
# Safety nets
|
|
alias rm "rm -i"
|
|
alias mv "mv -i"
|
|
alias cp "cp -i"
|
|
|
|
# ── Environment ─────────────────────────────────────────
|
|
set -gx EDITOR vim
|
|
set -gx VISUAL vim
|
|
|
|
# Suppress Fish greeting
|
|
set -g fish_greeting
|
|
|
|
{% if cli_modern_install_fastfetch %}
|
|
# ── System Info ─────────────────────────────────────────
|
|
# Show machine identity on first shell in a login session.
|
|
# Skips nested shells and non-login to keep things snappy.
|
|
if status is-login
|
|
fastfetch
|
|
end
|
|
{% endif %}
|
|
|
|
end
|