My dotfiles using Nix. System configuration done using [nix-darwin](https://github.com/LnL7/nix-darwin) and [NixOS](https://nixos.org/). User configuration using [home-manager](https://github.com/nix-community/home-manager). This repo is put together as a flake using [flake-parts](https://github.com/hercules-ci/flake-parts). On NixOS home-manager is used as a NixOS module, on Darwin it is used separately from nix-darwin. dotfiles.nix is inspired by [terlar/nix-config](https://github.com/terlar/nix-config/tree/main), [~rycee/configurations](https://sr.ht/~rycee/configurations/) and [hlissner/dotfiles](https://github.com/hlissner/dotfiles). All Nix code in this repo is formatted using [alejandra](https://github.com/kamadorueda/alejandra). # Usage Show what this flake provides: nix flake show Switch both system (NixOS) and home: nixos-rebuild switch --flake . Switch system (nix-darwin): darwin-rebuild switch --flake . Switch home only (on Darwin): nix run .#home Build home without switching: nix build .#home Update all inputs: nix flake update --commit-lock-file Update a single input: nix flake lock --update-input nixpkgs --commit-lock-file Format all nix files: nix fmt Enter the dev shell (if not using [nix-direnv](https://github.com/nix-community/nix-direnv)): nix develop # Tasks ## TODO Break out emacs config Emacs configuration should be in it's own repository. Lisp code should be extracted into separate files or an org-babel setup. ## TODO Services as modules Services should be converted to modules. These should ideally support both linux and darwin hosts (launchd and systemd).