nixos/flake.nix
Evie Litherland-Smith 010f0f6fc3 Update to nixos-24.05
nixpkgs url and flake lock updates

Remove nixpkgs from registry and nixPath as it's done automatically in
NixOS now

Stop setting nix package to nixVersions.unstable as that's now
deprecated
2024-06-01 07:14:42 +01:00

144 lines
4.2 KiB
Nix

{
description = "Evie's machine configurations";
nixConfig = {
extra-substituters = ["https://nix.xenia.me.uk"];
extra-trusted-public-keys = ["nix.xenia.me.uk:tlgwOaG5KMLjQUk2YaErS8mAG69ZCr3PaHXZYi+Y5eI="];
};
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
iosevka-custom.url = "git+https://git.xenia.me.uk/pixelifytica/iosevka.git";
niri = {
url = "github:yalter/niri/v0.1.6"; # Follow stable releases
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
nixpkgs,
iosevka-custom,
niri,
...
}: let
defaultSpecialArgs = {system ? "x86_64-linux", ...}: {
niri = niri.packages.${system}.default;
iosevkaCustom = {
packages = iosevka-custom.outputs.packages.${system};
names = iosevka-custom.outputs.names;
};
};
defaultModules = {
hostName ? "Atlas",
primaryUser ? "pixelifytica",
loginShell ? "zsh",
...
}: [
./configuration/default.nix
./configuration/${hostName}.nix
./hardware-configuration/${hostName}.nix
({
config,
lib,
pkgs,
...
}: {
networking = {inherit hostName;};
nix = {
settings.trusted-users = [primaryUser];
registry = {
my-nixos = {
from = {
type = "indirect";
id = "my-nixos";
};
to = {
type = "git";
url = "https://git.xenia.me.uk/pixelifytica/nixos.git?ref=main";
};
};
my-home-manager = {
from = {
type = "indirect";
id = "my-home-manager";
};
to = {
type = "git";
url = "https://git.xenia.me.uk/pixelifytica/home-manager.git?ref=main";
};
};
};
};
services.greetd.settings.initial_session.user = primaryUser;
programs.${loginShell}.enable = true;
users.users.${primaryUser} = {
shell = pkgs.${loginShell};
group = "users";
isNormalUser = true;
description = "Evie Litherland-Smith";
extraGroups = ["networkmanager" "wheel" "video" "input" "uinput"];
initialHashedPassword = "$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3";
openssh = {inherit (config.users.users.root.openssh) authorizedKeys;};
};
})
];
in {
devShells.x86_64-linux.default = let
pkgs = import nixpkgs {system = "x86_64-linux";};
in
pkgs.mkShellNoCC {
packages = [pkgs.nil];
};
nixosConfigurations = {
## Server
Legion = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = defaultSpecialArgs {inherit system;};
modules = defaultModules {
hostName = "Legion";
primaryUser = "pixelifytica";
loginShell = "zsh";
};
};
## Personal
Northstar = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = defaultSpecialArgs {inherit system;};
modules = defaultModules {
hostName = "Northstar";
primaryUser = "pixelifytica";
loginShell = "zsh";
};
};
Vanguard = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = defaultSpecialArgs {inherit system;};
modules = defaultModules {
hostName = "Vanguard";
primaryUser = "pixelifytica";
loginShell = "zsh";
};
};
## Work
Tone = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = defaultSpecialArgs {inherit system;};
modules = defaultModules {
hostName = "Tone";
primaryUser = "elitherl";
loginShell = "zsh";
};
};
Scorch = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = defaultSpecialArgs {inherit system;};
modules = defaultModules {
hostName = "Scorch";
primaryUser = "elitherl";
loginShell = "zsh";
};
};
};
};
}