125
submitted 3 days ago by [email protected] to c/[email protected]

McMahon reaction meme depicting increasing satisfaction. Descriptions read as follows:

  1. "You discover a new app"
  2. "It's in Nixpkgs"
  3. "It has a NixOS module"
  4. "It has a Home Manager module"
  5. "It has a Stylix module which makes it look awesome"
top 19 comments
sorted by: hot top new old
[-] [email protected] 23 points 3 days ago

I don't understand a thing.

[-] [email protected] 20 points 3 days ago

In Germany we would say "verstehe nix"

[-] [email protected] 6 points 3 days ago
[-] [email protected] 5 points 3 days ago
[-] [email protected] 4 points 3 days ago
[-] [email protected] 2 points 2 days ago

And in dutch we would say "ik begrijp er niks van"

[-] [email protected] 15 points 3 days ago* (last edited 2 days ago)

Just to clarify for everyone else:

  • Nixpkgs is the equivalent of a core distro repository for NixOS. Instead of Core + Extra + Multilib + AUR on Arch, we just have Nixpkgs that has everything
  • A Nix "module" is essentially an app with pre-packaged declarable options. So rather than just installing something as is, you can use its options to declare how you want it installed. I can get firefox, with a package definition for firefox-nightly, and also tell it which addons I want bundled, for example. 99% of the time, this is the preferred way to do things.
  • Home-Manager is a third-party Nix module, that lets you declare stuff in ~/. Very convenient for shells, browsers, and whatever else you want in there. Let’s say you want to have a specific shell, with a specific ssh signing key, and whatever prompt you like. The home-manager daemon would build it for you with a new system evaluation.
  • Stylix is another third-party Nix module. For supported things, it will style your apps with the preferences you've defined. Handy if you want a uniform look and feel for the things you use
[-] [email protected] 5 points 3 days ago

You use the word "declare" a lot. I am not sure, but in Nix I declare the desired state of installed packages and configurations in an obscure language and the package manger takes care of that, right?
Now the module declare reasonable default configurations? Like http server starts on system start and serves on port 80?
Now you lost me at the Home-Manger. I can declare stuff in my home folder. OK, so for user-wide configuration? For packages and configuration in the user space? Or what?

[-] [email protected] 5 points 3 days ago
  1. Yes.
  2. Yes, and if you want custom configuration, you can include your configuration in-line in the same file that installs the http server and sets up systemd for it. Or you can even write your own module that drops configuration files in the same file.
  3. Home-manager modules are modules that run stuff exclusively in ~, doing things like configuring browsers or dotfiles. As opposed to NixOS modules which configure system-level daemons.
[-] [email protected] 2 points 2 days ago

I am not sure, but in Nix I declare the desired state of installed packages and configurations in an obscure language and the package manger takes care of that, right?

The package manager is only one (very important) component of the system that applies your configuration, but otherwise this is a good description, yeah.

Now the module declare reasonable default configurations? Like http server starts on system start and serves on port 80?

Obviously, it depends on each individual module, but so far, I've mostly been fine with the defaults. Typically, it doesn't modify the configuration, unless you explicitly specify a configuration value, therefore using the defaults that the software normally uses.

Now you lost me at the Home-Manger. I can declare stuff in my home folder. OK, so for user-wide configuration? For packages and configuration in the user space? Or what?

It's for user-wide configuration, so what would generally be stored in dotfiles. For example, you can configure the search engines in Firefox. Or the panel layout in KDE.

Home-Manager can also install packages, which is useful, because it can also be used standalone on other distributions. And in particular, you usually want to declare that a package should be installed and what user configuration it should use, all in one place...

[-] [email protected] 8 points 3 days ago

Someday I'm gonna check out NixOS

[-] [email protected] 5 points 2 days ago

While i like NixOS as an entire OS as well, at the moment i'm experimenting with just using nix + home manager on top of whatever distro i want, and i just had the realization that in the rare case that a package is not in nixpkgs, if you make your own derivation for it to build it from source, you can take that with you anywhere as well and don't have to make another package for different distros you might be running. Pretty cool.

[-] [email protected] 9 points 3 days ago

confused Guix noises

[-] [email protected] 7 points 3 days ago

The home manager documentation bothers me a lot

[-] [email protected] 8 points 3 days ago

Usually, https://home-manager-options.extranix.com/ is all I need. For the inital setup there are plenty of blog posts and wiki articles.

[-] [email protected] 2 points 3 days ago

Ah cool, I'll check it out.

[-] [email protected] 1 points 2 days ago

Yeah that's what i use now too. The official home manager page kinda sucks purely because it has no search function. You're scrolling forever until you finally find what you're looking for lol.

[-] [email protected] 17 points 3 days ago

I've been maining Linux for a decade and I'm completely lost. I think I need to catch up

[-] [email protected] 12 points 3 days ago

Don't worry, nothing about Linux was spoken here.

this post was submitted on 10 Jul 2025
125 points (97.0% liked)

linuxmemes

26209 readers
832 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack users for any reason. This includes using blanket terms, like "every user of thing".
  • Don't get baited into back-and-forth insults. We are not animals.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn, no politics, no trolling or ragebaiting.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, <loves/tolerates/hates> systemd, and wants to interject for a moment. You can stop now.
  • 5. 🇬🇧 Language/язык/Sprache
  • This is primarily an English-speaking community. 🇬🇧🇦🇺🇺🇸
  • Comments written in other languages are allowed.
  • The substance of a post should be comprehensible for people who only speak English.
  • Titles and post bodies written in other languages will be allowed, but only as long as the above rule is observed.
  • 6. (NEW!) Regarding public figuresWe all have our opinions, and certain public figures can be divisive. Keep in mind that this is a community for memes and light-hearted fun, not for airing grievances or leveling accusations.
  • Keep discussions polite and free of disparagement.
  • We are never in possession of all of the facts. Defamatory comments will not be tolerated.
  • Discussions that get too heated will be locked and offending comments removed.
  •  

    Please report posts and comments that break these rules!


    Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.

    founded 2 years ago
    MODERATORS