119 lines
3.3 KiB
Nix
119 lines
3.3 KiB
Nix
{
|
|
description = "Nixos config flake";
|
|
|
|
inputs = {
|
|
# base packages
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
|
|
# flake structure
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
import-tree.url = "github:vic/import-tree";
|
|
|
|
lix-module = {
|
|
url = "git+https://git.lix.systems/lix-project/nixos-module.git";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# secret encryption
|
|
sops-nix = {
|
|
url = "github:Mic92/sops-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# self hosted repo of secrets file to further protect files in case of future encryption vulnerabilities
|
|
secrets = {
|
|
url = "git+ssh://git@git.jan-leila.com/jan-leila/nix-config-secrets.git";
|
|
flake = false;
|
|
};
|
|
|
|
# common config for syncthing
|
|
nix-syncthing = {
|
|
url = "git+https://git.jan-leila.com/jan-leila/nix-syncthing?ref=main";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# disk configurations
|
|
disko = {
|
|
url = "github:nix-community/disko";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# delete your darlings
|
|
impermanence = {
|
|
url = "github:nix-community/impermanence";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.home-manager.follows = "home-manager";
|
|
};
|
|
|
|
nix-darwin = {
|
|
url = "github:LnL7/nix-darwin";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# users home directories
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# firefox extensions
|
|
firefox-addons = {
|
|
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# vscode extensions
|
|
nix-vscode-extensions = {
|
|
url = "github:nix-community/nix-vscode-extensions";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# pregenerated hardware configurations
|
|
nixos-hardware = {
|
|
url = "github:NixOS/nixos-hardware/master";
|
|
};
|
|
|
|
# this is just here so that we have a lock on it for our dev shells
|
|
flake-compat = {
|
|
url = "github:edolstra/flake-compat";
|
|
};
|
|
|
|
# MCP NixOS server for Claude Dev
|
|
mcp-nixos = {
|
|
url = "github:utensils/mcp-nixos";
|
|
# Not following nixpkgs because aws-sam-translator doesn't support Python 3.14 yet
|
|
};
|
|
|
|
# Noita Entangled Worlds package
|
|
# Not following our nixpkgs so it can use its own rust-overlay configuration
|
|
noita-entangled-worlds = {
|
|
url = "github:IntQuant/noita_entangled_worlds/master";
|
|
};
|
|
};
|
|
|
|
outputs = inputs:
|
|
inputs.flake-parts.lib.mkFlake {inherit inputs;} {
|
|
imports = [
|
|
inputs.home-manager.flakeModules.home-manager
|
|
inputs.nix-darwin.flakeModules.default
|
|
({lib, ...}: {
|
|
options.flake.darwinModules = lib.mkOption {
|
|
type = lib.types.attrsOf lib.types.unspecified;
|
|
default = {};
|
|
};
|
|
options.flake.commonModules = lib.mkOption {
|
|
type = lib.types.attrsOf lib.types.unspecified;
|
|
default = {};
|
|
};
|
|
})
|
|
({...}: {
|
|
flake.syncthingConfiguration = inputs.nix-syncthing.lib.syncthingConfiguration {
|
|
modules = [
|
|
(import ./configurations/syncthing)
|
|
];
|
|
};
|
|
})
|
|
(inputs.import-tree ./modules)
|
|
];
|
|
};
|
|
}
|