Nix / NixOS

2143 readers
2 users here now

Main links

Videos

founded 2 years ago
MODERATORS
101
 
 

I am arch user by now. Tried nix package manager on it and learning nix thee days. I was thinking of switching to nix as I was not able to replicate that much Declarativeness on my setup. But barrier is almost Everything Nix is on Github,Something which somehow belong to Microsoft and is not good for privacy.

So can Nix community host a Gitlab or forgejo or Something else as an alternative or maybe permanently move it (so that I can switch to nix)?

102
 
 

I recently tried switching from Arch to NixOS and the experience I had can best be described as apalling. I have not had a new user experience this bad since my first dip into Ubuntu dependency hell back in 2016. I'd like to preface this by saying I've been a Linux user in one form or another for almost half my life at this point, and in that time this may well be the most I've struggled to get things to work.

Apparently they have this thing called home-manager which looks pretty cool. I'd like to give that a shot. Apparently I have to enable a new Nix channel before I can install it. I'm guessing that's the equivalent of a PPA? Well, alright. nix-channel --add ..., nix-channel --update (oh, so it waits until now to tell me I typo'd the URL. Alright), and now to run the installation command and... couldn't find home-manager? Huh?? I just installed it. I google the error message and apparently you have to reboot after adding a new nix-channel and doing nix-channel --update before it will actually take effect, and the home-manager guide didn't tell me that. Ah well, at least it works now.

I didn't want to wait for KDE and its 6 morbillion dependencies to download, so I opted for Weston. It wasn't a thing in configuration.nix (programs.weston.enable=true; threw an error and there was no page for it on the NixOS wiki), but it was available in nix-env (side note: why does nix-env -i take upwards of 30 seconds just to locate a package?), so I installed it, tried to run it, and promptly got an inscrutable "Permission denied" error with one Google result that had gone unresolved. Oh well, that's alright, I guess that's not supported just yet -- I'll install Sway instead. Great, now I have a GUI and all I need is a browser. nix-env -i firefox gave me the firefox-beta binary which displayed the crash reporter before even opening a browser window. Okay, note to self: always use configuration.nix. One programs.firefox.enable=true; and one nixos-rebuild switch later, I'm off to the races. Browser is up and running. Success! Now I'd like to install a Rust development environment so I can get back to work. According to NixOS wiki, I can copy paste this incantation into a shell.nix file and have rustup in there. Cool. After resolving a few minor hangups regarding compiler version, manually telling rustc where the linker is, and telling nix-shell that I also need cmake (which was thankfully pretty easy), I'm met with a "missing pkg-config file for openssl" error that I have absolutely no idea how to begin to resolve.

I'm trying to stick with it, I really am -- I love the idea that I can just copy my entire configuration to a brand new install by copying one file and the contents of my home directory and have it be effectively the same machine -- but I'm really struggling here. Surely people wouldn't rave about NixOS as much as they do if it was really this bad? What am I doing wrong?

Also unrelated but am I correct in assuming that I cannot install KDE without also installing the X server?

103
46
submitted 10 months ago by [email protected] to c/nix
104
 
 

My solution:

let

  nixFilesInDirectory = directory:
    (
      map (file: "${directory}/${file}")
      (
        builtins.filter
          (
            nodeName:
              (builtins.isList (builtins.match ".+\.nix$" nodeName)) &&
              # checking that it is NOT a directory by seeing
              # if the node name forcefully used as a directory is an invalid path
              (!builtins.pathExists "${directory}/${nodeName}/.")
          )
          (builtins.attrNames (builtins.readDir directory))
      )
    );

  nixFilesInDirectories = directoryList:
    (
      builtins.concatMap
        (directory: nixFilesInDirectory directory)
        (directoryList)
    );
  # ...
in {
  imports = nixFilesInDirectories ([
      "${./programs}"
      "${./programs/terminal-niceties}"
  ]);
  # ...
}

snippet from the full source code: quazar-omega/home-manager-config (L5-L26)

credits:


I'm trying out Nix Home Manager and learning its features little by little.
I've been trying to split my app configurations into their own files now and saw that many do the following:

  1. Make a directory containing all the app specific configurations:
