104 lines
2.0 KiB
Nix
104 lines
2.0 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
repo = config.repo;
|
|
repoHelpers = repo.helpers;
|
|
|
|
mkNoctaliaSettings =
|
|
{
|
|
homeDirectory,
|
|
lib,
|
|
terminalPackage,
|
|
}:
|
|
import ./_noctalia-config.nix {
|
|
inherit
|
|
homeDirectory
|
|
lib
|
|
terminalPackage
|
|
;
|
|
};
|
|
|
|
mkBaseSettings =
|
|
{
|
|
homeDirectory,
|
|
lib,
|
|
pkgs,
|
|
}:
|
|
let
|
|
terminalPackage = repoHelpers.resolvePackagePath {
|
|
inherit pkgs;
|
|
path = repo.desktop.terminal.packagePath;
|
|
};
|
|
in
|
|
if terminalPackage == null then
|
|
{ }
|
|
else
|
|
mkNoctaliaSettings {
|
|
inherit
|
|
homeDirectory
|
|
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 =
|
|
{
|
|
config,
|
|
inputs,
|
|
lib,
|
|
osConfig,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
baseSettings = mkBaseSettings {
|
|
inherit lib pkgs;
|
|
homeDirectory = config.home.homeDirectory;
|
|
};
|
|
settings =
|
|
if baseSettings == { } || !osConfig.meta.machine.portable then
|
|
baseSettings
|
|
else
|
|
mkPortableSettings baseSettings;
|
|
in
|
|
{
|
|
imports = [ inputs.noctalia.homeModules.default ];
|
|
|
|
programs.noctalia-shell = {
|
|
enable = true;
|
|
package = lib.mkForce (
|
|
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
|
|
calendarSupport = true;
|
|
}
|
|
);
|
|
inherit settings;
|
|
};
|
|
};
|
|
}
|