The product of a chat with @QuazarOmega@lemy.lol

8 points

Still haven’t reached the flakes stage. An experimental feature that the maintainers are too afraid to treat as experimental and make breaking changes, but unwilling to name stable because it requires bug-fixes and changes that would be breaking, but too afraid to break because… reasons.

Anti Commercial-AI license

permalink
report
reply
2 points

It’s pretty easy for home-manager use, but still really useful. You can:

  • choose which packages to install from stable and which from unstable
  • add packages from repos that have flake.nix in them
  • correctly match nix and home-manager versions, and always update them at the same time
  • allow-unfree without nixpkgs conf, so 1 less directory required in .config (if they accepted the “experimental” features it’d be down to 1)

Here’s an example:

flake.nix
{
  description = "home flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    home-manager.url = "github:nix-community/home-manager/master";
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
    nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";

    # nixgl.url = "github:guibou/nixGL";
  };

  outputs =
    {
      self,
      nixpkgs,
      nixpkgs-stable,
      home-manager,
      # nixgl,
      ...
    }@inputs:
    let
      system = "x86_64-linux";
      pkgs = import nixpkgs {
        system = system;
        config = {
          allowUnfree = true;
        };
      };
      pkgsStable = import nixpkgs-stable {
        system = system;
        config = {
          allowUnfree = true;
        };
      };
    in
    {
      homeConfigurations = {
        shareni = home-manager.lib.homeManagerConfiguration {
          inherit pkgs;
          modules = [ ./home.nix ];
          extraSpecialArgs = {
            inherit inputs;
            inherit system;

            kmonad = pkgsStable.kmonad;
          };
        };
      };
    };
}
permalink
report
parent
reply
1 point
*

The ‘code’ tag here does not respect newlines, I tried to fix it but this is the best I could do:

`{ description = “home flake”;

 inputs = {     nixpkgs.url = “github:nixos/nixpkgs/nixos-unstable”;

 home-manager.url = “github:nix-community/home-manager/master”;

 home-manager.inputs.nixpkgs.follows = “nixpkgs”;

 nixpkgs-stable.url = “github:nixos/nixpkgs/nixos-23.11;

  # nixgl.url = “github:guibou/nixGL”;

};

outputs =     {

   self,

   nixpkgs,

   nixpkgs-stable,

   home-manager,

   # nixgl,

   …

 }

@inputs:

 let

   system = “x86_64-linux”;

   pkgs = import nixpkgs {

     system = system;

     config = {

       allowUnfree = true;

     };

   };

   pkgsStable = import nixpkgs-stable {

     system = system;

     config = {

       allowUnfree = true;

     };

   };

 in     {

   homeConfigurations = {

     shareni = home-manager.lib.homeManagerConfiguration {

       inherit pkgs;

       modules = [ ./home.nix ];

       extraSpecialArgs = {

         inherit inputs;

         inherit system;

          kmonad = pkgsStable.kmonad;

       };

     };

   };

 };

}`

permalink
report
parent
reply
2 points

It’s working perfectly fine for me on desktop, jerboa, and voyager. Also, add a spoiler.

permalink
report
parent
reply
1 point

The ‘code’ tag here does not respect newlines,

Now there’s a newline between every single line of code

permalink
report
parent
reply
4 points

[rest of post]
Anti Commercial-AI license

Hey look, the trend is spreading: you’re the second user I’ve seen doing that.

It’d be nice if the Lemmy devs added some sort of metadata field to support that so that (a) we could have a preference to insert it into every new comment automatically, and (b) it could be reduced to a badge on the comment header or something so that it would be less obtrusive to those of us who aren’t trying to do anything that would require us to pay attention to it.

permalink
report
parent
reply
1 point

…which are going to die

permalink
report
reply
6 points
*

I started with NixOS and now I installed something called “Lix

Yeah I’m deep in it to return

permalink
report
reply
3 points

That’s such a bad name, I only see lixmaballs.

How do you like it, that’s one of the earlier forks, right?

permalink
report
parent
reply
3 points

nix-inst 🤯

permalink
report
reply
4 points

declarative > imperative all day, every day

permalink
report
parent
reply
2 points

i install quite a lot of stuff through nix profile

once i decide that i use it often enough and i get around to do it, i eventually move them to my config

permalink
report
parent
reply
4 points

I’m going to have to come back to Nix/NixOS in a bit. I tried setting it up as a baremetal OS but clearly didn’t have sufficient understanding of the Nix DSL to get it to do what I want. Following the instructions in the manual led to a functional system missing the network stack. I’ll probably wait until the official docs catch up as it appears that they are quite a bit behind. That and I’m not sure how I feel about a DSL for package management. I’d much rather use JSON or YAML, or even INI or TOML. Maybe if I were a LISP or Haskell guy.

So, after a few hours sunk there, I switched to Fedora Silverblue, which worked out of the box and added Incus via rpm-os-tree. Just need to get the UI setup and I can start moving through my distro list.

permalink
report
reply
4 points

I’m going to have to come back to Nix/NixOS in a bit.

Use nix + home-manager first for sure. It’s far easier, and you can slowly get into it while making a list of bleeding edge packages.

I’ll probably wait until the official docs catch up as it appears that they are quite a bit behind

Skip them altogether when you’re starting out. I gave up on trying nix the first few times due to how bad they are. zero-to-nix.com is better for learning the basics of nix.

That and I’m not sure how I feel about a DSL for package management. I’d much rather use JSON or YAML, or even INI or TOML.

The closest you can get is home-manager with a list of packages in a json-like format. It’s really not practical to develop a declarative system without a programming language. A basic example would be variables, more advanced would be to write a wrapper that modifies the package so it automatically runs the required cli commands to use your dediated gpu and nixGL with specific packages (nvidia-run-mx nixVulkanNvidia-525.147.05 obs for example).

It’s sort of like IaC where you’ve got terraform (dsl), pulumi (various languages), and cloudformation (json/yaml). Can you guess which one is universally despised?

Maybe if I were a LISP or Haskell guy.

Then you’d use guix and a dsl made within an actual programming language (much better approach IMO).

permalink
report
parent
reply

linuxmemes

!linuxmemes@lemmy.world

Create post

Hint: :q!


Sister communities:

Community rules (click to expand)

1. Follow the site-wide rules
2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of “peasantry” to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
4. No recent reposts
  • Everybody uses Arch btw, can’t quit Vim, and wants to interject for a moment. You can stop now.

 

Please report posts and comments that break these rules!


Important: never execute code or follow advice that you don’t understand or can’t verify, especially here. The word of the day is credibility. This is a meme community – even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don’t fork-bomb your computer.

Community stats

  • 7K

    Monthly active users

  • 1.3K

    Posts

  • 71K

    Comments