More than 10 years of Linux experience, 1-2 years experience in professional software development, writing Rust and Elixir.
Regular Arch Linux user.
Nix beginner, less than 6 months of experience. Daily NixOS user, but has difficulties fixing issues in the current installation.
Biggest issues with documentation is that even hot topics are covered sloppily, and hard to discover where one should look for information. Cases in point:
Use flakes or not?
It’s a significant change of how to do things, and the concensus seems to be that this is the way forward, but there is a lot of noise surrounding this. Posts on Tweag blog are very basic, mostly focused on pinning, but not clear how it relates to system configurations.
The prevalent advice for most NixOS user configuration question, but it is not straightforward to use, especially when one never worked with dotfiles in an organized manner before.
What is Nix?
Found Wil T’s videos which clear this up.
Hard to judge what are examples of essential and accidental complexity in the Nix ecosystem.
syncthing does not start automatically. Simply running
syncthing works, but not as a service.
There is now a section in 57.2. systemd in NixOS to help with setting up system and user systemd services.
Goes to Home Manager’s GitHub repo, which has its own configuration module for Syncthing. Follows 3.2. Standalone setup section to set up Home Manager with flakes by using a hand-rolled script
apply-users.sh (based on the instructions in the aforementioned section):
nix build .#homeManagerConfigurations.<user>.activationPackage ./result/activate
home.nix is working.
Figures out how to query the status of systemd user services. One of the services belonging to Syncthing that did not start is
systemctl --user status syncthingtray.service
It shows that it had errored out on something about libraries.
The troubleshooting session stops here to talk about the sources of frustration when it comes to finding a solution to one’s problems:
How to debug an issue, especially if it does not work as documented?
Participant: Tried to iron out configuration issues with
nix repl, but got stuck fast. It would be great if one could debug on one’s own or if there would be a general troubleshooting guide, because my Nix knowledge is not enough to approach this.
People usually ask on the NixOS Discourse or in the chat when they have configuration issues. Knowledge gets scattered all over the place, making relevant examples hard to find, and I haven’t asked about my issue yet.
Interviewer: Why did you not ask on the forum?
Participant: It would help a lot to have guides on how to build a sandbox / container / VM to reproduce the error and/or to produce a minimal example.
What is a recommended directory structure for configuration files? Or is there a template somewhere or a best practice at least?
Some of the found examples use overlays, and it is hard to figure out the rationale behind why they are usually organized the way they are (e.g., split apart from the
default.nixin many cases).
The configurations I’ve seen use many modules; never had a need for custom modules, and not sure what they are for.
Some configuration examples were from people using one repository for multiple systems.
The session ends here.