Homebrew Integration
This directory contains Brewfile declarations that will be copied into your custom image at /usr/share/ublue-os/homebrew/.
What are Brewfiles?
Brewfiles are Homebrew's way of declaring packages in a declarative format. They allow you to specify which packages, taps, and casks you want installed.
How It Works
- During Build: Files in this directory are copied to
/usr/share/ublue-os/homebrew/in the image - After Installation: Users install packages by running
brew bundlecommands - User Experience: Declarative package management via Homebrew
Usage
Adding Brewfiles to Your Image
- Create
.Brewfilefiles in this directory - Add your desired packages using Brewfile syntax
- Build your image - the Brewfiles will be copied to
/usr/share/ublue-os/homebrew/
Example Files in this directory:
default.Brewfile- Essential command-line toolsdevelopment.Brewfile- Development tools and languagesfonts.Brewfile- Programming fonts
Installing Packages from Brewfiles
After booting into your custom image, install packages with:
brew bundle --file /usr/share/ublue-os/homebrew/default.Brewfile
Or use the convenient ujust commands defined in custom/ujust/custom-apps.just:
ujust install-default-apps
ujust install-dev-tools
ujust install-fonts
File Format
Brewfiles use Ruby syntax:
# Add a tap (third-party repository)
tap "homebrew/cask"
# Install a formula (CLI tool)
brew "bat"
brew "eza"
brew "ripgrep"
# Install a cask (GUI application, macOS only)
cask "visual-studio-code"
Customization
Edit the existing Brewfiles or create new ones:
default.Brewfile- Modify for your essential toolsdevelopment.Brewfile- Add your dev stackfonts.Brewfile- Add preferred fonts- Create new files -
gaming.Brewfile,media.Brewfile, etc.
When you add new Brewfiles, create corresponding ujust commands in custom/ujust/custom-apps.just for easy installation.