1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
#+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-app :: 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.
- zplug :: A plug-in manager for ZSH.
- atuin :: Shell history completion on steroids.
- bettercmdtab :: Trying out this program that lets me have a better experience switching windows.
#+begin_src ruby
brew "git"
brew "stow"
cask "tailscale-app"
cask "hammerspoon"
brew "fennel"
brew "zplug"
brew "atuin"
cask "bettercmdtab"
#+end_src
Install make because the bundled version is really old and doesn't support some of the features that I used. Surprisingly it /is/ GNU make, not BSD make that's installed.
#+begin_src ruby
brew "make"
#+end_src
This requires an alias in ZSH to make sure that the newly installed make is actually used.
#+begin_src sh :tangle .config/zsh/conf.d/macos.sh
alias make=gmake
#+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 for SCSH:
#+begin_src ruby
tap "ryuslash/scsh", "https://git.sr.ht/~ryuslash/homebrew-scsh", trusted: true
brew "scsh"
#+end_src
Flameshot, for easier screenshot taking. Aside from installing through Homebrew this needs some extra work to be enabled. If I try to start it it will be blocked, but after that I have to go into System Settings -> Privacy & Security, and then scroll down to the line that says that Flameshot was blocked, and then allow it. Then I can use it.
#+begin_src ruby
cask "flameshot"
#+end_src
Install the coreutils packages because the BSD alternatives that MacOS comes with are very disappointing.
#+begin_src ruby
brew "coreutils"
#+end_src
This requires some aliases to actually work, otherwise the bundled versions get referenced instead.
#+begin_src sh :tangle .config/zsh/conf.d/macos.sh
alias ls="gls --color=always"
#+end_src
Install wakatime-cli so I can track my personal coding times.
#+begin_src ruby
brew "wakatime-cli"
#+end_src
|