summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Brewfile32
-rw-r--r--macos/brew.sh23
2 files changed, 55 insertions, 0 deletions
diff --git a/Brewfile b/Brewfile
new file mode 100644
index 0000000..b64030d
--- /dev/null
+++ b/Brewfile
@@ -0,0 +1,32 @@
+# Taps
+tap "homebrew/bundle"
+tap "homebrew/services"
+tap "koekeishiya/formulae"
+
+# Formulae
+brew "stow"
+brew "gnupg"
+brew "pinentry-mac"
+brew "git"
+brew "ripgrep"
+brew "fzf"
+brew "bat"
+brew "fd"
+brew "yabai"
+brew "skhd"
+brew "ispell"
+brew "zsh-autosuggestions"
+brew "zsh-syntax-highlighting"
+brew "powerlevel10k"
+brew "uv"
+brew "gh"
+brew "glab"
+
+# Casks
+cask "iterm2"
+cask "vscodium"
+cask "bitwarden"
+cask "mullvad-vpn"
+cask "signal"
+cask "syncthing"
+cask "font-fira-code-nerd-font"
diff --git a/macos/brew.sh b/macos/brew.sh
new file mode 100644
index 0000000..ae8c5f7
--- /dev/null
+++ b/macos/brew.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+# Get the directory where this script lives
+MACOS_DIR=$(dirname "$(realpath "$0")")
+
+echo "🍺 Syncing Homebrew with Brewfile..."
+
+if ! command -v brew &> /dev/null; then
+ echo "Installing Homebrew first..."
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+ eval "$(/opt/homebrew/bin/brew shellenv)"
+fi
+
+# Use bundle to install everything in the Brewfile
+# --cleanup would remove anything NOT in the Brewfile (use with caution!)
+brew bundle --file="$MACOS_DIR/Brewfile"
+
+# Restart services to ensure they pick up any stowed config changes
+echo "♻️ Restarting services..."
+brew services restart yabai
+brew services restart skhd
+
+echo "✅ macOS environment synced."