121 lines
2.4 KiB
Nix
121 lines
2.4 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
homeModules = config.flake.modules.homeManager;
|
|
metaLib = config.meta.lib;
|
|
mkNoctaliaSettings =
|
|
{
|
|
lib,
|
|
terminalPackage,
|
|
}:
|
|
import ./_noctalia-config.nix {
|
|
inherit
|
|
lib
|
|
terminalPackage
|
|
;
|
|
};
|
|
mkPortableSettings =
|
|
baseSettings:
|
|
lib.recursiveUpdate baseSettings {
|
|
bar.widgets.right = lib.concatMap (
|
|
widget:
|
|
if widget.id == "ControlCenter" then
|
|
[
|
|
{
|
|
id = "Network";
|
|
}
|
|
{
|
|
id = "Battery";
|
|
showPowerProfiles = true;
|
|
displayMode = "graphic";
|
|
}
|
|
widget
|
|
]
|
|
else
|
|
[ widget ]
|
|
) baseSettings.bar.widgets.right;
|
|
};
|
|
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,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
homeModules.noctalia-base
|
|
inputs.noctalia.homeModules.default
|
|
];
|
|
|
|
programs.noctalia-shell = {
|
|
enable = true;
|
|
package = lib.mkForce (
|
|
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
|
|
calendarSupport = true;
|
|
}
|
|
);
|
|
|
|
settings = config.meta.lib.noctaliaBaseSettings;
|
|
};
|
|
};
|
|
|
|
flake.modules.homeManager.noctalia-portable =
|
|
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
{
|
|
imports = [ homeModules.noctalia ];
|
|
programs.noctalia-shell.settings = lib.mkForce (
|
|
if config.meta.lib.noctaliaBaseSettings == { } then
|
|
{ }
|
|
else
|
|
mkPortableSettings config.meta.lib.noctaliaBaseSettings
|
|
);
|
|
};
|
|
}
|