Personal NixOS and macOS (nix-darwin) configuration. Most of the config files work on other distros too.
Primary remote is Codeberg (axseem/dots); GitHub mirror: axseem/dots.
hosts/: Host-specific configurationsdarwin/: macOS hosts (e.g.,macbook)nixos/: NixOS hosts (e.g.,ideapad)
modules/: Modules composed into the hosts; each host imports whole directories throughnix/import-tree.nixcommon/: Shared modules for both NixOS and Darwin (fonts, nix settings)darwin/: macOS-specific modules (homebrew, system)nixos/: NixOS-specific modules (desktop, hardware, security, services, system)home/: Home Manager modulescommon/: Cross-platform (cli, fish, git, opencode, tmux)linux/: Linux-specific (anyrun menus, apps, desktop-utils, media, ui, xdg)
config/: Dotfiles symlinked via Home Manager (fish, foot, ghostty, hypr, imv, swaylock)nix/: Dev tooling and shared Nix code (dev.nix,import-tree.nix,overlay.nix, Lua runtime)
Enter the repository environment explicitly with nix develop. The repository
does not use .envrc because direnv evaluates that file with Bash.
mk fmt # format Nix files (alejandra)
mk check # pre-commit + Lua automation checks
mk --list # every taskmk is the task runner (axseem.task, installed by this repo); Taskfile.lua
declares the tasks as argv values, so no shell is involved.
The flake publishes only the host configurations and dev tooling; the modules are internal and are not a reusable module API.
git clone https://codeberg.org/axseem/dots.git
cd dots
sudo nixos-rebuild switch --flake .#ideapadgit clone https://codeberg.org/axseem/dots.git
cd dots
darwin-rebuild switch --flake .#macbook