I think we can be even simpler than that. Don't ask any questions. Simply generate the hardware-configuration.nix and have a single configuration.nix that is unchanged:
- Some easy-to-use and simple DE. I'm thinking something like lxqt or xfce, maybe Pantheon - but that would be more familiar to Mac users than Windows. KDE seems way too complicated to just have it in configuration.nix without touching it, and it can sometimes break on updates.
- Chromium (with pre-installed ublock origin)
- Libreoffice
- Some flatpak store (so that people can install apps without touching
configuration.nix) - Make a simple "update" app that just pops up once in a couple weeks or so, prompts you to click a button and then runs
npins updateandnixos-rebuild boot, and finally annoys you until you reboot (it should also update to the next stable channel when that becomes available, and make that a big deal so that a user understands it might change some of their workflows) - Set up the bootloader so that if a generation "fails" (some script in the autostart of the DE doesn't set a flag somewhere) on the next boot it boots a previous generation, kinda like Android's A/B slot system but better. I don't think systemd-boot allows this sort of thing, but I think it's possible with a GRUB script
- Maybe add a shortcut to open tmate and copy the URL to clipboard, so that you can send it someone in the know and they can help you troubleshoot
- Finally, use impermanence to make sure everything outside
/home,/nix, and wherever flatpak are stored, is wiped on every reboot and recreated from the generation, so that "reboot it" is a viable troubleshooting strategy.