This is a collection of my dotfiles for my setups. This is managed with Chezmoi and git and is built for MacOS but can also (hopefully) be used on Linux.
There are a couple of "patterns" or "groups" my setup usually follows:
- CLI should be fast as f*ck. When I open a terminal, I want to be able to get to work. No waiting. No loading. Just. Work. ™️.
-
Mise as a package / version manager. It has support for a ton of languages, and has support for
.tool-versions
files which is what our whole org uses. Highly recommended to use this instead of individual managers (like nvm) or installing languages globally. -
Nushell for my shell. This is a pretty recent change, but I like it. It has some pretty built in features like color for
ls
. One thing I'll say is it's taking a while to forget previous habits like always writingls -hal
. -
Starship as my prompt. Again, it's fast and most important, it has sane defaults that I didn't have to spend a ton of time configuring. I have however made some changes to get things to work the way I like.
-
Zoxide as a replacemenf for
cd
. Because it's nice to just docd dotfiles
instead of the fullcd Projects/github.com/btkostner/dotfiles
.
- GUIs should be beautilful and functional, but not take up all of my resources. So I try to use native (not electron) apps as much as I can. This includes:
-
1Password as a password manager. I know it's not native, but it's the best password manager I've used. Syncs to everything. Multiple vaults to keep things organized. And it's got a CLI for when I'm in the terminal or scripting.
-
Dia as my browser. I don't use the AI features much, but it's the next evolution of Arc browser which I loved. Having perminant tabs that don't take a ton of ram is awesome. And using the sidebar for tabs is chefs kiss.
-
Ghostty for a terminal emulator. It's extremely fast and looks good with minimal configuration.
-
Sketch for design work because it's native mac, has awesome export options, popular enough to have plugins and templates, and over all is just a great tool. Worth mentioning that I also use Inkscape because it's open source and dope.
-
Slack for communicating with coworkers. Not my first choice, but not my decision.
-
TablePlus for database management. It supports a ton of databases, it's a native mac app, and has some very nice right click menu options for data.
-
Transmit 5 for file transfer. It's an older app, but Panic makes great Mac apps and it connects to anything I need.
-
UTM for virtual machines. Honestly, I don't use virtual machines that much, but when I do, UTM is the best option I've found.
-
Zed for code editing. It's a native code editor that's super fast and the AI features are pretty handy.
- I have some small utility apps that I use a ton. These include:
-
Tailscale for my personal network VPN. It's installed on most of my servers, my nas, phone, etc. It's super simple and just works everywhere.
-
Soulver 3 for quick calculations. If you've never used an app like this, I'd highly recommend having it in your toolbox. It's a much nicer calculator, with unit conversions, and variable support. It's like psudo code for math.
-
Swish for window managment. I love tiling window managers, but also with a mix of floating windows. Swish is the best of both worlds and allows me to use this beautiful large macbook touchpad to it's full potential. Plus it supports gaps!
Hello future me (and onlookers). If you want to apply to a new computer (first off, congrats on the new hardware) you'll need to:
- Install homebrew
- Run
brew install chezmoi
- Run
chezmoi apply --source github.com/btkostner/dotfiles