[–] -1 points 3 months ago (3 children)

just seems like extremely poor communication and more "open letter" bullshit that's really a nothing burger. Seems like one or two people said "we're disbanding!" while based on some threads I've read the remaining team was like "yeah...we really didn't want to"

It's not a good look for the project when these people constantly get on the forums and post this stuff. just privately quietly resign. It's two people or even one person who wasn't happy and decided to nuke the ship on their way out.

You know if someone decided to set up a PR firm that focused purely on the Linux and FOSS communities they would make an absolute killing because NONE of these people know how to communicate jack all. it's the same for every project. every single one.

  • source
  • [–] 33 points 3 months ago* (3 children)

    Not even a year. May as well hook the nix org up to a steam generator to make use of all the human resources they burn thru.

    Reminds me of those old disruption tactics for occupied territories: drag everything through committees, micromanage and obstruct, make everyone's work just that much little bit harder than it needs to be...

    It's doubly tough because I can see where a lot of people are coming from on some issues, but others feel like they shouldn't be issues at all. Mostly just a systemic failure, as they said. Good communication is hard to accomplish: boundaries and expectations and all that; even harder when the framework and environment works against you.

    Sad to hear of more churn. Wishing them (and their future replacements) much good luck.

  • source
  • [–] 2 points 3 months ago* (last edited 3 months ago) (1 child)

    just swapped it to remove the ${pkgs.coreutils} but i suspect thats not right either

    Just /run/current-system/sw/bin/reboot actually would work, although it relies on your system closure containing a reboot binary. That's a reasonably safe assumption to make on a NixOS system, but you might not want to do this with other packages.

    the path i used was the output of which reboot

    The reason that doesn't work is that the structure of packages and the structure of a NixOS fiile system are different. Consider this:

    $ ls -l $(readlink $(type -P reboot))
    lrwxrwxrwx 33 root root 9  1. Jan 1970  /nix/store/axx9bvf0dmah41f39ds9xdkds1lsz6z9-systemd-261/bin/reboot -> systemctl
    

    So the systemd package in the nix store has a bin subdirectory containing its binaries. However:

    $ ls -l /bin/reboot
    ls: cannot access '/bin/reboot': No such file or directory
    $ ls -l /bin/*
    lrwxrwxrwx 1 root root 74 Aug  1 06:31 /bin/sh -> /nix/store/dddwfz7nph37q3cjky9lhpy9kb90rrrx-bash-interactive-5.3p15/bin/sh
    

    NixOS doesn't, at least not really (/bin/sh must exist because the system syscall uses it). Instead binaries for "installed" packages (the technical term would be "packages which are part of the system closure") are symlinked to /run/current-system/sw/bin:

    $ type -P reboot
    /run/current-system/sw/bin/reboot
    $ ls -l /run/current-system/sw/bin/reboot
    lrwxrwxrwx 9 root root 66  1. Jan 1970  /run/current-system/sw/bin/reboot -> /nix/store/axx9bvf0dmah41f39ds9xdkds1lsz6z9-systemd-261/bin/reboot
    

    More accurately, building a NixOS system creates a sort of meta-package that contains a link farm to all installed binaries in the sw/bin directory, and that meta-package is symlinked to /run/current-system at activation/boot. (Not all package contents are symlinked into this meta-package, also see the NixOS option environment.pathsToLink.)

    Putting that together with what string interpolation of packages does... well, you kinda just have to look at/know the contents of the package you are referring to:

    $ nix repl
    Nix 2.34.8
    Type :? for help.
    nix-repl> pkgs = import <nixpkgs> { }
    
    nix-repl> "${pkgs.systemd}/bin/reboot"
    "/nix/store/axx9bvf0dmah41f39ds9xdkds1lsz6z9-systemd-261/bin/reboot"
    
    nix-repl> "${pkgs.systemd}/run/current-system/sw/bin/reboot"
    "/nix/store/axx9bvf0dmah41f39ds9xdkds1lsz6z9-systemd-261/run/current-system/sw/bin/reboot"
    

    One of these paths exists, the other doesn't.

    Side note: You're looking at the old and mostly abandoned wiki, don't use that. There's an official wiki which is better. This particular article happens to be the same in both, but the old wiki also has tons of outdated and terrible articles like For Beginners or NixOS Woke Invasion.

  • source
  • parent
  • context
  • [–] 6 points 3 months ago (1 child)

    For installed packages, you can use readlink:

    $ readlink $(type -P reboot)
    /nix/store/axx9bvf0dmah41f39ds9xdkds1lsz6z9-systemd-261/bin/reboot
    

    The NixOS search can also search for binaries. It seems that busybox also provides a reboot which I guess might be useful for weird systemd-less deployments?

    If you want to search for any file across all packages, there's also nix-index, which scrapes Hydra for output files and builds a database which you can then query with nix-locate.

  • source
  • parent
  • context
  • [–] 10 points 3 months ago (3 children)

    This line:

    ${pkgs.coreutils}/run/current-system/sw/bin/reboot
    

    is incorrect, as you've mixed a package path with an absolute path. Additionally, on my system at least, reboot is a part of pkgs.systemd and not pkgs.coreutils.

    So this should work:

    ${pkgs.systemd}/bin/reboot
    

    Or, since systemd is always installed on NixOS systems, you can use the absolute wrapper path:

    /run/current-system/sw/bin/reboot
    
  • source
  • [–] [S] 3 points 3 months ago (5 children)

    thanks for replying. the system has about a 24hr uptime from me rebooting last night, so it did not reboot at 9am.

    autoreboot.timer Loaded: loaded (/etc/systemd/system/autoreboot.timer; enab> Active: active (waiting) since Thu 2026-07-30 19:36:04 CDT> Invocation: 0ebb672bd44e4efbb2a11aace109043b

    Trigger: Sat 2026-08-01 09:00:00 CDT; 10h left                 Triggers: � autoreboot.service
    

    Sat 2026-08-01 09:00:00 CDT 10h Fri 2026-07-31 09:00:02 CDT 13h ago autoreboot.timer autoreboot.service

    hmm looks like everything ran except it didn't actually reboot. ill investigate more.

    thank you!

  • source
  • parent
  • context
  • [–] 1 point 3 months ago

    Yeah, i was using Void but atm i'm using Guix. From what i can tell Guix doesn't have an implementation for it either, but my current setup works so that's good lol. I just have a shepherd service that executes the script in my users' .nix-profile as root. The tmpfiles.d method is basically what this project is doing as well. I ended up not using it because of that, but i also don't like that it adds more projects that you have to depend on to get it working compared to the manual setup that we're doing.

  • source
  • parent
  • context
  • [–] 1 point 3 months ago

    Thanks for the heads up!

    The new hostwide flag is very convenient. It probably won't work for me because I'm sticking to stock SteamOS for now, and it's very immutable. But I'm giving it a try asap!

  • source
  • parent
  • context
  • [–] [S] 1 point 3 months ago (1 child)

    Ah. You're on Void. Indeed, it does look like Void doesn't have an implementation of systemd-tmpfiles. Here is the file from my system, it's only creating a single symlink, which is basically the same thing you are doing:

    [moonpie@nefertem home-manager]$ cat /etc/tmpfiles.d/non-nixos-gpu.conf 
    L+ /run/opengl-driver - - - - /nix/store/2r6vmqh1vkivsrmr6n1vh1862i2qndqz-non-nixos-gpu
    

    Oops, the below is for artix. I was nosy but not nosy enough and I saw a comment where you mentioning you used void after you wrote all of this. I'm gonna leave it here since it was an enjoyable rabbit hole.

    I did some digging, and it looks like it is possible to use systemd-tmpfiles outside of systemd. It's just a binary that creates files/directories/symlinks based on a format, so it's pretty easy to extract, or reimplement entirely.

    Artix has their own, an extraction from the systemd package: https://packages.artixlinux.org/packages/system/x86_64/etmpfiles/

    It looks like that package is required by the base package, which is the core package set declaring the minimal dependencies needed to have a working system, so it's highly likely you have it installed.

    I think it automatically starts too, but I can't find a hard source for this. Based on this page: https://wiki.artixlinux.org/Main/Migration#Download_the_Artix_packages it looks like etmpfiles is needed before you select/install the init system, which suggests that. This reddit post, where a user has an issue where etmpfiles isn't installed, so their service manager complains and dies.

    If you have a service named something related, like tmpfile or the like, then it does autostart.

  • source
  • parent
  • context
  • [–] 1 point 3 months ago (2 children)

    Oh that's cool that they actually acknowledge the issue now and have adressed it like this. It looks it does still assume systemd though? Since it's using tmpfiles.d. Since i'm on a non-systemd distro i'll probably keep using my own script that runs at boot through my service manager. I've updated my config a little since then cause i used to symlink from my home folder, which caused issues on my server where multiple users needed the drivers. I now symlink it directly from the store. Also looking back at my old comment, i did end up trying to use rocm and it worked just fine.

  • source
  • parent
  • context
  • [–] [S] 2 points 3 months ago* (last edited 3 months ago) (1 child)

    Huh. The page was updated, reviewing it a year later. It does look like there is an option to automatically give GPU to all Nix/home-manager programs now. If you set targets.genericLinux.enable to true, then it should work.

  • source
  • parent
  • context
  • [–] [S] 2 points 3 months ago

    Ah yes, I got it working, the issue was unshare-pgid which had already been sort of raised in nixpak.

    In my case, I used bubblewrap.newSession (which is equivalent of --new-session). Idk why that worked out finally with --unshare-pgid, but I'd rather not spend more time on this.

    I like the idea of let binding the package declaration to use it in the config as well. I'll probably use that. Thanks!

  • source
  • [–] 3 points 3 months ago* (last edited 3 months ago)

    Firstly, did you get it working? I notice your latest commit seems to mention that you got it working

    One thing I would recommend is to declare the iamb package separately in a let... in statement.

    let
       iamb = (mknixpak blah blah blah)
    
    ....
    ....
    
    in
    
     userconfig.programs.iamb = {
          enable = true;
          # By using "iamb", instead of pkgs.iamb, it means we are using the nixpak wrapped version here
          package = iamb
          settings = {
            profiles.user.user_id = "@username:instance.com";
            settings = {
              image_preview = { };
              username_display = "displayname";
              user_gutter_width = 15;
            };
          };
        };
    

    This make it so that iamb is the nixpak wrapped version instead, in the userconfig. This would probably also make it so that you don't need to declare it explicitly in your systemPackages.

  • source
  • view more: ‹ prev next ›