Last active
July 30, 2026 05:23
-
-
Save Aabayoumy/0d9eaec0629bbaea0c2c318b058525c1 to your computer and use it in GitHub Desktop.
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
| #!/bin/bash | |
| set -e | |
| # =========================================================== | |
| # Step 1: Backup existing configurations | |
| # =========================================================== | |
| if ! command -v zip &> /dev/null; then | |
| sudo apt-get update -qq && sudo apt-get install -y zip -qq | |
| fi | |
| BACKUP_DATE=$(date +"%Y-%m-%d_%H-%M-%S") | |
| BACKUP_FILE="$HOME/terminal_backup_$BACKUP_DATE.zip" | |
| zip -rq "$BACKUP_FILE" \ | |
| ~/.zshrc ~/.zprofile ~/.zsh_history ~/.oh-my-zsh \ | |
| ~/.config/nvim ~/.local/share/nvim ~/.local/state/nvim ~/.cache/nvim \ | |
| ~/.config/fastfetch ~/.config/starship.toml \ | |
| 2>/dev/null || true | |
| echo "Backup saved to: $BACKUP_FILE" | |
| # =========================================================== | |
| # Step 2: Clean existing config files | |
| # =========================================================== | |
| rm -rf ~/.config/nvim ~/.local/share/nvim ~/.local/state/nvim ~/.cache/nvim | |
| rm -rf ~/.config/fastfetch | |
| rm -rf ~/.oh-my-zsh | |
| rm -f ~/.zshrc ~/.zprofile ~/.zsh_history | |
| ARCH=$(uname -m) | |
| echo "Detected architecture: $ARCH" | |
| # =========================================================== | |
| # Step 3: Install core packages | |
| # =========================================================== | |
| echo "Installing core packages..." | |
| sudo apt update && sudo apt install -y \ | |
| curl git wget gawk zsh fzf \ | |
| fastfetch eza zoxide bat ripgrep fd-find build-essential \ | |
| unzip luarocks xclip qemu-guest-agent aria2 | |
| sudo systemctl enable --now qemu-guest-agent | |
| # fd-find installs as 'fdfind' on Debian/Ubuntu โ symlink to expected name | |
| if command -v fdfind &> /dev/null && ! command -v fd &> /dev/null; then | |
| sudo ln -sf "$(which fdfind)" /usr/local/bin/fd | |
| fi | |
| # batcat โ bat symlink on Debian/Ubuntu | |
| if command -v batcat &> /dev/null && ! command -v bat &> /dev/null; then | |
| sudo ln -sf "$(which batcat)" /usr/local/bin/bat | |
| fi | |
| # =========================================================== | |
| # Step 4: Install latest Fastfetch | |
| # =========================================================== | |
| echo "Installing Fastfetch..." | |
| if grep -q "Ubuntu" /etc/issue 2>/dev/null; then | |
| sudo add-apt-repository -y ppa:zhangsongcui3371/fastfetch | |
| sudo apt update && sudo apt install -y fastfetch | |
| else | |
| if [ "$ARCH" = "x86_64" ]; then | |
| FF_DEB="fastfetch-linux-amd64.deb" | |
| elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then | |
| FF_DEB="fastfetch-linux-aarch64.deb" | |
| fi | |
| aria2c -x 4 -s 4 -o "$FF_DEB" \ | |
| "https://github.com/fastfetch-cli/fastfetch/releases/latest/download/$FF_DEB" | |
| sudo apt install "./$FF_DEB" -y && rm "$FF_DEB" | |
| fi | |
| # =========================================================== | |
| # Step 5: Remove any existing Neovim installation | |
| # =========================================================== | |
| echo "Removing existing Neovim..." | |
| sudo apt-get purge -y neovim neovim-runtime || true | |
| sudo apt-get autoremove -y || true | |
| if command -v snap &> /dev/null; then sudo snap remove neovim || true; fi | |
| if command -v flatpak &> /dev/null; then sudo flatpak uninstall -y org.neovim.nvim || true; fi | |
| sudo rm -f /usr/bin/nvim /usr/local/bin/nvim | |
| sudo rm -rf /opt/nvim-linux* /opt/nvim | |
| # =========================================================== | |
| # Step 6: Install latest stable Neovim from GitHub | |
| # =========================================================== | |
| echo "Installing Neovim..." | |
| if [ "$ARCH" = "x86_64" ]; then | |
| NVIM_URL="https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz" | |
| elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then | |
| NVIM_URL="https://github.com/neovim/neovim/releases/latest/download/nvim-linux-arm64.tar.gz" | |
| else | |
| echo "Unsupported architecture: $ARCH"; exit 1 | |
| fi | |
| NVIM_TAR="nvim-download.tar.gz" | |
| aria2c -x 4 -s 4 -o "$NVIM_TAR" "$NVIM_URL" | |
| sudo mkdir -p /opt/nvim | |
| sudo tar -C /opt/nvim --strip-components=1 -xzf "$NVIM_TAR" | |
| sudo ln -sf /opt/nvim/bin/nvim /usr/local/bin/nvim | |
| rm "$NVIM_TAR" | |
| # =========================================================== | |
| # Step 7: Install Starship + download personal config from gist | |
| # =========================================================== | |
| echo "Installing Starship..." | |
| curl -sS https://starship.rs/install.sh | sh -s -- --yes | |
| mkdir -p ~/.config | |
| curl -fsSL "https://gist.githubusercontent.com/Aabayoumy/0d9eaec0629bbaea0c2c318b058525c1/raw/3f9ac8c2edc61eb9531a70fe962964aab4afa8d1/starship.toml" \ | |
| -o ~/.config/starship.toml | |
| # =========================================================== | |
| # Step 8: Configure Fastfetch | |
| # =========================================================== | |
| echo "Configuring Fastfetch..." | |
| mkdir -p ~/.config/fastfetch | |
| cat << 'EOF' > ~/.config/fastfetch/config.jsonc | |
| { | |
| "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", | |
| "logo": { | |
| "type": "small", | |
| "padding": { "top": 1 } | |
| }, | |
| "display": { | |
| "separator": " โฏ ", | |
| "bar": { | |
| "char": { "elapsed": "โ ", "total": " " }, | |
| "width": 12 | |
| } | |
| }, | |
| "modules": [ | |
| "title", | |
| "os", | |
| { "type": "cpu", "format": "{1} ({4} cores)" }, | |
| { "type": "cpuusage", "key": "CPU ", "percent": { "type": 3 } }, | |
| { "type": "memory", "key": "Mem ", "percent": { "type": 3 } }, | |
| { "type": "disk", "key": "Disk", "percent": { "type": 3 } }, | |
| "break" | |
| ] | |
| } | |
| EOF | |
| # =========================================================== | |
| # Step 9: Download Catppuccin Mocha zsh-syntax-highlighting theme | |
| # =========================================================== | |
| echo "Downloading Catppuccin Mocha syntax highlight theme..." | |
| mkdir -p ~/.config | |
| curl -fsSL \ | |
| "https://raw.githubusercontent.com/catppuccin/zsh-syntax-highlighting/main/themes/catppuccin_mocha-zsh-syntax-highlighting.zsh" \ | |
| -o ~/.config/catppuccin_mocha-zsh-syntax-highlighting.zsh | |
| # =========================================================== | |
| # Step 10: Write .zshrc | |
| # =========================================================== | |
| echo "Writing .zshrc..." | |
| cat << 'ZSHRC' > ~/.zshrc | |
| # =========================================================== | |
| # ZINIT โ plugin manager (auto-installs on first run) | |
| # =========================================================== | |
| ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git" | |
| if [ ! -d "$ZINIT_HOME" ]; then | |
| mkdir -p "$(dirname "$ZINIT_HOME")" | |
| git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME" | |
| fi | |
| source "${ZINIT_HOME}/zinit.zsh" | |
| # =========================================================== | |
| # PLUGINS | |
| # =========================================================== | |
| # zsh-completions: use blockf so zinit registers the extra fpath entries | |
| # before compinit runs โ this is what enables filename/command completions | |
| zinit light zsh-users/zsh-autosuggestions | |
| zinit light zsh-users/zsh-history-substring-search | |
| zinit ice blockf; zinit light zsh-users/zsh-completions | |
| # Catppuccin Mocha syntax highlight theme โ must load before the plugin | |
| source ~/.config/catppuccin_mocha-zsh-syntax-highlighting.zsh | |
| zinit light zsh-users/zsh-syntax-highlighting | |
| # OMZ snippets | |
| zinit snippet OMZL::git.zsh | |
| zinit snippet OMZP::git | |
| zinit snippet OMZP::sudo | |
| zinit snippet OMZP::command-not-found | |
| # =========================================================== | |
| # COMPLETION ENGINE (compinit BEFORE fzf-tab) | |
| # =========================================================== | |
| autoload -Uz compinit | |
| # Refresh .zcompdump at most once per day for faster startup | |
| if [[ -n ~/.zcompdump(#qN.mh+24) ]]; then | |
| compinit | |
| else | |
| compinit -C | |
| fi | |
| zinit cdreplay -q | |
| # fzf-tab must load AFTER compinit โ it replaces the completion menu | |
| zinit light Aloxaf/fzf-tab | |
| # Completion styling | |
| zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' | |
| zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" | |
| zstyle ':completion:*' group-name '' | |
| zstyle ':completion:*:descriptions' format '%F{yellow}-- %d --%f' | |
| zstyle ':completion:*:warnings' format '%F{red}no matches%f' | |
| zstyle ':completion::complete:*' use-cache yes | |
| zstyle ':completion::complete:*' cache-path ~/.zcompcache | |
| zstyle ':completion:*' special-dirs true | |
| zstyle ':completion:*' menu no # fzf-tab takes over the menu | |
| # fzf-tab: live eza preview for cd and zoxide | |
| zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza --icons --group-directories-first --color=always $realpath' | |
| zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'eza --icons --group-directories-first --color=always $realpath' | |
| # fzf-tab: also preview file content for any completion | |
| zstyle ':fzf-tab:complete:*:*' fzf-preview 'bat --color=always --style=numbers $realpath 2>/dev/null || eza --icons --color=always $realpath' | |
| setopt AUTO_MENU COMPLETE_IN_WORD ALWAYS_TO_END AUTO_PARAM_SLASH NO_CASE_GLOB | |
| # =========================================================== | |
| # HISTORY | |
| # =========================================================== | |
| HISTFILE=~/.zsh_history | |
| HISTSIZE=50000 | |
| SAVEHIST=50000 | |
| HISTDUP=erase | |
| setopt APPEND_HISTORY INC_APPEND_HISTORY SHARE_HISTORY | |
| setopt HIST_IGNORE_SPACE HIST_IGNORE_ALL_DUPS HIST_SAVE_NO_DUPS | |
| setopt HIST_IGNORE_DUPS HIST_FIND_NO_DUPS HIST_REDUCE_BLANKS | |
| setopt HIST_VERIFY EXTENDED_HISTORY | |
| # =========================================================== | |
| # KEY BINDINGS | |
| # =========================================================== | |
| bindkey -e | |
| bindkey '^[[H' beginning-of-line | |
| bindkey '^[[F' end-of-line | |
| bindkey '^[[3~' delete-char | |
| bindkey '^[[1;5C' forward-word # Ctrlโ jump word | |
| bindkey '^[[1;5D' backward-word # Ctrlโ jump word | |
| bindkey '^[c' kill-region | |
| # โ accepts the current autosuggestion (same as macOS behaviour) | |
| bindkey '^[[C' forward-char | |
| # End key also accepts full autosuggestion | |
| bindkey '^[[F' end-of-line | |
| # Ctrl-Space accepts autosuggestion without moving cursor | |
| bindkey '^ ' autosuggest-accept | |
| # zsh-history-substring-search: โ/โ filters by typed prefix | |
| bindkey '\e[A' history-substring-search-up | |
| bindkey '\e[B' history-substring-search-down | |
| # =========================================================== | |
| # DIRECTORY NAVIGATION | |
| # =========================================================== | |
| setopt AUTO_CD AUTO_PUSHD PUSHD_IGNORE_DUPS PUSHD_SILENT | |
| # =========================================================== | |
| # MISC | |
| # =========================================================== | |
| setopt INTERACTIVE_COMMENTS CORRECT NO_BEEP MULTIOS | |
| # =========================================================== | |
| # FZF | |
| # =========================================================== | |
| eval "$(fzf --zsh)" | |
| export FZF_DEFAULT_OPTS=" | |
| --height 40% | |
| --layout=reverse | |
| --border=rounded | |
| --preview-window=right:50%:wrap | |
| --color=fg:#cdd6f4,bg:#1e1e2e,hl:#89b4fa | |
| --color=fg+:#cdd6f4,bg+:#313244,hl+:#89dceb | |
| --color=info:#cba6f7,prompt:#f38ba8,pointer:#f5c2e7 | |
| --color=marker:#a6e3a1,spinner:#f5c2e7,header:#94e2d5 | |
| " | |
| 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" | |
| fi | |
| ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#585b70" | |
| ZSH_AUTOSUGGEST_STRATEGY=(history completion) | |
| HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='fg=#1e1e2e,bg=#a6e3a1,bold' | |
| HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='fg=#1e1e2e,bg=#f38ba8,bold' | |
| # =========================================================== | |
| # EXTERNAL TOOLS | |
| # =========================================================== | |
| eval "$(zoxide init zsh)" | |
| eval "$(starship init zsh)" | |
| # =========================================================== | |
| # ALIASES โ Navigation | |
| # =========================================================== | |
| alias ..='cd ..' | |
| alias ...='cd ../..' | |
| alias ....='cd ../../..' | |
| alias ~='cd ~' | |
| alias -- -='cd -' | |
| # =========================================================== | |
| # ALIASES โ ls / eza | |
| # =========================================================== | |
| alias l='eza --icons --group --group-directories-first' | |
| alias ls='eza --icons --group --group-directories-first' | |
| alias la='eza --icons -la --all --long --group --group-directories-first --header --time-style long-iso' | |
| alias ll='eza --long --group --group-directories-first --icons --header --time-style long-iso' | |
| alias lla='eza -lha --icons --git --group-directories-first --header --time-style long-iso' | |
| alias lt='eza --icons -T -L=1' | |
| alias llt='eza --tree --level=3 --icons --long' | |
| alias tree="eza --tree --all --ignore-glob='*.o|*.log' --git" | |
| # =========================================================== | |
| # ALIASES โ cat / bat | |
| # =========================================================== | |
| alias cat='bat --paging=never' | |
| alias catp='bat' | |
| # =========================================================== | |
| # ALIASES โ Editor | |
| # =========================================================== | |
| alias v='nvim' | |
| alias vi='nvim' | |
| alias vim='nvim' | |
| alias nv='nvim' | |
| alias svim='sudo nvim' | |
| alias vz='nvim ~/.zshrc' | |
| alias sz='source ~/.zshrc' | |
| # =========================================================== | |
| # ALIASES โ Git | |
| # =========================================================== | |
| alias g='git' | |
| alias gs='git status -sb' | |
| alias gaa='git add .' | |
| alias gc='git commit -m' | |
| alias gca='git commit --amend --no-edit' | |
| alias gp='git push' | |
| alias gpf='git push --force-with-lease' | |
| alias gl='git pull' | |
| alias glog='git log --oneline --graph --decorate --all' | |
| alias gd='git diff' | |
| alias gds='git diff --staged' | |
| alias gcb='git checkout -b' | |
| alias gst='git stash' | |
| alias gstp='git stash pop' | |
| alias gri='git rebase -i' | |
| # =========================================================== | |
| # ALIASES โ System / apt | |
| # =========================================================== | |
| alias update='sudo apt update && sudo apt upgrade -y' | |
| alias install='sudo apt install' | |
| alias remove='sudo apt remove' | |
| alias purge='sudo apt purge' | |
| alias autoremove='sudo apt autoremove -y' | |
| alias ports='ss -tulpn' | |
| alias psg='ps aux | grep' | |
| alias df='df -h' | |
| alias du='du -sh' | |
| alias free='free -h' | |
| alias top='htop 2>/dev/null || top' | |
| alias path='echo $PATH | tr ":" "\n"' | |
| alias myip='curl -s ifconfig.me' | |
| alias localip="ip -4 addr | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v 127" | |
| # =========================================================== | |
| # ALIASES โ Safety | |
| # =========================================================== | |
| alias rm='rm -i' | |
| alias cp='cp -i' | |
| alias mv='mv -i' | |
| alias mkdir='mkdir -pv' | |
| # =========================================================== | |
| # ALIASES โ Utilities | |
| # =========================================================== | |
| alias c='clear' | |
| alias cls='clear' | |
| alias q='exit' | |
| alias h='history | tail -50' | |
| alias hg='history | grep' | |
| alias reload='exec zsh' | |
| alias zshconfig='nvim ~/.zshrc' | |
| alias week='date +%V' | |
| alias timestamp='date +"%Y%m%d_%H%M%S"' | |
| alias rg='rg --smart-case --hidden' | |
| alias fd='fd -Lu' | |
| alias weather='curl v2.wttr.in' | |
| alias ff='clear && fastfetch' | |
| # =========================================================== | |
| # FUNCTIONS | |
| # =========================================================== | |
| # mkcd โ mkdir + cd in one shot | |
| mkcd() { mkdir -p "$1" && cd "$1"; } | |
| # up N โ go up N directories (e.g. up 3) | |
| up() { local p=""; for _ in $(seq 1 "${1:-1}"); do p+="../"; done; cd "$p"; } | |
| # extract โ universal archive extractor | |
| extract() { | |
| if [ -f "$1" ]; then | |
| case "$1" in | |
| *.tar.bz2) tar xjf "$1" ;; | |
| *.tar.gz) tar xzf "$1" ;; | |
| *.tar.xz) tar xJf "$1" ;; | |
| *.tar.zst) tar --zstd -xf "$1" ;; | |
| *.bz2) bunzip2 "$1" ;; | |
| *.gz) gunzip "$1" ;; | |
| *.rar) unrar x "$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" ;; | |
| esac | |
| else | |
| echo "'$1' is not a valid file" | |
| fi | |
| } | |
| # bak โ timestamped backup copy | |
| bak() { cp "$1" "$1.bak.$(date +%Y%m%d_%H%M%S)"; } | |
| # fcd โ fuzzy-find a directory and cd into it | |
| fcd() { cd "$(find "${1:-.}" -type d 2>/dev/null | fzf)" || return; } | |
| # fe โ fuzzy-find a file and open in nvim | |
| fe() { nvim "$(fzf --preview 'bat --color=always {}')"; } | |
| # =========================================================== | |
| # FASTFETCH โ run on every new terminal | |
| # =========================================================== | |
| fastfetch | |
| ZSHRC | |
| # =========================================================== | |
| # Step 11: Install LazyVim | |
| # =========================================================== | |
| echo "Setting up LazyVim..." | |
| mkdir -p ~/.config/nvim | |
| git clone https://github.com/LazyVim/starter ~/.config/nvim | |
| rm -rf ~/.config/nvim/.git | |
| # =========================================================== | |
| # Step 12: Set Zsh as default shell | |
| # =========================================================== | |
| echo "Setting Zsh as default shell..." | |
| sudo chsh -s "$(which zsh)" "$USER" | |
| echo "" | |
| echo "Done! Backup saved to: $BACKUP_FILE" | |
| echo "Run 'exec zsh' or open a new terminal to start." | |
| echo "(zinit will auto-install all plugins on first launch)" |
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
| "$schema" = 'https://starship.rs/config-schema.json' | |
| format = """ | |
| [๎ถ](red)\ | |
| $os\ | |
| $username$hostname\ | |
| [๎ฐ](bg:peach fg:red)\ | |
| $directory\ | |
| [๎ฐ](bg:yellow fg:peach)\ | |
| $git_branch\ | |
| $git_status\ | |
| [๎ฐ](fg:yellow bg:green)\ | |
| $c\ | |
| $rust\ | |
| $golang\ | |
| $nodejs\ | |
| $bun\ | |
| $php\ | |
| $java\ | |
| $kotlin\ | |
| $haskell\ | |
| $python\ | |
| [๎ฐ](fg:green bg:sapphire)\ | |
| $conda\ | |
| [๎ฐ](fg:sapphire bg:lavender)\ | |
| $time\ | |
| [๎ด ](fg:lavender)\ | |
| $cmd_duration\ | |
| $line_break\ | |
| $character""" | |
| palette = 'catppuccin_mocha' | |
| [os] | |
| disabled = false | |
| style = "bg:red fg:crust" | |
| [os.symbols] | |
| Windows = "๎" | |
| Ubuntu = "๓ฐ" | |
| SUSE = "๏" | |
| Raspbian = "๓ฐฟ" | |
| Mint = "๓ฐฃญ" | |
| Macos = "๓ฐต" | |
| Manjaro = "๏" | |
| Linux = "๓ฐฝ" | |
| Gentoo = "๓ฐฃจ" | |
| Fedora = "๓ฐฃ" | |
| Alpine = "๏" | |
| Amazon = "๏ฐ" | |
| Android = "๎" | |
| AOSC = "๏" | |
| Arch = "๓ฐฃ" | |
| Artix = "๓ฐฃ" | |
| CentOS = "๏" | |
| Debian = "๓ฐฃ" | |
| Redhat = "๓ฑ" | |
| RedHatEnterprise = "๓ฑ" | |
| [username] | |
| show_always = true | |
| style_user = "bg:red fg:crust" | |
| style_root = "bg:red fg:crust" | |
| format = '[ $user]($style)' | |
| [hostname] | |
| ssh_only = true | |
| format = '[@$hostname](bg:red fg:crust)' | |
| disabled = false | |
| [directory] | |
| style = "bg:peach fg:crust" | |
| format = "[ $path ]($style)" | |
| truncation_length = 3 | |
| truncation_symbol = "โฆ/" | |
| [directory.substitutions] | |
| "Documents" = "๓ฐ " | |
| "Downloads" = "๏ " | |
| "Music" = "๓ฐ " | |
| "Pictures" = "๏พ " | |
| "Developer" = "๓ฐฒ " | |
| [git_branch] | |
| symbol = "๏" | |
| style = "bg:yellow" | |
| format = '[[ $symbol $branch ](fg:crust bg:yellow)]($style)' | |
| [git_status] | |
| style = "bg:yellow" | |
| format = '[[($all_status$ahead_behind )](fg:crust bg:yellow)]($style)' | |
| [nodejs] | |
| symbol = "๎" | |
| style = "bg:green" | |
| format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)' | |
| [bun] | |
| symbol = "๎ฏ" | |
| style = "bg:green" | |
| format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)' | |
| [c] | |
| symbol = "๎ " | |
| style = "bg:green" | |
| format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)' | |
| [rust] | |
| symbol = "๎จ" | |
| style = "bg:green" | |
| format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)' | |
| [golang] | |
| symbol = "๎ง" | |
| style = "bg:green" | |
| format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)' | |
| [php] | |
| symbol = "๎" | |
| style = "bg:green" | |
| format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)' | |
| [java] | |
| symbol = "๎ " | |
| style = "bg:green" | |
| format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)' | |
| [kotlin] | |
| symbol = "๎ด" | |
| style = "bg:green" | |
| format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)' | |
| [haskell] | |
| symbol = "๎" | |
| style = "bg:green" | |
| format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)' | |
| [python] | |
| symbol = "๎" | |
| style = "bg:green" | |
| format = '[[ $symbol( $version)(\(#$virtualenv\)) ](fg:crust bg:green)]($style)' | |
| [docker_context] | |
| symbol = "๏" | |
| style = "bg:sapphire" | |
| format = '[[ $symbol( $context) ](fg:crust bg:sapphire)]($style)' | |
| [conda] | |
| symbol = " ๏ " | |
| style = "fg:crust bg:sapphire" | |
| format = '[$symbol$environment ]($style)' | |
| ignore_base = false | |
| [time] | |
| disabled = false | |
| time_format = "%R" | |
| style = "bg:lavender" | |
| format = '[[ ๏บ $time ](fg:crust bg:lavender)]($style)' | |
| [line_break] | |
| disabled = true | |
| [character] | |
| disabled = false | |
| success_symbol = '[โฏ](bold fg:green)' | |
| error_symbol = '[โฏ](bold fg:red)' | |
| vimcmd_symbol = '[โฎ](bold fg:green)' | |
| vimcmd_replace_one_symbol = '[โฎ](bold fg:lavender)' | |
| vimcmd_replace_symbol = '[โฎ](bold fg:lavender)' | |
| vimcmd_visual_symbol = '[โฎ](bold fg:yellow)' | |
| [cmd_duration] | |
| show_milliseconds = true | |
| format = "๎ซด in $duration " | |
| style = "bg:lavender" | |
| disabled = false | |
| show_notifications = true | |
| min_time_to_notify = 45000 | |
| [palettes.catppuccin_mocha] | |
| rosewater = "#f5e0dc" | |
| flamingo = "#f2cdcd" | |
| pink = "#f5c2e7" | |
| mauve = "#cba6f7" | |
| red = "#f38ba8" | |
| maroon = "#eba0ac" | |
| peach = "#fab387" | |
| yellow = "#f9e2af" | |
| green = "#a6e3a1" | |
| teal = "#94e2d5" | |
| sky = "#89dceb" | |
| sapphire = "#74c7ec" | |
| blue = "#89b4fa" | |
| lavender = "#b4befe" | |
| text = "#cdd6f4" | |
| subtext1 = "#bac2de" | |
| subtext0 = "#a6adc8" | |
| overlay2 = "#9399b2" | |
| overlay1 = "#7f849c" | |
| overlay0 = "#6c7086" | |
| surface2 = "#585b70" | |
| surface1 = "#45475a" | |
| surface0 = "#313244" | |
| base = "#1e1e2e" | |
| mantle = "#181825" | |
| crust = "#11111b" | |
| [palettes.catppuccin_frappe] | |
| rosewater = "#f2d5cf" | |
| flamingo = "#eebebe" | |
| pink = "#f4b8e4" | |
| mauve = "#ca9ee6" | |
| red = "#e78284" | |
| maroon = "#ea999c" | |
| peach = "#ef9f76" | |
| yellow = "#e5c890" | |
| green = "#a6d189" | |
| teal = "#81c8be" | |
| sky = "#99d1db" | |
| sapphire = "#85c1dc" | |
| blue = "#8caaee" | |
| lavender = "#babbf1" | |
| text = "#c6d0f5" | |
| subtext1 = "#b5bfe2" | |
| subtext0 = "#a5adce" | |
| overlay2 = "#949cbb" | |
| overlay1 = "#838ba7" | |
| overlay0 = "#737994" | |
| surface2 = "#626880" | |
| surface1 = "#51576d" | |
| surface0 = "#414559" | |
| base = "#303446" | |
| mantle = "#292c3c" | |
| crust = "#232634" | |
| [palettes.catppuccin_latte] | |
| rosewater = "#dc8a78" | |
| flamingo = "#dd7878" | |
| pink = "#ea76cb" | |
| mauve = "#8839ef" | |
| red = "#d20f39" | |
| maroon = "#e64553" | |
| peach = "#fe640b" | |
| yellow = "#df8e1d" | |
| green = "#40a02b" | |
| teal = "#179299" | |
| sky = "#04a5e5" | |
| sapphire = "#209fb5" | |
| blue = "#1e66f5" | |
| lavender = "#7287fd" | |
| text = "#4c4f69" | |
| subtext1 = "#5c5f77" | |
| subtext0 = "#6c6f85" | |
| overlay2 = "#7c7f93" | |
| overlay1 = "#8c8fa1" | |
| overlay0 = "#9ca0b0" | |
| surface2 = "#acb0be" | |
| surface1 = "#bcc0cc" | |
| surface0 = "#ccd0da" | |
| base = "#eff1f5" | |
| mantle = "#e6e9ef" | |
| crust = "#dce0e8" | |
| [palettes.catppuccin_macchiato] | |
| rosewater = "#f4dbd6" | |
| flamingo = "#f0c6c6" | |
| pink = "#f5bde6" | |
| mauve = "#c6a0f6" | |
| red = "#ed8796" | |
| maroon = "#ee99a0" | |
| peach = "#f5a97f" | |
| yellow = "#eed49f" | |
| green = "#a6da95" | |
| teal = "#8bd5ca" | |
| sky = "#91d7e3" | |
| sapphire = "#7dc4e4" | |
| blue = "#8aadf4" | |
| lavender = "#b7bdf8" | |
| text = "#cad3f5" | |
| subtext1 = "#b8c0e0" | |
| subtext0 = "#a5adcb" | |
| overlay2 = "#939ab7" | |
| overlay1 = "#8087a2" | |
| overlay0 = "#6e738d" | |
| surface2 = "#5b6078" | |
| surface1 = "#494d64" | |
| surface0 = "#363a4f" | |
| base = "#24273a" | |
| mantle = "#1e2030" | |
| crust = "#181926" |
Author
Author
Unified Script for Debian/ Alma
curl -fsSL https://gist.githubusercontent.com/Aabayoumy/b396342263018e486fa87745f5efa62b/raw/unified-bootstrap.sh | bash
# Short link version:
curl -fsSL https://tinyurl.com/2y9kga3g | bash
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
๐ Automated Debian/Ubuntu VM Bootstrap Script
This script completely automates the process of setting up a fresh Linux VM into a highly optimized, technical workspace. It cleans old configurations, installs modern CLI alternatives, sets up a clean Zsh environment, and configures Neovim with LazyVim.
๐ ๏ธ What This Script Installs & Configures:
.zipbackup of your old configs (~/.zshrc,~/.config/nvim, etc.) before making changes.aria2,eza(modern ls),zoxide(smart cd),bat(cat with syntax highlighting),ripgrep,fzf, andluarocks./opt/nvimusing lightning-fastaria2cdownloads.~/.config/nvim.๐ป How to Run Directly on Any Fresh VM
Run this command as your regular user. Do not run the entire command with
sudoโthe script will gracefully prompt you for your sudo password only when installing system packages.