refactor: further progress

This commit is contained in:
2026-04-25 00:19:20 +02:00
parent 55fbe82a42
commit 0500aab3cb
31 changed files with 680 additions and 398 deletions
+47 -52
View File
@@ -4,8 +4,9 @@
...
}:
let
homeModules = config.flake.modules.homeManager;
metaLib = config.meta.lib;
repo = config.repo;
repoHelpers = repo.helpers;
mkNoctaliaSettings =
{
lib,
@@ -17,6 +18,25 @@ let
terminalPackage
;
};
mkBaseSettings =
{
lib,
pkgs,
}:
let
terminalPackage = repoHelpers.resolvePackagePath {
inherit pkgs;
path = repo.desktop.terminal.packagePath;
};
in
if terminalPackage == null then
{ }
else
mkNoctaliaSettings {
inherit lib terminalPackage;
};
mkPortableSettings =
baseSettings:
lib.recursiveUpdate baseSettings {
@@ -40,55 +60,20 @@ let
};
in
{
flake.modules.homeManager.noctalia-base =
{
config,
lib,
pkgs,
...
}:
let
terminal = metaLib.resolveRepoTerminal {
inherit pkgs;
};
baseSettings =
if terminal.hasPackage then
mkNoctaliaSettings {
inherit lib;
terminalPackage = terminal.package;
}
else
{ };
in
{
options.meta.lib.noctaliaBaseSettings = lib.mkOption {
type = lib.types.attrs;
internal = true;
readOnly = true;
};
config = {
meta.lib.noctaliaBaseSettings = baseSettings;
assertions = metaLib.mkTerminalAssertions {
inherit terminal;
};
};
};
flake.modules.homeManager.noctalia =
{
config,
inputs,
lib,
pkgs,
...
}:
let
baseSettings = mkBaseSettings {
inherit lib pkgs;
};
in
{
imports = [
homeModules.noctalia-base
inputs.noctalia.homeModules.default
];
imports = [ inputs.noctalia.homeModules.default ];
programs.noctalia-shell = {
enable = true;
@@ -98,23 +83,33 @@ in
}
);
settings = config.meta.lib.noctaliaBaseSettings;
settings = baseSettings;
};
};
flake.modules.homeManager.noctalia-portable =
{
config,
inputs,
lib,
pkgs,
...
}:
let
baseSettings = mkBaseSettings {
inherit lib pkgs;
};
in
{
imports = [ homeModules.noctalia ];
programs.noctalia-shell.settings = lib.mkForce (
if config.meta.lib.noctaliaBaseSettings == { } then
{ }
else
mkPortableSettings config.meta.lib.noctaliaBaseSettings
);
imports = [ inputs.noctalia.homeModules.default ];
programs.noctalia-shell = {
enable = true;
package = lib.mkForce (
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
calendarSupport = true;
}
);
settings = if baseSettings == { } then { } else mkPortableSettings baseSettings;
};
};
}