refactor: desktop default applications

This commit is contained in:
2026-04-27 17:28:34 +02:00
parent 93624900ad
commit 44fe4552ef
11 changed files with 114 additions and 102 deletions
+27 -43
View File
@@ -82,30 +82,27 @@ let
);
desktopApplicationType = lib.types.submodule (
{ ... }:
{ config, ... }:
{
options = {
package = lib.mkOption {
type = lib.types.package;
};
command = lib.mkOption {
type = lib.types.str;
default = lib.getExe config.package;
defaultText = lib.literalExpression "lib.getExe config.package";
};
packageAttr = lib.mkOption {
desktopEntryName = lib.mkOption {
type = lib.types.str;
};
};
}
);
desktopType = lib.types.submodule (
{ ... }:
{
options = {
browser = lib.mkOption {
type = desktopApplicationType;
};
fileManager = lib.mkOption {
type = desktopApplicationType;
desktopId = lib.mkOption {
type = lib.types.str;
default = "${config.desktopEntryName}.desktop";
defaultText = lib.literalExpression ''"${config.desktopEntryName}.desktop"'';
};
};
}
@@ -193,27 +190,6 @@ let
};
}
);
terminalPrimaryType = lib.types.submodule {
options = {
package = lib.mkOption {
type = lib.types.package;
};
command = lib.mkOption {
type = lib.types.str;
};
desktopId = lib.mkOption {
type = lib.types.str;
};
execArgs = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
};
};
};
in
{
options.repo = {
@@ -226,10 +202,6 @@ in
default = { };
};
desktop = lib.mkOption {
type = desktopType;
};
services = lib.mkOption {
type = lib.types.raw;
default = { };
@@ -249,11 +221,23 @@ in
};
};
config.flake.modules.homeManager.repo-schema =
config.flake.modules.homeManager.meta =
{ ... }:
{
options.repo.terminal.primary = lib.mkOption {
type = terminalPrimaryType;
options.meta.desktop.browser = lib.mkOption {
type = desktopApplicationType;
};
options.meta.desktop.fileManager = lib.mkOption {
type = desktopApplicationType;
};
options.meta.desktop.terminal = lib.mkOption {
type = desktopApplicationType;
};
options.meta.pinentry.package = lib.mkOption {
type = lib.types.package;
};
};