dotfiles.nix/README.md

64 lines
1.6 KiB
Markdown

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).