impermanence
nix-config
impermanence | nix-config | |
---|---|---|
36 | 5 | |
1,390 | 939 | |
4.0% | 2.4% | |
7.5 | 9.2 | |
3 months ago | 17 days ago | |
Nix | Nix | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
impermanence
-
Xdg-ninja: checking your $HOME for unwanted files and directories
This is a tough problem to solve. I currently use NixOS with impermanence [1] which is one way of solving it. Impermanence, in short, allows you to explicitely opt-in the files and directories that are persisted after each reboot.
So while my `~` is not "clean" in the sense that all my config files are in `~/.config`, it is "clean" in the sense that all files in `~` are there for a reason (i.e., `~` is not polluted by uninstalled packages).
[1] https://github.com/nix-community/impermanence
-
NixOS Is Not Reproducible
Mostly private use, I have 2 servers and a laptop configured with this: https://github.com/matrss/nixfiles. The servers host a bunch of different services from Nextcloud to a DoT-to-ODoH proxy.
I've also introduced some light NixOS usage at work (3 hosts, one is an uptime-kuma instance, two are Forgejo Actions runners). For that I had to get some proprietary scanner software to run on it, which I could by just putting the extracted deb package in an emulated FHS environment.
Even for interfacing with legacy systems and unusual stacks I don't think you will need the escape hatch. Anything that is buildable on and above the abstraction-level of "ensure a file is present at some path with some content" should be doable declaratively, and that includes setting up an unusual software stack and running it in systemd services to communicate with some other legacy system or whatever.
The escape hatch is there to modify how NixOS itself behaves, and modifying that should only be necessary to extend NixOS' core functionality. A quick search revealed that impermanence (https://github.com/nix-community/impermanence) and in some cases sops-nix (https://github.com/Mic92/sops-nix) use it, but those fundamentally extend NixOS with ephemeral root storage support and secrets management, respectively.
-
Ask HN: How to Manage Phones and PCs for Elderly Parents?
You might want to set up NixOS with impermanence, with something like https://github.com/nix-community/impermanence. Install an easy to use desktop environment like ElementaryOS, and configure NixOS with or without Flatpak, if you want to give the user the ability to install new software or not. Then set up automatic updates, automatic garbage collection and you have a truly stable system.
-
Tvix – A New Implementation of Nix
I would not call these projects unbelievable, but they are neat.
- Opt-in state: https://github.com/nix-community/impermanence and https://grahamc.com/blog/erase-your-darlings/
-
Every NixOS rebuild creates a new Tailscale machine
That way will work - I use the impermanence module which works similarly but allows to hide mounts.
-
Silverblue users: why?
This is indeed a blind spot. Thanks for pointing that out! Silverblue -to my knowledge- doesn't do a lot to address this. Though, 3rd-party tools like Home Manager and the suite of applications developed by the folks over at uBlue might be able to limit this to a minimum. Though I'm not sure if it surpasses NixOS in this regard; for the uninitiated. Though, to my knowledge, this requires special attention and depends on the specifics of the NixOS system in question.
-
NixOS for the Impatient
[3]: https://github.com/nix-community/impermanence
- How to add impermanence afterwards?
-
File system choice for Impermanence setup
I have recently stumbled upon Impermanence - modules to help you handle persistent state on systems with ephemeral root storage, and the concept seems quite nice.
-
Erase your darlings: Can this be applied to /home?
I haven't used it yet but nix-community/impermanence has a home-manager module that might be useful.
nix-config
-
Best way to setup Nvim on NixOS?
Power user, gvolpe has a great config that heavily customizes nvim.
-
Adding a Flake to my Config
I forked and customized a fairly advanced Nixos configuration that I can load from a flake on github. (Mine | Original)
-
Host-specific settings (different approaches)
I think gvolpe's nix-config repo is what u/ppen9u1n was referencing. Looks like there might be some good ideas to mine there.
-
Trying to port all official Cardano software to an open architecture and a more elegant Linux distro than Debian (NixOS on Risc-V) and this is the pushback I get.
I've seen this done with flakes by a NixOS power user named gvolpe. He has it configured to automatically setup each of his different systems with Home Manager, a custom UI, etc. His three different build targets are:
-
Nix-GUI: Make NixOS usable for non-technical users through settings / GUI
I think NixOS would benefit from easily accessible collection of opinionated modules/profiles/configurations with minimal set of options. Something like gnome-desktop / sway-desktop / etc. Gnome actually does pretty good job here.
The point is: currently my NixOS and Home Manager configurations have over 2k LOC total. When you search for configurations on GitHub/Google you are likely to find complex ones. For example, quick search for "nixos gnome" (Google) gives me link to NixOS Wiki (which describes only Gnome part) and blog post (https://gvolpe.com/blog/gnome3-on-nixos/) which is useful but links to really huge configuration (https://github.com/gvolpe/nix-config) that is overwhelming to any beginner.
Great example of such approach is nixos-hardware (https://github.com/NixOS/nixos-hardware) which provides one-line configuration covering hardware quirks.
What are some alternatives?
nix-config - Nix configurations
devshell - Per project developer environments
home-manager - Manage a user environment using Nix [maintainer=@rycee] [Moved to: https://github.com/nix-community/home-manager]
.nixpkgs - .nixpkgs aka dotfiles with nix
nixpkgs - My Nix system configs!
rnix-lsp - WIP Language Server for Nix! [maintainer=@aaronjanse]