Troubleshooting - hxrmonlka/alice GitHub Wiki
Help and fix Alice's weak spots. Each item has a symptom, a cause and a fix.
- Cause: a flake only reads files that git tracks.
- Fix: stage the file before you build.
user $ git add -N path/to/new-file.nix
user $ nh os switchgit add . also works. Use git add -N when you also want git diff to show the new file.
- Symptom: an error that says an attribute is missing, such as
nixosModules.hardwareAmd. - Cause: the comments at the top of
drivers/amd.nix,drivers/nvidia.nixanddrivers/framework/default.nixshowinputs.self.nixosModules.*. That path is old. - Fix: use the real names.
| Module | Name |
|---|---|
| AMD | self.custom.hardwareModules.hardwareAmd |
| Intel | self.custom.hardwareModules.hardwareIntel |
| Nvidia | self.custom.hardwareModules.hardwareNvidia |
| Vulkan | self.custom.hardwareModules.vulkan |
| Framework | self.nixosModules.hardwareFramework |
- Cause: import-tree ignores paths that contain
/_. Alice does not loadmodules/_systems. - Fix: rename the directory without the underscore. Then run
nix flake showto check that the flake still evaluates.
- Symptom: an evaluation error about the same option defined two times.
- Cause: import-tree loads every
.nixfile undermodules. Two files that write the same key, for exampleflake.custom.alice.yazi, collide. - Fix: keep one definition for each key. Search for the name with
grep -rn "alice.yazi" modules.
Some options need others. The module prints a message when you break a rule.
| Module | Rule |
|---|---|
| Intel |
openclNeo needs generation = "xe". |
| Intel |
openclLegacy and hybridCodec need generation = "legacy". |
| Nvidia |
prime.enable needs prime.intelBusId or prime.amdBusId. |
| Vulkan |
defaultDriver = "amdvlk" needs amd.amdvlk = true. |
| Vulkan |
defaultDriver = "nvk" needs nvidia.nvk = true. |
| Framework |
model = "16-amd-ai300-nvidia" needs nvidia.nvidiaBusId and nvidia.amdBusId. |
- Cause:
commonModules.nixSettingssetsnixpkgs.config.allowUnfree = false. The Nvidia module only sets it as a default, sofalsewins. - Fix: override it in the host, as Serpentine and Tanuki do:
nixpkgs.config.allowUnfree = lib.mkForce true;- Cause: some files are hardcoded to
/home/alice. - Fix: see the list of files in Installation.
- Cause: Serpentine sets
programs.nh.flake = "/home/alice/alice". - Fix: clone Alice to that path, or change the path in
modules/hosts/serpentine/settings/programs.nix. You can also pass the path:nh os switch /path/to/alice.
- Cause:
flake.lockpins Lumina to a commit. - Fix: update the pin, then rebuild.
user $ nix flake update lumina
user $ nh os switch- Symptom:
error: source file not found: ~/.config/niri/noctalia.kdl. - Cause:
scripts/install-git-hooks.shsetcore.hooksPathto.githooks. The hook copies the Noctalia Niri file. Your machine does not have it. - Fix: unset the hook path.
user $ git config --unset core.hooksPath- Run
nix developfirst.build-vmexists only inside this shell. - Run
build-vmin the root of the repository. It uses.#nixosConfigurations.<host>.