Everything I Installed on My New Mac
Tags: tooling, programming, productivity
Published: 2023-06-03 12:19:20

I recently got a new Mac and had to install a lot of apps and tools to get it set up. I decided to document everything I installed so I can refer back to it in the future and also share it with others who might find it useful.

## Arc

I've been recently using this pretty innovative new browser called [Arc](https://arc.net) and I must say, it's really cool! It is built on top of [Chromium](https://www.chromium.org/Home/) but what sets it apart is its unique features. Super customizable themes, [Spaces](https://resources.arc.net/en/articles/6318861-spaces-distinct-browsing-areas) for separating different workspaces, [Boosts](https://resources.arc.net/en/articles/6808613-boosts-customize-any-website) for remixing websites, and the best part is everything can be done without ever needing to touch your mouse, everything is keyboard accessible. There's still a lot for me to explore. Using Arc has been a breath of fresh air - everything feels so seamless and enjoyable, making browsing truly fun again. So if you're looking to try something different, check out Arc!

## Raycast

[Raycast](https://raycast.com) is a productivity tool that lets you search apps and do things just with a single keystroke. It's like Spotlight on steroids. I've been using it for a while now and it's been a game-changer. I can't imagine using my Mac without it. I use it to open apps, search files, run scripts, and so much more. It has a vibrant ecosystem of extensions that you can install to do even more. I highly recommend checking it out.

## Alacritty

Alacritty is my terminal of choice. It's super customizable and plenty fast. It doesn't get in your way and just lets you get things done. It doesn't have tabs like [iTerm](https://iterm2.com/) or [Kitty](https://sw.kovidgoyal.net/kitty/) but I don't mind that because I use it with [tmux](https://en.wikipedia.org/wiki/Tmux) which I have previously written about in my [workflow post](https://nexxel.dev/blog/wsl-workflow#persistent-terminal-sessions-with-tmux).

## Homebrew

[Homebrew](https://brew.sh) is an excellent package manager for macOS. It made installing all the tools I needed a breeze. Need node? `brew install node`. Need neovim? `brew install neovim`. You get the idea. It's a must- have if you're using a Mac.

## Fish Shell

Since writing my [wsl workflow post](https://nexxel.dev/blog/wsl-workflow), I've switched from zsh to [fish](https://fishshell.com). It's a more modern shell that comes with autosuggestions, syntax highlighting and a lot more out of the box. It even has web-based configuration which makes it super easy to customize and preview your changes.

## Starship

For my prompt, I still use [Starship](https://starship.rs) although my configuration has changed a bit. I've switched the [pure preset](https://starship.rs/presets/pure-preset.html) which is a lot more minimal and less distracting.

![Starship Prompt](https://www.nexxel.dev/images/new-mac/prompt.png)

## GitHub CLI

[GitHub CLI](https://cli.github.com) has become an essential part of my workflow. I use it for creating, cloning, and managing repositories. It also makes creating a pull request a breeze. Highly recommend using it, it'll save you a lot of time. It's just a `brew install gh` away.

## Other Coding Tools

### fnm

[fnm](https://fnm.vercel.app) is a fast and simple Node.js version manager. It's really easy to use and is much faster than nvm.

### exa

I still use [exa](https://the.exa.website) for listing files in the terminal. It's a modern replacement for `ls` with a lot of useful features. With icons, colors, and git integration, it makes listing files much nicer.

I use the same aliases that I did before.

```fish
# ~/.config/fish/config.fish

alias ll="exa -l -g --icons --git"
alias llt="exa -1 --icons --tree --git-ignore"
```

### zoxide

I also still use [zoxide](https://github.com/ajeetdsouza/zoxide) for navigating directories. It's a smarter `cd` command that learns your habits and makes navigating directories a breeze.

![Zoxide in action](https://github.com/ajeetdsouza/zoxide/raw/main/contrib/tutorial.webp)

### bat

[bat](https://github.com/sharkdp/bat) is a modern replacement for `cat` with syntax highlighting and themes. I use it for a lot of things, but the coolest use of it that I have is to use it to preview files while fuzzy searching using [fzf](https://github.com/junegunn/fzf) and opening that file in neovim.

![bat to preview files in fzf and open in neovim](https://www.nexxel.dev/images/new-mac/bat.gif)

Here's the alias.

```fish
alias search="fzf --preview 'bat --color=always --style=numbers --line-range=:500 {}' | xargs nvim"
```

## Conclusion

That's it! That's everything I installed on my new Mac. I hope you found this useful. Thanks for reading!