export ZSH_CONFIG=$HOME/.config/zsh export OHMYZSH=$ZSH_CONFIG/oh-my-zsh export OHMYZSH_CUSTOM=$OHMYZSH/custom touch ~/.hushlogin mkdir -p "$HOME/.local/bin" mkdir -p "$ZSH_CONFIG" path+=("$HOME/.local/bin") for p in git starship fzf eza rsync lazydocker fastfetch tmux; do command -v $p >/dev/null && continue if command -v brew >/dev/null; then echo "Installing $p using brew" && brew install $p && continue fi if command -v apt >/dev/null && apt-cache show $p >/dev/null 2>&1; then echo "Installing $p using Apt" && sudo apt install $p -y && continue fi if command -v dnf >/dev/null && dnf list available -y $p >/dev/null 2>&1; then echo "Installing $p using dnf" && sudo dnf install $p -y && continue fi if command -v pacman >/dev/null && pacman -Si $p >/dev/null 2>&1; then echo "Installing $p using pacman" && sudo pacman -Sy --noconfirm $p && continue fi if command -v cargo >/dev/null; then echo "Installing $p using cargo" && cargo install $p --locked && continue fi done if ! command -v starship >/dev/null; then echo "Installing starship binary..." && \ curl -sSL https://starship.rs/install.sh | sh -s -- -b ~/.local/bin -y >/dev/null 2>&1 fi if ! command -v lazydocker >/dev/null; then echo "Installing lazydocker binary..." && \ curl -sSL https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | \ DIR=$HOME/.local/bin bash >/dev/null 2>&1 fi arch=$(uname -m) case "$arch" in x86_64) target_fast="linux-amd64" && target_eza="x86_64-unknown-linux-gnu" ;; aarch64|arm64) target_fast="linux-aarch64" && target_eza="aarch64-unknown-linux-gnu" ;; armv7l) target_fast="linux-armv7l" && target_eza="armv7-unknown-linux-gnueabihf" ;; esac if [[ -n $target_fast && -n $target_eza ]]; then if ! command -v fastfetch >/dev/null; then curl -sSL -o /tmp/fastfetch.tar.gz "https://github.com/fastfetch-cli/fastfetch/releases/latest/download/fastfetch-${target_fast}.tar.gz" tar -xzf /tmp/fastfetch.tar.gz -C /tmp ffdir=$(find /tmp -maxdepth 1 -type d -name 'fastfetch*' | head -1) cp "$ffdir/usr/bin/fastfetch" "$HOME/.local/bin/" chmod +x "$HOME/.local/bin/fastfetch" mkdir -p "$HOME/.local/share/fastfetch" cp -r "$ffdir/usr/share/fastfetch/"* "$HOME/.local/share/fastfetch/" rm -rf "$ffdir" /tmp/fastfetch.tar.gz fi if ! command -v eza >/dev/null; then curl -sSL -o /tmp/eza.tar.gz "https://github.com/eza-community/eza/releases/latest/download/eza_${target_eza}.tar.gz" tar -xzf /tmp/eza.tar.gz -C "$HOME/.local/bin/" chmod +x "$HOME/.local/bin/eza" rm -f /tmp/eza.tar.gz fi fi mkdir -p "$HOME/.config/zsh" [ ! -d $OHMYZSH ] && git clone --depth=1 https://github.com/ohmyzsh/ohmyzsh.git $OHMYZSH for plug in \ "zsh-autosuggestions|https://github.com/zsh-users/zsh-autosuggestions" \ "fast-syntax-highlighting|https://github.com/zdharma-continuum/fast-syntax-highlighting" \ "fzf-tab|https://github.com/Aloxaf/fzf-tab" do name="${plug%%|*}" url="${plug##*|}" dir="$OHMYZSH_CUSTOM/plugins/$name" [[ ! -d "$dir" ]] && git clone "$url" "$dir" 2>/dev/null done # Cleanup [[ -d $HOME/.config/oh-my-zsh ]] && rm -rf "$HOME/.config/oh-my-zsh"