.github
.vscode
docs
hydra
keys
lib
modules
pkgs
systems
users
utils
.envrc
.gitconfig
.gitignore
.sops.yaml
CONTRIBUTING.md
README.md
checks.nix
flake.lock
flake.nix
shell.nix
statix.toml
treefmt.toml
180 lines
5.0 KiB
Nix
180 lines
5.0 KiB
Nix
{
|
|
description = "NixOS configuration for my machines";
|
|
|
|
nixConfig = {
|
|
substituters = [
|
|
"https://cache.nixos.org/?priority=1&want-mass-query=true"
|
|
"https://nix-community.cachix.org/?priority=10&want-mass-query=true"
|
|
"https://attic.nayeonie.com/nix-cache"
|
|
];
|
|
trusted-substituters = [
|
|
"https://cache.nixos.org"
|
|
"https://nix-community.cachix.org"
|
|
"https://attic.nayeonie.com/nix-cache"
|
|
];
|
|
trusted-public-keys = [
|
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
"nix-cache:trR+y5nwpQHR4hystoogubFmp97cewkjWeqqbygRQRs="
|
|
];
|
|
trusted-users = [ "root" ];
|
|
allow-import-from-derivation = true;
|
|
};
|
|
|
|
inputs = {
|
|
flake-compat.url = "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz";
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
|
#nixpkgs.url = "github:nuschtos/nuschtpkgs/nixos-unstable";
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small";
|
|
#nixpkgs.url = "github:nixos/nixpkgs/1d2fe0135f360c970aee1d57a53f816f3c9bddae?narHash=sha256-Up7YlXIupmT7fEtC4Oj676M91INg0HAoamiswAsA3rc%3D";
|
|
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11";
|
|
systems.url = "github:nix-systems/default";
|
|
|
|
# attic = {
|
|
# url = "github:zhaofengli/attic";
|
|
# inputs = {
|
|
# nixpkgs.follows = "nixpkgs";
|
|
# nixpkgs-stable.follows = "nixpkgs-stable";
|
|
# flake-compat.follows = "flake-compat";
|
|
# flake-parts.follows = "flake-parts";
|
|
# };
|
|
# };
|
|
|
|
firefox-addons = {
|
|
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
|
inputs = {
|
|
nixpkgs.follows = "nixpkgs";
|
|
flake-utils.follows = "flake-utils";
|
|
};
|
|
};
|
|
|
|
flake-utils = {
|
|
url = "github:numtide/flake-utils";
|
|
inputs.systems.follows = "systems";
|
|
};
|
|
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
hydra = {
|
|
url = "git+https://nayeonie.com/ahuston-0/hydra?ref=add-gitea-pulls";
|
|
# inputs = {
|
|
# nixpkgs.follows = "nixpkgs";
|
|
# };
|
|
};
|
|
|
|
hyprland-contrib = {
|
|
url = "github:hyprwm/contrib";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
nix-index-database = {
|
|
url = "github:Mic92/nix-index-database";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
nixos-generators = {
|
|
url = "github:nix-community/nixos-generators";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
nixos-modules = {
|
|
url = "github:SuperSandro2000/nixos-modules";
|
|
inputs = {
|
|
nixpkgs.follows = "nixpkgs";
|
|
flake-utils.follows = "flake-utils";
|
|
};
|
|
};
|
|
|
|
pre-commit-hooks = {
|
|
url = "github:cachix/git-hooks.nix";
|
|
inputs = {
|
|
nixpkgs.follows = "nixpkgs";
|
|
flake-compat.follows = "flake-compat";
|
|
};
|
|
};
|
|
|
|
rust-overlay = {
|
|
url = "github:oxalica/rust-overlay";
|
|
inputs = {
|
|
nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
sops-nix = {
|
|
url = "github:Mic92/sops-nix";
|
|
inputs = {
|
|
nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
stylix = {
|
|
url = "github:danth/stylix";
|
|
inputs = {
|
|
flake-compat.follows = "flake-compat";
|
|
home-manager.follows = "home-manager";
|
|
nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
wired-notify = {
|
|
url = "github:Toqozz/wired-notify";
|
|
inputs = {
|
|
nixpkgs.follows = "nixpkgs";
|
|
rust-overlay.follows = "rust-overlay";
|
|
flake-parts.follows = "flake-parts";
|
|
};
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{ self, nixpkgs, ... }@inputs:
|
|
let
|
|
systems = [
|
|
"x86_64-linux"
|
|
# disable arm for now as hydra isn't set up for it
|
|
# "aarch64-linux"
|
|
];
|
|
|
|
forEachSystem = lib.genAttrs systems;
|
|
|
|
# gets the base path of the repo
|
|
src = builtins.path { path = ./.; };
|
|
|
|
# adds our lib functions to lib namespace
|
|
lib = nixpkgs.lib.extend (
|
|
self: _:
|
|
import ./lib {
|
|
inherit nixpkgs inputs;
|
|
lib = self;
|
|
}
|
|
);
|
|
inherit (lib.rad-dev.systems) genSystems getImages;
|
|
inherit (self) outputs; # for hydra
|
|
in
|
|
rec {
|
|
inherit lib; # for allowing use of custom functions in nix repl
|
|
|
|
hydraJobs = import ./hydra/jobs.nix { inherit inputs outputs systems; };
|
|
formatter = forEachSystem (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style);
|
|
|
|
nixosConfigurations = genSystems inputs outputs src (src + "/systems");
|
|
images = {
|
|
install-iso = getImages nixosConfigurations "install-iso";
|
|
iso = getImages nixosConfigurations "iso";
|
|
qcow = getImages nixosConfigurations "qcow";
|
|
};
|
|
|
|
packages.x86_64-linux.lego-latest =
|
|
nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/lego-latest/default.nix
|
|
{ };
|
|
|
|
checks = import ./checks.nix { inherit inputs forEachSystem formatter; };
|
|
devShells = import ./shell.nix { inherit inputs forEachSystem checks; };
|
|
|
|
};
|
|
}
|