This commit is contained in:
Chris Kruining 2026-03-25 06:45:43 +00:00
parent 59a1fbaf0f
commit ac3dac322d
78 changed files with 893 additions and 802 deletions

96
lib/default.nix Normal file
View file

@ -0,0 +1,96 @@
{
config,
inputs,
lib,
...
}: let
inherit (lib) mkOption types;
namespace = "sneeuwvlok";
channelConfig = {
allowUnfree = true;
permittedInsecurePackages = [
# Due to *arr stack
"dotnet-sdk-6.0.428"
"aspnetcore-runtime-6.0.36"
# I think this is because of zen
"qtwebengine-5.15.19"
# For Nheko, the matrix client
"olm-3.2.16"
];
};
systemOverlays = with inputs; [
fenix.overlays.default
nix-minecraft.overlay
flux.overlays.default
];
mkPkgs = system:
import inputs.nixpkgs {
inherit system;
overlays = systemOverlays;
config = channelConfig;
};
sharedContext = {
inherit inputs namespace;
erosanixLib = inputs.erosanix.lib;
repoRoot = ../.;
sneeuwvlokLib = config.localLib;
terranixLib = inputs.terranix.lib;
};
baseNixosModules =
[
inputs.grub2-themes.nixosModules.default
inputs.home-manager.nixosModules.home-manager
inputs.himmelblau.nixosModules.himmelblau
inputs.jovian.nixosModules.default
inputs.mydia.nixosModules.default
inputs.nix-minecraft.nixosModules.minecraft-servers
inputs.nvf.nixosModules.default
inputs.sops-nix.nixosModules.sops
{
nixpkgs = {
config = channelConfig;
overlays = systemOverlays;
};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = sharedContext;
sharedModules = config.localUsers.homeSharedModules;
};
}
]
++ [ ../modules/nixos ];
in {
imports = [
./options
./strings
];
options.localLib = mkOption {
type = types.lazyAttrsOf types.raw;
default = {};
};
config = {
_module.args = {
inherit
baseNixosModules
channelConfig
mkPkgs
sharedContext
systemOverlays
;
sneeuwvlokLib = config.localLib;
};
flake.lib = config.localLib;
};
}

View file

@ -1,11 +1,8 @@
{ lib, ...}:
let
inherit (builtins) isString typeOf;
inherit (lib) mkOption types throwIfNot concatStringsSep splitStringBy toLower map;
in
{
options = {
mkUrlOptions =
{lib, ...}: let
inherit (lib) mkOption types;
in {
localLib.options = {
mkUrlOptions =
defaults:
{
host = mkOption {
@ -35,4 +32,4 @@ in
} // (defaults.protocol or {});
};
};
}
}

View file

@ -1,10 +1,8 @@
{ lib, ...}:
let
{lib, ...}: let
inherit (builtins) isString typeOf match toString head;
inherit (lib) throwIfNot concatStringsSep splitStringBy toLower map concatMapAttrsStringSep;
in
{
strings = {
in {
localLib.strings = {
#========================================================================================
# Converts a string to snake case
#
@ -36,4 +34,4 @@ in
in
"${_protocol}${host}${_port}${_path}${_query}${_hash}";
};
}
}