Files
sydnix/flake.nix
Madeleine Sydney 79300c5c95 feat(emacs): ↑30.1
2025-03-07 13:58:00 -07:00

68 lines
2.3 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:///persist/dots/DELETE-ME/home-manager";
niri.url = "github:sodiboo/niri-flake";
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";
# Used for Firefox extensions/addons.
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { 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;
};
nixConfig = {
extra-substituters = [
"https://nix-community.cachix.org"
];
extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
}