From ab20aef9e7ed292771059ecb61c3e67d4ff0477a Mon Sep 17 00:00:00 2001 From: Marco Gallegos Date: Wed, 19 Nov 2025 19:03:02 -0600 Subject: [PATCH] Create vanity_setup.sh --- vanity_setup.sh | 149 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 vanity_setup.sh diff --git a/vanity_setup.sh b/vanity_setup.sh new file mode 100644 index 0000000..dfe6ae9 --- /dev/null +++ b/vanity_setup.sh @@ -0,0 +1,149 @@ +#!/usr/bin/env bash + +echo "=== Vanity macOS Setup ===" + +# ----------------------------- +# Helper functions +# ----------------------------- +install_if_missing() { + if ! command -v "$1" >/dev/null 2>&1; then + echo "[Installing $1]" + brew install "$1" + else + echo "[$1 already installed]" + fi +} + +# ----------------------------- +# Ensure ZSH exists +# ----------------------------- +if ! command -v zsh >/dev/null 2>&1; then + echo "[Installing Zsh]" + brew install zsh +else + echo "[Zsh already installed]" +fi + +# ----------------------------- +# Homebrew +# ----------------------------- +if ! command -v brew >/dev/null 2>&1; then + echo "[Installing Homebrew]" + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" +else + echo "[Homebrew already installed]" +fi + +# Load brew environment +eval "$(/opt/homebrew/bin/brew shellenv)" + +# ----------------------------- +# Core packages +# ----------------------------- +echo "[Installing core tools]" +install_if_missing curl +install_if_missing wget +install_if_missing git +install_if_missing jq +install_if_missing unzip + +# ----------------------------- +# Python / Node / Docker +# ----------------------------- +echo "[Installing languages & containers]" +install_if_missing python +install_if_missing node +install_if_missing docker +install_if_missing docker-compose + +# ----------------------------- +# Oh My Zsh +# ----------------------------- +if [ ! -d "$HOME/.oh-my-zsh" ]; then + echo "[Installing Oh My Zsh]" + RUNZSH=no KEEP_ZSHRC=yes sh -c \ + "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" +else + echo "[Oh My Zsh already installed]" +fi + +# ----------------------------- +# Zsh plugins +# ----------------------------- +echo "[Installing Zsh plugins]" + +# Autosuggestions +if [ ! -d "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions" ]; then + git clone https://github.com/zsh-users/zsh-autosuggestions \ + ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions +fi + +# Syntax highlighting +if [ ! -d "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting" ]; then + git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \ + ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting +fi + +# ----------------------------- +# Oh My Posh +# ----------------------------- +echo "[Installing Oh My Posh]" +brew install jandedobbeleer/oh-my-posh/oh-my-posh + +echo "[Installing Nerd Font]" +oh-my-posh font install Meslo + +# Descargar tema Catppuccin +echo "[Downloading Catppuccin theme]" +curl -fsSL \ + https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/catppuccin.omp.json \ + -o ~/catppuccin.omp.json + +# ----------------------------- +# yt-dlp + ffmpeg +# ----------------------------- +echo "[Installing yt-dlp + ffmpeg]" +install_if_missing yt-dlp +install_if_missing ffmpeg + +# Carpeta de descargas +mkdir -p ~/Downloads/youtube/video +mkdir -p ~/Downloads/youtube/audio + +# ----------------------------- +# Download .zshrc (CUSTOMIZE URL) +# ----------------------------- +echo "[Downloading .zshrc Vanity]" +curl -fsSL "https://raw.githubusercontent.com/vanity/mac-setup/main/zshrc" \ + -o ~/.zshrc + +# ----------------------------- +# Add yt aliases +# ----------------------------- +if ! grep -q "alias ytv=" ~/.zshrc; then +cat << 'EOF' >> ~/.zshrc + +# Vanity YouTube Download Aliases +alias ytv='yt-dlp -o "~/Downloads/youtube/video/%(title)s.%(ext)s"' +alias ytm='yt-dlp -x --audio-format mp3 -o "~/Downloads/youtube/audio/%(title)s.%(ext)s"' +EOF +fi + +# ----------------------------- +# Oh My Posh init +# ----------------------------- +if ! grep -q "oh-my-posh init zsh" ~/.zshrc; then +cat << 'EOF' >> ~/.zshrc + +# Oh My Posh – Catppuccin +eval "$(oh-my-posh init zsh --config ~/catppuccin.omp.json)" +EOF +fi + +# ----------------------------- +# Default shell +# ----------------------------- +echo "[Setting Zsh as default shell]" +chsh -s "$(which zsh)" + +echo "=== Installation Complete — restart your terminal ==="