My configuration will not be useful as is for many, and it’s never meant to be. I made all the configurations for my specific needs. You are welcome to have a look to understand how I work, how to configure with Nix, etc. I will check Issues and Pull Requests, but may not take in suggestions and configurations.
Nix is used for both NixOS and macOS for my configuration. You can check out both configurations here. All the configurations are based on Nix Flake.
To be updated
For macOS, I use nix-darwin and home-manager to configure.
You can find more in machine-setup/mbp/README.org.
All the NixOS configurations are done with nixpkgs.lib.nixosSystem and home-manager.
For the UTM setup for VM on macOS, you can find more in machine-setup/mbp-utm/README.org. Other VM solutions may also be added as I get to test more.
The idea is to ensure I have all the $HOME setup defined declaratively, while allowing some imperative adjustments when and if necessary. Also, it is designed to work with various machines and environments, so that most of the configurations can be shared among the different environments, but still there would be some additional configurations made possible. (Or simply duplicating some resources.)
To be updated (should be mostly clear by their names)
You can find the actual configurations in various .nix files in this repository. Here is a list of items that are worth clarifying for anyone keen to understand how I work in general.
I mainly use Emacs for any coding tasks, and many more (note taking, task management, email, etc.). All of my Emacs configurations are NOT in this repository, and I manage them in a separate repository (to be open sourced at some point). With my Emacs, I use Evil key bindings along with Emacs bindings. I use both Emacs and Vi bindings all the time, and thus NeoVim is also another platform I sometimes fall back to. I do have VSCode installed and use it occasionally, but rather rarely.
I used to use various solutions, but now my main driver is Ghostty. It is performant and does everything I need well and cleanly. Before Ghostty, I used to use Alacritty and tmux, but I do not feel the need anymore. I also have Kitty available, but I do not use it.
Here is the list of other tools I use for the key components of each OS.
| 🐱 | macOS | NixOS |
|---|---|---|
| Window Management | yabai | niri |
| Shortcut | skhd | Xremap |
| Toolbar | macOS default | Waybar |
| App Launcher | Raycast | rofi |
| Browser | Zen Browser | Zen Browser |
For macOS
- UTM: https://github.com/utmapp/UTM
- Kap: https://getkap.co/
- KeyCastr: https://github.com/keycastr/keycastr
