# Trouble with allowUnfreePredicate

**URL:** https://discourse.nixos.org/t/trouble-with-allowunfreepredicate/80610
**Category:** Help
**Created:** [October 17, 2026, 5:40pm UTC](https://discourse.nixos.org/t/trouble-with-allowunfreepredicate/80610 "2026-10-17T17:40:49Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![NotAPotteryMaster](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/n/b782af/32.png) [@NotAPotteryMaster](https://discourse.nixos.org/u/NotAPotteryMaster)
#### Post date: [October 17, 2026, 5:40pm UTC](https://discourse.nixos.org/t/trouble-with-allowunfreepredicate/80610/1 "2026-10-17T17:40:49Z")

</div>

I am trying to install Steam. I have read the [Unfree Software wiki page](https://nixos.wiki/wiki/Unfree_Software) and followed the [Steam nixos wiki](https://wiki.nixos.org/wiki/Steam) about how to install it, but it gives the error `undefined variable '` **`lib`** `'`. I have seen other similar posts but all of them seem to be about troubles with flakes (which I don’t use).

> **Full terminal output**
>
> ```auto
> [francesccs@nixos:/etc/nixos]$ sudo nixos-rebuild switch
> error:
> … while evaluating the attribute 'config'
> at /nix/store/16p5yr3m9p0y7ain2gin15rnnbbh0nyp-nixos-26.05/nixos/lib/modules.nix:402:9:
> 401| options = checked options;
> 402| config = checked (removeAttrs config ["_module"]);
> | ^
> 403| _module = checked (config._module);
> 
> … while calling the 'seq' builtin
> at /nix/store/16p5yr3m9p0y7ain2gin15rnnbbh0nyp-nixos-26.05/nixos/lib/modules.nix:402:18:
> 401| options = checked options;
> 402| config = checked (removeAttrs config ["_module"]);
> | ^
> 403| _module = checked (config._module);
> 
> (stack trace truncated; use '--show-trace' to show the full, detailed trace)
> 
> error: undefined variable 'lib'
> at /etc/nixos/configuration.nix:18:20:
> 17| nixpkgs.config.allowUnfreePredicate = pkg:
> 18| builtins.elem (lib.getName pkg) [
> | ^
> 19| "steam"
> Command 'nix-build '<nixpkgs/nixos>' --attr config.system.build.nixos-rebuild --no-out-link' returned non-zero exit status 1.
> 
> ```

> **configuration.nix**
>
> ```nix
> # Edit this configuration file to define what should be installed on
> # your system. Help is available in the configuration.nix(5) man page
> # and in the NixOS manual (accessible by running ‘nixos-help’).
> 
>  
> 
> { config, pkgs, ... }:
> 
> {
> imports =
> [ # Include the results of the hardware scan.
> ./hardware-configuration.nix
> ];
> 
> nixpkgs.config.allowUnfreePredicate = pkg:
> builtins.elem (lib.getName pkg) [
> "steam"
> "steam-unwrapped"
> ];
> 
> # Bootloader.
> boot.loader.systemd-boot.enable = true;
> boot.loader.efi.canTouchEfiVariables = true;
> boot.kernelParams = ["amdgpu.sg_display=0"];
> 
> networking.hostName = "nixos"; # Define your hostname.
> # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
> 
> # Configure network proxy if necessary
> # networking.proxy.default = "http://user:password@proxy:port/";
> # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
> 
> #nixpkgs.config.allowUnfree = true;
> 
>  
> 
> # Enable networking
> networking.networkmanager.enable = true;
> 
> networking.firewall = {
> allowedTCPPorts = [80 433];
> };
> 
> # Set your time zone.
> time.timeZone = "Europe/Madrid";
> 
> # Select internationalisation properties.
> i18n.defaultLocale = "en_US.UTF-8";
> 
> i18n.extraLocaleSettings = {
> LC_ADDRESS = "es_ES.UTF-8";
> LC_IDENTIFICATION = "es_ES.UTF-8";
> LC_MEASUREMENT = "es_ES.UTF-8";
> LC_MONETARY = "es_ES.UTF-8";
> LC_NAME = "es_ES.UTF-8";
> LC_NUMERIC = "es_ES.UTF-8";
> LC_PAPER = "es_ES.UTF-8";
> LC_TELEPHONE = "es_ES.UTF-8";
> LC_TIME = "es_ES.UTF-8";
> };
> 
> # Enable the X11 windowing system.
> # You can disable this if you're only using the Wayland session.
> services.xserver.enable = true;
> 
> # Enable the KDE Plasma Desktop Environment.
> services.displayManager.sddm.enable = true;
> services.desktopManager.plasma6.enable = true;
> 
> # Configure keymap in X11
> services.xserver.xkb = {
> layout = "es";
> variant = "";
> };
> 
> # Configure console keymap
> console.keyMap = "es";
> 
> # Enable CUPS to print documents.
> services.printing.enable = true;
> #services.printing.drivers = [
> #pkgs.brgenml1cupswrapper
> #pkgs.brgenml1lpr
> #];
> 
> # Enable sound with pipewire.
> services.pulseaudio.enable = false;
> security.rtkit.enable = true;
> services.pipewire = {
> enable = true;
> alsa.enable = true;
> alsa.support32Bit = true;
> pulse.enable = true;
> # If you want to use JACK applications, uncomment this
> #jack.enable = true;
> 
> # use the example session manager (no others are packaged yet so this is enabled by default,
> # no need to redefine it in your config for now)
> #media-session.enable = true;
> };
> 
> # Enable touchpad support (enabled default in most desktopManager).
> # services.xserver.libinput.enable = true;
> 
> # Define a user account. Don't forget to set a password with ‘passwd’.
> users.users.francesccs = {
> isNormalUser = true;
> description = "Hidden for privacy purposes";
> extraGroups = ["networkmanager" "wheel"];
> packages = with pkgs; [
> kdePackages.kate
> kdePackages.kmail
> kdePackages.konqueror
> kdePackages.filelight
> kdePackages.ktorrent
> kdePackages.kruler
> #kdePackages.kamoso
> thunderbird
> ];
> };
> 
> hardware.bluetooth.enable = true;
> 
> # Install firefox.
> programs.firefox.enable = true;
> programs.kdeconnect.enable = true;
> programs.steam.enable = true;
> # List packages installed in system profile. To search, run:
> # $ nix search wget
> 
> nixpkgs.config.permittedInsecurePackages = [
> "electron-39.8.10"
> ];
> 
> environment.systemPackages = with pkgs; [
> # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
> # wget
> brave
> tor-browser
> yt-dlp
> lynx
> 
> vscodium
> git
> lapce
> zed-editor
> neovim
> netbeans
> 
> #nodePackages.nodejs
> rustup
> gcc
> typescript
> python314
> openjdk
> 
> mysql84
> mysql-workbench
> dbeaver-bin
>   
> libreoffice-qt
> dia
> hunspell
> hunspellDicts.es_ES
> 
> texliveFull
> texstudio
> texlivePackages.fontspec
> octaveFull
> 
> kdePackages.kdenlive
> audacity
> 
> fastfetch
> htop
> btop
> fzf
> ripgrep
> # zoxide
> uget
> croc
> linuxquota
> taskwarrior3
> # framework-tool-tui
> yazi
> ranger
> 
> zapzap
> mumble
> dino
> signal-desktop
> 
> logseq
> nextcloud-client
> #appflowy unfree
> digikam
> qownnotes
> joplin-desktop
> 
> vlc
> inkscape
> gimp
> imagemagick
> blender
> godot
> 
> ani-cli
> freetube
> peertube
> 
> mpd
> rmpc
> cava
> gnupg
> pinentry-qt
> paprefs
> qpwgraph
> pavucontrol
> 
> digital
> freecad
> openscad
> kicad
> 
> luanti
> mindustry-wayland
> prismlauncher
> colobot
> the-powder-toy
> #lincity-ng
> 
> kvmtool
> iptables
> gparted
> lm_sensors
> nmap
> distrobox
> 
> cmatrix
> cbonsai
> sl
> ];
> 
> # Some programs need SUID wrappers, can be configured further or are
> # started in user sessions.
> # programs.mtr.enable = true;
> # programs.gnupg.agent = {
> # enable = true;
> # enableSSHSupport = true;
> # };
> 
> # List services that you want to enable:
> 
> # Enable the OpenSSH daemon.
> # services.openssh.enable = true;
> 
> # Open ports in the firewall.
> # networking.firewall.allowedTCPPorts = [...];
> # networking.firewall.allowedUDPPorts = [...];
> # Or disable the firewall altogether.
> # networking.firewall.enable = false;
> 
> # This value determines the NixOS release from which the default
> # settings for stateful data, like file locations and database versions
> # on your system were taken. It‘s perfectly fine and recommended to leave
> # this value at the release version of the first install of this system.
> # Before changing this value read the documentation for this option
> # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
> system.stateVersion = "25.05"; # Did you read the comment?
> 
> }
> 
> ```

I have tried changing `lib` for `nigpkgs` but that gives another error.

Idk if it’s something super obvious that I’m missing but I would really appreciate the help.

---

<div class="post-metadata">

### Author: ![rhendric](https://discourse.nixos.org/user_avatar/discourse.nixos.org/rhendric/32/5699_2.png) [@rhendric](https://discourse.nixos.org/u/rhendric)
#### Post date: [October 17, 2026, 5:44pm UTC](https://discourse.nixos.org/t/trouble-with-allowunfreepredicate/80610/2 "2026-10-17T17:44:25Z")

</div>

> [@NotAPotteryMaster](#):
>
> `{ config, pkgs, ... }:`

Change that to

```auto
{ config, pkgs, lib, ... }:

```

in order to put the `lib` variable in scope.
