Nixos configuration using more complex nix apperoaches

I’m not a programmer…

The first signal that you are a programmer is impostor syndrome.
You say you’re not a programmer and are programming (Nix is just a programming language), and you are dealing with git and terminal, on Linux. You are more programmer than average programmer :wink:

How might I use these “specialArgs”?

specialArgs is probability merged with some ‘nonSpecialArgs’ and used and create an attrset like

{ pkgs = nixpkgs; pkgs-unstable = unstable; inputs = inputs, … }

And passed all your config modules.

{ pkgs, pkgs-unstable, inputs, ... }:

{ #then you can use like
  environment.systemPackages = with pkgs; [
    firefox;               # from stable
    git;                   # from stable
    pkgs-unstable.chromium # from unstable
  ];
}

or

{ pkgs, pkgs-unstable, inputs, ... }:
{
  environment.systemPackages = with pkgs-unstable; [
    pkgs.firefox; # from stable
    pkgs.git;     # from stable
    chromium      # from unstable
  ];
}

Question 2:
What about another nixpkgs called unfree :wink: