{"owner":"NixOS","repo":"nixpkgs","hasSkills":true,"totalSkillsCount":61,"totalTokensCount":23383,"categories":["anthropic-skill","plugin-manifest"],"hasMcp":false,"mcpConfig":null,"found":["doc/packages/cataclysm-dda.section.md","doc/packages/citrix.section.md","doc/packages/build-support.md","doc/packages/darwin-builder.section.md","doc/packages/dlib.section.md","doc/packages/elm.section.md","doc/packages/emacs.section.md","doc/packages/firefox.section.md","doc/packages/friction-graphics.section.md","doc/packages/etc-files.section.md","doc/packages/eclipse.section.md","doc/packages/fish.section.md","doc/packages/fuse.section.md","doc/packages/geant4.section.md","doc/packages/ibus.section.md","doc/packages/index.md","doc/packages/inkscape.section.md","doc/packages/kakoune.section.md","doc/packages/krita.section.md","doc/packages/lhapdf.section.md","doc/packages/linux.section.md","doc/packages/locales.section.md","doc/packages/nginx.section.md","doc/packages/nrfutil.section.md","doc/packages/opengl.section.md","doc/packages/packer.section.md","doc/packages/python-tree-sitter.section.md","doc/packages/shell-helpers.section.md","doc/packages/steam.section.md","doc/packages/treefmt.section.md","doc/packages/urxvt.section.md","doc/packages/uv.section.md","doc/packages/vcpkg.section.md","doc/packages/weechat.section.md","pkgs/build-support/dev-shell-tools/README.md","pkgs/by-name/li/libretroPackages/README.md","pkgs/desktops/gnome/extensions/README.md","pkgs/desktops/gnome/extensions/collisions.json","pkgs/desktops/gnome/extensions/extensions.json","pkgs/development/cuda-modules/packages/README.md","pkgs/applications/editors/kakoune/plugins/deprecated.json","pkgs/applications/editors/vim/plugins/deprecated.json","pkgs/applications/editors/vim/plugins/readme.md","pkgs/applications/editors/vscode/extensions/README.md","pkgs/by-name/ma/maubot/plugins/generated.json","pkgs/by-name/na/navidrome/plugins/README.md","pkgs/development/compilers/elm/packages/README.md","pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/package-activation-events.json","pkgs/by-name/ga/gauge/plugins/dotnet/data.json","pkgs/by-name/ga/gauge/plugins/go/data.json","pkgs/by-name/ga/gauge/plugins/html-report/data.json","pkgs/by-name/ga/gauge/plugins/java/data.json","pkgs/by-name/ga/gauge/plugins/ruby/data.json","pkgs/by-name/ga/gauge/plugins/screenshot/data.json","pkgs/by-name/ga/gauge/plugins/xml-report/data.json","pkgs/development/compilers/elm/packages/elm-test-rs/elm-srcs.json","pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml","pkgs/applications/editors/vim/plugins/non-generated/vim2nix/src/addon-info.json","pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/Chart.yaml","pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/templates/configmap.yaml","pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/tests/configmap_test.yaml"],"skills":{"doc/packages/cataclysm-dda.section.md":"# Cataclysm: Dark Days Ahead {#cataclysm-dark-days-ahead}\n\n## How to install Cataclysm DDA {#how-to-install-cataclysm-dda}\n\nTo install the latest stable release of Cataclysm DDA to your profile, execute\n`nix-env -f \"<nixpkgs>\" -iA cataclysm-dda`. For the curses build (build\nwithout tiles), install `cataclysmDDA.stable.curses`. Note: `cataclysm-dda` is\nan alias to `cataclysmDDA.stable.tiles`.\n\nIf you like access to a development build of your favorite git revision,\noverride `cataclysm-dda-git` (or `cataclysmDDA.git.curses` if you like the curses\nbuild):\n\n```nix\ncataclysm-dda-git.override {\n  version = \"YYYY-MM-DD\";\n  rev = \"YOUR_FAVORITE_REVISION\";\n  sha256 = \"CHECKSUM_OF_THE_REVISION\";\n}\n```\n\nThe sha256 checksum can be obtained by\n\n```sh\nnix-prefetch-url --unpack \"https://github.com/CleverRaven/Cataclysm-DDA/archive/${YOUR_FAVORITE_REVISION}.tar.gz\"\n```\n\nThe default configuration directory is `~/.cataclysm-dda`. If you prefer\n`$XDG_CONFIG_HOME/cataclysm-dda`, override the derivation:\n\n```nix\ncataclysm-dda.override { useXdgDir = true; }\n```\n\n## Important note for overriding packages {#important-note-for-overriding-packages}\n\nAfter applying `overrideAttrs`, you need to fix `passthru.pkgs` and\n`passthru.withMods` attributes either manually or by using `attachPkgs`:\n\n```nix\nlet\n  # You enabled parallel building.\n  myCDDA = cataclysm-dda-git.overrideAttrs (_: {\n    enableParallelBuilding = true;\n  });\n\n  # Unfortunately, this refers to the package before overriding and\n  # parallel building is still disabled.\n  badExample = myCDDA.withMods (_: [ ]);\n\n  inherit (cataclysmDDA) attachPkgs pkgs wrapCDDA;\n\n  # You can fix it by hand\n  goodExample1 = myCDDA.overrideAttrs (old: {\n    passthru = old.passthru // {\n      pkgs = pkgs.override { build = goodExample1; };\n      withMods = wrapCDDA goodExample1;\n    };\n  });\n\n  # or by using a helper function `attachPkgs`.\n  goodExample2 = attachPkgs pkgs myCDDA;\n\n  # badExample                     # parallel building disabled\n  # goodExample1.withMods (_: [])  # parallel building enabled\nin\ngoodExample2.withMods (_: [ ]) # parallel building enabled\n```\n\n## Customizing with mods {#customizing-with-mods}\n\nTo install Cataclysm DDA with mods of your choice, you can use `withMods`\nattribute:\n\n```nix\ncataclysm-dda.withMods (mods: with mods; [ tileset.UndeadPeople ])\n```\n\nAll mods, soundpacks, and tilesets available in nixpkgs are found in\n`cataclysmDDA.pkgs`.\n\nHere is an example to modify existing mods and/or add more mods not available\nin nixpkgs:\n\n```nix\nlet\n  customMods =\n    self: super:\n    lib.recursiveUpdate super {\n      # Modify existing mod\n      tileset.UndeadPeople = super.tileset.UndeadPeople.overrideAttrs (old: {\n        # If you like to apply a patch to the tileset for example\n        patches = [ ./path/to/your.patch ];\n      });\n\n      # Add another mod\n      mod.Awesome = cataclysmDDA.buildMod {\n        modName = \"Awesome\";\n        version = \"0.x\";\n        src = fetchFromGitHub {\n          owner = \"Someone\";\n          repo = \"AwesomeMod\";\n          rev = \"...\";\n          hash = \"...\";\n        };\n        # Path to be installed in the unpacked source (default: \".\")\n        modRoot = \"contents/under/this/path/will/be/installed\";\n      };\n\n      # Add another soundpack\n      soundpack.Fantastic = cataclysmDDA.buildSoundPack {\n        # ditto\n      };\n\n      # Add another tileset\n      tileset.SuperDuper = cataclysmDDA.buildTileSet {\n        # ditto\n      };\n    };\nin\ncataclysm-dda.withMods (\n  mods: with mods.extend customMods; [\n    tileset.UndeadPeople\n    mod.Awesome\n    soundpack.Fantastic\n    tileset.SuperDuper\n  ]\n)\n```\n","doc/packages/citrix.section.md":"# Citrix Workspace {#sec-citrix}\n\nThe [Citrix Workspace App](https://www.citrix.com/products/workspace-app/) is a remote desktop viewer which provides access to [XenDesktop](https://www.citrix.com/products/xenapp-xendesktop/) installations.\n\n## Basic usage {#sec-citrix-base}\n\nThe tarball archive needs to be downloaded manually, as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store, the package can be built and installed with Nix.\n\nThe package includes the `ctxcwalogd.service` user unit required by Citrix's logging tools.\nTo enable it on NixOS:\n\n```nix\n{\n  systemd.packages = [ pkgs.citrix-workspace ];\n  systemd.user.services.ctxcwalogd.wantedBy = [ \"default.target\" ];\n}\n```\n\nFor FUSE-based file transfer, enable the privileged helper on NixOS:\n\n```nix\n{\n  programs.fuse.enable = true;\n}\n```\n\nThe package uses `/run/wrappers/bin/fusermount3` when it is available.\n\n## Citrix Self-service {#sec-citrix-selfservice}\n\nThe [self-service](https://support.citrix.com/article/CTX200337) is an application for managing Citrix desktops and applications. Please note that this feature only works with at least `citrix_workspace_20_06_0` and later versions.\n\nTo set this up, you first have to [download the `.cr` file from the Netscaler Gateway](https://its.uiowa.edu/support/article/102186). After that, you can configure the `selfservice` like this:\n\n```ShellSession\n$ storebrowse -C ~/Downloads/receiverconfig.cr\n$ selfservice\n```\n\n## Custom certificates {#sec-citrix-custom-certs}\n\nThe `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However, several companies using Citrix might require their own corporate certificate. On distros with imperative packaging, these certs can be stored easily in [`$ICAROOT`](https://citrix.github.io/receiver-for-linux-command-reference/), however, this directory is a store path in `nixpkgs`. To work around this issue, the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`:\n\n```nix\nwith import <nixpkgs> { config.allowUnfree = true; };\nlet\n  extraCerts = [\n    ./custom-cert-1.pem\n    ./custom-cert-2.pem # ...\n  ];\nin\ncitrix_workspace.override { inherit extraCerts; }\n```\n","doc/packages/build-support.md":"# Build Support {#sec-build-support}\n\n## `pkgs.substitute` {#pkgs-substitute}\n\n`pkgs.substitute` is a wrapper around [the `substitute` Bash function](#fun-substitute) in the standard environment.\nIt replaces strings in `src` as specified by the `substitutions` argument.\n\n\n:::{.example #ex-pkgs-substitute}\n# Usage of `pkgs.substitute`\n\nIn a build script, the line:\n\n```bash\nsubstitute $infile $outfile --replace-fail @foo@ ${lib.getExe foopkg}\n```\n\nis equivalent to:\n\n```nix\n{\n  lib,\n  substitute,\n  foopkg,\n}:\nsubstitute {\n  src = ./sourcefile.txt;\n  substitutions = [\n    \"--replace\"\n    \"@foo@\"\n    (lib.getExe foopkg)\n  ];\n}\n```\n:::\n\n## `pkgs.replaceVars` {#pkgs-replacevars}\n\n`pkgs.replaceVars <src> <replacements>` replaces all instances of `@varName@` (`@`s included) in file `src` with the respective value in the attribute set `replacements`.\n\n:::{.example #ex-pkgs-replace-vars}\n# Usage of `pkgs.replaceVars`\n\nIf `say-goodbye.sh` contains the following:\n\n```bash\n#! @bash@/bin/bash\n\necho @unchanged@\n@hello@/bin/hello --greeting @greeting@\n```\n\nthe following derivation will make substitutions to `@bash@`, `@hello@`, and `@greeting@`:\n\n```nix\n{\n  replaceVars,\n  bash,\n  hello,\n}:\nreplaceVars ./say-goodbye.sh {\n  inherit bash hello;\n  greeting = \"goodbye\";\n  unchanged = null;\n}\n```\n\nsuch that `$out` will result in something like the following:\n\n```\n#! /nix/store/s30jrpgav677fpc9yvkqsib70xfmx7xi-bash-5.2p26/bin/bash\n\necho @unchanged@\n/nix/store/566f5isbvw014h7knmzmxa5l6hshx43k-hello-2.12.1/bin/hello --greeting goodbye\n```\n\nNote that, in contrast to the old `substituteAll`, `unchanged = null` must explicitly be set.\nAny unreferenced `@...@` pattern in the source file will throw an error.\n:::\n\n## `pkgs.replaceVarsWith` {#pkgs-replacevarswith}\n\n`pkgs.replaceVarsWith` works the same way as [pkgs.replaceVars](#pkgs-replacevars), but additionally allows more options.\n\n:::{.example #ex-pkgs-replace-vars-with}\n# Usage of `pkgs.replaceVarsWith`\n\nWith the example file `say-goodbye.sh`, consider:\n\n```nix\n{ replaceVarsWith }:\nreplaceVarsWith {\n  src = ./say-goodbye.sh;\n\n  replacements = {\n    inherit bash hello;\n    greeting = \"goodbye\";\n    unchanged = null;\n  };\n\n  name = \"say-goodbye\";\n  dir = \"bin\";\n  isExecutable = true;\n  meta.mainProgram = \"say-goodbye\";\n}\n```\n\nThis will make the resulting file executable, put it in `bin/say-goodbye` and set `meta` attributes respectively.\n:::\n","doc/packages/darwin-builder.section.md":"# darwin.linux-builder {#sec-darwin-builder}\n\n:::{.warning}\nBy default, `darwin.linux-builder` uses a publicly-known private SSH **host key** (this is different from the SSH key used by the user that connects to the builder).\n\nGiven the intended use case for it (a Linux builder that runs **on the same machine**), this shouldn't be an issue.\nHowever, if you plan to deviate from this use case in any way (e.g. by exposing this builder to remote machines), you should understand the security implications of doing so and take any appropriate measures.\n:::\n\n`darwin.linux-builder` provides a way to bootstrap a Linux remote builder on a macOS machine.\n\nThis requires macOS version 12.4 or later.\n\nThe remote builder runs on host port 31022 by default.\nYou can change it by overriding `virtualisation.darwin-builder.hostPort`.\nSee the [example](#sec-darwin-builder-example-flake).\n\nYou will also need to be a trusted user for your Nix installation.  In other\nwords, your `/etc/nix/nix.conf` should have something like:\n\n```\nextra-trusted-users = <your username goes here>\n```\n\nTo launch the remote builder, run the following flake:\n\n```ShellSession\n$ nix run nixpkgs#darwin.linux-builder\n```\n\nThat will prompt you to enter your `sudo` password:\n\n```\n+ sudo --reset-timestamp /nix/store/…-install-credentials.sh ./keys\nPassword:\n```\n\n… so that it can install a private key used to `ssh` into the build server.\nAfter that the script will launch the virtual machine and automatically log you\nin as the `builder` user:\n\n```\n<<< Welcome to NixOS 22.11.20220901.1bd8d11 (aarch64) - ttyAMA0 >>>\n\nRun 'nixos-help' for the NixOS manual.\n\nnixos login: builder (automatic login)\n\n\n[builder@nixos:~]$\n```\n\n> Note: When you need to stop the VM, run `shutdown now` as the `builder` user.\n\nTo delegate builds to the remote builder, add the following options to your\n`nix.conf` file:\n\n```\n# - Replace ${ARCH} with either aarch64 or x86_64 to match your host machine\n# - Replace ${MAX_JOBS} with the maximum number of builds (pick 4 if you're not sure)\nbuilders = ssh-ng://builder@linux-builder ${ARCH}-linux /etc/nix/builder_ed25519 ${MAX_JOBS} - - - c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUpCV2N4Yi9CbGFxdDFhdU90RStGOFFVV3JVb3RpQzVxQkorVXVFV2RWQ2Igcm9vdEBuaXhvcwo=\n\n# Not strictly necessary, but this will reduce your disk utilization\nbuilders-use-substitutes = true\n```\n\nTo allow Nix to connect to the default remote builder, which does not run on port 22, you will also need to create a new file at `/etc/ssh/ssh_config.d/100-linux-builder.conf`:\n\n```\nHost linux-builder\n  Hostname localhost\n  HostKeyAlias linux-builder\n  Port 31022\n  User builder\n  IdentityFile /etc/nix/builder_ed25519\n```\n\n… and then restart your Nix daemon to apply the change:\n\n```ShellSession\n$ sudo launchctl kickstart -k system/org.nixos.nix-daemon\n```\n\nNote that if the builder is running and you have created the above ssh conf file, you can ssh into the builder with `sudo ssh builder@linux-builder`.\n\n## Using the Virtualization.framework backend {#sec-darwin-builder-vz}\n\n`darwin.linux-builder-vz` is a variant of `darwin.linux-builder` that runs the same\nNixOS guest on Apple's Virtualization.framework (via `pkgs.vzvm`) instead of QEMU.\nInstead of emulating x86_64, it exposes Rosetta to the guest, so `x86_64-linux`\nbuilds are translated rather than emulated, which is substantially faster. It\nrequires an Apple silicon host (`aarch64-darwin`) running macOS 13 or newer, with\nRosetta installed:\n\n```ShellSession\n$ softwareupdate --install-rosetta --agree-to-license\n```\n\nThe builder refuses to start when Rosetta is missing, rather than silently dropping\n`x86_64-linux` support; set `virtualisation.vz.rosetta.enable = false` to run\nwithout it.\n\nIt is a drop-in replacement: it listens on the same host port (31022) and presents\nthe same host key as the QEMU builder, so the `nix.conf` and SSH configuration\ndescribed above apply unchanged; only the transport behind the port changes, from\nTCP forwarding to vsock. Since a single builder VM handles both architectures\nthrough Rosetta, list both systems in your `builders` entry\n(`aarch64-linux,x86_64-linux`), or with nix-darwin:\n\n```nix\n{\n  nix.linux-builder = {\n    enable = true;\n    package = pkgs.darwin.linux-builder-vz;\n    systems = [\n      \"aarch64-linux\"\n      \"x86_64-linux\"\n    ];\n  };\n}\n```\n\nWhen switching an existing QEMU builder over, delete its data disk first (e.g.\n`sudo rm /var/lib/linux-builder/nixos.qcow2`): the vz builder reuses the file name\nbut writes a raw image, and refuses to misread a genuine qcow2 left behind.\n\nThe guest console goes to the macOS unified log by default; read it with:\n\n```ShellSession\n$ /usr/bin/log show --last 5m --predicate 'subsystem == \"systems.applicative.vzvm\"'\n```\n\nThe `virtualisation.vz.*` NixOS options configure the backend further, e.g.\n`virtualisation.vz.nestedVirtualization` gives the guest a working `/dev/kvm` for\nrunning NixOS integration tests on the builder (macOS 15+, M3 or newer).\n\n## Example flake usage {#sec-darwin-builder-example-flake}\n\n```nix\n{\n  inputs = {\n    nixpkgs.url = \"https://channels.nixos.org/nixpkgs-26.05-darwin/nixexprs.tar.zst\";\n    darwin.url = \"github:nix-darwin/nix-darwin/master\";\n    darwin.inputs.nixpkgs.follows = \"nixpkgs\";\n  };\n\n  outputs =\n    {\n      self,\n      darwin,\n      nixpkgs,\n      ...\n    }@inputs:\n    let\n\n      inherit (darwin.lib) darwinSystem;\n      system = \"aarch64-darwin\";\n      pkgs = nixpkgs.legacyPackages.\"${system}\";\n      linuxSystem = builtins.replaceStrings [ \"darwin\" ] [ \"linux\" ] system;\n\n      darwin-builder = nixpkgs.lib.nixosSystem {\n        system = linuxSystem;\n        modules = [\n          \"${nixpkgs}/nixos/modules/profiles/nix-builder-vm.nix\"\n          {\n            virtualisation = {\n              host.pkgs = pkgs;\n              darwin-builder.workingDirectory = \"/var/lib/darwin-builder\";\n              darwin-builder.hostPort = 22;\n            };\n          }\n        ];\n      };\n    in\n    {\n\n      darwinConfigurations = {\n        machine1 = darwinSystem {\n          inherit system;\n          modules = [\n            {\n              nix.distributedBuilds = true;\n              nix.buildMachines = [\n                {\n                  hostName = \"localhost\";\n                  sshUser = \"builder\";\n                  sshKey = \"/etc/nix/builder_ed25519\";\n                  system = linuxSystem;\n                  maxJobs = 4;\n                  supportedFeatures = [\n                    \"kvm\"\n                    \"benchmark\"\n                    \"big-parallel\"\n                  ];\n                }\n              ];\n\n              launchd.daemons.darwin-builder = {\n                command = nixpkgs.lib.getExe darwin-builder.config.system.build.macos-builder-installer;\n                serviceConfig = {\n                  KeepAlive = true;\n                  RunAtLoad = true;\n                  StandardOutPath = \"/var/log/darwin-builder.log\";\n                  StandardErrorPath = \"/var/log/darwin-builder.log\";\n                };\n              };\n            }\n          ];\n        };\n      };\n\n    };\n}\n```\n\n## Reconfiguring the remote builder {#sec-darwin-builder-reconfiguring}\n\nInitially you should not change the remote builder configuration else you will not be\nable to use the binary cache. However, after you have the remote builder running locally\nyou may use it to build a modified remote builder with additional storage or memory.\n\nTo do this, you just need to set the `virtualisation.darwin-builder.*` parameters as\nin the example below and rebuild.\n\n```nix\n{\n  darwin-builder = nixpkgs.lib.nixosSystem {\n    system = linuxSystem;\n    modules = [\n      \"${nixpkgs}/nixos/modules/profiles/nix-builder-vm.nix\"\n      {\n        virtualisation.host.pkgs = pkgs;\n        virtualisation.darwin-builder.diskSize = 5120;\n        virtualisation.darwin-builder.memorySize = 1024;\n        virtualisation.darwin-builder.hostPort = 33022;\n        virtualisation.darwin-builder.workingDirectory = \"/var/lib/darwin-builder\";\n      }\n    ];\n  };\n}\n```\n\nYou may make any other changes to your VM in this attribute set. For example,\nyou could enable Docker or X11 forwarding to your Darwin host.\n\n## Troubleshooting the generated configuration {#sec-darwin-builder-troubleshoot}\n\nThe `linux-builder` package exposes the attributes `nixosConfig` and `nixosOptions` that allow you to inspect the generated NixOS configuration in the `nix repl`. For example:\n\n```\n$ nix repl --file ~/src/nixpkgs --argstr system aarch64-darwin\n\nnix-repl> darwin.linux-builder.nixosConfig.nix.package\n«derivation /nix/store/...-nix-2.17.0.drv»\n\nnix-repl> :p darwin.linux-builder.nixosOptions.virtualisation.memorySize.definitionsWithLocations\n[ { file = \"/home/user/src/nixpkgs/nixos/modules/profiles/nix-builder-vm.nix\"; value = 3072; } ]\n\n```\n","doc/packages/dlib.section.md":"# DLib {#dlib}\n\n[DLib](http://dlib.net/) is a modern, C++\\-based toolkit which provides several machine learning algorithms.\n\n## Compiling without AVX support {#compiling-without-avx-support}\n\nEspecially older CPUs don't support [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms.\n\nOn the affected hardware, errors like `Illegal instruction` will occur. In those cases, AVX support needs to be disabled:\n\n```nix\nself: super: { dlib = super.dlib.override { avxSupport = false; }; }\n```\n","doc/packages/elm.section.md":"# Elm {#sec-elm}\n\nTo start a development environment, run:\n\n```ShellSession\nnix-shell -p elmPackages.elm elmPackages.elm-format\n```\n\nTo update the Elm compiler, see `nixpkgs/pkgs/development/compilers/elm/README.md`.\n\nTo package Elm applications, [read about elm2nix](https://github.com/hercules-ci/elm2nix#elm2nix).\n","doc/packages/emacs.section.md":"# Emacs {#sec-emacs}\n\n## Configuring Emacs {#sec-emacs-config}\n\nThe Emacs package comes with some extra helpers to make it easier to configure. `emacs.pkgs.withPackages` manages packages from ELPA. This means that you will not have to install those packages from within Emacs. For instance, if you wanted to use `company`, `counsel`, `flycheck`, `ivy`, `magit`, `projectile`, and `use-package`, you could use this as a `~/.config/nixpkgs/config.nix` override:\n\n```nix\n{\n  packageOverrides =\n    pkgs: with pkgs; {\n      myEmacs = emacs.pkgs.withPackages (\n        epkgs:\n        (with epkgs.melpaStablePackages; [\n          company\n          counsel\n          flycheck\n          ivy\n          magit\n          projectile\n          use-package\n        ])\n      );\n    };\n}\n```\n\nYou can install it like any other package via `nix-env -iA myEmacs`. However, this will only install those packages. It will not `configure` them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provides a `default.el` file in `/share/emacs/site-start/`. Emacs knows to load this file automatically when it starts.  Similarly, for `early-init.el`, you can create a package that provides an `early-default.el` file in `/share/emacs/site-start/`.\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEmacsConfig = pkgs.writeText \"default.el\" ''\n      (eval-when-compile\n        (require 'use-package))\n\n      ;; load some packages\n\n      (use-package company\n        :bind (\"<C-tab>\" . company-complete)\n        :diminish company-mode\n        :commands (company-mode global-company-mode)\n        :defer 1\n        :config\n        (global-company-mode))\n\n      (use-package counsel\n        :commands (counsel-descbinds)\n        :bind (([remap execute-extended-command] . counsel-M-x)\n               (\"C-x C-f\" . counsel-find-file)\n               (\"C-c g\" . counsel-git)\n               (\"C-c j\" . counsel-git-grep)\n               (\"C-c k\" . counsel-ag)\n               (\"C-x l\" . counsel-locate)\n               (\"M-y\" . counsel-yank-pop)))\n\n      (use-package flycheck\n        :defer 2\n        :config (global-flycheck-mode))\n\n      (use-package ivy\n        :defer 1\n        :bind ((\"C-c C-r\" . ivy-resume)\n               (\"C-x C-b\" . ivy-switch-buffer)\n               :map ivy-minibuffer-map\n               (\"C-j\" . ivy-call))\n        :diminish ivy-mode\n        :commands ivy-mode\n        :config\n        (ivy-mode 1))\n\n      (use-package magit\n        :defer\n        :if (executable-find \"git\")\n        :bind ((\"C-x g\" . magit-status)\n               (\"C-x G\" . magit-dispatch-popup))\n        :init\n        (setq magit-completing-read-function 'ivy-completing-read))\n\n      (use-package projectile\n        :commands projectile-mode\n        :bind-keymap (\"C-c p\" . projectile-command-map)\n        :defer 5\n        :config\n        (projectile-global-mode))\n    '';\n\n    myEmacs = emacs.pkgs.withPackages (\n      epkgs:\n      (with epkgs.melpaStablePackages; [\n        (runCommand \"default.el\" { } ''\n          mkdir -p $out/share/emacs/site-lisp\n          cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el\n        '')\n        company\n        counsel\n        flycheck\n        ivy\n        magit\n        projectile\n        use-package\n      ])\n    );\n  };\n}\n```\n\nThis provides a fairly full Emacs start file. It will load in addition to the user's personal config. You can always disable it by passing `-q` to the Emacs command.\n\nSometimes `emacs.pkgs.withPackages` is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to GNU-devel ELPA, and the highest for packages manually defined in `pkgs/applications/editors/emacs/elisp-packages/manual-packages`). But you can't control these priorities when some package is installed as a dependency. You can override it on a per-package-basis, providing all the required dependencies manually, but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package, you can use `overrideScope`.\n\n```nix\nlet\n  overrides = self: super: rec {\n    haskell-mode = self.melpaPackages.haskell-mode;\n    # ...\n  };\nin\n((emacsPackagesFor emacs).overrideScope overrides).withPackages (\n  p: with p; [\n    # here both these package will use haskell-mode of our own choice\n    ghc-mod\n    dante\n  ]\n)\n```\n}\n","doc/packages/firefox.section.md":"# Firefox {#sec-firefox}\n\n## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies}\n\nThe `wrapFirefox` function allows to pass policies, preferences and extensions that are available to Firefox. With the help of `fetchFirefoxAddon` this allows to build a Firefox version that already comes with add-ons pre-installed:\n\n```nix\n{\n  # Nix firefox addons only work with the firefox-esr package.\n  myFirefox = wrapFirefox firefox-esr-unwrapped {\n    nixExtensions = [\n      (fetchFirefoxAddon {\n        name = \"ublock\"; # Has to be unique!\n        url = \"https://addons.mozilla.org/firefox/downloads/file/3679754/ublock_origin-1.31.0-an+fx.xpi\";\n        hash = \"sha256-2e73AbmYZlZXCP5ptYVcFjQYdjDp4iPoEPEOSCVF5sA=\";\n      })\n    ];\n\n    extraPolicies = {\n      CaptivePortal = false;\n      DisableFirefoxStudies = true;\n      DisablePocket = true;\n      DisableTelemetry = true;\n      DisableFirefoxAccounts = true;\n      FirefoxHome = {\n        Pocket = false;\n        Snippets = false;\n      };\n      UserMessaging = {\n        ExtensionRecommendations = false;\n        SkipOnboarding = true;\n      };\n      SecurityDevices = {\n        # Use a proxy module rather than `nixpkgs.config.firefox.smartcardSupport = true`\n        \"PKCS#11 Proxy Module\" = \"${pkgs.p11-kit}/lib/p11-kit-proxy.so\";\n      };\n    };\n\n    extraPrefs = ''\n      // Show more ssl cert infos\n      lockPref(\"security.identityblock.show_extended_validation\", true);\n    '';\n  };\n}\n```\n\nIf `nixExtensions != null`, then all manually installed add-ons will be uninstalled from your browser profile.\nTo view available enterprise policies, visit [enterprise policies](https://github.com/mozilla/policy-templates#enterprisepoliciesenabled)\nor type into the Firefox URL bar: `about:policies#documentation`.\nNix installed add-ons do not have a valid signature, which is why signature verification is disabled. This does not compromise security because downloaded add-ons are checksummed and manual add-ons can't be installed. Also, make sure that the `name` field of `fetchFirefoxAddon` is unique. If you remove an add-on from the `nixExtensions` array, rebuild and start Firefox: the removed add-on will be completely removed with all of its settings.\n\n## Troubleshooting {#sec-firefox-troubleshooting}\nIf add-ons are marked as broken or the signature is invalid, make sure you have Firefox ESR installed. Normal Firefox does not provide the ability anymore to disable signature verification for add-ons; thus, Nix add-ons get disabled by the normal Firefox binary.\n\nIf add-ons do not appear installed despite being defined in your nix configuration file, reset the local add-on state of your Firefox profile by clicking `Help -> More Troubleshooting Information -> Refresh Firefox`. This can happen if you switch from manual add-on mode to nix add-on mode and then back to manual mode and then again to nix add-on mode.\n","doc/packages/friction-graphics.section.md":"# Friction {#friction-graphics}\n\n[Friction](https://friction.graphics/) is an open-source vector motion graphics application for creating animations for web and video platforms.\n\n## Wayland support {#friction-graphics-wayland}\n\nUpstream explicitly forces X11 (XCB) on Linux due to incomplete Wayland support (fullscreen does not work, some mouse interactions are broken).\nThis means the application runs under XWayland by default and does not respect compositor-level HiDPI scaling.\n\nTo enable native Wayland support, removing the forced X11 override:\n\n```nix\nfriction-graphics.override { enableWayland = true; }\n```\n","doc/packages/etc-files.section.md":"# /etc files {#etc}\n\nCertain calls in glibc require access to runtime files found in `/etc` such as `/etc/protocols` or `/etc/services` -- [getprotobyname](https://linux.die.net/man/3/getprotobyname) is one such function.\n\nOn non-NixOS distributions, these files are typically provided by packages (i.e., [netbase](https://packages.debian.org/sid/netbase)) if not already pre-installed in your distribution. This can cause non-reproducibility for code if they rely on these files being present.\n\nIf [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your `buildInputs`, then it will set the environment variables `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a setup hook.\n\n\n```bash\n> nix-shell -p iana-etc\n\n[nix-shell:~]$ env | grep NIX_ETC\nNIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/services\nNIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols\n```\n\nNixpkgs's version of [glibc](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/glibc/default.nix) has been patched to check for the existence of these environment variables. If the environment variables are *not* set, then it will attempt to find the files at the default location within `/etc`.\n","doc/packages/eclipse.section.md":"# Eclipse {#sec-eclipse}\n\nThe Nix expressions related to the Eclipse platform and IDE are in [`pkgs/applications/editors/eclipse`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/eclipse).\n\nNixpkgs provides several packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages, and multiple versions are often available. It is possible to list available Eclipse packages by issuing the command:\n\n```ShellSession\n$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description\n```\n\nOnce an Eclipse variant is installed, it can be run using the `eclipse` command, as expected. From within Eclipse, it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resembles a manually installed Eclipse.\n\nIf you prefer to install plugins in a more declarative manner, then Nixpkgs also offers several Eclipse plugins that can be installed in an _Eclipse environment_. This type of environment is created using the function `eclipseWithPlugins` found inside the `nixpkgs.eclipses` attribute set. This function takes as an argument `{ eclipse, plugins ? [], jvmArgs ? [] }` where `eclipse` is one of the Eclipse packages described above, `plugins` is a list of plugin derivations, and `jvmArgs` is a list of arguments given to the JVM running Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add:\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEclipse =\n      with pkgs.eclipses;\n      eclipseWithPlugins {\n        eclipse = eclipse-platform;\n        jvmArgs = [ \"-Xmx2048m\" ];\n        plugins = [ plugins.color-theme ];\n      };\n  };\n}\n```\n\nto your Nixpkgs configuration (`~/.config/nixpkgs/config.nix`) and install it by running `nix-env -f '<nixpkgs>' -iA myEclipse` and afterward running Eclipse as usual. It is possible to find out which plugins are available for installation using `eclipseWithPlugins` by running:\n\n```ShellSession\n$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description\n```\n\nIf there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the `buildEclipseUpdateSite` and `buildEclipsePlugin` functions found in the `nixpkgs.eclipses.plugins` attribute set. Use the `buildEclipseUpdateSite` function to install a plugin distributed as an Eclipse update site. This function takes `{ src }` and either `pname` or `name` + `version` as arguments, where `src` indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available, then the `buildEclipsePlugin` function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes `{ srcFeature, srcPlugin }` and either `pname` or `name` + `version` as arguments, where `srcFeature` and `srcPlugin` are the feature and plugin JARs, respectively.\n\nExpanding the previous example with two plugins using the above functions, we have:\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEclipse =\n      with pkgs.eclipses;\n      eclipseWithPlugins {\n        eclipse = eclipse-platform;\n        jvmArgs = [ \"-Xmx2048m\" ];\n        plugins = [\n          plugins.color-theme\n          (plugins.buildEclipsePlugin {\n            pname = \"myplugin1\";\n            version = \"1.0\";\n            srcFeature = fetchurl {\n              url = \"http://…/features/myplugin1.jar\";\n              hash = \"sha256-123…\";\n            };\n            srcPlugin = fetchurl {\n              url = \"http://…/plugins/myplugin1.jar\";\n              hash = \"sha256-123…\";\n            };\n          })\n          (plugins.buildEclipseUpdateSite {\n            pname = \"myplugin2\";\n            version = \"1.0\";\n            src = fetchurl {\n              stripRoot = false;\n              url = \"http://…/myplugin2.zip\";\n              hash = \"sha256-123…\";\n            };\n          })\n        ];\n      };\n  };\n}\n```\n","doc/packages/fish.section.md":"# Fish {#sec-fish}\n\nFish is a \"smart and user-friendly command line shell\" with support for plugins.\n\n\n## Vendor Fish scripts {#sec-fish-vendor}\n\nAny package may ship its own Fish completions, configuration snippets, and\nfunctions. Those should be installed to\n`$out/share/fish/vendor_{completions,conf,functions}.d` respectively.\n\nWhen the `programs.fish.enable` and\n`programs.fish.vendor.{completions,config,functions}.enable` options from the\nNixOS Fish module are set to true, those paths are symlinked in the current\nsystem environment and are automatically loaded by Fish.\n\n\n## Packaging Fish plugins {#sec-fish-plugins-pkg}\n\nWhile packages providing standalone executables belong to the top level,\npackages which have the sole purpose of extending Fish belong to the\n`fishPlugins` scope and should be registered in\n`pkgs/shells/fish/plugins/default.nix`.\n\nThe `buildFishPlugin` utility function can be used to automatically copy Fish\nscripts from `$src/{completions,conf,conf.d,functions}` to the standard vendor\ninstallation paths. It also sets up the test environment so that the optional\n`checkPhase` is executed in a Fish shell with other already packaged plugins\nand package-local Fish functions specified in `checkPlugins` and\n`checkFunctionDirs` respectively.\n\nSee `pkgs/shells/fish/plugins/pure.nix` for an example of Fish plugin package\nusing `buildFishPlugin` and running unit tests with the `fishtape` test runner.\n\n\n## Fish wrapper {#sec-fish-wrapper}\n\nThe `wrapFish` package is a wrapper around Fish which can be used to create\nFish shells initialized with some plugins as well as completions, configuration\nsnippets and functions sourced from the given paths. This provides a convenient\nway to test Fish plugins and scripts without having to alter the environment.\n\n```nix\nwrapFish {\n  pluginPkgs = with fishPlugins; [\n    pure\n    foreign-env\n  ];\n  completionDirs = [ ];\n  functionDirs = [ ];\n  confDirs = [ \"/path/to/some/fish/init/dir/\" ];\n}\n```\n","doc/packages/fuse.section.md":"# Packages Skill\n\nPath: `doc/packages/fuse.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/fuse.section.md)","doc/packages/geant4.section.md":"# Packages Skill\n\nPath: `doc/packages/geant4.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/geant4.section.md)","doc/packages/ibus.section.md":"# Packages Skill\n\nPath: `doc/packages/ibus.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/ibus.section.md)","doc/packages/index.md":"# Packages Skill\n\nPath: `doc/packages/index.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/index.md)","doc/packages/inkscape.section.md":"# Packages Skill\n\nPath: `doc/packages/inkscape.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/inkscape.section.md)","doc/packages/kakoune.section.md":"# Packages Skill\n\nPath: `doc/packages/kakoune.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/kakoune.section.md)","doc/packages/krita.section.md":"# Packages Skill\n\nPath: `doc/packages/krita.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/krita.section.md)","doc/packages/lhapdf.section.md":"# Packages Skill\n\nPath: `doc/packages/lhapdf.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/lhapdf.section.md)","doc/packages/linux.section.md":"# Packages Skill\n\nPath: `doc/packages/linux.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/linux.section.md)","doc/packages/locales.section.md":"# Packages Skill\n\nPath: `doc/packages/locales.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/locales.section.md)","doc/packages/nginx.section.md":"# Packages Skill\n\nPath: `doc/packages/nginx.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/nginx.section.md)","doc/packages/nrfutil.section.md":"# Packages Skill\n\nPath: `doc/packages/nrfutil.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/nrfutil.section.md)","doc/packages/opengl.section.md":"# Packages Skill\n\nPath: `doc/packages/opengl.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/opengl.section.md)","doc/packages/packer.section.md":"# Packages Skill\n\nPath: `doc/packages/packer.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/packer.section.md)","doc/packages/python-tree-sitter.section.md":"# Packages Skill\n\nPath: `doc/packages/python-tree-sitter.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/python-tree-sitter.section.md)","doc/packages/shell-helpers.section.md":"# Packages Skill\n\nPath: `doc/packages/shell-helpers.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/shell-helpers.section.md)","doc/packages/steam.section.md":"# Packages Skill\n\nPath: `doc/packages/steam.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/steam.section.md)","doc/packages/treefmt.section.md":"# Packages Skill\n\nPath: `doc/packages/treefmt.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/treefmt.section.md)","doc/packages/urxvt.section.md":"# Packages Skill\n\nPath: `doc/packages/urxvt.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/urxvt.section.md)","doc/packages/uv.section.md":"# Packages Skill\n\nPath: `doc/packages/uv.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/uv.section.md)","doc/packages/vcpkg.section.md":"# Packages Skill\n\nPath: `doc/packages/vcpkg.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/vcpkg.section.md)","doc/packages/weechat.section.md":"# Packages Skill\n\nPath: `doc/packages/weechat.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/weechat.section.md)","pkgs/build-support/dev-shell-tools/README.md":"# dev-shell-tools Documentation\n\nPath: `pkgs/build-support/dev-shell-tools/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/build-support/dev-shell-tools/README.md)","pkgs/by-name/li/libretroPackages/README.md":"# libretroPackages Documentation\n\nPath: `pkgs/by-name/li/libretroPackages/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/li/libretroPackages/README.md)","pkgs/desktops/gnome/extensions/README.md":"# extensions Documentation\n\nPath: `pkgs/desktops/gnome/extensions/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/README.md)","pkgs/desktops/gnome/extensions/collisions.json":"# Extensions Skill\n\nPath: `pkgs/desktops/gnome/extensions/collisions.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/collisions.json)","pkgs/desktops/gnome/extensions/extensions.json":"# Extensions Skill\n\nPath: `pkgs/desktops/gnome/extensions/extensions.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/extensions.json)","pkgs/development/cuda-modules/packages/README.md":"# packages Documentation\n\nPath: `pkgs/development/cuda-modules/packages/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/cuda-modules/packages/README.md)","pkgs/applications/editors/kakoune/plugins/deprecated.json":"# Plugins Skill\n\nPath: `pkgs/applications/editors/kakoune/plugins/deprecated.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/kakoune/plugins/deprecated.json)","pkgs/applications/editors/vim/plugins/deprecated.json":"# Plugins Skill\n\nPath: `pkgs/applications/editors/vim/plugins/deprecated.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/deprecated.json)","pkgs/applications/editors/vim/plugins/readme.md":"# plugins Documentation\n\nPath: `pkgs/applications/editors/vim/plugins/readme.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/readme.md)","pkgs/applications/editors/vscode/extensions/README.md":"# extensions Documentation\n\nPath: `pkgs/applications/editors/vscode/extensions/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vscode/extensions/README.md)","pkgs/by-name/ma/maubot/plugins/generated.json":"# Plugins Skill\n\nPath: `pkgs/by-name/ma/maubot/plugins/generated.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ma/maubot/plugins/generated.json)","pkgs/by-name/na/navidrome/plugins/README.md":"# plugins Documentation\n\nPath: `pkgs/by-name/na/navidrome/plugins/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/na/navidrome/plugins/README.md)","pkgs/development/compilers/elm/packages/README.md":"# packages Documentation\n\nPath: `pkgs/development/compilers/elm/packages/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/compilers/elm/packages/README.md)","pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/package-activation-events.json":"# Ms-vscode.cpptools Skill\n\nPath: `pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/package-activation-events.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/package-activation-events.json)","pkgs/by-name/ga/gauge/plugins/dotnet/data.json":"# Dotnet Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/dotnet/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/dotnet/data.json)","pkgs/by-name/ga/gauge/plugins/go/data.json":"# Go Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/go/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/go/data.json)","pkgs/by-name/ga/gauge/plugins/html-report/data.json":"# Html-report Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/html-report/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/html-report/data.json)","pkgs/by-name/ga/gauge/plugins/java/data.json":"# Java Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/java/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/java/data.json)","pkgs/by-name/ga/gauge/plugins/ruby/data.json":"# Ruby Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/ruby/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/ruby/data.json)","pkgs/by-name/ga/gauge/plugins/screenshot/data.json":"# Screenshot Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/screenshot/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/screenshot/data.json)","pkgs/by-name/ga/gauge/plugins/xml-report/data.json":"# Xml-report Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/xml-report/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/xml-report/data.json)","pkgs/development/compilers/elm/packages/elm-test-rs/elm-srcs.json":"# Elm-test-rs Skill\n\nPath: `pkgs/development/compilers/elm/packages/elm-test-rs/elm-srcs.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/compilers/elm/packages/elm-test-rs/elm-srcs.json)","pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml":"# Smoke-test Skill\n\nPath: `pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml)","pkgs/applications/editors/vim/plugins/non-generated/vim2nix/src/addon-info.json":"# Src Skill\n\nPath: `pkgs/applications/editors/vim/plugins/non-generated/vim2nix/src/addon-info.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/non-generated/vim2nix/src/addon-info.json)","pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/Chart.yaml":"# Smoke Skill\n\nPath: `pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/Chart.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/Chart.yaml)","pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/templates/configmap.yaml":"# Templates Skill\n\nPath: `pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/templates/configmap.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/templates/configmap.yaml)","pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/tests/configmap_test.yaml":"# Tests Skill\n\nPath: `pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/tests/configmap_test.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/tests/configmap_test.yaml)"},"files":{"doc/packages/cataclysm-dda.section.md":"# Cataclysm: Dark Days Ahead {#cataclysm-dark-days-ahead}\n\n## How to install Cataclysm DDA {#how-to-install-cataclysm-dda}\n\nTo install the latest stable release of Cataclysm DDA to your profile, execute\n`nix-env -f \"<nixpkgs>\" -iA cataclysm-dda`. For the curses build (build\nwithout tiles), install `cataclysmDDA.stable.curses`. Note: `cataclysm-dda` is\nan alias to `cataclysmDDA.stable.tiles`.\n\nIf you like access to a development build of your favorite git revision,\noverride `cataclysm-dda-git` (or `cataclysmDDA.git.curses` if you like the curses\nbuild):\n\n```nix\ncataclysm-dda-git.override {\n  version = \"YYYY-MM-DD\";\n  rev = \"YOUR_FAVORITE_REVISION\";\n  sha256 = \"CHECKSUM_OF_THE_REVISION\";\n}\n```\n\nThe sha256 checksum can be obtained by\n\n```sh\nnix-prefetch-url --unpack \"https://github.com/CleverRaven/Cataclysm-DDA/archive/${YOUR_FAVORITE_REVISION}.tar.gz\"\n```\n\nThe default configuration directory is `~/.cataclysm-dda`. If you prefer\n`$XDG_CONFIG_HOME/cataclysm-dda`, override the derivation:\n\n```nix\ncataclysm-dda.override { useXdgDir = true; }\n```\n\n## Important note for overriding packages {#important-note-for-overriding-packages}\n\nAfter applying `overrideAttrs`, you need to fix `passthru.pkgs` and\n`passthru.withMods` attributes either manually or by using `attachPkgs`:\n\n```nix\nlet\n  # You enabled parallel building.\n  myCDDA = cataclysm-dda-git.overrideAttrs (_: {\n    enableParallelBuilding = true;\n  });\n\n  # Unfortunately, this refers to the package before overriding and\n  # parallel building is still disabled.\n  badExample = myCDDA.withMods (_: [ ]);\n\n  inherit (cataclysmDDA) attachPkgs pkgs wrapCDDA;\n\n  # You can fix it by hand\n  goodExample1 = myCDDA.overrideAttrs (old: {\n    passthru = old.passthru // {\n      pkgs = pkgs.override { build = goodExample1; };\n      withMods = wrapCDDA goodExample1;\n    };\n  });\n\n  # or by using a helper function `attachPkgs`.\n  goodExample2 = attachPkgs pkgs myCDDA;\n\n  # badExample                     # parallel building disabled\n  # goodExample1.withMods (_: [])  # parallel building enabled\nin\ngoodExample2.withMods (_: [ ]) # parallel building enabled\n```\n\n## Customizing with mods {#customizing-with-mods}\n\nTo install Cataclysm DDA with mods of your choice, you can use `withMods`\nattribute:\n\n```nix\ncataclysm-dda.withMods (mods: with mods; [ tileset.UndeadPeople ])\n```\n\nAll mods, soundpacks, and tilesets available in nixpkgs are found in\n`cataclysmDDA.pkgs`.\n\nHere is an example to modify existing mods and/or add more mods not available\nin nixpkgs:\n\n```nix\nlet\n  customMods =\n    self: super:\n    lib.recursiveUpdate super {\n      # Modify existing mod\n      tileset.UndeadPeople = super.tileset.UndeadPeople.overrideAttrs (old: {\n        # If you like to apply a patch to the tileset for example\n        patches = [ ./path/to/your.patch ];\n      });\n\n      # Add another mod\n      mod.Awesome = cataclysmDDA.buildMod {\n        modName = \"Awesome\";\n        version = \"0.x\";\n        src = fetchFromGitHub {\n          owner = \"Someone\";\n          repo = \"AwesomeMod\";\n          rev = \"...\";\n          hash = \"...\";\n        };\n        # Path to be installed in the unpacked source (default: \".\")\n        modRoot = \"contents/under/this/path/will/be/installed\";\n      };\n\n      # Add another soundpack\n      soundpack.Fantastic = cataclysmDDA.buildSoundPack {\n        # ditto\n      };\n\n      # Add another tileset\n      tileset.SuperDuper = cataclysmDDA.buildTileSet {\n        # ditto\n      };\n    };\nin\ncataclysm-dda.withMods (\n  mods: with mods.extend customMods; [\n    tileset.UndeadPeople\n    mod.Awesome\n    soundpack.Fantastic\n    tileset.SuperDuper\n  ]\n)\n```\n","doc/packages/citrix.section.md":"# Citrix Workspace {#sec-citrix}\n\nThe [Citrix Workspace App](https://www.citrix.com/products/workspace-app/) is a remote desktop viewer which provides access to [XenDesktop](https://www.citrix.com/products/xenapp-xendesktop/) installations.\n\n## Basic usage {#sec-citrix-base}\n\nThe tarball archive needs to be downloaded manually, as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store, the package can be built and installed with Nix.\n\nThe package includes the `ctxcwalogd.service` user unit required by Citrix's logging tools.\nTo enable it on NixOS:\n\n```nix\n{\n  systemd.packages = [ pkgs.citrix-workspace ];\n  systemd.user.services.ctxcwalogd.wantedBy = [ \"default.target\" ];\n}\n```\n\nFor FUSE-based file transfer, enable the privileged helper on NixOS:\n\n```nix\n{\n  programs.fuse.enable = true;\n}\n```\n\nThe package uses `/run/wrappers/bin/fusermount3` when it is available.\n\n## Citrix Self-service {#sec-citrix-selfservice}\n\nThe [self-service](https://support.citrix.com/article/CTX200337) is an application for managing Citrix desktops and applications. Please note that this feature only works with at least `citrix_workspace_20_06_0` and later versions.\n\nTo set this up, you first have to [download the `.cr` file from the Netscaler Gateway](https://its.uiowa.edu/support/article/102186). After that, you can configure the `selfservice` like this:\n\n```ShellSession\n$ storebrowse -C ~/Downloads/receiverconfig.cr\n$ selfservice\n```\n\n## Custom certificates {#sec-citrix-custom-certs}\n\nThe `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However, several companies using Citrix might require their own corporate certificate. On distros with imperative packaging, these certs can be stored easily in [`$ICAROOT`](https://citrix.github.io/receiver-for-linux-command-reference/), however, this directory is a store path in `nixpkgs`. To work around this issue, the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`:\n\n```nix\nwith import <nixpkgs> { config.allowUnfree = true; };\nlet\n  extraCerts = [\n    ./custom-cert-1.pem\n    ./custom-cert-2.pem # ...\n  ];\nin\ncitrix_workspace.override { inherit extraCerts; }\n```\n","doc/packages/build-support.md":"# Build Support {#sec-build-support}\n\n## `pkgs.substitute` {#pkgs-substitute}\n\n`pkgs.substitute` is a wrapper around [the `substitute` Bash function](#fun-substitute) in the standard environment.\nIt replaces strings in `src` as specified by the `substitutions` argument.\n\n\n:::{.example #ex-pkgs-substitute}\n# Usage of `pkgs.substitute`\n\nIn a build script, the line:\n\n```bash\nsubstitute $infile $outfile --replace-fail @foo@ ${lib.getExe foopkg}\n```\n\nis equivalent to:\n\n```nix\n{\n  lib,\n  substitute,\n  foopkg,\n}:\nsubstitute {\n  src = ./sourcefile.txt;\n  substitutions = [\n    \"--replace\"\n    \"@foo@\"\n    (lib.getExe foopkg)\n  ];\n}\n```\n:::\n\n## `pkgs.replaceVars` {#pkgs-replacevars}\n\n`pkgs.replaceVars <src> <replacements>` replaces all instances of `@varName@` (`@`s included) in file `src` with the respective value in the attribute set `replacements`.\n\n:::{.example #ex-pkgs-replace-vars}\n# Usage of `pkgs.replaceVars`\n\nIf `say-goodbye.sh` contains the following:\n\n```bash\n#! @bash@/bin/bash\n\necho @unchanged@\n@hello@/bin/hello --greeting @greeting@\n```\n\nthe following derivation will make substitutions to `@bash@`, `@hello@`, and `@greeting@`:\n\n```nix\n{\n  replaceVars,\n  bash,\n  hello,\n}:\nreplaceVars ./say-goodbye.sh {\n  inherit bash hello;\n  greeting = \"goodbye\";\n  unchanged = null;\n}\n```\n\nsuch that `$out` will result in something like the following:\n\n```\n#! /nix/store/s30jrpgav677fpc9yvkqsib70xfmx7xi-bash-5.2p26/bin/bash\n\necho @unchanged@\n/nix/store/566f5isbvw014h7knmzmxa5l6hshx43k-hello-2.12.1/bin/hello --greeting goodbye\n```\n\nNote that, in contrast to the old `substituteAll`, `unchanged = null` must explicitly be set.\nAny unreferenced `@...@` pattern in the source file will throw an error.\n:::\n\n## `pkgs.replaceVarsWith` {#pkgs-replacevarswith}\n\n`pkgs.replaceVarsWith` works the same way as [pkgs.replaceVars](#pkgs-replacevars), but additionally allows more options.\n\n:::{.example #ex-pkgs-replace-vars-with}\n# Usage of `pkgs.replaceVarsWith`\n\nWith the example file `say-goodbye.sh`, consider:\n\n```nix\n{ replaceVarsWith }:\nreplaceVarsWith {\n  src = ./say-goodbye.sh;\n\n  replacements = {\n    inherit bash hello;\n    greeting = \"goodbye\";\n    unchanged = null;\n  };\n\n  name = \"say-goodbye\";\n  dir = \"bin\";\n  isExecutable = true;\n  meta.mainProgram = \"say-goodbye\";\n}\n```\n\nThis will make the resulting file executable, put it in `bin/say-goodbye` and set `meta` attributes respectively.\n:::\n","doc/packages/darwin-builder.section.md":"# darwin.linux-builder {#sec-darwin-builder}\n\n:::{.warning}\nBy default, `darwin.linux-builder` uses a publicly-known private SSH **host key** (this is different from the SSH key used by the user that connects to the builder).\n\nGiven the intended use case for it (a Linux builder that runs **on the same machine**), this shouldn't be an issue.\nHowever, if you plan to deviate from this use case in any way (e.g. by exposing this builder to remote machines), you should understand the security implications of doing so and take any appropriate measures.\n:::\n\n`darwin.linux-builder` provides a way to bootstrap a Linux remote builder on a macOS machine.\n\nThis requires macOS version 12.4 or later.\n\nThe remote builder runs on host port 31022 by default.\nYou can change it by overriding `virtualisation.darwin-builder.hostPort`.\nSee the [example](#sec-darwin-builder-example-flake).\n\nYou will also need to be a trusted user for your Nix installation.  In other\nwords, your `/etc/nix/nix.conf` should have something like:\n\n```\nextra-trusted-users = <your username goes here>\n```\n\nTo launch the remote builder, run the following flake:\n\n```ShellSession\n$ nix run nixpkgs#darwin.linux-builder\n```\n\nThat will prompt you to enter your `sudo` password:\n\n```\n+ sudo --reset-timestamp /nix/store/…-install-credentials.sh ./keys\nPassword:\n```\n\n… so that it can install a private key used to `ssh` into the build server.\nAfter that the script will launch the virtual machine and automatically log you\nin as the `builder` user:\n\n```\n<<< Welcome to NixOS 22.11.20220901.1bd8d11 (aarch64) - ttyAMA0 >>>\n\nRun 'nixos-help' for the NixOS manual.\n\nnixos login: builder (automatic login)\n\n\n[builder@nixos:~]$\n```\n\n> Note: When you need to stop the VM, run `shutdown now` as the `builder` user.\n\nTo delegate builds to the remote builder, add the following options to your\n`nix.conf` file:\n\n```\n# - Replace ${ARCH} with either aarch64 or x86_64 to match your host machine\n# - Replace ${MAX_JOBS} with the maximum number of builds (pick 4 if you're not sure)\nbuilders = ssh-ng://builder@linux-builder ${ARCH}-linux /etc/nix/builder_ed25519 ${MAX_JOBS} - - - c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUpCV2N4Yi9CbGFxdDFhdU90RStGOFFVV3JVb3RpQzVxQkorVXVFV2RWQ2Igcm9vdEBuaXhvcwo=\n\n# Not strictly necessary, but this will reduce your disk utilization\nbuilders-use-substitutes = true\n```\n\nTo allow Nix to connect to the default remote builder, which does not run on port 22, you will also need to create a new file at `/etc/ssh/ssh_config.d/100-linux-builder.conf`:\n\n```\nHost linux-builder\n  Hostname localhost\n  HostKeyAlias linux-builder\n  Port 31022\n  User builder\n  IdentityFile /etc/nix/builder_ed25519\n```\n\n… and then restart your Nix daemon to apply the change:\n\n```ShellSession\n$ sudo launchctl kickstart -k system/org.nixos.nix-daemon\n```\n\nNote that if the builder is running and you have created the above ssh conf file, you can ssh into the builder with `sudo ssh builder@linux-builder`.\n\n## Using the Virtualization.framework backend {#sec-darwin-builder-vz}\n\n`darwin.linux-builder-vz` is a variant of `darwin.linux-builder` that runs the same\nNixOS guest on Apple's Virtualization.framework (via `pkgs.vzvm`) instead of QEMU.\nInstead of emulating x86_64, it exposes Rosetta to the guest, so `x86_64-linux`\nbuilds are translated rather than emulated, which is substantially faster. It\nrequires an Apple silicon host (`aarch64-darwin`) running macOS 13 or newer, with\nRosetta installed:\n\n```ShellSession\n$ softwareupdate --install-rosetta --agree-to-license\n```\n\nThe builder refuses to start when Rosetta is missing, rather than silently dropping\n`x86_64-linux` support; set `virtualisation.vz.rosetta.enable = false` to run\nwithout it.\n\nIt is a drop-in replacement: it listens on the same host port (31022) and presents\nthe same host key as the QEMU builder, so the `nix.conf` and SSH configuration\ndescribed above apply unchanged; only the transport behind the port changes, from\nTCP forwarding to vsock. Since a single builder VM handles both architectures\nthrough Rosetta, list both systems in your `builders` entry\n(`aarch64-linux,x86_64-linux`), or with nix-darwin:\n\n```nix\n{\n  nix.linux-builder = {\n    enable = true;\n    package = pkgs.darwin.linux-builder-vz;\n    systems = [\n      \"aarch64-linux\"\n      \"x86_64-linux\"\n    ];\n  };\n}\n```\n\nWhen switching an existing QEMU builder over, delete its data disk first (e.g.\n`sudo rm /var/lib/linux-builder/nixos.qcow2`): the vz builder reuses the file name\nbut writes a raw image, and refuses to misread a genuine qcow2 left behind.\n\nThe guest console goes to the macOS unified log by default; read it with:\n\n```ShellSession\n$ /usr/bin/log show --last 5m --predicate 'subsystem == \"systems.applicative.vzvm\"'\n```\n\nThe `virtualisation.vz.*` NixOS options configure the backend further, e.g.\n`virtualisation.vz.nestedVirtualization` gives the guest a working `/dev/kvm` for\nrunning NixOS integration tests on the builder (macOS 15+, M3 or newer).\n\n## Example flake usage {#sec-darwin-builder-example-flake}\n\n```nix\n{\n  inputs = {\n    nixpkgs.url = \"https://channels.nixos.org/nixpkgs-26.05-darwin/nixexprs.tar.zst\";\n    darwin.url = \"github:nix-darwin/nix-darwin/master\";\n    darwin.inputs.nixpkgs.follows = \"nixpkgs\";\n  };\n\n  outputs =\n    {\n      self,\n      darwin,\n      nixpkgs,\n      ...\n    }@inputs:\n    let\n\n      inherit (darwin.lib) darwinSystem;\n      system = \"aarch64-darwin\";\n      pkgs = nixpkgs.legacyPackages.\"${system}\";\n      linuxSystem = builtins.replaceStrings [ \"darwin\" ] [ \"linux\" ] system;\n\n      darwin-builder = nixpkgs.lib.nixosSystem {\n        system = linuxSystem;\n        modules = [\n          \"${nixpkgs}/nixos/modules/profiles/nix-builder-vm.nix\"\n          {\n            virtualisation = {\n              host.pkgs = pkgs;\n              darwin-builder.workingDirectory = \"/var/lib/darwin-builder\";\n              darwin-builder.hostPort = 22;\n            };\n          }\n        ];\n      };\n    in\n    {\n\n      darwinConfigurations = {\n        machine1 = darwinSystem {\n          inherit system;\n          modules = [\n            {\n              nix.distributedBuilds = true;\n              nix.buildMachines = [\n                {\n                  hostName = \"localhost\";\n                  sshUser = \"builder\";\n                  sshKey = \"/etc/nix/builder_ed25519\";\n                  system = linuxSystem;\n                  maxJobs = 4;\n                  supportedFeatures = [\n                    \"kvm\"\n                    \"benchmark\"\n                    \"big-parallel\"\n                  ];\n                }\n              ];\n\n              launchd.daemons.darwin-builder = {\n                command = nixpkgs.lib.getExe darwin-builder.config.system.build.macos-builder-installer;\n                serviceConfig = {\n                  KeepAlive = true;\n                  RunAtLoad = true;\n                  StandardOutPath = \"/var/log/darwin-builder.log\";\n                  StandardErrorPath = \"/var/log/darwin-builder.log\";\n                };\n              };\n            }\n          ];\n        };\n      };\n\n    };\n}\n```\n\n## Reconfiguring the remote builder {#sec-darwin-builder-reconfiguring}\n\nInitially you should not change the remote builder configuration else you will not be\nable to use the binary cache. However, after you have the remote builder running locally\nyou may use it to build a modified remote builder with additional storage or memory.\n\nTo do this, you just need to set the `virtualisation.darwin-builder.*` parameters as\nin the example below and rebuild.\n\n```nix\n{\n  darwin-builder = nixpkgs.lib.nixosSystem {\n    system = linuxSystem;\n    modules = [\n      \"${nixpkgs}/nixos/modules/profiles/nix-builder-vm.nix\"\n      {\n        virtualisation.host.pkgs = pkgs;\n        virtualisation.darwin-builder.diskSize = 5120;\n        virtualisation.darwin-builder.memorySize = 1024;\n        virtualisation.darwin-builder.hostPort = 33022;\n        virtualisation.darwin-builder.workingDirectory = \"/var/lib/darwin-builder\";\n      }\n    ];\n  };\n}\n```\n\nYou may make any other changes to your VM in this attribute set. For example,\nyou could enable Docker or X11 forwarding to your Darwin host.\n\n## Troubleshooting the generated configuration {#sec-darwin-builder-troubleshoot}\n\nThe `linux-builder` package exposes the attributes `nixosConfig` and `nixosOptions` that allow you to inspect the generated NixOS configuration in the `nix repl`. For example:\n\n```\n$ nix repl --file ~/src/nixpkgs --argstr system aarch64-darwin\n\nnix-repl> darwin.linux-builder.nixosConfig.nix.package\n«derivation /nix/store/...-nix-2.17.0.drv»\n\nnix-repl> :p darwin.linux-builder.nixosOptions.virtualisation.memorySize.definitionsWithLocations\n[ { file = \"/home/user/src/nixpkgs/nixos/modules/profiles/nix-builder-vm.nix\"; value = 3072; } ]\n\n```\n","doc/packages/dlib.section.md":"# DLib {#dlib}\n\n[DLib](http://dlib.net/) is a modern, C++\\-based toolkit which provides several machine learning algorithms.\n\n## Compiling without AVX support {#compiling-without-avx-support}\n\nEspecially older CPUs don't support [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms.\n\nOn the affected hardware, errors like `Illegal instruction` will occur. In those cases, AVX support needs to be disabled:\n\n```nix\nself: super: { dlib = super.dlib.override { avxSupport = false; }; }\n```\n","doc/packages/elm.section.md":"# Elm {#sec-elm}\n\nTo start a development environment, run:\n\n```ShellSession\nnix-shell -p elmPackages.elm elmPackages.elm-format\n```\n\nTo update the Elm compiler, see `nixpkgs/pkgs/development/compilers/elm/README.md`.\n\nTo package Elm applications, [read about elm2nix](https://github.com/hercules-ci/elm2nix#elm2nix).\n","doc/packages/emacs.section.md":"# Emacs {#sec-emacs}\n\n## Configuring Emacs {#sec-emacs-config}\n\nThe Emacs package comes with some extra helpers to make it easier to configure. `emacs.pkgs.withPackages` manages packages from ELPA. This means that you will not have to install those packages from within Emacs. For instance, if you wanted to use `company`, `counsel`, `flycheck`, `ivy`, `magit`, `projectile`, and `use-package`, you could use this as a `~/.config/nixpkgs/config.nix` override:\n\n```nix\n{\n  packageOverrides =\n    pkgs: with pkgs; {\n      myEmacs = emacs.pkgs.withPackages (\n        epkgs:\n        (with epkgs.melpaStablePackages; [\n          company\n          counsel\n          flycheck\n          ivy\n          magit\n          projectile\n          use-package\n        ])\n      );\n    };\n}\n```\n\nYou can install it like any other package via `nix-env -iA myEmacs`. However, this will only install those packages. It will not `configure` them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provides a `default.el` file in `/share/emacs/site-start/`. Emacs knows to load this file automatically when it starts.  Similarly, for `early-init.el`, you can create a package that provides an `early-default.el` file in `/share/emacs/site-start/`.\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEmacsConfig = pkgs.writeText \"default.el\" ''\n      (eval-when-compile\n        (require 'use-package))\n\n      ;; load some packages\n\n      (use-package company\n        :bind (\"<C-tab>\" . company-complete)\n        :diminish company-mode\n        :commands (company-mode global-company-mode)\n        :defer 1\n        :config\n        (global-company-mode))\n\n      (use-package counsel\n        :commands (counsel-descbinds)\n        :bind (([remap execute-extended-command] . counsel-M-x)\n               (\"C-x C-f\" . counsel-find-file)\n               (\"C-c g\" . counsel-git)\n               (\"C-c j\" . counsel-git-grep)\n               (\"C-c k\" . counsel-ag)\n               (\"C-x l\" . counsel-locate)\n               (\"M-y\" . counsel-yank-pop)))\n\n      (use-package flycheck\n        :defer 2\n        :config (global-flycheck-mode))\n\n      (use-package ivy\n        :defer 1\n        :bind ((\"C-c C-r\" . ivy-resume)\n               (\"C-x C-b\" . ivy-switch-buffer)\n               :map ivy-minibuffer-map\n               (\"C-j\" . ivy-call))\n        :diminish ivy-mode\n        :commands ivy-mode\n        :config\n        (ivy-mode 1))\n\n      (use-package magit\n        :defer\n        :if (executable-find \"git\")\n        :bind ((\"C-x g\" . magit-status)\n               (\"C-x G\" . magit-dispatch-popup))\n        :init\n        (setq magit-completing-read-function 'ivy-completing-read))\n\n      (use-package projectile\n        :commands projectile-mode\n        :bind-keymap (\"C-c p\" . projectile-command-map)\n        :defer 5\n        :config\n        (projectile-global-mode))\n    '';\n\n    myEmacs = emacs.pkgs.withPackages (\n      epkgs:\n      (with epkgs.melpaStablePackages; [\n        (runCommand \"default.el\" { } ''\n          mkdir -p $out/share/emacs/site-lisp\n          cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el\n        '')\n        company\n        counsel\n        flycheck\n        ivy\n        magit\n        projectile\n        use-package\n      ])\n    );\n  };\n}\n```\n\nThis provides a fairly full Emacs start file. It will load in addition to the user's personal config. You can always disable it by passing `-q` to the Emacs command.\n\nSometimes `emacs.pkgs.withPackages` is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to GNU-devel ELPA, and the highest for packages manually defined in `pkgs/applications/editors/emacs/elisp-packages/manual-packages`). But you can't control these priorities when some package is installed as a dependency. You can override it on a per-package-basis, providing all the required dependencies manually, but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package, you can use `overrideScope`.\n\n```nix\nlet\n  overrides = self: super: rec {\n    haskell-mode = self.melpaPackages.haskell-mode;\n    # ...\n  };\nin\n((emacsPackagesFor emacs).overrideScope overrides).withPackages (\n  p: with p; [\n    # here both these package will use haskell-mode of our own choice\n    ghc-mod\n    dante\n  ]\n)\n```\n}\n","doc/packages/firefox.section.md":"# Firefox {#sec-firefox}\n\n## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies}\n\nThe `wrapFirefox` function allows to pass policies, preferences and extensions that are available to Firefox. With the help of `fetchFirefoxAddon` this allows to build a Firefox version that already comes with add-ons pre-installed:\n\n```nix\n{\n  # Nix firefox addons only work with the firefox-esr package.\n  myFirefox = wrapFirefox firefox-esr-unwrapped {\n    nixExtensions = [\n      (fetchFirefoxAddon {\n        name = \"ublock\"; # Has to be unique!\n        url = \"https://addons.mozilla.org/firefox/downloads/file/3679754/ublock_origin-1.31.0-an+fx.xpi\";\n        hash = \"sha256-2e73AbmYZlZXCP5ptYVcFjQYdjDp4iPoEPEOSCVF5sA=\";\n      })\n    ];\n\n    extraPolicies = {\n      CaptivePortal = false;\n      DisableFirefoxStudies = true;\n      DisablePocket = true;\n      DisableTelemetry = true;\n      DisableFirefoxAccounts = true;\n      FirefoxHome = {\n        Pocket = false;\n        Snippets = false;\n      };\n      UserMessaging = {\n        ExtensionRecommendations = false;\n        SkipOnboarding = true;\n      };\n      SecurityDevices = {\n        # Use a proxy module rather than `nixpkgs.config.firefox.smartcardSupport = true`\n        \"PKCS#11 Proxy Module\" = \"${pkgs.p11-kit}/lib/p11-kit-proxy.so\";\n      };\n    };\n\n    extraPrefs = ''\n      // Show more ssl cert infos\n      lockPref(\"security.identityblock.show_extended_validation\", true);\n    '';\n  };\n}\n```\n\nIf `nixExtensions != null`, then all manually installed add-ons will be uninstalled from your browser profile.\nTo view available enterprise policies, visit [enterprise policies](https://github.com/mozilla/policy-templates#enterprisepoliciesenabled)\nor type into the Firefox URL bar: `about:policies#documentation`.\nNix installed add-ons do not have a valid signature, which is why signature verification is disabled. This does not compromise security because downloaded add-ons are checksummed and manual add-ons can't be installed. Also, make sure that the `name` field of `fetchFirefoxAddon` is unique. If you remove an add-on from the `nixExtensions` array, rebuild and start Firefox: the removed add-on will be completely removed with all of its settings.\n\n## Troubleshooting {#sec-firefox-troubleshooting}\nIf add-ons are marked as broken or the signature is invalid, make sure you have Firefox ESR installed. Normal Firefox does not provide the ability anymore to disable signature verification for add-ons; thus, Nix add-ons get disabled by the normal Firefox binary.\n\nIf add-ons do not appear installed despite being defined in your nix configuration file, reset the local add-on state of your Firefox profile by clicking `Help -> More Troubleshooting Information -> Refresh Firefox`. This can happen if you switch from manual add-on mode to nix add-on mode and then back to manual mode and then again to nix add-on mode.\n","doc/packages/friction-graphics.section.md":"# Friction {#friction-graphics}\n\n[Friction](https://friction.graphics/) is an open-source vector motion graphics application for creating animations for web and video platforms.\n\n## Wayland support {#friction-graphics-wayland}\n\nUpstream explicitly forces X11 (XCB) on Linux due to incomplete Wayland support (fullscreen does not work, some mouse interactions are broken).\nThis means the application runs under XWayland by default and does not respect compositor-level HiDPI scaling.\n\nTo enable native Wayland support, removing the forced X11 override:\n\n```nix\nfriction-graphics.override { enableWayland = true; }\n```\n","doc/packages/etc-files.section.md":"# /etc files {#etc}\n\nCertain calls in glibc require access to runtime files found in `/etc` such as `/etc/protocols` or `/etc/services` -- [getprotobyname](https://linux.die.net/man/3/getprotobyname) is one such function.\n\nOn non-NixOS distributions, these files are typically provided by packages (i.e., [netbase](https://packages.debian.org/sid/netbase)) if not already pre-installed in your distribution. This can cause non-reproducibility for code if they rely on these files being present.\n\nIf [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your `buildInputs`, then it will set the environment variables `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a setup hook.\n\n\n```bash\n> nix-shell -p iana-etc\n\n[nix-shell:~]$ env | grep NIX_ETC\nNIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/services\nNIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols\n```\n\nNixpkgs's version of [glibc](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/glibc/default.nix) has been patched to check for the existence of these environment variables. If the environment variables are *not* set, then it will attempt to find the files at the default location within `/etc`.\n","doc/packages/eclipse.section.md":"# Eclipse {#sec-eclipse}\n\nThe Nix expressions related to the Eclipse platform and IDE are in [`pkgs/applications/editors/eclipse`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/eclipse).\n\nNixpkgs provides several packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages, and multiple versions are often available. It is possible to list available Eclipse packages by issuing the command:\n\n```ShellSession\n$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description\n```\n\nOnce an Eclipse variant is installed, it can be run using the `eclipse` command, as expected. From within Eclipse, it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resembles a manually installed Eclipse.\n\nIf you prefer to install plugins in a more declarative manner, then Nixpkgs also offers several Eclipse plugins that can be installed in an _Eclipse environment_. This type of environment is created using the function `eclipseWithPlugins` found inside the `nixpkgs.eclipses` attribute set. This function takes as an argument `{ eclipse, plugins ? [], jvmArgs ? [] }` where `eclipse` is one of the Eclipse packages described above, `plugins` is a list of plugin derivations, and `jvmArgs` is a list of arguments given to the JVM running Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add:\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEclipse =\n      with pkgs.eclipses;\n      eclipseWithPlugins {\n        eclipse = eclipse-platform;\n        jvmArgs = [ \"-Xmx2048m\" ];\n        plugins = [ plugins.color-theme ];\n      };\n  };\n}\n```\n\nto your Nixpkgs configuration (`~/.config/nixpkgs/config.nix`) and install it by running `nix-env -f '<nixpkgs>' -iA myEclipse` and afterward running Eclipse as usual. It is possible to find out which plugins are available for installation using `eclipseWithPlugins` by running:\n\n```ShellSession\n$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description\n```\n\nIf there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the `buildEclipseUpdateSite` and `buildEclipsePlugin` functions found in the `nixpkgs.eclipses.plugins` attribute set. Use the `buildEclipseUpdateSite` function to install a plugin distributed as an Eclipse update site. This function takes `{ src }` and either `pname` or `name` + `version` as arguments, where `src` indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available, then the `buildEclipsePlugin` function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes `{ srcFeature, srcPlugin }` and either `pname` or `name` + `version` as arguments, where `srcFeature` and `srcPlugin` are the feature and plugin JARs, respectively.\n\nExpanding the previous example with two plugins using the above functions, we have:\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEclipse =\n      with pkgs.eclipses;\n      eclipseWithPlugins {\n        eclipse = eclipse-platform;\n        jvmArgs = [ \"-Xmx2048m\" ];\n        plugins = [\n          plugins.color-theme\n          (plugins.buildEclipsePlugin {\n            pname = \"myplugin1\";\n            version = \"1.0\";\n            srcFeature = fetchurl {\n              url = \"http://…/features/myplugin1.jar\";\n              hash = \"sha256-123…\";\n            };\n            srcPlugin = fetchurl {\n              url = \"http://…/plugins/myplugin1.jar\";\n              hash = \"sha256-123…\";\n            };\n          })\n          (plugins.buildEclipseUpdateSite {\n            pname = \"myplugin2\";\n            version = \"1.0\";\n            src = fetchurl {\n              stripRoot = false;\n              url = \"http://…/myplugin2.zip\";\n              hash = \"sha256-123…\";\n            };\n          })\n        ];\n      };\n  };\n}\n```\n","doc/packages/fish.section.md":"# Fish {#sec-fish}\n\nFish is a \"smart and user-friendly command line shell\" with support for plugins.\n\n\n## Vendor Fish scripts {#sec-fish-vendor}\n\nAny package may ship its own Fish completions, configuration snippets, and\nfunctions. Those should be installed to\n`$out/share/fish/vendor_{completions,conf,functions}.d` respectively.\n\nWhen the `programs.fish.enable` and\n`programs.fish.vendor.{completions,config,functions}.enable` options from the\nNixOS Fish module are set to true, those paths are symlinked in the current\nsystem environment and are automatically loaded by Fish.\n\n\n## Packaging Fish plugins {#sec-fish-plugins-pkg}\n\nWhile packages providing standalone executables belong to the top level,\npackages which have the sole purpose of extending Fish belong to the\n`fishPlugins` scope and should be registered in\n`pkgs/shells/fish/plugins/default.nix`.\n\nThe `buildFishPlugin` utility function can be used to automatically copy Fish\nscripts from `$src/{completions,conf,conf.d,functions}` to the standard vendor\ninstallation paths. It also sets up the test environment so that the optional\n`checkPhase` is executed in a Fish shell with other already packaged plugins\nand package-local Fish functions specified in `checkPlugins` and\n`checkFunctionDirs` respectively.\n\nSee `pkgs/shells/fish/plugins/pure.nix` for an example of Fish plugin package\nusing `buildFishPlugin` and running unit tests with the `fishtape` test runner.\n\n\n## Fish wrapper {#sec-fish-wrapper}\n\nThe `wrapFish` package is a wrapper around Fish which can be used to create\nFish shells initialized with some plugins as well as completions, configuration\nsnippets and functions sourced from the given paths. This provides a convenient\nway to test Fish plugins and scripts without having to alter the environment.\n\n```nix\nwrapFish {\n  pluginPkgs = with fishPlugins; [\n    pure\n    foreign-env\n  ];\n  completionDirs = [ ];\n  functionDirs = [ ];\n  confDirs = [ \"/path/to/some/fish/init/dir/\" ];\n}\n```\n","doc/packages/fuse.section.md":"# Packages Skill\n\nPath: `doc/packages/fuse.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/fuse.section.md)","doc/packages/geant4.section.md":"# Packages Skill\n\nPath: `doc/packages/geant4.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/geant4.section.md)","doc/packages/ibus.section.md":"# Packages Skill\n\nPath: `doc/packages/ibus.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/ibus.section.md)","doc/packages/index.md":"# Packages Skill\n\nPath: `doc/packages/index.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/index.md)","doc/packages/inkscape.section.md":"# Packages Skill\n\nPath: `doc/packages/inkscape.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/inkscape.section.md)","doc/packages/kakoune.section.md":"# Packages Skill\n\nPath: `doc/packages/kakoune.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/kakoune.section.md)","doc/packages/krita.section.md":"# Packages Skill\n\nPath: `doc/packages/krita.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/krita.section.md)","doc/packages/lhapdf.section.md":"# Packages Skill\n\nPath: `doc/packages/lhapdf.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/lhapdf.section.md)","doc/packages/linux.section.md":"# Packages Skill\n\nPath: `doc/packages/linux.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/linux.section.md)","doc/packages/locales.section.md":"# Packages Skill\n\nPath: `doc/packages/locales.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/locales.section.md)","doc/packages/nginx.section.md":"# Packages Skill\n\nPath: `doc/packages/nginx.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/nginx.section.md)","doc/packages/nrfutil.section.md":"# Packages Skill\n\nPath: `doc/packages/nrfutil.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/nrfutil.section.md)","doc/packages/opengl.section.md":"# Packages Skill\n\nPath: `doc/packages/opengl.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/opengl.section.md)","doc/packages/packer.section.md":"# Packages Skill\n\nPath: `doc/packages/packer.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/packer.section.md)","doc/packages/python-tree-sitter.section.md":"# Packages Skill\n\nPath: `doc/packages/python-tree-sitter.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/python-tree-sitter.section.md)","doc/packages/shell-helpers.section.md":"# Packages Skill\n\nPath: `doc/packages/shell-helpers.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/shell-helpers.section.md)","doc/packages/steam.section.md":"# Packages Skill\n\nPath: `doc/packages/steam.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/steam.section.md)","doc/packages/treefmt.section.md":"# Packages Skill\n\nPath: `doc/packages/treefmt.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/treefmt.section.md)","doc/packages/urxvt.section.md":"# Packages Skill\n\nPath: `doc/packages/urxvt.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/urxvt.section.md)","doc/packages/uv.section.md":"# Packages Skill\n\nPath: `doc/packages/uv.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/uv.section.md)","doc/packages/vcpkg.section.md":"# Packages Skill\n\nPath: `doc/packages/vcpkg.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/vcpkg.section.md)","doc/packages/weechat.section.md":"# Packages Skill\n\nPath: `doc/packages/weechat.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/weechat.section.md)","pkgs/build-support/dev-shell-tools/README.md":"# dev-shell-tools Documentation\n\nPath: `pkgs/build-support/dev-shell-tools/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/build-support/dev-shell-tools/README.md)","pkgs/by-name/li/libretroPackages/README.md":"# libretroPackages Documentation\n\nPath: `pkgs/by-name/li/libretroPackages/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/li/libretroPackages/README.md)","pkgs/desktops/gnome/extensions/README.md":"# extensions Documentation\n\nPath: `pkgs/desktops/gnome/extensions/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/README.md)","pkgs/desktops/gnome/extensions/collisions.json":"# Extensions Skill\n\nPath: `pkgs/desktops/gnome/extensions/collisions.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/collisions.json)","pkgs/desktops/gnome/extensions/extensions.json":"# Extensions Skill\n\nPath: `pkgs/desktops/gnome/extensions/extensions.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/extensions.json)","pkgs/development/cuda-modules/packages/README.md":"# packages Documentation\n\nPath: `pkgs/development/cuda-modules/packages/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/cuda-modules/packages/README.md)","pkgs/applications/editors/kakoune/plugins/deprecated.json":"# Plugins Skill\n\nPath: `pkgs/applications/editors/kakoune/plugins/deprecated.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/kakoune/plugins/deprecated.json)","pkgs/applications/editors/vim/plugins/deprecated.json":"# Plugins Skill\n\nPath: `pkgs/applications/editors/vim/plugins/deprecated.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/deprecated.json)","pkgs/applications/editors/vim/plugins/readme.md":"# plugins Documentation\n\nPath: `pkgs/applications/editors/vim/plugins/readme.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/readme.md)","pkgs/applications/editors/vscode/extensions/README.md":"# extensions Documentation\n\nPath: `pkgs/applications/editors/vscode/extensions/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vscode/extensions/README.md)","pkgs/by-name/ma/maubot/plugins/generated.json":"# Plugins Skill\n\nPath: `pkgs/by-name/ma/maubot/plugins/generated.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ma/maubot/plugins/generated.json)","pkgs/by-name/na/navidrome/plugins/README.md":"# plugins Documentation\n\nPath: `pkgs/by-name/na/navidrome/plugins/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/na/navidrome/plugins/README.md)","pkgs/development/compilers/elm/packages/README.md":"# packages Documentation\n\nPath: `pkgs/development/compilers/elm/packages/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/compilers/elm/packages/README.md)","pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/package-activation-events.json":"# Ms-vscode.cpptools Skill\n\nPath: `pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/package-activation-events.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/package-activation-events.json)","pkgs/by-name/ga/gauge/plugins/dotnet/data.json":"# Dotnet Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/dotnet/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/dotnet/data.json)","pkgs/by-name/ga/gauge/plugins/go/data.json":"# Go Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/go/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/go/data.json)","pkgs/by-name/ga/gauge/plugins/html-report/data.json":"# Html-report Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/html-report/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/html-report/data.json)","pkgs/by-name/ga/gauge/plugins/java/data.json":"# Java Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/java/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/java/data.json)","pkgs/by-name/ga/gauge/plugins/ruby/data.json":"# Ruby Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/ruby/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/ruby/data.json)","pkgs/by-name/ga/gauge/plugins/screenshot/data.json":"# Screenshot Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/screenshot/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/screenshot/data.json)","pkgs/by-name/ga/gauge/plugins/xml-report/data.json":"# Xml-report Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/xml-report/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/xml-report/data.json)","pkgs/development/compilers/elm/packages/elm-test-rs/elm-srcs.json":"# Elm-test-rs Skill\n\nPath: `pkgs/development/compilers/elm/packages/elm-test-rs/elm-srcs.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/compilers/elm/packages/elm-test-rs/elm-srcs.json)","pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml":"# Smoke-test Skill\n\nPath: `pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml)","pkgs/applications/editors/vim/plugins/non-generated/vim2nix/src/addon-info.json":"# Src Skill\n\nPath: `pkgs/applications/editors/vim/plugins/non-generated/vim2nix/src/addon-info.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/non-generated/vim2nix/src/addon-info.json)","pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/Chart.yaml":"# Smoke Skill\n\nPath: `pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/Chart.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/Chart.yaml)","pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/templates/configmap.yaml":"# Templates Skill\n\nPath: `pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/templates/configmap.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/templates/configmap.yaml)","pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/tests/configmap_test.yaml":"# Tests Skill\n\nPath: `pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/tests/configmap_test.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/tests/configmap_test.yaml)"},"items":[{"name":"build-support.md","path":"doc/packages/build-support.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/build-support.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Build Support {#sec-build-support}\n\n## `pkgs.substitute` {#pkgs-substitute}\n\n`pkgs.substitute` is a wrapper around [the `substitute` Bash function](#fun-substitute) in the standard environment.\nIt replaces strings in `src` as specified by the `substitutions` argument.\n\n\n:::{.example #ex-pkgs-substitute}\n# Usage of `pkgs.substitute`\n\nIn a build script, the line:\n\n```bash\nsubstitute $infile $outfile --replace-fail @foo@ ${lib.getExe foopkg}\n```\n\nis equivalent to:\n\n```nix\n{\n  lib,\n  substitute,\n  foopkg,\n}:\nsubstitute {\n  src = ./sourcefile.txt;\n  substitutions = [\n    \"--replace\"\n    \"@foo@\"\n    (lib.getExe foopkg)\n  ];\n}\n```\n:::\n\n## `pkgs.replaceVars` {#pkgs-replacevars}\n\n`pkgs.replaceVars <src> <replacements>` replaces all instances of `@varName@` (`@`s included) in file `src` with the respective value in the attribute set `replacements`.\n\n:::{.example #ex-pkgs-replace-vars}\n# Usage of `pkgs.replaceVars`\n\nIf `say-goodbye.sh` contains the following:\n\n```bash\n#! @bash@/bin/bash\n\necho @unchanged@\n@hello@/bin/hello --greeting @greeting@\n```\n\nthe following derivation will make substitutions to `@bash@`, `@hello@`, and `@greeting@`:\n\n```nix\n{\n  replaceVars,\n  bash,\n  hello,\n}:\nreplaceVars ./say-goodbye.sh {\n  inherit bash hello;\n  greeting = \"goodbye\";\n  unchanged = null;\n}\n```\n\nsuch that `$out` will result in something like the following:\n\n```\n#! /nix/store/s30jrpgav677fpc9yvkqsib70xfmx7xi-bash-5.2p26/bin/bash\n\necho @unchanged@\n/nix/store/566f5isbvw014h7knmzmxa5l6hshx43k-hello-2.12.1/bin/hello --greeting goodbye\n```\n\nNote that, in contrast to the old `substituteAll`, `unchanged = null` must explicitly be set.\nAny unreferenced `@...@` pattern in the source file will throw an error.\n:::\n\n## `pkgs.replaceVarsWith` {#pkgs-replacevarswith}\n\n`pkgs.replaceVarsWith` works the same way as [pkgs.replaceVars](#pkgs-replacevars), but additionally allows more options.\n\n:::{.example #ex-pkgs-replace-vars-with}\n# Usage of `pkgs.replaceVarsWith`\n\nWith the example file `say-goodbye.sh`, consider:\n\n```nix\n{ replaceVarsWith }:\nreplaceVarsWith {\n  src = ./say-goodbye.sh;\n\n  replacements = {\n    inherit bash hello;\n    greeting = \"goodbye\";\n    unchanged = null;\n  };\n\n  name = \"say-goodbye\";\n  dir = \"bin\";\n  isExecutable = true;\n  meta.mainProgram = \"say-goodbye\";\n}\n```\n\nThis will make the resulting file executable, put it in `bin/say-goodbye` and set `meta` attributes respectively.\n:::\n","isInternal":false,"tokens":715,"sizeBytes":2406},{"name":"cataclysm-dda.section.md","path":"doc/packages/cataclysm-dda.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/cataclysm-dda.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Cataclysm: Dark Days Ahead {#cataclysm-dark-days-ahead}\n\n## How to install Cataclysm DDA {#how-to-install-cataclysm-dda}\n\nTo install the latest stable release of Cataclysm DDA to your profile, execute\n`nix-env -f \"<nixpkgs>\" -iA cataclysm-dda`. For the curses build (build\nwithout tiles), install `cataclysmDDA.stable.curses`. Note: `cataclysm-dda` is\nan alias to `cataclysmDDA.stable.tiles`.\n\nIf you like access to a development build of your favorite git revision,\noverride `cataclysm-dda-git` (or `cataclysmDDA.git.curses` if you like the curses\nbuild):\n\n```nix\ncataclysm-dda-git.override {\n  version = \"YYYY-MM-DD\";\n  rev = \"YOUR_FAVORITE_REVISION\";\n  sha256 = \"CHECKSUM_OF_THE_REVISION\";\n}\n```\n\nThe sha256 checksum can be obtained by\n\n```sh\nnix-prefetch-url --unpack \"https://github.com/CleverRaven/Cataclysm-DDA/archive/${YOUR_FAVORITE_REVISION}.tar.gz\"\n```\n\nThe default configuration directory is `~/.cataclysm-dda`. If you prefer\n`$XDG_CONFIG_HOME/cataclysm-dda`, override the derivation:\n\n```nix\ncataclysm-dda.override { useXdgDir = true; }\n```\n\n## Important note for overriding packages {#important-note-for-overriding-packages}\n\nAfter applying `overrideAttrs`, you need to fix `passthru.pkgs` and\n`passthru.withMods` attributes either manually or by using `attachPkgs`:\n\n```nix\nlet\n  # You enabled parallel building.\n  myCDDA = cataclysm-dda-git.overrideAttrs (_: {\n    enableParallelBuilding = true;\n  });\n\n  # Unfortunately, this refers to the package before overriding and\n  # parallel building is still disabled.\n  badExample = myCDDA.withMods (_: [ ]);\n\n  inherit (cataclysmDDA) attachPkgs pkgs wrapCDDA;\n\n  # You can fix it by hand\n  goodExample1 = myCDDA.overrideAttrs (old: {\n    passthru = old.passthru // {\n      pkgs = pkgs.override { build = goodExample1; };\n      withMods = wrapCDDA goodExample1;\n    };\n  });\n\n  # or by using a helper function `attachPkgs`.\n  goodExample2 = attachPkgs pkgs myCDDA;\n\n  # badExample                     # parallel building disabled\n  # goodExample1.withMods (_: [])  # parallel building enabled\nin\ngoodExample2.withMods (_: [ ]) # parallel building enabled\n```\n\n## Customizing with mods {#customizing-with-mods}\n\nTo install Cataclysm DDA with mods of your choice, you can use `withMods`\nattribute:\n\n```nix\ncataclysm-dda.withMods (mods: with mods; [ tileset.UndeadPeople ])\n```\n\nAll mods, soundpacks, and tilesets available in nixpkgs are found in\n`cataclysmDDA.pkgs`.\n\nHere is an example to modify existing mods and/or add more mods not available\nin nixpkgs:\n\n```nix\nlet\n  customMods =\n    self: super:\n    lib.recursiveUpdate super {\n      # Modify existing mod\n      tileset.UndeadPeople = super.tileset.UndeadPeople.overrideAttrs (old: {\n        # If you like to apply a patch to the tileset for example\n        patches = [ ./path/to/your.patch ];\n      });\n\n      # Add another mod\n      mod.Awesome = cataclysmDDA.buildMod {\n        modName = \"Awesome\";\n        version = \"0.x\";\n        src = fetchFromGitHub {\n          owner = \"Someone\";\n          repo = \"AwesomeMod\";\n          rev = \"...\";\n          hash = \"...\";\n        };\n        # Path to be installed in the unpacked source (default: \".\")\n        modRoot = \"contents/under/this/path/will/be/installed\";\n      };\n\n      # Add another soundpack\n      soundpack.Fantastic = cataclysmDDA.buildSoundPack {\n        # ditto\n      };\n\n      # Add another tileset\n      tileset.SuperDuper = cataclysmDDA.buildTileSet {\n        # ditto\n      };\n    };\nin\ncataclysm-dda.withMods (\n  mods: with mods.extend customMods; [\n    tileset.UndeadPeople\n    mod.Awesome\n    soundpack.Fantastic\n    tileset.SuperDuper\n  ]\n)\n```\n","isInternal":false,"tokens":1024,"sizeBytes":3631},{"name":"citrix.section.md","path":"doc/packages/citrix.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/citrix.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Citrix Workspace {#sec-citrix}\n\nThe [Citrix Workspace App](https://www.citrix.com/products/workspace-app/) is a remote desktop viewer which provides access to [XenDesktop](https://www.citrix.com/products/xenapp-xendesktop/) installations.\n\n## Basic usage {#sec-citrix-base}\n\nThe tarball archive needs to be downloaded manually, as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store, the package can be built and installed with Nix.\n\nThe package includes the `ctxcwalogd.service` user unit required by Citrix's logging tools.\nTo enable it on NixOS:\n\n```nix\n{\n  systemd.packages = [ pkgs.citrix-workspace ];\n  systemd.user.services.ctxcwalogd.wantedBy = [ \"default.target\" ];\n}\n```\n\nFor FUSE-based file transfer, enable the privileged helper on NixOS:\n\n```nix\n{\n  programs.fuse.enable = true;\n}\n```\n\nThe package uses `/run/wrappers/bin/fusermount3` when it is available.\n\n## Citrix Self-service {#sec-citrix-selfservice}\n\nThe [self-service](https://support.citrix.com/article/CTX200337) is an application for managing Citrix desktops and applications. Please note that this feature only works with at least `citrix_workspace_20_06_0` and later versions.\n\nTo set this up, you first have to [download the `.cr` file from the Netscaler Gateway](https://its.uiowa.edu/support/article/102186). After that, you can configure the `selfservice` like this:\n\n```ShellSession\n$ storebrowse -C ~/Downloads/receiverconfig.cr\n$ selfservice\n```\n\n## Custom certificates {#sec-citrix-custom-certs}\n\nThe `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However, several companies using Citrix might require their own corporate certificate. On distros with imperative packaging, these certs can be stored easily in [`$ICAROOT`](https://citrix.github.io/receiver-for-linux-command-reference/), however, this directory is a store path in `nixpkgs`. To work around this issue, the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`:\n\n```nix\nwith import <nixpkgs> { config.allowUnfree = true; };\nlet\n  extraCerts = [\n    ./custom-cert-1.pem\n    ./custom-cert-2.pem # ...\n  ];\nin\ncitrix_workspace.override { inherit extraCerts; }\n```\n","isInternal":false,"tokens":625,"sizeBytes":2510},{"name":"darwin-builder.section.md","path":"doc/packages/darwin-builder.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/darwin-builder.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# darwin.linux-builder {#sec-darwin-builder}\n\n:::{.warning}\nBy default, `darwin.linux-builder` uses a publicly-known private SSH **host key** (this is different from the SSH key used by the user that connects to the builder).\n\nGiven the intended use case for it (a Linux builder that runs **on the same machine**), this shouldn't be an issue.\nHowever, if you plan to deviate from this use case in any way (e.g. by exposing this builder to remote machines), you should understand the security implications of doing so and take any appropriate measures.\n:::\n\n`darwin.linux-builder` provides a way to bootstrap a Linux remote builder on a macOS machine.\n\nThis requires macOS version 12.4 or later.\n\nThe remote builder runs on host port 31022 by default.\nYou can change it by overriding `virtualisation.darwin-builder.hostPort`.\nSee the [example](#sec-darwin-builder-example-flake).\n\nYou will also need to be a trusted user for your Nix installation.  In other\nwords, your `/etc/nix/nix.conf` should have something like:\n\n```\nextra-trusted-users = <your username goes here>\n```\n\nTo launch the remote builder, run the following flake:\n\n```ShellSession\n$ nix run nixpkgs#darwin.linux-builder\n```\n\nThat will prompt you to enter your `sudo` password:\n\n```\n+ sudo --reset-timestamp /nix/store/…-install-credentials.sh ./keys\nPassword:\n```\n\n… so that it can install a private key used to `ssh` into the build server.\nAfter that the script will launch the virtual machine and automatically log you\nin as the `builder` user:\n\n```\n<<< Welcome to NixOS 22.11.20220901.1bd8d11 (aarch64) - ttyAMA0 >>>\n\nRun 'nixos-help' for the NixOS manual.\n\nnixos login: builder (automatic login)\n\n\n[builder@nixos:~]$\n```\n\n> Note: When you need to stop the VM, run `shutdown now` as the `builder` user.\n\nTo delegate builds to the remote builder, add the following options to your\n`nix.conf` file:\n\n```\n# - Replace ${ARCH} with either aarch64 or x86_64 to match your host machine\n# - Replace ${MAX_JOBS} with the maximum number of builds (pick 4 if you're not sure)\nbuilders = ssh-ng://builder@linux-builder ${ARCH}-linux /etc/nix/builder_ed25519 ${MAX_JOBS} - - - c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUpCV2N4Yi9CbGFxdDFhdU90RStGOFFVV3JVb3RpQzVxQkorVXVFV2RWQ2Igcm9vdEBuaXhvcwo=\n\n# Not strictly necessary, but this will reduce your disk utilization\nbuilders-use-substitutes = true\n```\n\nTo allow Nix to connect to the default remote builder, which does not run on port 22, you will also need to create a new file at `/etc/ssh/ssh_config.d/100-linux-builder.conf`:\n\n```\nHost linux-builder\n  Hostname localhost\n  HostKeyAlias linux-builder\n  Port 31022\n  User builder\n  IdentityFile /etc/nix/builder_ed25519\n```\n\n… and then restart your Nix daemon to apply the change:\n\n```ShellSession\n$ sudo launchctl kickstart -k system/org.nixos.nix-daemon\n```\n\nNote that if the builder is running and you have created the above ssh conf file, you can ssh into the builder with `sudo ssh builder@linux-builder`.\n\n## Using the Virtualization.framework backend {#sec-darwin-builder-vz}\n\n`darwin.linux-builder-vz` is a variant of `darwin.linux-builder` that runs the same\nNixOS guest on Apple's Virtualization.framework (via `pkgs.vzvm`) instead of QEMU.\nInstead of emulating x86_64, it exposes Rosetta to the guest, so `x86_64-linux`\nbuilds are translated rather than emulated, which is substantially faster. It\nrequires an Apple silicon host (`aarch64-darwin`) running macOS 13 or newer, with\nRosetta installed:\n\n```ShellSession\n$ softwareupdate --install-rosetta --agree-to-license\n```\n\nThe builder refuses to start when Rosetta is missing, rather than silently dropping\n`x86_64-linux` support; set `virtualisation.vz.rosetta.enable = false` to run\nwithout it.\n\nIt is a drop-in replacement: it listens on the same host port (31022) and presents\nthe same host key as the QEMU builder, so the `nix.conf` and SSH configuration\ndescribed above apply unchanged; only the transport behind the port changes, from\nTCP forwarding to vsock. Since a single builder VM handles both architectures\nthrough Rosetta, list both systems in your `builders` entry\n(`aarch64-linux,x86_64-linux`), or with nix-darwin:\n\n```nix\n{\n  nix.linux-builder = {\n    enable = true;\n    package = pkgs.darwin.linux-builder-vz;\n    systems = [\n      \"aarch64-linux\"\n      \"x86_64-linux\"\n    ];\n  };\n}\n```\n\nWhen switching an existing QEMU builder over, delete its data disk first (e.g.\n`sudo rm /var/lib/linux-builder/nixos.qcow2`): the vz builder reuses the file name\nbut writes a raw image, and refuses to misread a genuine qcow2 left behind.\n\nThe guest console goes to the macOS unified log by default; read it with:\n\n```ShellSession\n$ /usr/bin/log show --last 5m --predicate 'subsystem == \"systems.applicative.vzvm\"'\n```\n\nThe `virtualisation.vz.*` NixOS options configure the backend further, e.g.\n`virtualisation.vz.nestedVirtualization` gives the guest a working `/dev/kvm` for\nrunning NixOS integration tests on the builder (macOS 15+, M3 or newer).\n\n## Example flake usage {#sec-darwin-builder-example-flake}\n\n```nix\n{\n  inputs = {\n    nixpkgs.url = \"https://channels.nixos.org/nixpkgs-26.05-darwin/nixexprs.tar.zst\";\n    darwin.url = \"github:nix-darwin/nix-darwin/master\";\n    darwin.inputs.nixpkgs.follows = \"nixpkgs\";\n  };\n\n  outputs =\n    {\n      self,\n      darwin,\n      nixpkgs,\n      ...\n    }@inputs:\n    let\n\n      inherit (darwin.lib) darwinSystem;\n      system = \"aarch64-darwin\";\n      pkgs = nixpkgs.legacyPackages.\"${system}\";\n      linuxSystem = builtins.replaceStrings [ \"darwin\" ] [ \"linux\" ] system;\n\n      darwin-builder = nixpkgs.lib.nixosSystem {\n        system = linuxSystem;\n        modules = [\n          \"${nixpkgs}/nixos/modules/profiles/nix-builder-vm.nix\"\n          {\n            virtualisation = {\n              host.pkgs = pkgs;\n              darwin-builder.workingDirectory = \"/var/lib/darwin-builder\";\n              darwin-builder.hostPort = 22;\n            };\n          }\n        ];\n      };\n    in\n    {\n\n      darwinConfigurations = {\n        machine1 = darwinSystem {\n          inherit system;\n          modules = [\n            {\n              nix.distributedBuilds = true;\n              nix.buildMachines = [\n                {\n                  hostName = \"localhost\";\n                  sshUser = \"builder\";\n                  sshKey = \"/etc/nix/builder_ed25519\";\n                  system = linuxSystem;\n                  maxJobs = 4;\n                  supportedFeatures = [\n                    \"kvm\"\n                    \"benchmark\"\n                    \"big-parallel\"\n                  ];\n                }\n              ];\n\n              launchd.daemons.darwin-builder = {\n                command = nixpkgs.lib.getExe darwin-builder.config.system.build.macos-builder-installer;\n                serviceConfig = {\n                  KeepAlive = true;\n                  RunAtLoad = true;\n                  StandardOutPath = \"/var/log/darwin-builder.log\";\n                  StandardErrorPath = \"/var/log/darwin-builder.log\";\n                };\n              };\n            }\n          ];\n        };\n      };\n\n    };\n}\n```\n\n## Reconfiguring the remote builder {#sec-darwin-builder-reconfiguring}\n\nInitially you should not change the remote builder configuration else you will not be\nable to use the binary cache. However, after you have the remote builder running locally\nyou may use it to build a modified remote builder with additional storage or memory.\n\nTo do this, you just need to set the `virtualisation.darwin-builder.*` parameters as\nin the example below and rebuild.\n\n```nix\n{\n  darwin-builder = nixpkgs.lib.nixosSystem {\n    system = linuxSystem;\n    modules = [\n      \"${nixpkgs}/nixos/modules/profiles/nix-builder-vm.nix\"\n      {\n        virtualisation.host.pkgs = pkgs;\n        virtualisation.darwin-builder.diskSize = 5120;\n        virtualisation.darwin-builder.memorySize = 1024;\n        virtualisation.darwin-builder.hostPort = 33022;\n        virtualisation.darwin-builder.workingDirectory = \"/var/lib/darwin-builder\";\n      }\n    ];\n  };\n}\n```\n\nYou may make any other changes to your VM in this attribute set. For example,\nyou could enable Docker or X11 forwarding to your Darwin host.\n\n## Troubleshooting the generated configuration {#sec-darwin-builder-troubleshoot}\n\nThe `linux-builder` package exposes the attributes `nixosConfig` and `nixosOptions` that allow you to inspect the generated NixOS configuration in the `nix repl`. For example:\n\n```\n$ nix repl --file ~/src/nixpkgs --argstr system aarch64-darwin\n\nnix-repl> darwin.linux-builder.nixosConfig.nix.package\n«derivation /nix/store/...-nix-2.17.0.drv»\n\nnix-repl> :p darwin.linux-builder.nixosOptions.virtualisation.memorySize.definitionsWithLocations\n[ { file = \"/home/user/src/nixpkgs/nixos/modules/profiles/nix-builder-vm.nix\"; value = 3072; } ]\n\n```\n","isInternal":false,"tokens":2286,"sizeBytes":8806},{"name":"dlib.section.md","path":"doc/packages/dlib.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/dlib.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# DLib {#dlib}\n\n[DLib](http://dlib.net/) is a modern, C++\\-based toolkit which provides several machine learning algorithms.\n\n## Compiling without AVX support {#compiling-without-avx-support}\n\nEspecially older CPUs don't support [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms.\n\nOn the affected hardware, errors like `Illegal instruction` will occur. In those cases, AVX support needs to be disabled:\n\n```nix\nself: super: { dlib = super.dlib.override { avxSupport = false; }; }\n```\n","isInternal":false,"tokens":144,"sizeBytes":591},{"name":"eclipse.section.md","path":"doc/packages/eclipse.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/eclipse.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Eclipse {#sec-eclipse}\n\nThe Nix expressions related to the Eclipse platform and IDE are in [`pkgs/applications/editors/eclipse`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/eclipse).\n\nNixpkgs provides several packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages, and multiple versions are often available. It is possible to list available Eclipse packages by issuing the command:\n\n```ShellSession\n$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description\n```\n\nOnce an Eclipse variant is installed, it can be run using the `eclipse` command, as expected. From within Eclipse, it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resembles a manually installed Eclipse.\n\nIf you prefer to install plugins in a more declarative manner, then Nixpkgs also offers several Eclipse plugins that can be installed in an _Eclipse environment_. This type of environment is created using the function `eclipseWithPlugins` found inside the `nixpkgs.eclipses` attribute set. This function takes as an argument `{ eclipse, plugins ? [], jvmArgs ? [] }` where `eclipse` is one of the Eclipse packages described above, `plugins` is a list of plugin derivations, and `jvmArgs` is a list of arguments given to the JVM running Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add:\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEclipse =\n      with pkgs.eclipses;\n      eclipseWithPlugins {\n        eclipse = eclipse-platform;\n        jvmArgs = [ \"-Xmx2048m\" ];\n        plugins = [ plugins.color-theme ];\n      };\n  };\n}\n```\n\nto your Nixpkgs configuration (`~/.config/nixpkgs/config.nix`) and install it by running `nix-env -f '<nixpkgs>' -iA myEclipse` and afterward running Eclipse as usual. It is possible to find out which plugins are available for installation using `eclipseWithPlugins` by running:\n\n```ShellSession\n$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description\n```\n\nIf there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the `buildEclipseUpdateSite` and `buildEclipsePlugin` functions found in the `nixpkgs.eclipses.plugins` attribute set. Use the `buildEclipseUpdateSite` function to install a plugin distributed as an Eclipse update site. This function takes `{ src }` and either `pname` or `name` + `version` as arguments, where `src` indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available, then the `buildEclipsePlugin` function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes `{ srcFeature, srcPlugin }` and either `pname` or `name` + `version` as arguments, where `srcFeature` and `srcPlugin` are the feature and plugin JARs, respectively.\n\nExpanding the previous example with two plugins using the above functions, we have:\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEclipse =\n      with pkgs.eclipses;\n      eclipseWithPlugins {\n        eclipse = eclipse-platform;\n        jvmArgs = [ \"-Xmx2048m\" ];\n        plugins = [\n          plugins.color-theme\n          (plugins.buildEclipsePlugin {\n            pname = \"myplugin1\";\n            version = \"1.0\";\n            srcFeature = fetchurl {\n              url = \"http://…/features/myplugin1.jar\";\n              hash = \"sha256-123…\";\n            };\n            srcPlugin = fetchurl {\n              url = \"http://…/plugins/myplugin1.jar\";\n              hash = \"sha256-123…\";\n            };\n          })\n          (plugins.buildEclipseUpdateSite {\n            pname = \"myplugin2\";\n            version = \"1.0\";\n            src = fetchurl {\n              stripRoot = false;\n              url = \"http://…/myplugin2.zip\";\n              hash = \"sha256-123…\";\n            };\n          })\n        ];\n      };\n  };\n}\n```\n","isInternal":false,"tokens":1007,"sizeBytes":4335},{"name":"elm.section.md","path":"doc/packages/elm.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/elm.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Elm {#sec-elm}\n\nTo start a development environment, run:\n\n```ShellSession\nnix-shell -p elmPackages.elm elmPackages.elm-format\n```\n\nTo update the Elm compiler, see `nixpkgs/pkgs/development/compilers/elm/README.md`.\n\nTo package Elm applications, [read about elm2nix](https://github.com/hercules-ci/elm2nix#elm2nix).\n","isInternal":false,"tokens":95,"sizeBytes":317},{"name":"emacs.section.md","path":"doc/packages/emacs.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/emacs.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Emacs {#sec-emacs}\n\n## Configuring Emacs {#sec-emacs-config}\n\nThe Emacs package comes with some extra helpers to make it easier to configure. `emacs.pkgs.withPackages` manages packages from ELPA. This means that you will not have to install those packages from within Emacs. For instance, if you wanted to use `company`, `counsel`, `flycheck`, `ivy`, `magit`, `projectile`, and `use-package`, you could use this as a `~/.config/nixpkgs/config.nix` override:\n\n```nix\n{\n  packageOverrides =\n    pkgs: with pkgs; {\n      myEmacs = emacs.pkgs.withPackages (\n        epkgs:\n        (with epkgs.melpaStablePackages; [\n          company\n          counsel\n          flycheck\n          ivy\n          magit\n          projectile\n          use-package\n        ])\n      );\n    };\n}\n```\n\nYou can install it like any other package via `nix-env -iA myEmacs`. However, this will only install those packages. It will not `configure` them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provides a `default.el` file in `/share/emacs/site-start/`. Emacs knows to load this file automatically when it starts.  Similarly, for `early-init.el`, you can create a package that provides an `early-default.el` file in `/share/emacs/site-start/`.\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEmacsConfig = pkgs.writeText \"default.el\" ''\n      (eval-when-compile\n        (require 'use-package))\n\n      ;; load some packages\n\n      (use-package company\n        :bind (\"<C-tab>\" . company-complete)\n        :diminish company-mode\n        :commands (company-mode global-company-mode)\n        :defer 1\n        :config\n        (global-company-mode))\n\n      (use-package counsel\n        :commands (counsel-descbinds)\n        :bind (([remap execute-extended-command] . counsel-M-x)\n               (\"C-x C-f\" . counsel-find-file)\n               (\"C-c g\" . counsel-git)\n               (\"C-c j\" . counsel-git-grep)\n               (\"C-c k\" . counsel-ag)\n               (\"C-x l\" . counsel-locate)\n               (\"M-y\" . counsel-yank-pop)))\n\n      (use-package flycheck\n        :defer 2\n        :config (global-flycheck-mode))\n\n      (use-package ivy\n        :defer 1\n        :bind ((\"C-c C-r\" . ivy-resume)\n               (\"C-x C-b\" . ivy-switch-buffer)\n               :map ivy-minibuffer-map\n               (\"C-j\" . ivy-call))\n        :diminish ivy-mode\n        :commands ivy-mode\n        :config\n        (ivy-mode 1))\n\n      (use-package magit\n        :defer\n        :if (executable-find \"git\")\n        :bind ((\"C-x g\" . magit-status)\n               (\"C-x G\" . magit-dispatch-popup))\n        :init\n        (setq magit-completing-read-function 'ivy-completing-read))\n\n      (use-package projectile\n        :commands projectile-mode\n        :bind-keymap (\"C-c p\" . projectile-command-map)\n        :defer 5\n        :config\n        (projectile-global-mode))\n    '';\n\n    myEmacs = emacs.pkgs.withPackages (\n      epkgs:\n      (with epkgs.melpaStablePackages; [\n        (runCommand \"default.el\" { } ''\n          mkdir -p $out/share/emacs/site-lisp\n          cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el\n        '')\n        company\n        counsel\n        flycheck\n        ivy\n        magit\n        projectile\n        use-package\n      ])\n    );\n  };\n}\n```\n\nThis provides a fairly full Emacs start file. It will load in addition to the user's personal config. You can always disable it by passing `-q` to the Emacs command.\n\nSometimes `emacs.pkgs.withPackages` is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to GNU-devel ELPA, and the highest for packages manually defined in `pkgs/applications/editors/emacs/elisp-packages/manual-packages`). But you can't control these priorities when some package is installed as a dependency. You can override it on a per-package-basis, providing all the required dependencies manually, but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package, you can use `overrideScope`.\n\n```nix\nlet\n  overrides = self: super: rec {\n    haskell-mode = self.melpaPackages.haskell-mode;\n    # ...\n  };\nin\n((emacsPackagesFor emacs).overrideScope overrides).withPackages (\n  p: with p; [\n    # here both these package will use haskell-mode of our own choice\n    ghc-mod\n    dante\n  ]\n)\n```\n}\n","isInternal":false,"tokens":1127,"sizeBytes":4524},{"name":"etc-files.section.md","path":"doc/packages/etc-files.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/etc-files.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# /etc files {#etc}\n\nCertain calls in glibc require access to runtime files found in `/etc` such as `/etc/protocols` or `/etc/services` -- [getprotobyname](https://linux.die.net/man/3/getprotobyname) is one such function.\n\nOn non-NixOS distributions, these files are typically provided by packages (i.e., [netbase](https://packages.debian.org/sid/netbase)) if not already pre-installed in your distribution. This can cause non-reproducibility for code if they rely on these files being present.\n\nIf [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your `buildInputs`, then it will set the environment variables `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a setup hook.\n\n\n```bash\n> nix-shell -p iana-etc\n\n[nix-shell:~]$ env | grep NIX_ETC\nNIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/services\nNIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols\n```\n\nNixpkgs's version of [glibc](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/glibc/default.nix) has been patched to check for the existence of these environment variables. If the environment variables are *not* set, then it will attempt to find the files at the default location within `/etc`.\n","isInternal":false,"tokens":389,"sizeBytes":1349},{"name":"firefox.section.md","path":"doc/packages/firefox.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/firefox.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Firefox {#sec-firefox}\n\n## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies}\n\nThe `wrapFirefox` function allows to pass policies, preferences and extensions that are available to Firefox. With the help of `fetchFirefoxAddon` this allows to build a Firefox version that already comes with add-ons pre-installed:\n\n```nix\n{\n  # Nix firefox addons only work with the firefox-esr package.\n  myFirefox = wrapFirefox firefox-esr-unwrapped {\n    nixExtensions = [\n      (fetchFirefoxAddon {\n        name = \"ublock\"; # Has to be unique!\n        url = \"https://addons.mozilla.org/firefox/downloads/file/3679754/ublock_origin-1.31.0-an+fx.xpi\";\n        hash = \"sha256-2e73AbmYZlZXCP5ptYVcFjQYdjDp4iPoEPEOSCVF5sA=\";\n      })\n    ];\n\n    extraPolicies = {\n      CaptivePortal = false;\n      DisableFirefoxStudies = true;\n      DisablePocket = true;\n      DisableTelemetry = true;\n      DisableFirefoxAccounts = true;\n      FirefoxHome = {\n        Pocket = false;\n        Snippets = false;\n      };\n      UserMessaging = {\n        ExtensionRecommendations = false;\n        SkipOnboarding = true;\n      };\n      SecurityDevices = {\n        # Use a proxy module rather than `nixpkgs.config.firefox.smartcardSupport = true`\n        \"PKCS#11 Proxy Module\" = \"${pkgs.p11-kit}/lib/p11-kit-proxy.so\";\n      };\n    };\n\n    extraPrefs = ''\n      // Show more ssl cert infos\n      lockPref(\"security.identityblock.show_extended_validation\", true);\n    '';\n  };\n}\n```\n\nIf `nixExtensions != null`, then all manually installed add-ons will be uninstalled from your browser profile.\nTo view available enterprise policies, visit [enterprise policies](https://github.com/mozilla/policy-templates#enterprisepoliciesenabled)\nor type into the Firefox URL bar: `about:policies#documentation`.\nNix installed add-ons do not have a valid signature, which is why signature verification is disabled. This does not compromise security because downloaded add-ons are checksummed and manual add-ons can't be installed. Also, make sure that the `name` field of `fetchFirefoxAddon` is unique. If you remove an add-on from the `nixExtensions` array, rebuild and start Firefox: the removed add-on will be completely removed with all of its settings.\n\n## Troubleshooting {#sec-firefox-troubleshooting}\nIf add-ons are marked as broken or the signature is invalid, make sure you have Firefox ESR installed. Normal Firefox does not provide the ability anymore to disable signature verification for add-ons; thus, Nix add-ons get disabled by the normal Firefox binary.\n\nIf add-ons do not appear installed despite being defined in your nix configuration file, reset the local add-on state of your Firefox profile by clicking `Help -> More Troubleshooting Information -> Refresh Firefox`. This can happen if you switch from manual add-on mode to nix add-on mode and then back to manual mode and then again to nix add-on mode.\n","isInternal":false,"tokens":677,"sizeBytes":2930},{"name":"fish.section.md","path":"doc/packages/fish.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/fish.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Fish {#sec-fish}\n\nFish is a \"smart and user-friendly command line shell\" with support for plugins.\n\n\n## Vendor Fish scripts {#sec-fish-vendor}\n\nAny package may ship its own Fish completions, configuration snippets, and\nfunctions. Those should be installed to\n`$out/share/fish/vendor_{completions,conf,functions}.d` respectively.\n\nWhen the `programs.fish.enable` and\n`programs.fish.vendor.{completions,config,functions}.enable` options from the\nNixOS Fish module are set to true, those paths are symlinked in the current\nsystem environment and are automatically loaded by Fish.\n\n\n## Packaging Fish plugins {#sec-fish-plugins-pkg}\n\nWhile packages providing standalone executables belong to the top level,\npackages which have the sole purpose of extending Fish belong to the\n`fishPlugins` scope and should be registered in\n`pkgs/shells/fish/plugins/default.nix`.\n\nThe `buildFishPlugin` utility function can be used to automatically copy Fish\nscripts from `$src/{completions,conf,conf.d,functions}` to the standard vendor\ninstallation paths. It also sets up the test environment so that the optional\n`checkPhase` is executed in a Fish shell with other already packaged plugins\nand package-local Fish functions specified in `checkPlugins` and\n`checkFunctionDirs` respectively.\n\nSee `pkgs/shells/fish/plugins/pure.nix` for an example of Fish plugin package\nusing `buildFishPlugin` and running unit tests with the `fishtape` test runner.\n\n\n## Fish wrapper {#sec-fish-wrapper}\n\nThe `wrapFish` package is a wrapper around Fish which can be used to create\nFish shells initialized with some plugins as well as completions, configuration\nsnippets and functions sourced from the given paths. This provides a convenient\nway to test Fish plugins and scripts without having to alter the environment.\n\n```nix\nwrapFish {\n  pluginPkgs = with fishPlugins; [\n    pure\n    foreign-env\n  ];\n  completionDirs = [ ];\n  functionDirs = [ ];\n  confDirs = [ \"/path/to/some/fish/init/dir/\" ];\n}\n```\n","isInternal":false,"tokens":458,"sizeBytes":1971},{"name":"friction-graphics.section.md","path":"doc/packages/friction-graphics.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/friction-graphics.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Friction {#friction-graphics}\n\n[Friction](https://friction.graphics/) is an open-source vector motion graphics application for creating animations for web and video platforms.\n\n## Wayland support {#friction-graphics-wayland}\n\nUpstream explicitly forces X11 (XCB) on Linux due to incomplete Wayland support (fullscreen does not work, some mouse interactions are broken).\nThis means the application runs under XWayland by default and does not respect compositor-level HiDPI scaling.\n\nTo enable native Wayland support, removing the forced X11 override:\n\n```nix\nfriction-graphics.override { enableWayland = true; }\n```\n","isInternal":false,"tokens":136,"sizeBytes":617},{"name":"fuse.section.md","path":"doc/packages/fuse.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/fuse.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/fuse.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/fuse.section.md)","tokens":300,"sizeBytes":167},{"name":"geant4.section.md","path":"doc/packages/geant4.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/geant4.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/geant4.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/geant4.section.md)","tokens":300,"sizeBytes":171},{"name":"ibus.section.md","path":"doc/packages/ibus.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/ibus.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/ibus.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/ibus.section.md)","tokens":300,"sizeBytes":167},{"name":"index.md","path":"doc/packages/index.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/index.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/index.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/index.md)","tokens":300,"sizeBytes":153},{"name":"inkscape.section.md","path":"doc/packages/inkscape.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/inkscape.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/inkscape.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/inkscape.section.md)","tokens":300,"sizeBytes":175},{"name":"kakoune.section.md","path":"doc/packages/kakoune.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/kakoune.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/kakoune.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/kakoune.section.md)","tokens":300,"sizeBytes":173},{"name":"krita.section.md","path":"doc/packages/krita.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/krita.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/krita.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/krita.section.md)","tokens":300,"sizeBytes":169},{"name":"lhapdf.section.md","path":"doc/packages/lhapdf.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/lhapdf.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/lhapdf.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/lhapdf.section.md)","tokens":300,"sizeBytes":171},{"name":"linux.section.md","path":"doc/packages/linux.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/linux.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/linux.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/linux.section.md)","tokens":300,"sizeBytes":169},{"name":"locales.section.md","path":"doc/packages/locales.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/locales.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/locales.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/locales.section.md)","tokens":300,"sizeBytes":173},{"name":"nginx.section.md","path":"doc/packages/nginx.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/nginx.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/nginx.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/nginx.section.md)","tokens":300,"sizeBytes":169},{"name":"nrfutil.section.md","path":"doc/packages/nrfutil.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/nrfutil.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/nrfutil.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/nrfutil.section.md)","tokens":300,"sizeBytes":173},{"name":"opengl.section.md","path":"doc/packages/opengl.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/opengl.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/opengl.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/opengl.section.md)","tokens":300,"sizeBytes":171},{"name":"packer.section.md","path":"doc/packages/packer.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/packer.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/packer.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/packer.section.md)","tokens":300,"sizeBytes":171},{"name":"python-tree-sitter.section.md","path":"doc/packages/python-tree-sitter.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/python-tree-sitter.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/python-tree-sitter.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/python-tree-sitter.section.md)","tokens":300,"sizeBytes":195},{"name":"shell-helpers.section.md","path":"doc/packages/shell-helpers.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/shell-helpers.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/shell-helpers.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/shell-helpers.section.md)","tokens":300,"sizeBytes":185},{"name":"steam.section.md","path":"doc/packages/steam.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/steam.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/steam.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/steam.section.md)","tokens":300,"sizeBytes":169},{"name":"treefmt.section.md","path":"doc/packages/treefmt.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/treefmt.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/treefmt.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/treefmt.section.md)","tokens":300,"sizeBytes":173},{"name":"urxvt.section.md","path":"doc/packages/urxvt.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/urxvt.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/urxvt.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/urxvt.section.md)","tokens":300,"sizeBytes":169},{"name":"uv.section.md","path":"doc/packages/uv.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/uv.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/uv.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/uv.section.md)","tokens":300,"sizeBytes":163},{"name":"vcpkg.section.md","path":"doc/packages/vcpkg.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/vcpkg.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/vcpkg.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/vcpkg.section.md)","tokens":300,"sizeBytes":169},{"name":"weechat.section.md","path":"doc/packages/weechat.section.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/weechat.section.md","title":"Packages Skill","category":"anthropic-skill","format":"markdown","content":"# Packages Skill\n\nPath: `doc/packages/weechat.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/weechat.section.md)","tokens":300,"sizeBytes":173},{"name":"deprecated.json","path":"pkgs/applications/editors/kakoune/plugins/deprecated.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/kakoune/plugins/deprecated.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"# Plugins Skill\n\nPath: `pkgs/applications/editors/kakoune/plugins/deprecated.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/kakoune/plugins/deprecated.json)","tokens":300,"sizeBytes":224},{"name":"deprecated.json","path":"pkgs/applications/editors/vim/plugins/deprecated.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/deprecated.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"# Plugins Skill\n\nPath: `pkgs/applications/editors/vim/plugins/deprecated.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/deprecated.json)","tokens":300,"sizeBytes":216},{"name":"addon-info.json","path":"pkgs/applications/editors/vim/plugins/non-generated/vim2nix/src/addon-info.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/non-generated/vim2nix/src/addon-info.json","title":"Src Skill","category":"anthropic-skill","format":"json","content":"# Src Skill\n\nPath: `pkgs/applications/editors/vim/plugins/non-generated/vim2nix/src/addon-info.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/non-generated/vim2nix/src/addon-info.json)","tokens":300,"sizeBytes":264},{"name":"package-activation-events.json","path":"pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/package-activation-events.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/package-activation-events.json","title":"Ms-vscode.cpptools Skill","category":"anthropic-skill","format":"json","content":"# Ms-vscode.cpptools Skill\n\nPath: `pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/package-activation-events.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/package-activation-events.json)","tokens":300,"sizeBytes":307},{"name":"Chart.yaml","path":"pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/Chart.yaml","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/Chart.yaml","title":"Smoke Skill","category":"anthropic-skill","format":"yaml","content":"# Smoke Skill\n\nPath: `pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/Chart.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/Chart.yaml)","tokens":300,"sizeBytes":280},{"name":"configmap.yaml","path":"pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/templates/configmap.yaml","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/templates/configmap.yaml","title":"Templates Skill","category":"anthropic-skill","format":"yaml","content":"# Templates Skill\n\nPath: `pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/templates/configmap.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/templates/configmap.yaml)","tokens":300,"sizeBytes":312},{"name":"configmap_test.yaml","path":"pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/tests/configmap_test.yaml","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/tests/configmap_test.yaml","title":"Tests Skill","category":"anthropic-skill","format":"yaml","content":"# Tests Skill\n\nPath: `pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/tests/configmap_test.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/networking/cluster/helm/plugins/tests/helm-unittest/smoke/tests/configmap_test.yaml)","tokens":300,"sizeBytes":310},{"name":"data.json","path":"pkgs/by-name/ga/gauge/plugins/dotnet/data.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/dotnet/data.json","title":"Dotnet Skill","category":"anthropic-skill","format":"json","content":"# Dotnet Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/dotnet/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/dotnet/data.json)","tokens":300,"sizeBytes":201},{"name":"data.json","path":"pkgs/by-name/ga/gauge/plugins/go/data.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/go/data.json","title":"Go Skill","category":"anthropic-skill","format":"json","content":"# Go Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/go/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/go/data.json)","tokens":300,"sizeBytes":189},{"name":"data.json","path":"pkgs/by-name/ga/gauge/plugins/html-report/data.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/html-report/data.json","title":"Html-report Skill","category":"anthropic-skill","format":"json","content":"# Html-report Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/html-report/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/html-report/data.json)","tokens":300,"sizeBytes":216},{"name":"data.json","path":"pkgs/by-name/ga/gauge/plugins/java/data.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/java/data.json","title":"Java Skill","category":"anthropic-skill","format":"json","content":"# Java Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/java/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/java/data.json)","tokens":300,"sizeBytes":195},{"name":"data.json","path":"pkgs/by-name/ga/gauge/plugins/ruby/data.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/ruby/data.json","title":"Ruby Skill","category":"anthropic-skill","format":"json","content":"# Ruby Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/ruby/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/ruby/data.json)","tokens":300,"sizeBytes":195},{"name":"data.json","path":"pkgs/by-name/ga/gauge/plugins/screenshot/data.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/screenshot/data.json","title":"Screenshot Skill","category":"anthropic-skill","format":"json","content":"# Screenshot Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/screenshot/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/screenshot/data.json)","tokens":300,"sizeBytes":213},{"name":"data.json","path":"pkgs/by-name/ga/gauge/plugins/xml-report/data.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/xml-report/data.json","title":"Xml-report Skill","category":"anthropic-skill","format":"json","content":"# Xml-report Skill\n\nPath: `pkgs/by-name/ga/gauge/plugins/xml-report/data.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ga/gauge/plugins/xml-report/data.json)","tokens":300,"sizeBytes":213},{"name":"generated.json","path":"pkgs/by-name/ma/maubot/plugins/generated.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ma/maubot/plugins/generated.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"# Plugins Skill\n\nPath: `pkgs/by-name/ma/maubot/plugins/generated.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/ma/maubot/plugins/generated.json)","tokens":300,"sizeBytes":200},{"name":"Pulumi.yaml","path":"pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml","title":"Smoke-test Skill","category":"anthropic-skill","format":"yaml","content":"# Smoke-test Skill\n\nPath: `pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml)","tokens":300,"sizeBytes":247},{"name":"collisions.json","path":"pkgs/desktops/gnome/extensions/collisions.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/collisions.json","title":"Extensions Skill","category":"anthropic-skill","format":"json","content":"# Extensions Skill\n\nPath: `pkgs/desktops/gnome/extensions/collisions.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/collisions.json)","tokens":300,"sizeBytes":205},{"name":"extensions.json","path":"pkgs/desktops/gnome/extensions/extensions.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/extensions.json","title":"Extensions Skill","category":"anthropic-skill","format":"json","content":"# Extensions Skill\n\nPath: `pkgs/desktops/gnome/extensions/extensions.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/extensions.json)","tokens":300,"sizeBytes":205},{"name":"elm-srcs.json","path":"pkgs/development/compilers/elm/packages/elm-test-rs/elm-srcs.json","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/compilers/elm/packages/elm-test-rs/elm-srcs.json","title":"Elm-test-rs Skill","category":"anthropic-skill","format":"json","content":"# Elm-test-rs Skill\n\nPath: `pkgs/development/compilers/elm/packages/elm-test-rs/elm-srcs.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/compilers/elm/packages/elm-test-rs/elm-srcs.json)","tokens":300,"sizeBytes":244},{"name":"readme.md","path":"pkgs/applications/editors/vim/plugins/readme.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/readme.md","title":"plugins Documentation","category":"plugin-manifest","format":"markdown","content":"# plugins Documentation\n\nPath: `pkgs/applications/editors/vim/plugins/readme.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vim/plugins/readme.md)","tokens":300,"sizeBytes":212},{"name":"README.md","path":"pkgs/applications/editors/vscode/extensions/README.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vscode/extensions/README.md","title":"extensions Documentation","category":"plugin-manifest","format":"markdown","content":"# extensions Documentation\n\nPath: `pkgs/applications/editors/vscode/extensions/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/applications/editors/vscode/extensions/README.md)","tokens":300,"sizeBytes":227},{"name":"README.md","path":"pkgs/build-support/dev-shell-tools/README.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/build-support/dev-shell-tools/README.md","title":"dev-shell-tools Documentation","category":"plugin-manifest","format":"markdown","content":"# dev-shell-tools Documentation\n\nPath: `pkgs/build-support/dev-shell-tools/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/build-support/dev-shell-tools/README.md)","tokens":300,"sizeBytes":214},{"name":"README.md","path":"pkgs/by-name/li/libretroPackages/README.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/li/libretroPackages/README.md","title":"libretroPackages Documentation","category":"plugin-manifest","format":"markdown","content":"# libretroPackages Documentation\n\nPath: `pkgs/by-name/li/libretroPackages/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/li/libretroPackages/README.md)","tokens":300,"sizeBytes":211},{"name":"README.md","path":"pkgs/by-name/na/navidrome/plugins/README.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/na/navidrome/plugins/README.md","title":"plugins Documentation","category":"plugin-manifest","format":"markdown","content":"# plugins Documentation\n\nPath: `pkgs/by-name/na/navidrome/plugins/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/by-name/na/navidrome/plugins/README.md)","tokens":300,"sizeBytes":204},{"name":"README.md","path":"pkgs/desktops/gnome/extensions/README.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/README.md","title":"extensions Documentation","category":"plugin-manifest","format":"markdown","content":"# extensions Documentation\n\nPath: `pkgs/desktops/gnome/extensions/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/desktops/gnome/extensions/README.md)","tokens":300,"sizeBytes":201},{"name":"README.md","path":"pkgs/development/compilers/elm/packages/README.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/compilers/elm/packages/README.md","title":"packages Documentation","category":"plugin-manifest","format":"markdown","content":"# packages Documentation\n\nPath: `pkgs/development/compilers/elm/packages/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/compilers/elm/packages/README.md)","tokens":300,"sizeBytes":217},{"name":"README.md","path":"pkgs/development/cuda-modules/packages/README.md","rawUrl":"https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/cuda-modules/packages/README.md","title":"packages Documentation","category":"plugin-manifest","format":"markdown","content":"# packages Documentation\n\nPath: `pkgs/development/cuda-modules/packages/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/pkgs/development/cuda-modules/packages/README.md)","tokens":300,"sizeBytes":215}],"systemPromptSnippet":"<yakaai_skills repo=\"NixOS/nixpkgs\">\n<!-- File: doc/packages/build-support.md (Tokens: ~715 | Category: anthropic-skill) -->\n# Build Support {#sec-build-support}\n\n## `pkgs.substitute` {#pkgs-substitute}\n\n`pkgs.substitute` is a wrapper around [the `substitute` Bash function](#fun-substitute) in the standard environment.\nIt replaces strings in `src` as specified by the `substitutions` argument.\n\n\n:::{.example #ex-pkgs-substitute}\n# Usage of `pkgs.substitute`\n\nIn a build script, the line:\n\n```bash\nsubstitute $infile $outfile --replace-fail @foo@ ${lib.getExe foopkg}\n```\n\nis equivalent to:\n\n```nix\n{\n  lib,\n  substitute,\n  foopkg,\n}:\nsubstitute {\n  src = ./sourcefile.txt;\n  substitutions = [\n    \"--replace\"\n    \"@foo@\"\n    (lib.getExe foopkg)\n  ];\n}\n```\n:::\n\n## `pkgs.replaceVars` {#pkgs-replacevars}\n\n`pkgs.replaceVars <src> <replacements>` replaces all instances of `@varName@` (`@`s included) in file `src` with the respective value in the attribute set `replacements`.\n\n:::{.example #ex-pkgs-replace-vars}\n# Usage of `pkgs.replaceVars`\n\nIf `say-goodbye.sh` contains the following:\n\n```bash\n#! @bash@/bin/bash\n\necho @unchanged@\n@hello@/bin/hello --greeting @greeting@\n```\n\nthe following derivation will make substitutions to `@bash@`, `@hello@`, and `@greeting@`:\n\n```nix\n{\n  replaceVars,\n  bash,\n  hello,\n}:\nreplaceVars ./say-goodbye.sh {\n  inherit bash hello;\n  greeting = \"goodbye\";\n  unchanged = null;\n}\n```\n\nsuch that `$out` will result in something like the following:\n\n```\n#! /nix/store/s30jrpgav677fpc9yvkqsib70xfmx7xi-bash-5.2p26/bin/bash\n\necho @unchanged@\n/nix/store/566f5isbvw014h7knmzmxa5l6hshx43k-hello-2.12.1/bin/hello --greeting goodbye\n```\n\nNote that, in contrast to the old `substituteAll`, `unchanged = null` must explicitly be set.\nAny unreferenced `@...@` pattern in the source file will throw an error.\n:::\n\n## `pkgs.replaceVarsWith` {#pkgs-replacevarswith}\n\n`pkgs.replaceVarsWith` works the same way as [pkgs.replaceVars](#pkgs-replacevars), but additionally allows more options.\n\n:::{.example #ex-pkgs-replace-vars-with}\n# Usage of `pkgs.replaceVarsWith`\n\nWith the example file `say-goodbye.sh`, consider:\n\n```nix\n{ replaceVarsWith }:\nreplaceVarsWith {\n  src = ./say-goodbye.sh;\n\n  replacements = {\n    inherit bash hello;\n    greeting = \"goodbye\";\n    unchanged = null;\n  };\n\n  name = \"say-goodbye\";\n  dir = \"bin\";\n  isExecutable = true;\n  meta.mainProgram = \"say-goodbye\";\n}\n```\n\nThis will make the resulting file executable, put it in `bin/say-goodbye` and set `meta` attributes respectively.\n:::\n\n<!-- File: doc/packages/cataclysm-dda.section.md (Tokens: ~1024 | Category: anthropic-skill) -->\n# Cataclysm: Dark Days Ahead {#cataclysm-dark-days-ahead}\n\n## How to install Cataclysm DDA {#how-to-install-cataclysm-dda}\n\nTo install the latest stable release of Cataclysm DDA to your profile, execute\n`nix-env -f \"<nixpkgs>\" -iA cataclysm-dda`. For the curses build (build\nwithout tiles), install `cataclysmDDA.stable.curses`. Note: `cataclysm-dda` is\nan alias to `cataclysmDDA.stable.tiles`.\n\nIf you like access to a development build of your favorite git revision,\noverride `cataclysm-dda-git` (or `cataclysmDDA.git.curses` if you like the curses\nbuild):\n\n```nix\ncataclysm-dda-git.override {\n  version = \"YYYY-MM-DD\";\n  rev = \"YOUR_FAVORITE_REVISION\";\n  sha256 = \"CHECKSUM_OF_THE_REVISION\";\n}\n```\n\nThe sha256 checksum can be obtained by\n\n```sh\nnix-prefetch-url --unpack \"https://github.com/CleverRaven/Cataclysm-DDA/archive/${YOUR_FAVORITE_REVISION}.tar.gz\"\n```\n\nThe default configuration directory is `~/.cataclysm-dda`. If you prefer\n`$XDG_CONFIG_HOME/cataclysm-dda`, override the derivation:\n\n```nix\ncataclysm-dda.override { useXdgDir = true; }\n```\n\n## Important note for overriding packages {#important-note-for-overriding-packages}\n\nAfter applying `overrideAttrs`, you need to fix `passthru.pkgs` and\n`passthru.withMods` attributes either manually or by using `attachPkgs`:\n\n```nix\nlet\n  # You enabled parallel building.\n  myCDDA = cataclysm-dda-git.overrideAttrs (_: {\n    enableParallelBuilding = true;\n  });\n\n  # Unfortunately, this refers to the package before overriding and\n  # parallel building is still disabled.\n  badExample = myCDDA.withMods (_: [ ]);\n\n  inherit (cataclysmDDA) attachPkgs pkgs wrapCDDA;\n\n  # You can fix it by hand\n  goodExample1 = myCDDA.overrideAttrs (old: {\n    passthru = old.passthru // {\n      pkgs = pkgs.override { build = goodExample1; };\n      withMods = wrapCDDA goodExample1;\n    };\n  });\n\n  # or by using a helper function `attachPkgs`.\n  goodExample2 = attachPkgs pkgs myCDDA;\n\n  # badExample                     # parallel building disabled\n  # goodExample1.withMods (_: [])  # parallel building enabled\nin\ngoodExample2.withMods (_: [ ]) # parallel building enabled\n```\n\n## Customizing with mods {#customizing-with-mods}\n\nTo install Cataclysm DDA with mods of your choice, you can use `withMods`\nattribute:\n\n```nix\ncataclysm-dda.withMods (mods: with mods; [ tileset.UndeadPeople ])\n```\n\nAll mods, soundpacks, and tilesets available in nixpkgs are found in\n`cataclysmDDA.pkgs`.\n\nHere is an example to modify existing mods and/or add more mods not available\nin nixpkgs:\n\n```nix\nlet\n  customMods =\n    self: super:\n    lib.recursiveUpdate super {\n      # Modify existing mod\n      tileset.UndeadPeople = super.tileset.UndeadPeople.overrideAttrs (old: {\n        # If you like to apply a patch to the tileset for example\n        patches = [ ./path/to/your.patch ];\n      });\n\n      # Add another mod\n      mod.Awesome = cataclysmDDA.buildMod {\n        modName = \"Awesome\";\n        version = \"0.x\";\n        src = fetchFromGitHub {\n          owner = \"Someone\";\n          repo = \"AwesomeMod\";\n          rev = \"...\";\n          hash = \"...\";\n        };\n        # Path to be installed in the unpacked source (default: \".\")\n        modRoot = \"contents/under/this/path/will/be/installed\";\n      };\n\n      # Add another soundpack\n      soundpack.Fantastic = cataclysmDDA.buildSoundPack {\n        # ditto\n      };\n\n      # Add another tileset\n      tileset.SuperDuper = cataclysmDDA.buildTileSet {\n        # ditto\n      };\n    };\nin\ncataclysm-dda.withMods (\n  mods: with mods.extend customMods; [\n    tileset.UndeadPeople\n    mod.Awesome\n    soundpack.Fantastic\n    tileset.SuperDuper\n  ]\n)\n```\n\n<!-- File: doc/packages/citrix.section.md (Tokens: ~625 | Category: anthropic-skill) -->\n# Citrix Workspace {#sec-citrix}\n\nThe [Citrix Workspace App](https://www.citrix.com/products/workspace-app/) is a remote desktop viewer which provides access to [XenDesktop](https://www.citrix.com/products/xenapp-xendesktop/) installations.\n\n## Basic usage {#sec-citrix-base}\n\nThe tarball archive needs to be downloaded manually, as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store, the package can be built and installed with Nix.\n\nThe package includes the `ctxcwalogd.service` user unit required by Citrix's logging tools.\nTo enable it on NixOS:\n\n```nix\n{\n  systemd.packages = [ pkgs.citrix-workspace ];\n  systemd.user.services.ctxcwalogd.wantedBy = [ \"default.target\" ];\n}\n```\n\nFor FUSE-based file transfer, enable the privileged helper on NixOS:\n\n```nix\n{\n  programs.fuse.enable = true;\n}\n```\n\nThe package uses `/run/wrappers/bin/fusermount3` when it is available.\n\n## Citrix Self-service {#sec-citrix-selfservice}\n\nThe [self-service](https://support.citrix.com/article/CTX200337) is an application for managing Citrix desktops and applications. Please note that this feature only works with at least `citrix_workspace_20_06_0` and later versions.\n\nTo set this up, you first have to [download the `.cr` file from the Netscaler Gateway](https://its.uiowa.edu/support/article/102186). After that, you can configure the `selfservice` like this:\n\n```ShellSession\n$ storebrowse -C ~/Downloads/receiverconfig.cr\n$ selfservice\n```\n\n## Custom certificates {#sec-citrix-custom-certs}\n\nThe `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However, several companies using Citrix might require their own corporate certificate. On distros with imperative packaging, these certs can be stored easily in [`$ICAROOT`](https://citrix.github.io/receiver-for-linux-command-reference/), however, this directory is a store path in `nixpkgs`. To work around this issue, the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`:\n\n```nix\nwith import <nixpkgs> { config.allowUnfree = true; };\nlet\n  extraCerts = [\n    ./custom-cert-1.pem\n    ./custom-cert-2.pem # ...\n  ];\nin\ncitrix_workspace.override { inherit extraCerts; }\n```\n\n<!-- File: doc/packages/darwin-builder.section.md (Tokens: ~2286 | Category: anthropic-skill) -->\n# darwin.linux-builder {#sec-darwin-builder}\n\n:::{.warning}\nBy default, `darwin.linux-builder` uses a publicly-known private SSH **host key** (this is different from the SSH key used by the user that connects to the builder).\n\nGiven the intended use case for it (a Linux builder that runs **on the same machine**), this shouldn't be an issue.\nHowever, if you plan to deviate from this use case in any way (e.g. by exposing this builder to remote machines), you should understand the security implications of doing so and take any appropriate measures.\n:::\n\n`darwin.linux-builder` provides a way to bootstrap a Linux remote builder on a macOS machine.\n\nThis requires macOS version 12.4 or later.\n\nThe remote builder runs on host port 31022 by default.\nYou can change it by overriding `virtualisation.darwin-builder.hostPort`.\nSee the [example](#sec-darwin-builder-example-flake).\n\nYou will also need to be a trusted user for your Nix installation.  In other\nwords, your `/etc/nix/nix.conf` should have something like:\n\n```\nextra-trusted-users = <your username goes here>\n```\n\nTo launch the remote builder, run the following flake:\n\n```ShellSession\n$ nix run nixpkgs#darwin.linux-builder\n```\n\nThat will prompt you to enter your `sudo` password:\n\n```\n+ sudo --reset-timestamp /nix/store/…-install-credentials.sh ./keys\nPassword:\n```\n\n… so that it can install a private key used to `ssh` into the build server.\nAfter that the script will launch the virtual machine and automatically log you\nin as the `builder` user:\n\n```\n<<< Welcome to NixOS 22.11.20220901.1bd8d11 (aarch64) - ttyAMA0 >>>\n\nRun 'nixos-help' for the NixOS manual.\n\nnixos login: builder (automatic login)\n\n\n[builder@nixos:~]$\n```\n\n> Note: When you need to stop the VM, run `shutdown now` as the `builder` user.\n\nTo delegate builds to the remote builder, add the following options to your\n`nix.conf` file:\n\n```\n# - Replace ${ARCH} with either aarch64 or x86_64 to match your host machine\n# - Replace ${MAX_JOBS} with the maximum number of builds (pick 4 if you're not sure)\nbuilders = ssh-ng://builder@linux-builder ${ARCH}-linux /etc/nix/builder_ed25519 ${MAX_JOBS} - - - c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUpCV2N4Yi9CbGFxdDFhdU90RStGOFFVV3JVb3RpQzVxQkorVXVFV2RWQ2Igcm9vdEBuaXhvcwo=\n\n# Not strictly necessary, but this will reduce your disk utilization\nbuilders-use-substitutes = true\n```\n\nTo allow Nix to connect to the default remote builder, which does not run on port 22, you will also need to create a new file at `/etc/ssh/ssh_config.d/100-linux-builder.conf`:\n\n```\nHost linux-builder\n  Hostname localhost\n  HostKeyAlias linux-builder\n  Port 31022\n  User builder\n  IdentityFile /etc/nix/builder_ed25519\n```\n\n… and then restart your Nix daemon to apply the change:\n\n```ShellSession\n$ sudo launchctl kickstart -k system/org.nixos.nix-daemon\n```\n\nNote that if the builder is running and you have created the above ssh conf file, you can ssh into the builder with `sudo ssh builder@linux-builder`.\n\n## Using the Virtualization.framework backend {#sec-darwin-builder-vz}\n\n`darwin.linux-builder-vz` is a variant of `darwin.linux-builder` that runs the same\nNixOS guest on Apple's Virtualization.framework (via `pkgs.vzvm`) instead of QEMU.\nInstead of emulating x86_64, it exposes Rosetta to the guest, so `x86_64-linux`\nbuilds are translated rather than emulated, which is substantially faster. It\nrequires an Apple silicon host (`aarch64-darwin`) running macOS 13 or newer, with\nRosetta installed:\n\n```ShellSession\n$ softwareupdate --install-rosetta --agree-to-license\n```\n\nThe builder refuses to start when Rosetta is missing, rather than silently dropping\n`x86_64-linux` support; set `virtualisation.vz.rosetta.enable = false` to run\nwithout it.\n\nIt is a drop-in replacement: it listens on the same host port (31022) and presents\nthe same host key as the QEMU builder, so the `nix.conf` and SSH configuration\ndescribed above apply unchanged; only the transport behind the port changes, from\nTCP forwarding to vsock. Since a single builder VM handles both architectures\nthrough Rosetta, list both systems in your `builders` entry\n(`aarch64-linux,x86_64-linux`), or with nix-darwin:\n\n```nix\n{\n  nix.linux-builder = {\n    enable = true;\n    package = pkgs.darwin.linux-builder-vz;\n    systems = [\n      \"aarch64-linux\"\n      \"x86_64-linux\"\n    ];\n  };\n}\n```\n\nWhen switching an existing QEMU builder over, delete its data disk first (e.g.\n`sudo rm /var/lib/linux-builder/nixos.qcow2`): the vz builder reuses the file name\nbut writes a raw image, and refuses to misread a genuine qcow2 left behind.\n\nThe guest console goes to the macOS unified log by default; read it with:\n\n```ShellSession\n$ /usr/bin/log show --last 5m --predicate 'subsystem == \"systems.applicative.vzvm\"'\n```\n\nThe `virtualisation.vz.*` NixOS options configure the backend further, e.g.\n`virtualisation.vz.nestedVirtualization` gives the guest a working `/dev/kvm` for\nrunning NixOS integration tests on the builder (macOS 15+, M3 or newer).\n\n## Example flake usage {#sec-darwin-builder-example-flake}\n\n```nix\n{\n  inputs = {\n    nixpkgs.url = \"https://channels.nixos.org/nixpkgs-26.05-darwin/nixexprs.tar.zst\";\n    darwin.url = \"github:nix-darwin/nix-darwin/master\";\n    darwin.inputs.nixpkgs.follows = \"nixpkgs\";\n  };\n\n  outputs =\n    {\n      self,\n      darwin,\n      nixpkgs,\n      ...\n    }@inputs:\n    let\n\n      inherit (darwin.lib) darwinSystem;\n      system = \"aarch64-darwin\";\n      pkgs = nixpkgs.legacyPackages.\"${system}\";\n      linuxSystem = builtins.replaceStrings [ \"darwin\" ] [ \"linux\" ] system;\n\n      darwin-builder = nixpkgs.lib.nixosSystem {\n        system = linuxSystem;\n        modules = [\n          \"${nixpkgs}/nixos/modules/profiles/nix-builder-vm.nix\"\n          {\n            virtualisation = {\n              host.pkgs = pkgs;\n              darwin-builder.workingDirectory = \"/var/lib/darwin-builder\";\n              darwin-builder.hostPort = 22;\n            };\n          }\n        ];\n      };\n    in\n    {\n\n      darwinConfigurations = {\n        machine1 = darwinSystem {\n          inherit system;\n          modules = [\n            {\n              nix.distributedBuilds = true;\n              nix.buildMachines = [\n                {\n                  hostName = \"localhost\";\n                  sshUser = \"builder\";\n                  sshKey = \"/etc/nix/builder_ed25519\";\n                  system = linuxSystem;\n                  maxJobs = 4;\n                  supportedFeatures = [\n                    \"kvm\"\n                    \"benchmark\"\n                    \"big-parallel\"\n                  ];\n                }\n              ];\n\n              launchd.daemons.darwin-builder = {\n                command = nixpkgs.lib.getExe darwin-builder.config.system.build.macos-builder-installer;\n                serviceConfig = {\n                  KeepAlive = true;\n                  RunAtLoad = true;\n                  StandardOutPath = \"/var/log/darwin-builder.log\";\n                  StandardErrorPath = \"/var/log/darwin-builder.log\";\n                };\n              };\n            }\n          ];\n        };\n      };\n\n    };\n}\n```\n\n## Reconfiguring the remote builder {#sec-darwin-builder-reconfiguring}\n\nInitially you should not change the remote builder configuration else you will not be\nable to use the binary cache. However, after you have the remote builder running locally\nyou may use it to build a modified remote builder with additional storage or memory.\n\nTo do this, you just need to set the `virtualisation.darwin-builder.*` parameters as\nin the example below and rebuild.\n\n```nix\n{\n  darwin-builder = nixpkgs.lib.nixosSystem {\n    system = linuxSystem;\n    modules = [\n      \"${nixpkgs}/nixos/modules/profiles/nix-builder-vm.nix\"\n      {\n        virtualisation.host.pkgs = pkgs;\n        virtualisation.darwin-builder.diskSize = 5120;\n        virtualisation.darwin-builder.memorySize = 1024;\n        virtualisation.darwin-builder.hostPort = 33022;\n        virtualisation.darwin-builder.workingDirectory = \"/var/lib/darwin-builder\";\n      }\n    ];\n  };\n}\n```\n\nYou may make any other changes to your VM in this attribute set. For example,\nyou could enable Docker or X11 forwarding to your Darwin host.\n\n## Troubleshooting the generated configuration {#sec-darwin-builder-troubleshoot}\n\nThe `linux-builder` package exposes the attributes `nixosConfig` and `nixosOptions` that allow you to inspect the generated NixOS configuration in the `nix repl`. For example:\n\n```\n$ nix repl --file ~/src/nixpkgs --argstr system aarch64-darwin\n\nnix-repl> darwin.linux-builder.nixosConfig.nix.package\n«derivation /nix/store/...-nix-2.17.0.drv»\n\nnix-repl> :p darwin.linux-builder.nixosOptions.virtualisation.memorySize.definitionsWithLocations\n[ { file = \"/home/user/src/nixpkgs/nixos/modules/profiles/nix-builder-vm.nix\"; value = 3072; } ]\n\n```\n\n<!-- File: doc/packages/dlib.section.md (Tokens: ~144 | Category: anthropic-skill) -->\n# DLib {#dlib}\n\n[DLib](http://dlib.net/) is a modern, C++\\-based toolkit which provides several machine learning algorithms.\n\n## Compiling without AVX support {#compiling-without-avx-support}\n\nEspecially older CPUs don't support [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms.\n\nOn the affected hardware, errors like `Illegal instruction` will occur. In those cases, AVX support needs to be disabled:\n\n```nix\nself: super: { dlib = super.dlib.override { avxSupport = false; }; }\n```\n\n<!-- File: doc/packages/eclipse.section.md (Tokens: ~1007 | Category: anthropic-skill) -->\n# Eclipse {#sec-eclipse}\n\nThe Nix expressions related to the Eclipse platform and IDE are in [`pkgs/applications/editors/eclipse`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/eclipse).\n\nNixpkgs provides several packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages, and multiple versions are often available. It is possible to list available Eclipse packages by issuing the command:\n\n```ShellSession\n$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description\n```\n\nOnce an Eclipse variant is installed, it can be run using the `eclipse` command, as expected. From within Eclipse, it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resembles a manually installed Eclipse.\n\nIf you prefer to install plugins in a more declarative manner, then Nixpkgs also offers several Eclipse plugins that can be installed in an _Eclipse environment_. This type of environment is created using the function `eclipseWithPlugins` found inside the `nixpkgs.eclipses` attribute set. This function takes as an argument `{ eclipse, plugins ? [], jvmArgs ? [] }` where `eclipse` is one of the Eclipse packages described above, `plugins` is a list of plugin derivations, and `jvmArgs` is a list of arguments given to the JVM running Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add:\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEclipse =\n      with pkgs.eclipses;\n      eclipseWithPlugins {\n        eclipse = eclipse-platform;\n        jvmArgs = [ \"-Xmx2048m\" ];\n        plugins = [ plugins.color-theme ];\n      };\n  };\n}\n```\n\nto your Nixpkgs configuration (`~/.config/nixpkgs/config.nix`) and install it by running `nix-env -f '<nixpkgs>' -iA myEclipse` and afterward running Eclipse as usual. It is possible to find out which plugins are available for installation using `eclipseWithPlugins` by running:\n\n```ShellSession\n$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description\n```\n\nIf there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the `buildEclipseUpdateSite` and `buildEclipsePlugin` functions found in the `nixpkgs.eclipses.plugins` attribute set. Use the `buildEclipseUpdateSite` function to install a plugin distributed as an Eclipse update site. This function takes `{ src }` and either `pname` or `name` + `version` as arguments, where `src` indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available, then the `buildEclipsePlugin` function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes `{ srcFeature, srcPlugin }` and either `pname` or `name` + `version` as arguments, where `srcFeature` and `srcPlugin` are the feature and plugin JARs, respectively.\n\nExpanding the previous example with two plugins using the above functions, we have:\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEclipse =\n      with pkgs.eclipses;\n      eclipseWithPlugins {\n        eclipse = eclipse-platform;\n        jvmArgs = [ \"-Xmx2048m\" ];\n        plugins = [\n          plugins.color-theme\n          (plugins.buildEclipsePlugin {\n            pname = \"myplugin1\";\n            version = \"1.0\";\n            srcFeature = fetchurl {\n              url = \"http://…/features/myplugin1.jar\";\n              hash = \"sha256-123…\";\n            };\n            srcPlugin = fetchurl {\n              url = \"http://…/plugins/myplugin1.jar\";\n              hash = \"sha256-123…\";\n            };\n          })\n          (plugins.buildEclipseUpdateSite {\n            pname = \"myplugin2\";\n            version = \"1.0\";\n            src = fetchurl {\n              stripRoot = false;\n              url = \"http://…/myplugin2.zip\";\n              hash = \"sha256-123…\";\n            };\n          })\n        ];\n      };\n  };\n}\n```\n\n<!-- File: doc/packages/elm.section.md (Tokens: ~95 | Category: anthropic-skill) -->\n# Elm {#sec-elm}\n\nTo start a development environment, run:\n\n```ShellSession\nnix-shell -p elmPackages.elm elmPackages.elm-format\n```\n\nTo update the Elm compiler, see `nixpkgs/pkgs/development/compilers/elm/README.md`.\n\nTo package Elm applications, [read about elm2nix](https://github.com/hercules-ci/elm2nix#elm2nix).\n\n<!-- File: doc/packages/emacs.section.md (Tokens: ~1127 | Category: anthropic-skill) -->\n# Emacs {#sec-emacs}\n\n## Configuring Emacs {#sec-emacs-config}\n\nThe Emacs package comes with some extra helpers to make it easier to configure. `emacs.pkgs.withPackages` manages packages from ELPA. This means that you will not have to install those packages from within Emacs. For instance, if you wanted to use `company`, `counsel`, `flycheck`, `ivy`, `magit`, `projectile`, and `use-package`, you could use this as a `~/.config/nixpkgs/config.nix` override:\n\n```nix\n{\n  packageOverrides =\n    pkgs: with pkgs; {\n      myEmacs = emacs.pkgs.withPackages (\n        epkgs:\n        (with epkgs.melpaStablePackages; [\n          company\n          counsel\n          flycheck\n          ivy\n          magit\n          projectile\n          use-package\n        ])\n      );\n    };\n}\n```\n\nYou can install it like any other package via `nix-env -iA myEmacs`. However, this will only install those packages. It will not `configure` them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provides a `default.el` file in `/share/emacs/site-start/`. Emacs knows to load this file automatically when it starts.  Similarly, for `early-init.el`, you can create a package that provides an `early-default.el` file in `/share/emacs/site-start/`.\n\n```nix\n{\n  packageOverrides = pkgs: {\n    myEmacsConfig = pkgs.writeText \"default.el\" ''\n      (eval-when-compile\n        (require 'use-package))\n\n      ;; load some packages\n\n      (use-package company\n        :bind (\"<C-tab>\" . company-complete)\n        :diminish company-mode\n        :commands (company-mode global-company-mode)\n        :defer 1\n        :config\n        (global-company-mode))\n\n      (use-package counsel\n        :commands (counsel-descbinds)\n        :bind (([remap execute-extended-command] . counsel-M-x)\n               (\"C-x C-f\" . counsel-find-file)\n               (\"C-c g\" . counsel-git)\n               (\"C-c j\" . counsel-git-grep)\n               (\"C-c k\" . counsel-ag)\n               (\"C-x l\" . counsel-locate)\n               (\"M-y\" . counsel-yank-pop)))\n\n      (use-package flycheck\n        :defer 2\n        :config (global-flycheck-mode))\n\n      (use-package ivy\n        :defer 1\n        :bind ((\"C-c C-r\" . ivy-resume)\n               (\"C-x C-b\" . ivy-switch-buffer)\n               :map ivy-minibuffer-map\n               (\"C-j\" . ivy-call))\n        :diminish ivy-mode\n        :commands ivy-mode\n        :config\n        (ivy-mode 1))\n\n      (use-package magit\n        :defer\n        :if (executable-find \"git\")\n        :bind ((\"C-x g\" . magit-status)\n               (\"C-x G\" . magit-dispatch-popup))\n        :init\n        (setq magit-completing-read-function 'ivy-completing-read))\n\n      (use-package projectile\n        :commands projectile-mode\n        :bind-keymap (\"C-c p\" . projectile-command-map)\n        :defer 5\n        :config\n        (projectile-global-mode))\n    '';\n\n    myEmacs = emacs.pkgs.withPackages (\n      epkgs:\n      (with epkgs.melpaStablePackages; [\n        (runCommand \"default.el\" { } ''\n          mkdir -p $out/share/emacs/site-lisp\n          cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el\n        '')\n        company\n        counsel\n        flycheck\n        ivy\n        magit\n        projectile\n        use-package\n      ])\n    );\n  };\n}\n```\n\nThis provides a fairly full Emacs start file. It will load in addition to the user's personal config. You can always disable it by passing `-q` to the Emacs command.\n\nSometimes `emacs.pkgs.withPackages` is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to GNU-devel ELPA, and the highest for packages manually defined in `pkgs/applications/editors/emacs/elisp-packages/manual-packages`). But you can't control these priorities when some package is installed as a dependency. You can override it on a per-package-basis, providing all the required dependencies manually, but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package, you can use `overrideScope`.\n\n```nix\nlet\n  overrides = self: super: rec {\n    haskell-mode = self.melpaPackages.haskell-mode;\n    # ...\n  };\nin\n((emacsPackagesFor emacs).overrideScope overrides).withPackages (\n  p: with p; [\n    # here both these package will use haskell-mode of our own choice\n    ghc-mod\n    dante\n  ]\n)\n```\n}\n\n<!-- File: doc/packages/etc-files.section.md (Tokens: ~389 | Category: anthropic-skill) -->\n# /etc files {#etc}\n\nCertain calls in glibc require access to runtime files found in `/etc` such as `/etc/protocols` or `/etc/services` -- [getprotobyname](https://linux.die.net/man/3/getprotobyname) is one such function.\n\nOn non-NixOS distributions, these files are typically provided by packages (i.e., [netbase](https://packages.debian.org/sid/netbase)) if not already pre-installed in your distribution. This can cause non-reproducibility for code if they rely on these files being present.\n\nIf [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your `buildInputs`, then it will set the environment variables `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a setup hook.\n\n\n```bash\n> nix-shell -p iana-etc\n\n[nix-shell:~]$ env | grep NIX_ETC\nNIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/services\nNIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols\n```\n\nNixpkgs's version of [glibc](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/glibc/default.nix) has been patched to check for the existence of these environment variables. If the environment variables are *not* set, then it will attempt to find the files at the default location within `/etc`.\n\n<!-- File: doc/packages/firefox.section.md (Tokens: ~677 | Category: anthropic-skill) -->\n# Firefox {#sec-firefox}\n\n## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies}\n\nThe `wrapFirefox` function allows to pass policies, preferences and extensions that are available to Firefox. With the help of `fetchFirefoxAddon` this allows to build a Firefox version that already comes with add-ons pre-installed:\n\n```nix\n{\n  # Nix firefox addons only work with the firefox-esr package.\n  myFirefox = wrapFirefox firefox-esr-unwrapped {\n    nixExtensions = [\n      (fetchFirefoxAddon {\n        name = \"ublock\"; # Has to be unique!\n        url = \"https://addons.mozilla.org/firefox/downloads/file/3679754/ublock_origin-1.31.0-an+fx.xpi\";\n        hash = \"sha256-2e73AbmYZlZXCP5ptYVcFjQYdjDp4iPoEPEOSCVF5sA=\";\n      })\n    ];\n\n    extraPolicies = {\n      CaptivePortal = false;\n      DisableFirefoxStudies = true;\n      DisablePocket = true;\n      DisableTelemetry = true;\n      DisableFirefoxAccounts = true;\n      FirefoxHome = {\n        Pocket = false;\n        Snippets = false;\n      };\n      UserMessaging = {\n        ExtensionRecommendations = false;\n        SkipOnboarding = true;\n      };\n      SecurityDevices = {\n        # Use a proxy module rather than `nixpkgs.config.firefox.smartcardSupport = true`\n        \"PKCS#11 Proxy Module\" = \"${pkgs.p11-kit}/lib/p11-kit-proxy.so\";\n      };\n    };\n\n    extraPrefs = ''\n      // Show more ssl cert infos\n      lockPref(\"security.identityblock.show_extended_validation\", true);\n    '';\n  };\n}\n```\n\nIf `nixExtensions != null`, then all manually installed add-ons will be uninstalled from your browser profile.\nTo view available enterprise policies, visit [enterprise policies](https://github.com/mozilla/policy-templates#enterprisepoliciesenabled)\nor type into the Firefox URL bar: `about:policies#documentation`.\nNix installed add-ons do not have a valid signature, which is why signature verification is disabled. This does not compromise security because downloaded add-ons are checksummed and manual add-ons can't be installed. Also, make sure that the `name` field of `fetchFirefoxAddon` is unique. If you remove an add-on from the `nixExtensions` array, rebuild and start Firefox: the removed add-on will be completely removed with all of its settings.\n\n## Troubleshooting {#sec-firefox-troubleshooting}\nIf add-ons are marked as broken or the signature is invalid, make sure you have Firefox ESR installed. Normal Firefox does not provide the ability anymore to disable signature verification for add-ons; thus, Nix add-ons get disabled by the normal Firefox binary.\n\nIf add-ons do not appear installed despite being defined in your nix configuration file, reset the local add-on state of your Firefox profile by clicking `Help -> More Troubleshooting Information -> Refresh Firefox`. This can happen if you switch from manual add-on mode to nix add-on mode and then back to manual mode and then again to nix add-on mode.\n\n<!-- File: doc/packages/fish.section.md (Tokens: ~458 | Category: anthropic-skill) -->\n# Fish {#sec-fish}\n\nFish is a \"smart and user-friendly command line shell\" with support for plugins.\n\n\n## Vendor Fish scripts {#sec-fish-vendor}\n\nAny package may ship its own Fish completions, configuration snippets, and\nfunctions. Those should be installed to\n`$out/share/fish/vendor_{completions,conf,functions}.d` respectively.\n\nWhen the `programs.fish.enable` and\n`programs.fish.vendor.{completions,config,functions}.enable` options from the\nNixOS Fish module are set to true, those paths are symlinked in the current\nsystem environment and are automatically loaded by Fish.\n\n\n## Packaging Fish plugins {#sec-fish-plugins-pkg}\n\nWhile packages providing standalone executables belong to the top level,\npackages which have the sole purpose of extending Fish belong to the\n`fishPlugins` scope and should be registered in\n`pkgs/shells/fish/plugins/default.nix`.\n\nThe `buildFishPlugin` utility function can be used to automatically copy Fish\nscripts from `$src/{completions,conf,conf.d,functions}` to the standard vendor\ninstallation paths. It also sets up the test environment so that the optional\n`checkPhase` is executed in a Fish shell with other already packaged plugins\nand package-local Fish functions specified in `checkPlugins` and\n`checkFunctionDirs` respectively.\n\nSee `pkgs/shells/fish/plugins/pure.nix` for an example of Fish plugin package\nusing `buildFishPlugin` and running unit tests with the `fishtape` test runner.\n\n\n## Fish wrapper {#sec-fish-wrapper}\n\nThe `wrapFish` package is a wrapper around Fish which can be used to create\nFish shells initialized with some plugins as well as completions, configuration\nsnippets and functions sourced from the given paths. This provides a convenient\nway to test Fish plugins and scripts without having to alter the environment.\n\n```nix\nwrapFish {\n  pluginPkgs = with fishPlugins; [\n    pure\n    foreign-env\n  ];\n  completionDirs = [ ];\n  functionDirs = [ ];\n  confDirs = [ \"/path/to/some/fish/init/dir/\" ];\n}\n```\n\n<!-- File: doc/packages/friction-graphics.section.md (Tokens: ~136 | Category: anthropic-skill) -->\n# Friction {#friction-graphics}\n\n[Friction](https://friction.graphics/) is an open-source vector motion graphics application for creating animations for web and video platforms.\n\n## Wayland support {#friction-graphics-wayland}\n\nUpstream explicitly forces X11 (XCB) on Linux due to incomplete Wayland support (fullscreen does not work, some mouse interactions are broken).\nThis means the application runs under XWayland by default and does not respect compositor-level HiDPI scaling.\n\nTo enable native Wayland support, removing the forced X11 override:\n\n```nix\nfriction-graphics.override { enableWayland = true; }\n```\n\n<!-- File: doc/packages/fuse.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/fuse.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/fuse.section.md)\n\n<!-- File: doc/packages/geant4.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/geant4.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/geant4.section.md)\n\n<!-- File: doc/packages/ibus.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/ibus.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/ibus.section.md)\n\n<!-- File: doc/packages/index.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/index.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/index.md)\n\n<!-- File: doc/packages/inkscape.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/inkscape.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/inkscape.section.md)\n\n<!-- File: doc/packages/kakoune.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/kakoune.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/kakoune.section.md)\n\n<!-- File: doc/packages/krita.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/krita.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/krita.section.md)\n\n<!-- File: doc/packages/lhapdf.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/lhapdf.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/lhapdf.section.md)\n\n<!-- File: doc/packages/linux.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/linux.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/linux.section.md)\n\n<!-- File: doc/packages/locales.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/locales.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/locales.section.md)\n\n<!-- File: doc/packages/nginx.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/nginx.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/nginx.section.md)\n\n<!-- File: doc/packages/nrfutil.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/nrfutil.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/nrfutil.section.md)\n\n<!-- File: doc/packages/opengl.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/opengl.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/opengl.section.md)\n\n<!-- File: doc/packages/packer.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/packer.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/packer.section.md)\n\n<!-- File: doc/packages/python-tree-sitter.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/python-tree-sitter.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/python-tree-sitter.section.md)\n\n<!-- File: doc/packages/shell-helpers.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/shell-helpers.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/shell-helpers.section.md)\n\n<!-- File: doc/packages/steam.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/steam.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/steam.section.md)\n\n<!-- File: doc/packages/treefmt.section.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Packages Skill\n\nPath: `doc/packages/treefmt.section.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/NixOS/nixpkgs/HEAD/doc/packages/treefmt.section.md)\n\n<!-- ... +31 more modular skills available via /api/skills/NixOS/nixpkgs?path={path} -->\n</yakaai_skills>"}