hi ever1… noob here
deep breaths
previously i asked you guys a bunch of questions so that i could be ready to get into some serious business with flakes… (i was already using them at that time)
well, i didnt learn anything! and oh-so-coincidentally AMD made an whoopsie doodles and messed up the kernel for everybody, and so im stuck with THIS:
and because no one can help me but to wait for official response from AMD (proprietary!), I AM LITERALLY PHYSICALLY UNABLE TO WAIT, i am a very impatient person and i NEED THIS COMPUTER TO WORK IMMEDIATELY.
so i said fuck it, and tried out this flake that was recommended here (yes my only computer is a steam deck that i hacked tf out of it):
i didnt have such a good experience.
i installed it thusly (manually truncated + cleared out a bunch a few thousand lines):
flake.nix
{
description = "I DONT CARE";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
hyprland.url = "github:hyprwm/hyprland";
jovian-nixos.url = "github:jovian-experiments/jovian-nixos";
};
outputs = {
self,
nixpkgs,
hyprland,
jovian-nixos,
...
} @inputs: {
nixosConfigurations.steamdeck = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; }; # hyprland demands this
modules = [
./configuration.nix
hyprland.nixosModules.default
jovian-nixos.nixosModules.default
];
};
};
}
pretty normal stuff, right? well, i have a question that still havent been answered and that i couldnt find an answer to on the internet because anything that has to do with .overlays
lead to “undefined variable”, etc. etc.
HOWDOIGETTHETHINGTHATDOESTHETHINGWITHOUTOVERCOMPLICATINGITLIKEIMASOFTWAREENGINEER???
how do i install a package from a flake that consists of multiple packages and options?
this must be the ultimate question. what i mean by this is that i usually install SINGULAR flake packages like this:
programs.helpme.package = inputs.verynice.packages.${pkgs.system}.default;
(where verynice
is the name of the flake, e.g. verynice.url = "github:verygood/verynice"
)
which is a slightly cooler equivalent to
programs.helpme.package = pkgs.verynice;
NOW! were i try to, say, install pkgs.linux_jovian
kernel from jovian-nixos
flake, thusly so:
boot.kernelPackages = pkgs.jovian-nixos.packages.${pkgs.system}.default;
this would imply that i am literally installing the WHOLE flake with ALL OF ITS packages, and it OBVIOUSLY fails, even though it says that .packages
or .inputs
is undefined, whatever. THIS IS NOT THE CASE FOR LITERALLY EVERYTHING ELSE! the way that i am installing flake packages right now is FINE and it WORKS, but i dont know what am i supposed to do when the flake has multiple packages with .default
paths or whatever!
okay, maybe it’s boot.kernelPackages
option ITSELF, right, maybe it doesnt allow you to use a flake package, or maybe not! okay, but how do i, GENERALLY SPEAKING, install SPECIFIC, CERTAIN, perhaps even SINGULAR packages from a flake? e.g. mesa-git
from chaotic-cx/nyx
? sorry i am repeating myself because i am fighting through this dead GPU hahahaha
a few hours later i realised that, APPARENTLY, this kernel package that i want to install from this jovian-nixos
flake is… not a package, and is actually an overlay, I THINK. because i can get every other package (that i need, at least) from this flake’s options, e.g. jovian.devices.steamdeck.enable = true;
ANYWAY!!! this makes it infinitely more interesting, but… WHAT DOES ANY OF IT EVEN MEAN?
so this linux_jovian
is supposed be declared via jovian.linuxPackages_jovian
… and NOT boot.kernelPackages
, that i thought would work. UGHHH, why, why WHY??? okay, it doesnt matter HOW this pseudo-flake is made, and nevermind the fact that they want me to unironically overlay
may way ouf ot this, i just want to try and get this package the nix-way via a flake… but none of those variants work! once again, it’s either an “undefined variable” or “undefined attribute” or “this option doesnt exist” or whateeeever…
one way that i know, which is imperative, i think, and is a very very very bad idea is… copy the .default
nix file of the kernel package in question lol (btw i just noticed that the attribute name of it is linux_jovian
but the package name is linux
, BUT the overlay path to it is ./pkgs/linux-jovian
which made me lose all of my braincells) and then have it as an input
(in configuration.nix
)… that’s horrible, right? i mean, i wouldnt be able to update… or perhaps do the same but via modules = [ ];
in my flake.nix
…i am very sorry. my computer died 5 times while i was writing this, please understand
so, um, i think that is the only, like, OBSTACLE that i am having so far with nixOS… had to edit a bunch of stuff out cos i was just angry lol