programs/
└── helix.nix
  1. Make a catch-all file default.nix that selectively imports the files inside:
programs/
├── default.nix
└── helix.nix

Content:

{
  imports = [
    ./helix.nix
  ];
}
  1. Import the directory (picking up the default.nix) within the home-manager configuration:
{
  # some stuff...
  imports = [
    ./programs
  ];
 # some other stuff...
}

I'd like to avoid having to write each and every file I'll create into the imports of default.nix, that kinda defeats the point of separating it if I'll have to specify everything anyway, so is there a way to do so? I haven't found different ways to do this in various Nix discussions.


Example I'm looking at: https://github.com/fufexan/dotfiles/blob/main/home/terminal/default.nix

My own repository: https://codeberg.org/quazar-omega/home-manager-config

105
 
 

Hi,

I want to sort my bookmarks in Firefox with home-manager into folders, but fail.

Simple example:

firefox = {
      profiles."user" = {
        bookmarks = [
          {
            name = "Nix";
            toolbar = true;
            bookmarks = [
              {
                name = "NixOS Search";
                url = "https://search.nixos.org/packages";
              }
              {
                name = "NixOS Options";
                url = "https://nixos.org/manual/nixos/unstable/options";
              }
              {
                name = "Home-Manager Options";
                url = "https://nix-community.github.io/home-manager/options.xhtml";
              }
              {
                name = "Home-Manager Options Search";
                url = "https://home-manager-options.extranix.com/";
              }
            ];
          }
        ];
      };

My assumption was that I get a folder "Nix" in the bookmarks toolbar that contains the four bookmarks. But instead the four bookmarks are added to the toolbar side-by-side without being in a folder.

How can I achieve that?

106
 
 

Hello you all, so basically i installed Nix in my machine, and i wanted a way to install packages, with nix-env --install, and those packages share with the root account, i was reading about nix multi-user and i'm gonna be honest, i didn't understood shit, i need to enable daemon for both root and my user?, or this only works between users, not root?, etc. thanks for any answer!

107
 
 

Power on my dell laptop is getting wonky so I'm pulling the thinkpad x201 out of retirement. Hadn't booted it since 2019! For some reason the wifi wasn't working so connected it to wired ethernet.

Updated the channel to 23.11 and did nixos-rebuild switch. Had to fix a few things where packages no longer exist or options have changed. Rebooted and wifi is working now!

What other OS could you upgrade like that?

108
22
submitted 11 months ago by Shareni to c/nix
 
 

cross-posted from: https://programming.dev/post/14020506

The product of a chat with @[email protected]

109
 
 

You can change the color theme of your whole desktop with a single line of code.

Currently supported adapters:

  • Adwaita (GTK3, GTK4)
  • Alacritty
  • dunst
  • Firefox (hijacking the default theme with userchrome.css)
  • GTK2
  • Kvantum
  • Rofi
  • swaylock
  • Wezterm

repo: https://gitlab.com/vfosnar/nix-colors-adapters / https://github.com/vfosnar/nix-colors-adapters

110
28
Nix 2.22 released (releases.nixos.org)
submitted 11 months ago by mac to c/nix
111
35
SnowflakeOS (snowflakeos.org)
submitted 11 months ago by starman to c/nix
112
 
 

I'm very, very new to nix and nixOS both - I come from imperative workflows and very very rarely anything determinative, so this is all brand new to me.

As an example of the kind of thing I don't understand how to do, let's take an example repo I've been bouncing off: https://github.com/GideonWolfe/Chameleon

On a "normal" system, I can get pip and python ready, and then make install and I'm off to the races.

With NixOS, I've got as far as adding python3 and gnumake to my configuration.nix packages. (I have also discovered that putting python in my system packages was the wrong move, so some advice on how better to go about this would be cool too.)

I can't for the life of me wrap my head around what I'm supposed to do, and so many people online are using flakes but I'm on stable 23.11 (and quite daunted by flakes) so I'd prefer if this was from that POV.

Can anyone speak to any of these points? I've tried reading the docs but it's very confusing for some reason.

113
 
 

Yes I know that there are workarounds for them to set to use the flake inputs but still.. I have set nixpkgs version to 23.11 stable release and that's good, but if I try to use nix shell, nix profile or even nix-env, they all seem to use the latest master/unstable branch to install the packages by default.

Just want to know why aren't they just default to use whatever is defined in flake.nix file? will it be implemented to use it by default in the near future?

Reason as to why I am asking -> This is what I am using to match nix shell and flake inputs, but as you can see they are just workarounds, plus seem to cause more errors and whatnot, plus by ideology one shouldn't need to specially define it to use some version when everything is already defined.

114
 
 

cross-posted from: https://programming.dev/post/13537798

Exciting Partnership Announcement: Framework Community & NixOS Communities Join Forces!

115
5
submitted 11 months ago* (last edited 11 months ago) by [email protected] to c/nix
 
 

See I use wofi-emoji but this issue #308357 is haunting me. So I just wanted to know what my fellow users use cuz I guess not a lot of people use wofi-emoji.

116
2
submitted 11 months ago* (last edited 11 months ago) by [email protected] to c/nix
 
 

I know that if using flakes nix shell is the right command. But I just want to know that is it normal for legacy commands to not work like that one? nix-env works tho.

  • Dotfiles

  • One thing to note is that, what I am doing temporarily is running it using this

nix shell nixpkgs#nix-info
nix-info
  • And the output value is this
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.86, NixOS, 23.11 (Tapir), 23.11.20240417.e402c3e`
 - multi-user?: `no`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.1`
 - nixpkgs: `not found`
  • Notice the nixpkgs: not found, This is also weird to me.

  • logs ->

error:
       … while calling anonymous lambda

         at «string»:1:1:

            1| {...}@args: with import <nixpkgs> args; (pkgs.runCommandCC or pkgs.runCommand) "shell" { buildInputs = [ (nix-info) ]; } ""
             | ^

       error: file 'nixpkgs' was not found in the Nix search path (add it using $NIX_PATH or -I)

       at «none»:0: (source not available)
117
 
 

Eelco has agreed to step down from the NixOS foundation board. Over the next two weeks, a constitutional assembly will be appointed to draft a constitution to democratically govern Nix/NixOS.

118
2
submitted 11 months ago* (last edited 11 months ago) by starman to c/nix
 
 
119
57
submitted 11 months ago* (last edited 11 months ago) by recursive_recursion to c/nix
 
 

I just saw the news of the soft fork announcement over on the IceShrimp instance and thought I should share here


Background Context for Anyone Out of the Loop

(newest to oldest news - top to bottom):


As mentioned (by u/steventrouble in the previous post here):

120
 
 

Searched about it could not find much. I am on nixos.

121
122
 
 

Hi everyone,

I presented about how you can use ❄ Nix with Golang to create development environments at Conf42 earlier this week! I'd love some feedback, hopefully I didn't get anything wrong 😅.

Thanks

123
 
 

So I have an RTX 3060, and I tend to prefer using wayland because Plasma 6 on X.org is a bit bugged/sluggish, to the point where the window minimize animation lags. However, I also want to play some pirated video games. The natural answer to this would be to use wine, and so I did. I used the wayland build for wine, but there's a strange frame-skipping phenomenon. I don't know what to call it, but the game skips back and forward in frames every couple seconds. The logs just constantly spam 017c:fixme:d3d:wined3d_device_context_resolve_sub_resource Multisample resolve is not fully supported for typeless formats (dst_format WINED3DFMT_R8G8B8A8_TYPELESS, src_format WINED3DFMT_R8G8B8A8_TYPELESS, format WINED3DFMT_R8G8B8A8_UNORM)., filling the scrollback buffer.

Is there any solution to this frame-skipping problem? I haven't been able to find anything on SearX.

124
125
 
 

Hi! I ran into the issue that my kube config, which I manage with home-manager is world read- and writable. I hoped that there is an easy option to set file permissions with home-manager, e.g. home.file."foo".permissions = 0644 but something like this does not exist. All solutions a short web search turns up are overly complicated for something that seems to be a trivial task.

What is the easiest way to set permissions for a file with home-manager?

view more: ‹ prev next ›