marleyos/modules/home/options/apps.nix

94 lines
2.4 KiB
Nix

{
lib,
config,
pkgs,
...
}: {
options.marleycfg.apps = {
pinentry = lib.mkOption {
type = lib.types.package;
default = pkgs.pinentry-gtk2;
description = "The pinentry package to use.";
};
clipboard = let
default = {
package = pkgs.wl-clipboard;
copy-command = lib.getExe' pkgs.wl-clipboard "wl-copy";
paste-command = lib.getExe' pkgs.wl-clipboard "wl-paste";
};
in
lib.mkOption {
type = lib.types.submodule {
options = {
package = lib.mkOption {
type = lib.types.package;
default = default.package;
description = "The clipboard manager to use.";
};
copy-command = lib.mkOption {
type = lib.types.str;
default = default.copy-command;
description = "The command, including binary, to use for copying.";
};
paste-command = lib.mkOption {
type = lib.types.str;
default = default.paste-command;
description = "The command, including binary, to use for pasting.";
};
};
};
inherit default;
};
terminal = lib.mkOption {
type = lib.types.package;
default = config.programs.wezterm.package;
description = "The terminal emulator to use.";
};
file-browser = lib.mkOption {
type = lib.types.package;
description = "The file manager to use.";
};
browser = lib.mkOption {
type = lib.types.package;
default = config.programs.floorp.package;
description = "The browser to use.";
};
email = lib.mkOption {
type = lib.types.package;
default = config.programs.thunderbird.package;
description = "The email client to use.";
};
launcher = lib.mkOption {
type = lib.types.submodule {
options = {
package = lib.mkOption {
type = lib.types.package;
description = "The launcher to use.";
};
command = lib.mkOption {
type = lib.types.str;
description = ''
The command appended after the launcher binary to run it.
'';
};
};
};
};
};
# config = lib.mkIf pkgs.stdenv.isLinux {
# # TODO: move these to respective modules
# programs.rbw = lib.mkDefault {
# settings.pinentry = cfg.pinentry;
# };
# };
}