Personally I haven't. While Linux is imperfect, choosing the right distro makes the rest of the experience straightforward. And with it's whole complexity, I find Linux more user friendly than Windows. Even driver issues, broken shadow file ownership and KDE specifics only made me more confident about my choice to use Linux after I solved everything.

OQB @pixeldaemon@sh.itjust.works

you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 3 months ago* (last edited 3 months ago) (1 child)

you don’t have to! Just install the package
and it will use your ad-hoc dotfiles like it would on any other distro

And changes will last on reboot, y'know with the whole immutable thing?

EDIT: I couldn't find straightforward (to me) info on this even searching for stuff like 'NixOS mutable home', but after the reply to this I tried different terms and found the wiki page on impermanence. Specifically, the persisting+home managing sections:

Some files and folders should be persisted between reboots though (such as /etc/nixos/).
This can be accomplished through bind mounts or by using the NixOS Impermanence module, which will set up bind mounts and links as needed.

and

You can just make a home partition on a drive and mount it as normal, so everything in /home or /home/username will be persisted

However, then files are stored read-only in the Nix store. In order to persist files while still being writable, you can use the Home Manager Impermanence module

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 3 months ago

    Absolutely! I'll give you an example. In the NixOS config for my desktop I have the lines:

    {
      environment.systemPackages = with pkgs; [
        firefox
        ...
      ];
    }
    

    So Firefox is installed every time I build a system with this config. This is just like apt-get install firefox in that very user can use it after installation. The config lives in the respective user's dotfiles (.config/mozilla/firefox) and will of course survive reboots.

    What I chose to do additionally (but this is in no way required!) is a home-manager config for my main account with the lines:

    {
      programs.firefox = {
        enable = true;
        policies = {
          DisableFirefoxAccounts = true;
          DisablePocket = true;
          DisableTelemetry = true;
          DownloadDirectory = "${config.home.homeDirectory}/tmp";
          OfferToSaveLogins = false;
          ...
      }
      ...
    }
    

    This is a declarative configuration that basically handles my dotfiles (profiles, extensions, themes, ...) for me. I think you have the impression that this is mandatory, but it is really a very specific behavior through the home-manager module, but you can absolutely run NixOS without it.

  • source
  • parent