Troubleshooting
The log file
Everything the app does is written to a log file:
- the app:
~/.local/state/drakeflake/drakeflake.log - the tray:
~/.local/state/drakeflake/drakeflake-tray.log
($XDG_STATE_HOME/drakeflake/ when XDG_STATE_HOME is set.)
When a log reaches 5 MiB it is rotated: the older logs are kept as .1, .2
and .3, and the oldest one is dropped. Started from a terminal, the app also
prints its log there.
To get more detail, set Settings → Troubleshooting → Log detail to Debug: every command run (every command the app runs) or Trace: also full command output. Open log and Show folder take you to the file. Passwords you type into the console are never logged.
“No system selected”
The pages show “No system selected” with the reason when the app cannot read your flake or host, for example because the folder does not exist or the flake does not evaluate. Click Open Settings, check System flake: and Host:, and click Use this system.
“The flake does not import the generated file”
Your changes only take effect when your host configuration imports the generated file. Until then the Changes page warns “Your configuration does not import … yet”, and applying stops with “Not rebuilding: the flake does not import …” (Save only still works).
- Open the configuration of your host, for example
configuration.nix. - Add the generated file to its
imports, for exampleimports = [ ./drakeflake.nix ];. The path is relative to the file that contains the import. If the output is a folder with adefault.nix, import the folder. - Save the file. If your flake is a git repository and the generated file is new, make sure git tracks it (the app does this when it writes the file; otherwise click Track in git on the Changes page).
- Open Settings → Setup assistant… and use Check import on the last step to confirm.
If you changed the file layout or the output location, the name of the entry
file may have changed (drakeflake.nix or a folder’s default.nix); the
console tells you which import to use.
“… is not tracked by git, so the flake cannot see it”
Flakes ignore files git does not track. Click Track in git on the Changes
page, or run git add --intent-to-add on the file yourself.
Applying failed
The Console shows the output of the failed build or switch; the last lines usually name the problem. After a failed apply:
- Restore previous file puts the generated file back as it was before the apply.
- Earlier states are on the History page, see History and restoring.
- If the build itself fails, your running system is not changed.
An input was not updated
If the console says “Not updated: … Nix kept its cached version”, Nix could not get the new revision, usually because GitHub’s API rate limit was reached. Wait a while and update again, or give Nix a GitHub access token, see GitHub API rate limit.
The banner “This program is older than its interface files”
The app’s program and its interface files come from different versions, for example after updating while an old build is still started. Pages would call functions the program does not have, so the app shows this banner instead. Start the matching version: after updating the package, rebuild your system and start the app again; if you run it from a checkout, rebuild it there.
Slow first start
The first time, the app builds an option index from your flake, evaluates the
values of the options your files define and indexes packages. This can take a
minute or more; the status bar at the bottom shows what is running.
Afterwards the results are cached in ~/.cache/drakeflake/ and only
the parts that changed are evaluated again.
If the cache looks wrong, use Settings → Rebuild caches.
The status bar may say that some options are skipped because they fail to
evaluate. If many option descriptions fail (often because of the removed
lib.mdDoc), building the index is slow; the Actions page then recommends
fixing them.
The window stays empty or the app does not start
If hardware-accelerated drawing does not work, the app falls back to software
rendering by itself. To force it, start the app with
DRAKEFLAKE_SOFTWARE_RENDERING=1 drakeflake.
Where things are
| What | Where |
|---|---|
| Settings | ~/.config/drakeflake/config.toml |
| Log files | ~/.local/state/drakeflake/*.log |
| Backups of the generated settings | ~/.local/state/drakeflake/backups/ |
| Staged changes | ~/.local/state/drakeflake/staged/ |
| Caches (option and package indexes, tried packages, command index) | ~/.cache/drakeflake/ |
| Tray autostart entry | ~/.config/autostart/drakeflake-tray.desktop |