Files
sydnix/flake.nix
Madeleine Sydney ef9943b707 blah
2025-03-27 05:56:05 -06:00

76 lines
2.7 KiB
Nix
Executable File

{
description = "Madeleine's dots for the illiterate (sydnix)";
inputs = {
disko.url = "github:nix-community/disko";
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
impermanence.url = "github:nix-community/impermanence";
# We're using my branch until #6259 is merged.
# home-manager.url = "github:msyds/home-manager/service-mpdscribble";
home-manager.url = "path:///home/crumb/git/home-manager";
sops-nix.url = "github:Mic92/sops-nix";
sydnix-cli.url = "path:///persist/dots/scripts/sydnix-cli";
copyparty.url = "github:9001/copyparty";
emacs-overlay.url = "github:nix-community/emacs-overlay";
niri.url = "github:sodiboo/niri-flake";
stylix.url = "github:danth/stylix";
# nixcord.url = "github:kaylorben/nixcord";
nixcord.url = "github:msyds/nixcord/irc-colours";
# Used for Firefox extensions/addons.
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, ... }@inputs:
# TODO: Move to utils.nix.
let list-nix-directory = dir:
builtins.attrNames
(nixpkgs.lib.filterAttrs
(k: _v: nixpkgs.lib.hasSuffix ".nix" k)
(builtins.readDir dir));
# Given a path to a directory, return a module that imports «path»/*.nix
collectModules = path:
let modules = list-nix-directory path;
in { pkgs, lib, ... }: {
imports = builtins.map (m: ./${path}/${m}) modules;
};
in {
# REVIEW: Why don't we put each module under nixosModules.<name>?
# TODO: Deduplicate.
nixosModules.default =
let modules = list-nix-directory ./modules/nixos;
in { pkgs, lib, ... }: {
imports =
builtins.map (m: ./modules/nixos/${m}) modules;
};
# TODO: Deduplicate.
homeManagerModules.default =
let modules = list-nix-directory ./modules/home;
in { pkgs, lib, ... }: {
imports =
builtins.map (m: ./modules/home/${m}) modules;
};
nixosConfigurations = import ./outputs/nixosConfigurations.nix inputs;
homeConfigurations = import ./outputs/homeConfigurations.nix inputs;
packages.x86_64-linux.live-minimal =
self.nixosConfigurations.live-minimal.config.system.build.isoImage;
};
nixConfig = {
extra-substituters = [
"https://nix-community.cachix.org"
"https://niri.cachix.org" # WAIT4NIRI
];
extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964=" # WAIT4NIRI
];
};
}