···13131414Then, recently, I've also converted my zsh aliases and init commands to that very same Nix flake, which means that when I run a single command[^1] on a new machine, I get:
15151616-- most of my system preferences set up, including 24 hour time, my (controversial) preferred scrolling direction and all of my persisted app in the app dock
1717-- close to all of my apps: some through Nix packages directly, and some using [nix-homebrew](https://github.com/zhaofengli/nix-homebrew) (mostly for GUIs, which tend to be angry when not having write permissions to their own binaries and hence not being able to auto-update)
1616+- most of my system preferences set up, including 24-hour time, my (controversial) preferred scrolling direction, and all of my persisted apps in the app dock
1717+- close to all of my apps: some through Nix packages directly, and some using [nix-homebrew](https://github.com/zhaofengli/nix-homebrew) (mostly for GUIs, which tend to be angry when not having write permissions to their binaries and hence not being able to auto-update)
1818- my favorite fonts
1919-- my default browser set up as the default HTTP handler (through [defaultbrowser](https://github.com/kerma/defaultbrowser)
2020-- my git config, with my name, e-mail address and GPG signing setup (although I still have to generate and import keys manually)
1919+- my default browser is set up as the default HTTP handler (through [defaultbrowser](https://github.com/kerma/defaultbrowser)
2020+- my git config, with my name, e-mail address, and GPG signing setup (although I still have to generate and import keys manually)
2121- a fully set-up [zoxide](https://github.com/ajeetdsouza/zoxide) (if you don't know what this is, you **have** to check it out, it will change the way you traverse folders on your system)
2222-- declaratively-managed login items (startup apps) for apps like Monitor Control, which I need to control brightness on my external monitor
2222+- declaratively-managed login items (startup apps) for apps like Monitor Control, which I need to control the brightness on my external monitor
23232424If you're curious, you can check out my setup [on GitHub](https://github.com/filiptronicek/nix/blob/main/flake.nix). I feel like it's almost perfect, but it has some limitations:
25252626- Some apps just aren't on either Homebrew or Nix packages (like my video editing software of choice, Davinci Resolve)
2727-- Some customizations aren't very straight forward (like maintaining the aforementioned login items or setting a screensaver, which I still wasn't able to figure out)
2828-- The per-app setup sometimes isn't granular enough and you still have to do a lot of setup within the packages you install[^2] (this is not really an issue of Nix though)
2727+- Some customizations aren't very straightforward (like maintaining the aforementioned login items or setting a screensaver, which I still wasn't able to figure out)
2828+- The per-app setup sometimes isn't granular enough and you still have to do a lot of setup within the packages you install[^2] (this is not an issue of Nix though)
29293030-Next up on my list is to integrate the Nix package manager into my Gitpod dotfiles, so that I can have a consistent toolset for all my projects, no matter which one I'm working on.
3030+Next on my list is to integrate the Nix package manager into my Gitpod dotfiles so that I have a consistent toolset for all my projects, no matter which one I'm working on.
31313232[^1]: It's not really a single command (because you have to first set up nix on the machine), but it's close to it and becomes a single command after Nix is set up
3333[^2]: For example, I would love to declaratively specify which of my Epic Games and Steam library items should automatically be installed on my machine