refactor: desktop default applications
This commit is contained in:
+27
-43
@@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user