Last active
August 13, 2026 18:22
-
-
Save itachi-re/c675cf210c9deb12ee10e6d822beaaf7 to your computer and use it in GitHub Desktop.
fedora customization
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # ══════════════════════════════════════════════════════════════════ | |
| # ~/.zshrc — Itachi's Enhanced Zsh Configuration | |
| # ══════════════════════════════════════════════════════════════════ | |
| # ── Pywal colors (load first, before anything draws to terminal) ── | |
| [ -f "$HOME/.cache/wal/sequences" ] && cat "$HOME/.cache/wal/sequences" | |
| # ── Fastfetch (graphical sessions only) ────────────────────────── | |
| if [[ -n $DISPLAY || -n $WAYLAND_DISPLAY ]]; then | |
| fastfetch | |
| fi | |
| # ══════════════════════════════════════════════════════════════════ | |
| # HISTORY | |
| # ══════════════════════════════════════════════════════════════════ | |
| HISTFILE="$HOME/.zsh_history" | |
| HISTSIZE=50000 | |
| SAVEHIST=50000 | |
| setopt HIST_IGNORE_DUPS # Don't record duplicate consecutive commands | |
| setopt HIST_IGNORE_ALL_DUPS # Remove older duplicate entries from history | |
| setopt HIST_IGNORE_SPACE # Don't record commands starting with a space | |
| setopt HIST_SAVE_NO_DUPS # Don't write duplicates to history file | |
| setopt HIST_REDUCE_BLANKS # Remove superfluous blanks | |
| setopt HIST_VERIFY # Show expanded history before executing | |
| setopt SHARE_HISTORY # Share history between all zsh sessions | |
| setopt EXTENDED_HISTORY # Save timestamp and duration with each command | |
| setopt INC_APPEND_HISTORY # Write to history file immediately | |
| # ══════════════════════════════════════════════════════════════════ | |
| # ZSH OPTIONS | |
| # ══════════════════════════════════════════════════════════════════ | |
| setopt AUTO_CD # cd by typing directory name | |
| setopt AUTO_PUSHD # Push old directory onto stack on cd | |
| setopt PUSHD_IGNORE_DUPS # Don't push duplicates onto stack | |
| setopt PUSHD_SILENT # Don't print stack after pushd/popd | |
| setopt CORRECT # Suggest corrections for mistyped commands | |
| setopt INTERACTIVE_COMMENTS # Allow # comments in interactive shell | |
| setopt GLOB_DOTS # Include dotfiles in glob patterns | |
| setopt EXTENDED_GLOB # Extended glob patterns | |
| setopt NO_CASE_GLOB # Case-insensitive globbing | |
| setopt NUMERIC_GLOB_SORT # Sort numeric filenames numerically | |
| setopt RM_STAR_WAIT # Wait before rm * | |
| setopt NO_BEEP # Silence all bells | |
| # ══════════════════════════════════════════════════════════════════ | |
| # COMPLETION | |
| # ══════════════════════════════════════════════════════════════════ | |
| autoload -Uz compinit | |
| # Only rebuild compdump once a day for faster startup | |
| if [[ -n "$HOME/.zcompdump"(#qN.mh+24) ]]; then | |
| compinit | |
| else | |
| compinit -C | |
| fi | |
| # Completion styling | |
| zstyle ':completion:*' menu select # Arrow-key menu | |
| zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' # Case-insensitive matching | |
| zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colorize completions | |
| zstyle ':completion:*' group-name '' # Group completions by category | |
| zstyle ':completion:*:descriptions' format '%F{yellow}-- %d --%f' | |
| zstyle ':completion:*:warnings' format '%F{red}No matches: %d%f' | |
| zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' | |
| zstyle ':completion:*' use-cache on | |
| zstyle ':completion:*' cache-path "$HOME/.zsh/cache" | |
| zstyle ':completion:*' rehash true # Auto-find new executables | |
| zstyle ':completion::complete:*' gain-privileges 1 # Complete sudo commands | |
| # Enable shift-tab to go backwards in menu | |
| zmodload zsh/complist | |
| bindkey -M menuselect '^[[Z' reverse-menu-complete | |
| # ══════════════════════════════════════════════════════════════════ | |
| # KEY BINDINGS | |
| # ══════════════════════════════════════════════════════════════════ | |
| bindkey -e # Emacs keybindings (default) | |
| # Navigation | |
| bindkey '^[[1;5C' forward-word # Ctrl+Right: move forward one word | |
| bindkey '^[[1;5D' backward-word # Ctrl+Left: move backward one word | |
| bindkey '^[[H' beginning-of-line # Home key | |
| bindkey '^[[F' end-of-line # End key | |
| bindkey '^[[3~' delete-char # Delete key | |
| # History search | |
| bindkey '^[[A' history-substring-search-up # Up arrow: history search up | |
| bindkey '^[[B' history-substring-search-down # Down arrow: history search down | |
| bindkey '^R' history-incremental-search-backward | |
| # Accept autosuggestion with Ctrl+Space or Right arrow at end of line | |
| bindkey '^ ' autosuggest-accept | |
| bindkey '^[[C' forward-char | |
| # ══════════════════════════════════════════════════════════════════ | |
| # PATH — single unified declaration | |
| # ══════════════════════════════════════════════════════════════════ | |
| export ANDROID_HOME="$HOME/Android/Sdk" # adjust if your SDK lives elsewhere | |
| typeset -U path # Deduplicate PATH entries automatically | |
| path=( | |
| $HOME/.opencode/bin | |
| $HOME/.local/share/pnpm | |
| $HOME/Scripts | |
| $ANDROID_HOME/platform-tools | |
| $ANDROID_HOME/tools | |
| /usr/sbin | |
| /sbin | |
| $path | |
| ) | |
| export PATH | |
| # ══════════════════════════════════════════════════════════════════ | |
| # ENVIRONMENT | |
| # ══════════════════════════════════════════════════════════════════ | |
| export EDITOR='nvim' | |
| export VISUAL='nvim' | |
| export PAGER='less' | |
| export LESS='-R --mouse --wheel-lines=3' | |
| export MANPAGER='nvim +Man!' # Use nvim as man pager | |
| export STARSHIP_CONFIG="$HOME/.config/starship.toml" | |
| # NVM | |
| export NVM_DIR="$HOME/.nvm" | |
| [ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh" | |
| [ -s "$NVM_DIR/bash_completion" ] && source "$NVM_DIR/bash_completion" | |
| # PNPM home (already in path above) | |
| export PNPM_HOME="$HOME/.local/share/pnpm" | |
| # ══════════════════════════════════════════════════════════════════ | |
| # PLUGINS | |
| # ══════════════════════════════════════════════════════════════════ | |
| # ── 1. Syntax Highlighting (must be sourced before autosuggestions) ── | |
| # Prefer local clone (avoids broken system package missing .version/.revision-hash) | |
| if [[ -f ~/.zsh_plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]]; then | |
| source ~/.zsh_plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh | |
| elif [[ -f /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]]; then | |
| source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh | |
| fi | |
| # ── 2. Autosuggestions ──────────────────────────────────────────── | |
| if [[ -f ~/.zsh_plugins/zsh-autosuggestions/zsh-autosuggestions.zsh ]]; then | |
| source ~/.zsh_plugins/zsh-autosuggestions/zsh-autosuggestions.zsh | |
| elif [[ -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh ]]; then | |
| source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh | |
| fi | |
| ZSH_AUTOSUGGEST_STRATEGY=(history completion) # Use both history and completion | |
| ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20 # Don't suggest for long buffers | |
| ZSH_AUTOSUGGEST_USE_ASYNC=1 # Non-blocking suggestion fetching | |
| ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=#6c7086' # Catppuccin surface2 grey | |
| # ── 3. History Substring Search ─────────────────────────────────── | |
| if [[ -f ~/.zsh_plugins/zsh-history-substring-search/zsh-history-substring-search.zsh ]]; then | |
| source ~/.zsh_plugins/zsh-history-substring-search/zsh-history-substring-search.zsh | |
| HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='fg=green,bold' | |
| HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='fg=red,bold' | |
| fi | |
| # ── 4. FZF (fuzzy finder) ───────────────────────────────────────── | |
| if command -v fzf &>/dev/null; then | |
| source <(fzf --zsh) 2>/dev/null || { | |
| [ -f /usr/share/fzf/key-bindings.zsh ] && source /usr/share/fzf/key-bindings.zsh | |
| [ -f /usr/share/fzf/completion.zsh ] && source /usr/share/fzf/completion.zsh | |
| } | |
| export FZF_DEFAULT_OPTS=" | |
| --height=40% | |
| --layout=reverse | |
| --border=rounded | |
| --preview-window=right:60%:wrap | |
| --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 | |
| --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc | |
| --color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8" | |
| # Use fd instead of find for FZF (if available) | |
| if command -v fd &>/dev/null; then | |
| export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git' | |
| export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" | |
| export FZF_ALT_C_COMMAND='fd --type d --hidden --follow --exclude .git' | |
| fi | |
| fi | |
| # ── 5. Zoxide (smart cd with frecency) ──────────────────────────── | |
| if command -v zoxide &>/dev/null; then | |
| eval "$(zoxide init zsh --cmd cd)" # replaces 'cd' with zoxide | |
| fi | |
| # ── 6. Atuin (shell history sync + search, replaces Ctrl+R) ─────── | |
| if command -v atuin &>/dev/null; then | |
| eval "$(atuin init zsh)" | |
| fi | |
| # ══════════════════════════════════════════════════════════════════ | |
| # FUNCTIONS | |
| # ══════════════════════════════════════════════════════════════════ | |
| # Make a directory and cd into it | |
| mkcd() { mkdir -p "$1" && cd "$1" } | |
| # Extract any archive | |
| extract() { | |
| if [[ -f "$1" ]]; then | |
| case "$1" in | |
| *.tar.bz2) tar xjf "$1" ;; | |
| *.tar.gz) tar xzf "$1" ;; | |
| *.tar.xz) tar xJf "$1" ;; | |
| *.bz2) bunzip2 "$1" ;; | |
| *.rar) unrar e "$1" ;; | |
| *.gz) gunzip "$1" ;; | |
| *.tar) tar xf "$1" ;; | |
| *.tbz2) tar xjf "$1" ;; | |
| *.tgz) tar xzf "$1" ;; | |
| *.zip) unzip "$1" ;; | |
| *.Z) uncompress "$1" ;; | |
| *.7z) 7z x "$1" ;; | |
| *) echo "'$1' cannot be extracted via extract()" ;; | |
| esac | |
| else | |
| echo "'$1' is not a valid file" | |
| fi | |
| } | |
| # fzf powered file preview (requires bat) | |
| fp() { | |
| fzf --preview 'bat --color=always --style=numbers --line-range=:500 {}' | |
| } | |
| # git: fzf branch switch | |
| gbf() { | |
| local branch | |
| branch=$(git branch --all | grep -v HEAD | fzf --height 40% | sed 's/remotes\/origin\///') | |
| [[ -n "$branch" ]] && git checkout "$branch" | |
| } | |
| # Quick backup of a file | |
| bak() { cp "$1"{,.bak} && echo "Backed up $1 → $1.bak" } | |
| # Show directory size sorted | |
| dsize() { du -sh "${1:-.}"/* | sort -h } | |
| # Search for a process | |
| psg() { ps aux | grep -i "$1" | grep -v grep } | |
| # Open last modified file in nvim | |
| vlast() { nvim "$(ls -t | head -1)" } | |
| # Quick HTTP server in current dir | |
| serve() { python3 -m http.server "${1:-8000}" } | |
| # ══════════════════════════════════════════════════════════════════ | |
| # ALIASES — Navigation | |
| # ══════════════════════════════════════════════════════════════════ | |
| alias home='cd ~' | |
| alias dotfiles='cd ~/.dotfiles' | |
| alias conf='cd ~/.config' | |
| alias ..='cd ..' | |
| alias ...='cd ../..' | |
| alias ....='cd ../../..' | |
| alias -- -='cd -' # Go to previous directory | |
| alias fzfp='fzf --preview="cat {}"' | |
| # Simple fzf with cat preview | |
| alias fzfp='fzf --preview="cat {}"' | |
| # fzf with bat for syntax-highlighted preview | |
| alias fzfb='fzf --preview="bat --color=always {}"' | |
| # Open selected file in nvim with bat preview | |
| alias fzfn='nvim $(fzf --preview="bat --color=always {}")' | |
| # ── Listing ────────────────────────────────────────────────────── | |
| # Use eza if available, fall back to ls | |
| if command -v eza &>/dev/null; then | |
| alias ls='eza --color=always --icons --group-directories-first' | |
| alias ll='eza -la --color=always --icons --git --group-directories-first' | |
| alias la='eza -la --color=always --icons' | |
| alias lt='eza --tree --color=always --icons --level=2' | |
| alias llt='eza --tree --color=always --icons --level=3 -l' | |
| else | |
| alias ls='ls --color=auto -h' | |
| alias ll='ls -lah' | |
| alias la='ls -lah' | |
| fi | |
| # ── Editor ─────────────────────────────────────────────────────── | |
| alias v='nvim' | |
| alias vi='nvim' | |
| alias vim='nvim' | |
| alias nv='nvim .' # Open nvim in current dir | |
| # ── Git ────────────────────────────────────────────────────────── | |
| alias g='git' | |
| alias gs='git status' | |
| alias ga='git add' | |
| alias gaa='git add .' | |
| alias gc='git commit -m' | |
| alias gca='git commit --amend' | |
| alias gp='git push' | |
| alias gpl='git pull' | |
| alias gl='git log --oneline --graph --decorate' | |
| alias gll='git log --graph --pretty=format:"%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset" --abbrev-commit' | |
| alias gd='git diff' | |
| alias gds='git diff --staged' | |
| alias gco='git checkout' | |
| alias gcb='git checkout -b' | |
| alias gb='git branch' | |
| alias gba='git branch -a' | |
| alias gst='git stash' | |
| alias gstp='git stash pop' | |
| alias gundo='git reset HEAD~1 --soft' # Undo last commit, keep changes staged | |
| # ── System ─────────────────────────────────────────────────────── | |
| alias df='df -h' | |
| alias du='du -sh' | |
| alias free='free -h' | |
| alias ports='ss -tulanp' | |
| alias myip='curl -s ifconfig.me && echo' | |
| alias localip="ip addr show | grep 'inet ' | awk '{print \$2}'" | |
| alias mem='ps auxf | sort -nr -k 4 | head -10' # Top 10 memory hogs | |
| alias cpu='ps auxf | sort -nr -k 3 | head -10' # Top 10 CPU hogs | |
| # ── Safety nets ────────────────────────────────────────────────── | |
| alias rm='rm -i' | |
| alias cp='cp -i' | |
| alias mv='mv -i' | |
| # ── Sudo shortcuts ─────────────────────────────────────────────── | |
| alias fuck='sudo $(fc -ln -1)' | |
| alias please='sudo' | |
| # ── Package management (Fedora / DNF) ───────────────────────────── | |
| alias update='sudo dnf upgrade --refresh' # Refresh metadata + upgrade everything | |
| alias install='sudo dnf install' | |
| alias remove='sudo dnf remove' | |
| alias search='dnf search' | |
| alias autoremove='sudo dnf autoremove' # Remove orphaned dependencies | |
| alias reinstall='sudo dnf reinstall' # Reinstall a package (fix corruption) | |
| alias check-update='dnf check-update' # List available updates without installing | |
| alias makecache='sudo dnf makecache' # Force-refresh repo metadata | |
| alias dnfclean='sudo dnf clean all' # Clear cached packages + metadata | |
| alias downgrade='sudo dnf downgrade' # Downgrade a package to a previous version | |
| alias pkginfo='dnf info' # Detailed info about a package | |
| alias provides='dnf provides' # Find which package owns a file/command | |
| alias installed='dnf list installed' # List all installed packages | |
| alias repolist='dnf repolist' # Show enabled repositories | |
| alias repolistall='dnf repolist --all' # Show all repos, including disabled | |
| alias grouplist='dnf group list' # List available/installed package groups | |
| alias groupinstall='sudo dnf group install' # Install a package group | |
| alias dnfhistory='dnf history' # Show past dnf transactions | |
| alias dnfundo='sudo dnf history undo last' # Undo the most recent transaction | |
| alias dnfredo='sudo dnf history redo last' # Reapply the most recent undone transaction | |
| alias kernels='rpm -q kernel' # List installed kernel versions | |
| alias config-mgr='sudo dnf config-manager' # Manage repo config (--set-enabled, --add-repo, etc.) | |
| # ── Misc ───────────────────────────────────────────────────────── | |
| alias reload='source ~/.zshrc && echo "Config reloaded ✓"' | |
| alias path='echo $PATH | tr ":" "\n"' | |
| alias clr='clear' | |
| alias cls='clear' | |
| alias h='history | tail -50' | |
| alias hg='history | grep' # Search history | |
| alias swc='wal -i "$HOME/Pictures/Wallpapers/YOUR_WALLPAPER.jpg"' # update filename to your own wallpaper | |
| alias clean-cache='du -sh ~/.cache && rm -rf ~/.cache/* && echo "Cache cleaned ✓"' | |
| alias up-code='cd ~/AppImages/vscode/ && ./update-vscode.sh' | |
| alias gs720='gamescope -f -w 1280 -h 720 --' | |
| alias json='python3 -m json.tool' # Pretty-print JSON | |
| # serve() function defined above — use: serve [port] (default: 8000) | |
| # Use bat instead of cat if available | |
| if command -v bat &>/dev/null; then | |
| alias cat='bat --paging=never' | |
| alias catp='bat' # bat with pager | |
| fi | |
| # ── Process ────────────────────────────────────────────────────── | |
| alias k='kill' | |
| alias k9='kill -9' | |
| alias pk='pkill' | |
| # ══════════════════════════════════════════════════════════════════ | |
| # PROMPT — Starship | |
| # ══════════════════════════════════════════════════════════════════ | |
| PROMPT='' # Clear before starship takes over | |
| eval "$(starship init zsh)" | |
| # OpenClaw Completion | |
| [ -f "$HOME/.openclaw/completions/openclaw.zsh" ] && source "$HOME/.openclaw/completions/openclaw.zsh" | |
| . "$HOME/.atuin/bin/env" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # .bashrc | |
| # Source global definitions | |
| if [ -f /etc/bashrc ]; then | |
| . /etc/bashrc | |
| fi | |
| # User specific environment | |
| if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]; then | |
| PATH="$HOME/.local/bin:$HOME/bin:$PATH" | |
| fi | |
| export PATH | |
| # Uncomment the following line if you don't like systemctl's auto-paging feature: | |
| # export SYSTEMD_PAGER= | |
| # User specific aliases and functions | |
| if [ -d ~/.bashrc.d ]; then | |
| for rc in ~/.bashrc.d/*; do | |
| if [ -f "$rc" ]; then | |
| . "$rc" | |
| fi | |
| done | |
| fi | |
| unset rc | |
| . "$HOME/.atuin/bin/env" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # ╔══════════════════════════════════════════════════════════════════════╗ | |
| # ║ ~/.config/starship.toml — Itachi's Enhanced Prompt ║ | |
| # ║ Palette: Tokyo Night | Style: two-line powerline ║ | |
| # ╚══════════════════════════════════════════════════════════════════════╝ | |
| "$schema" = 'https://starship.rs/config-schema.json' | |
| add_newline = true | |
| command_timeout = 300 | |
| scan_timeout = 50 | |
| palette = "tokyo_night" | |
| # ── Continuation prompt ─────────────────────────────────────────────── | |
| continuation_prompt = '[∙](bright-black) ' | |
| # ── Left Prompt Layout ──────────────────────────────────────────────── | |
| # Line 1 — context (who, where, git, languages) | |
| # Line 2 — the input arrow | |
| format = """ | |
| $os\ | |
| $username\ | |
| $hostname\ | |
| $directory\ | |
| $git_branch\ | |
| $git_status\ | |
| $git_state\ | |
| $python\ | |
| $nodejs\ | |
| $rust\ | |
| $golang\ | |
| $java\ | |
| $docker_context\ | |
| $package\ | |
| $memory_usage\ | |
| $jobs\ | |
| $line_break\ | |
| $status\ | |
| $character""" | |
| # ── Right Prompt (zsh only) ─────────────────────────────────────────── | |
| right_format = """$time $cmd_duration""" | |
| # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
| # MODULES | |
| # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
| # ── OS glyph ───────────────────────────────────────────────────────── | |
| [os] | |
| disabled = false | |
| format = "[$symbol]($style)" | |
| style = "blue bold" | |
| [os.symbols] | |
| Linux = " " | |
| Ubuntu = " " | |
| Debian = " " | |
| Arch = " " | |
| Fedora = " " | |
| Macos = " " | |
| Windows = " " | |
| Unknown = " " | |
| # ── Username ────────────────────────────────────────────────────────── | |
| [username] | |
| show_always = true | |
| style_user = "bold fg:yellow" | |
| style_root = "bold fg:red" | |
| format = "[ $user]($style)" | |
| # ── Hostname ────────────────────────────────────────────────────────── | |
| [hostname] | |
| ssh_only = false | |
| style = "fg:comment bold" | |
| #format = "[@$hostname]($style)[$ssh_symbol]($style)[:]($style) " | |
| format = "[](comment)[@$hostname$ssh_symbol]($style)[](comment) " | |
| ssh_symbol = " 🌐" | |
| # ── Directory ───────────────────────────────────────────────────────── | |
| [directory] | |
| style = "bg:blue fg:bg_dark bold" | |
| truncation_length = 4 | |
| truncation_symbol = "…/" | |
| truncate_to_repo = true | |
| format = "[](blue)[$path]($style)[](blue) " | |
| read_only = " " | |
| read_only_style = "bold fg:red" | |
| fish_style_pwd_dir_length = 1 | |
| [directory.substitutions] | |
| "Documents" = " docs" | |
| "Downloads" = " dl" | |
| "Music" = " music" | |
| "Pictures" = " pics" | |
| ".config" = " cfg" | |
| "Projects" = " proj" | |
| "Desktop" = " desk" | |
| "src" = " src" | |
| # ── Git branch ──────────────────────────────────────────────────────── | |
| [git_branch] | |
| symbol = "🌱 " | |
| style = "bold fg:purple" | |
| format = "[](purple)[$symbol$branch]($style)[](purple) " | |
| truncation_length = 30 | |
| truncation_symbol = "…" | |
| only_attached = false | |
| always_show_remote = false | |
| # ── Git status ──────────────────────────────────────────────────────── | |
| [git_status] | |
| style = "bold fg:cyan" | |
| format = "([$all_status$ahead_behind]($style) )" | |
| conflicted = "🏳 " | |
| ahead = "⇡${count} " | |
| behind = "⇣${count} " | |
| diverged = "⇕⇡${ahead_count}⇣${behind_count} " | |
| up_to_date = "" | |
| untracked = "🆕 ${count} " | |
| stashed = "📦 " | |
| modified = "📝 ${count} " | |
| staged = "✅ ${count} " | |
| renamed = "👅 ${count} " | |
| deleted = "🗑 ${count} " | |
| # ── Git state (merge, rebase, cherry-pick…) ─────────────────────────── | |
| [git_state] | |
| style = "bold fg:red" | |
| format = "\\([$state( $progress_current/$progress_total)]($style)\\) " | |
| rebase = "REBASING" | |
| merge = "MERGING" | |
| cherry_pick = "🍒 CHERRY" | |
| bisect = "BISECTING" | |
| am = "AM" | |
| am_or_rebase = "AM/REBASE" | |
| # ── Shellvl ───────────────────────────────────────────────────────── | |
| [shlvl] | |
| disabled = false | |
| format = "[$symbol$shlvl ](bold fg:comment)" | |
| symbol = "↕ " | |
| threshold = 2 | |
| # ── Languages ───────────────────────────────────────────────────────── | |
| [python] | |
| style = "bold fg:yellow" | |
| format = "via [${symbol}${pyenv_prefix}(${version} )(\\($virtualenv\\) )]($style)" | |
| symbol = " " | |
| detect_extensions = ["py"] | |
| detect_files = ["requirements.txt", "pyproject.toml", ".python-version", "Pipfile", "setup.py"] | |
| [nodejs] | |
| style = "bold fg:green" | |
| format = "via [$symbol($version )]($style)" | |
| symbol = " " | |
| detect_files = ["package.json", ".nvmrc", ".node-version"] | |
| [rust] | |
| style = "bold fg:orange" | |
| format = "via [$symbol($version )]($style)" | |
| symbol = " " | |
| detect_extensions = ["rs"] | |
| detect_files = ["Cargo.toml"] | |
| [golang] | |
| style = "bold fg:cyan" | |
| format = "via [$symbol($version )]($style)" | |
| symbol = " " | |
| detect_extensions = ["go"] | |
| detect_files = ["go.mod", "go.sum"] | |
| [java] | |
| style = "bold fg:red" | |
| format = "via [$symbol($version )]($style)" | |
| symbol = " " | |
| detect_extensions = ["java", "class", "jar", "gradle", "clj", "cljc"] | |
| detect_files = ["pom.xml", "build.gradle.kts", "build.sbt"] | |
| [docker_context] | |
| symbol = " " | |
| style = "bold fg:blue" | |
| format = "via [$symbol$context ]($style)" | |
| only_with_files = true | |
| detect_files = ["docker-compose.yml", "docker-compose.yaml", "Dockerfile"] | |
| [package] | |
| style = "bold fg:orange" | |
| format = "via [ $version ]($style)" | |
| display_private = false | |
| # ── Dev Signals ───────────────────────────────────────────────────────── | |
| [direnv] | |
| disabled = false | |
| format = "[direnv ](bold fg:blue)" | |
| # ── Command Duration ────────────────────────────────────────────────── | |
| [cmd_duration] | |
| style = "bold fg:yellow" | |
| format = "took [⏱ $duration ]($style)" | |
| min_time = 2_000 | |
| show_milliseconds = false | |
| show_notifications = false | |
| # ── Background Jobs ─────────────────────────────────────────────────── | |
| [jobs] | |
| style = "bold fg:blue" | |
| format = "[$symbol$number ]($style)" | |
| symbol = "⚙ " | |
| number_threshold = 1 | |
| symbol_threshold = 1 | |
| # ── Exit Status (shown on the second line, before the character) ────── | |
| [status] | |
| disabled = false | |
| style = "bold fg:red" | |
| format = "[$symbol$status ]($style)" | |
| symbol = "✖ " | |
| not_executable_symbol = "🚫 " | |
| not_found_symbol = "🔍 " | |
| sigint_symbol = "🧱 " | |
| signal_symbol = "⚡ " | |
| success_symbol = "" # hidden on success — keep the line clean | |
| map_symbol = true | |
| pipestatus = false | |
| # ── Time (right-side prompt) ────────────────────────────────────────── | |
| [time] | |
| disabled = false | |
| style = "dimmed fg:comment" | |
| format = "[$time]($style)" | |
| time_format = "%H:%M:%S" | |
| use_12hr = false | |
| # ── Prompt Character ────────────────────────────────────────────────── | |
| [character] | |
| success_symbol = "[~❯❯](bold fg:green)" | |
| error_symbol = "[~❯❯](bold fg:red)" | |
| vimcmd_symbol = "[❮~](bold fg:yellow)" | |
| vimcmd_replace_one_symbol = "[❮~](bold fg:purple)" | |
| vimcmd_replace_symbol = "[❮~](bold fg:purple)" | |
| vimcmd_visual_symbol = "[❮~](bold fg:cyan)" | |
| # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
| # DISABLED / SILENT MODULES | |
| # (declare disabled explicitly so Starship doesn't probe them) | |
| # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
| [aws] | |
| disabled = true | |
| [gcloud] | |
| disabled = true | |
| [azure] | |
| disabled = true | |
| [kubernetes] | |
| disabled = true # flip to false if you work with k8s regularly | |
| [terraform] | |
| disabled = false | |
| style = "bold fg:purple" | |
| #format = "via [ $workspace ]($style)" | |
| format = "via [ $workspace($version) ]($style)" | |
| [buf] | |
| disabled = true | |
| [vcsh] | |
| disabled = true | |
| # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
| # TOKYO NIGHT PALETTE | |
| # Inspired by tokyo-night.nvim — deep navy blues + neon accents | |
| # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
| [palettes.tokyo_night] | |
| # Core backgrounds / neutrals | |
| bg = "#1a1b26" | |
| bg_dark = "#16161e" | |
| bg_hl = "#2a2b3d" | |
| comment = "#565f89" | |
| fg = "#c0caf5" | |
| fg_dark = "#a9b1d6" | |
| # Vibrant accent colours | |
| red = "#f7768e" | |
| orange = "#ff9e64" | |
| yellow = "#e0af68" | |
| green = "#9ece6a" | |
| cyan = "#73daca" | |
| blue = "#7aa2f7" | |
| purple = "#bb9af7" | |
| magenta = "#c678dd" | |
| teal = "#2ac3de" | |
| pink = "#f278b5" | |
| # ── [memory_usage] ───────────────────────────────────────────────────────── | |
| [memory_usage] | |
| disabled = false | |
| threshold = 75 | |
| format = "RAM [$ram_pct ]($style)" | |
| style = "bold fg:red" | |
| # ── [memory_usage] ───────────────────────────────────────────────────────── |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment