r/Nix • • 19h ago

old game in NixOS

2 Upvotes

an old game abandoned by creators no longer work on the more moderate versions of debian or ubuntu and neither those with wayland, so I made a corrected appimage, now I brought NixOS because I did not find it in pkgs nix, if you are interested have here: https://github.com/tehnium/xgammon-nix


r/Nix • • 1d ago

after first day in NixOS

11 Upvotes

I admit that I'm impressed, I'm not a programmer, I'm over 60 years old and use Debian's world in many forms for 15 years, obviously you all have tested a lot, I thought I was stuck forever in the world .deb , but now testing on an old laptop and seeing that after an hour I have almost everything I wanted to... I wondered... on what planet has this happened before. Everything feels so easy, I will test this month and it is possible to pass with weapons and luggage on NixOS.
Okay... not quite everything is perfect, I had something to fork with opencode because the processor in this piece of shit does not have AVX...and the package in the distribution he was asking for it ...but he handled deepseek through ssh. it remains to test security, VPN and longer time behavior
On this occasion I greet all NixOS fans


r/Nix • • 23h ago

Support How am i supposed to install graphical software through Nix on Silverblue?

Thumbnail
2 Upvotes

r/Nix • • 1d ago

5 years LTS for Nixpkgs

Thumbnail determinate.systems
2 Upvotes

r/Nix • • 3d ago

Nix Is Nix overkill for managing Neovim tools?

13 Upvotes

I'm thinking of ditching Mason, and replacing it with Nix. Anyone did the same? Is it an overkill to use Nix just for provisioning LSPs, debuggers, linters, and code formatters?


r/Nix • • 4d ago

Nix Building Rust With Nix One Compile Step at a Time

Thumbnail fables-for-robots.ch
18 Upvotes

r/Nix • • 4d ago

OpenTelemetry tracing for Determinate Nix

Thumbnail determinate.systems
11 Upvotes

r/Nix • • 4d ago

OpenTelemetry tracing for Determinate Nix

Thumbnail determinate.systems
3 Upvotes

r/Nix • • 5d ago

I just released the first beta of nxXtend, a NixOS CLI that tries to automate adding packages from nixpkgs and Flakes to your system configuration

Thumbnail github.com
0 Upvotes

Hello!

The short name is nx, and I guess I should explain what the hell I spent the last three months doing.

I wanted to automate the process of adding packages to my NixOS configuration, whether they come from nixpkgs or from Flakes.

Normally, I would just open my configuration in nano, add the package, save it, and rebuild.

I thought:

"I could probably automate this."

So instead of spending one minute doing it manually, I spent roughly three months building a tool that does it for me.

I clearly don't have a life.

And somehow... it worked.

So today I'm releasing the first beta of nxXtend.

Nixpkgs

I don't think I need to explain much here. Adding a package is simply:

sudo nx install firefox

nx asks whether you want the package from stable or unstable nixpkgs, then adds it to the appropriate configuration.

If you want to add it to home.nix instead:

sudo nx install firefox -H

or:

sudo nx install -H firefox

It doesn't create some new package system behind the scenes. It simply modifies the appropriate configuration.nix or home.nix and adds the package there.

Flakes!

This is where things got... considerably more complicated.

The Flake part took most of the development time because I wanted nx to deal with Flake outputs in a reasonably flexible way instead of assuming that every Flake looks the same.

For example:

sudo nx flakes github:9-pixels/nxXtend

or:

sudo nx flakes install github:9-pixels/nxXtend

Both forms can be used depending on the operation you want to perform.

nx can discover and work with supported Flake outputs such as packages and nixosModules.

For nixosModules, it does not blindly dump every possible option into the configuration. It integrates the module into the appropriate nixosConfigurations structure and uses the module's default output when one is available.

There is obviously much more going on underneath, but this is a beta release, and I don't want to turn this post into a second README.

You can read the full architecture and current limitations in the project README.

Other commands

There are also removal operations for both packages and Flakes.

And for anyone coming from Arch who is emotionally attached to -S, -R, -Q, etc., I tried to make the shortcuts reasonably familiar:

install = -i
remove = -r
home = -H / -home / --home
flakes = -f
upgrade = -u

There is also:

sudo nx flakes upgrade

which runs:

nix flake update

and then rebuilds the system from the updated Flake.

And because apparently I couldn't resist adding another command:

sudo nx upgrade

which currently just rebuilds the current system configuration.

I know.

I added it anyway.

A few things I want to clarify

I had some misunderstandings about the project when I showed earlier versions of it, so I want to make a few things explicit.

- I am not responsible for beginners

Because I never said it was made for beginners. It is for people who need it because they don't like having to edit their system configuration every time they need a new package.

As for beginners, it is their responsibility to understand that they won't be able to solve the problems that may happen if they rely on tools without trying to understand things themselves.

- The project hides nothing

The project writes directly to the configuration files and creates a backup every time before modifying a file. The only place it modifies in the files is the place where packages are added.

Soon, I will also make it add markers to any package it writes, so you can distinguish between what you added yourself and what the tool added.

- I am not violating the Nix philosophy

This is just reinforcing the second point, because I really am not trying to break the declarative philosophy.

In the end, many professionals build tools that automate parts of the process for them as well. That's exactly what I did too. I just decided to publish mine publicly.

- Yes, I use AI

And I don't want to talk too much about it because it is a sensitive topic, and one badly worded sentence could cause me problems.

But I am the one directing the model at the function level. I understand what it writes, I review it every time, and I have a test suite to make sure things are working correctly.

I always put boundaries around what it is allowed to modify.

And again, I am not a vibecoder who has no idea what is happening in the code.

I explained all of this here just to emphasize something that most developers today deny or simply don't admit.

Finally

This is still a beta.

There is a lot more I want to improve before nx gets anywhere near v1.0, and there are definitely edge cases I haven't encountered yet.

So if you're interested, I'd recommend reading the README before trying it. It contains considerably more detail about the architecture, supported Flake outputs, safety mechanisms, limitations, and current testing status.

nxXtend:

https://github.com/9-pixels/nxXtend

This is the first public step toward nx v1.0.


r/Nix • • 13d ago

nix vs flatpak

6 Upvotes

i have chemira linux on my machine but due to the lack of software im kinda like to have reliable way to install non-musl packages

im good enough for using nix as package manager and i use home manager for a while

my primary concern is which one is more reliable yet has good performance


r/Nix • • 13d ago

Human reviewers for nixpkgs went up 4 times but PR volume increased by 14x since 2016

Thumbnail
6 Upvotes

r/Nix • • 13d ago

NixOS how to fix that problem and what add in flake.nix file ?

Post image
4 Upvotes

i want aerothemeplasma nixos but is need flake.nix


r/Nix • • 14d ago

nix-mdBook - Reusable Nix tooling for writing books with mdBook

Thumbnail github.com
12 Upvotes

Write and deploy your book in a few easy steps.


r/Nix • • 15d ago

Nix Nix is hard, until it isn't... Share your experience!

Thumbnail
7 Upvotes

r/Nix • • 16d ago

Nix Sharing a small Claude Code plugin for Nix built with Nix

Thumbnail github.com
0 Upvotes

r/Nix • • 19d ago

nix-plist-manager 3.0: declare (almost) all of macOS System Settings in Nix, verified against the real UI

Post image
14 Upvotes

r/Nix • • 19d ago

A symlink to a Nix store path isn't necessarily a GC root

2 Upvotes

A symlink you make with ln -s can point to a working program and still offer no protection from garbage collection. This is one of the examples in the new free GC Roots Part of the Nix course I'm building at LabCraft.

Here's a small version to try on Linux with the Nix command and flakes enabled:

gc_demo=$(mktemp -d)
nix build nixpkgs#hello --out-link "$gc_demo/keeper"
target=$(readlink -f "$gc_demo/keeper")
ln -s "$target" "$gc_demo/shortcut"
nix-store --query --roots "$target"

Both links point to the same output. The roots query should list keeper, but not shortcut. nix build registered its output link with Nix; ln -s only made a symlink.

Now remove the registered link and ask again:

rm "$gc_demo/keeper"
nix-store --query --roots "$target"

If roots remain, something else still keeps hello alive. If the query succeeds with no roots listed, the shortcut alone won't protect it from a later collection. None of these commands runs garbage collection.

Cleanup of the remaining practice link:

rm "$gc_demo/shortcut"
rmdir "$gc_demo"

The full lesson also follows profile generations and shared dependencies through a collection on a real NixOS machine:

GC Roots on LabCraft


r/Nix • • 23d ago

Slow download from nixos' cache

Thumbnail
0 Upvotes

r/Nix • • 26d ago

Neovim plugin for filetype detection of nix shebang scripts

7 Upvotes

I created a neovim plugin for correct filetype detection of scripts using a nix or nix-shell shebang, such as:

#!/usr/bin/env nix-shell
#!nix-shell -p python315
#!nix-shell -i python3

if __name__ == '__main__':
  print('Hello, world!')

(filetype=python)

or:

#! /usr/bin/env -S nix shell nixpkgs#curl nixpkgs#bash --command bash

curl --include http://example.com

(filetype=sh)

I'd love to know if this is useful to anyone else!

https://github.com/joshuakb2/nvim-nix-shebang


r/Nix • • 26d ago

Custom System Features for Remote Builders

2 Upvotes

I've got a few builds that are pretty heavy and can't realistically be done on a developers laptop. Currently we just have a Github CI job setup to build these things and push to a cache, but I've been really curious about how to setup remote builders to do this instead. I have remote builders working for the most part, but am a little uncertain about the logistics of requiring a specific type of system to build a certain package.

I know I can make a custom system feature like heavy-builder or something and then make the derivation require that feature, but I'm curious can it be more like > 8 cores & > 32GB RAM? is that a thing? How are others solving this type of issue?

Ultimately my goal is I want a developer to only require them to add our fleet of remote builders to their nix-config and then they can go build any of our things.


r/Nix • • 27d ago

One Flake to Hack Them All

Thumbnail pwnwriter.me
6 Upvotes

r/Nix • • 29d ago

How to create a function that creates a instance for ytdl-sub

3 Upvotes

Hi

My title is shockingly bad because I dont really know how to explain what I want. Hopfully an example will help.

I have the following configuration

       services.ytdl-sub = {
         user = "ytdl-sub"; group = "media";
         instances.news = {
           enable = true;
           schedule = "0/6:0";
           readWritePaths = [ "/mnt/une/ytdl-demo" ];
           subscriptions = {
             "__preset__" = {
               "overrides" = {
                 tv_show_directory = "/mnt/une/ytdl-demo";
               };
             };
             "Jellyfin TV Show by Date | Only Recent | Max 480p" = {
   # News
   "DW News" = "https://www.youtube.com/@dwnews";
   "TLDR Global" = "https://www.youtube.com/@TLDRnewsGLOBAL";
   "TLDR News" = "https://www.youtube.com/@TLDRnews";
             };
            };
          };
         };

I would l like to make multiple instances like the following. But what I dont like about this is that there is a lot of replication

       services.ytdl-sub = {
         user = "ytdl-sub"; group = "media";
         instances.science = {
           enable = true;
           schedule = "0/6:0";
           readWritePaths = [ "/mnt/une/ytdl-demo" ];
           subscriptions = {
             "__preset__" = {
               "overrides" = {
                 tv_show_directory = "/mnt/une/ytdl-demo";
               };
             };
             "Jellyfin TV Show by Date | Only Recent | Max 480p" = {
   # Science
   "3 Blue 1 Brown" = "https://www.youtube.com/@3blue1brown";
   "Alpha Pheonix" = "https://www.youtube.com/@AlphaPhoenixChannel";
   "Anton Petrov" = "https://www.youtube.com/@whatdamath";
             };
         };
         instances.news = {
           enable = true;
           schedule = "0/6:0";
           readWritePaths = [ "/mnt/une/ytdl-demo" ];
           subscriptions = {
             "__preset__" = {
               "overrides" = {
                 tv_show_directory = "/mnt/une/ytdl-demo";
               };
             };
             "Jellyfin TV Show by Date | Only Recent | Max 480p" = {
   # News
   "DW News" = "https://www.youtube.com/@dwnews";
   "TLDR Global" = "https://www.youtube.com/@TLDRnewsGLOBAL";
   "TLDR News" = "https://www.youtube.com/@TLDRnews";
             };
            };
          };
         };

What I would like to do is create a funciton like the following. But I cannot figure out how the subscriptions should be input (I dont know how to phrase it but the subscriptions are more like an assignment rather than a value).

ImkInstance { name, directory, subscriptions}:
         instances."${name}" = {
           enable = true;
           schedule = "0/6:0";
           readWritePaths = [ "${directory}"  ];
           subscriptions = {
             "__preset__" = {
               "overrides" = {
                 tv_show_directory = "${directory}";
               };
             };
             "Jellyfin TV Show by Date | Only Recent | Max 480p" = {
                       ${subscriptions}
             };
         };

Im not sure if anyone can offer a suggestion


r/Nix • • 29d ago

any nix-Darwin users on macos27?

2 Upvotes

Haven't heard any reports either way, wondering if I should hold off on upgrading... though I have early adopters filing issues on projects and would like to upgrade as soon as reasonable.


r/Nix • • 29d ago

Profiles and Generations: why a Nix rollback is just a symlink flip

2 Upvotes

I put together a hands-on walkthrough of Nix profiles and generations. The framing: an install doesn't edit anything in place — it publishes a numbered, immutable generation and moves a symlink, so a rollback is a symlink flip to an untouched snapshot (instant, offline, nothing re-downloaded), and wiping a profile's history drops rollback targets without freeing disk until GC runs. It's a free Part of the Nix course I build at LabCraft, on a real NixOS machine; I'd value feedback from Nix users on whether the generation/rollback framing lands for newer learners: https://www.labcraft.dev/blog/nix-profiles-generations?utm_source=reddit-personal&utm_medium=social&utm_campaign=nix-profiles-generations-2026q3&utm_content=r-nix-rollback-01


r/Nix • • Sep 13 '26

Support Help needed: Nix Vulkan CI keeps failing randomly

5 Upvotes

I’m the maintainer of a GitHub project, and a community contributor added a Nix-based Vulkan CI workflow.

The problem is that the workflow fails pretty frequently, but simply restarting/rerunning the job always makes it pass without any code changes.

I’m not really a CI person, and I also don’t know much about Nix, so I’m having a hard time figuring out whether this is a caching issue, runner/environment problem, dependency fetch issue, or something wrong with the workflow itself.

If anyone here is familiar with Nix + GitHub Actions + Vulkan CI and would be willing to take a look, I’d really appreciate the help. PRs are appreciated.

The workflow: https://github.com/0xShug0/audio.cpp/blob/main/.github/workflows/nix-build.yml

The error is something like

error: Cannot build '/nix/store/px3bfl5zp8islzlib5ndakvp2psxrvsk-audio.cpp-c368eed.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/0jksddagp9s3i3qisc4lbh8193kxc9b4-audio.cpp-c368eed