#+title: Brewfile #+PROPERTY: header-args:ruby :tangle Brewfile This file defines all the software that needs to be installed on the system. First off, of course, needs to be Emacs. This is done through a cask, which is what all graphical applications are installed as. Although the default Emacs cask doesn't work well with macos, so I've had to install emacs-plus instead, which needs a separate tap first. #+begin_src ruby tap "d12frosted/emacs-plus" cask "emacs-plus-app" #+end_src Then comes Glide, the browser that's configurable and extensible through TypeScript. It lets me configure things that Firefox generally doesn't, but it's still based on Firefox, so I don't have to use Chrome. #+begin_src ruby cask "glide-browser" #+end_src Third is the terminal that I use, Wezterm, which can be configured through Lua. #+begin_src ruby cask "wezterm" #+end_src Then I need some things for configuration and development purposes: - git :: Version control system that I use. - stow :: Mainly used with this repository, "installs" configuration files by making and maintaining symbolic links. - make :: The bundled version with macos is really old and doesn't support some of the features that I use. - tailscale :: Mesh VPN that lets me connect to my self-hosted services like music streaming. - hammerspoon :: Automation framework like AutoHotKey for Windows. But different. - fennel :: Fennel is a lisp -> lua compiler, it allows me to write lua config (like Wezterm and Hammerspoon) in lisp. #+begin_src ruby brew "git" brew "stow" brew "make" cask "tailscale-app" cask "hammerspoon" brew "fennel" #+end_src And there are some development projects that I need to be able to install. - docker :: This runs all of my development projects. - docker-compose :: This is used to organize the different docker containers. - colima :: This is apparently needed to run the docker daemon if you don't want to run Docker Desktop. I can't run Docker Desktop because you have to pay quite a bit of money for that. - postgres@16 :: We use PostgreSQL here and I need the client to be able to connect to the containers in docker. - php :: It's what we use. #+begin_src ruby brew "docker" brew "docker-compose" brew "colima" brew "postgresql" brew "php" #+end_src For postgresql we also need to have a shell script to add the tools to the path. #+begin_src shell :tangle .config/zsh/conf.d/postgresql.sh :mkdirp t export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH" #+end_src Fonts too! - fantasque-sans-mono :: This is my main coding font. I've been attached to this font for years, I can't let it go. It has the nicest parentheses that I've found so far. - dosis :: This is a variable-width font that I'm trying out for any text that isn't code. I haven't found anything that I like as much as Fantasque Sans Mono for code yet. #+begin_src ruby cask "font-fantasque-sans-mono" cask "font-dosis" #+end_src I also created my own tap: #+begin_src ruby tap "ryuslash/scsh", "https://git.sr.ht/~ryuslash/homebrew-scsh", trusted: true brew "scsh" #+end_src