{ lib, config, pkgs, system, ... }: let inherit (lib.snowfall.system) is-linux; cfg = config.marleyos.apps; in { options.marleyos.apps = { pinentry = lib.mkOption { type = lib.types.package; default = pkgs.pinentry-gtk2; description = "The pinentry package to use."; }; clipboard = lib.mkOption { type = lib.types.package; default = if config.marleyos.wayland.hyprland.enable then pkgs.wl-clipboard else pkgs.clipboard-jh; description = "The clipboard manager to use."; }; terminal = lib.mkOption { type = lib.types.package; default = pkgs.wezterm; description = "The terminal emulator to use."; }; browser = lib.mkOption { type = lib.types.package; default = pkgs.floorp; description = "The browser to use."; }; launcher = lib.mkOption { type = lib.types.submodule { options = { package = lib.mkOption { type = lib.types.package; default = if config.marleyos.wayland.hyprland.enable then pkgs.wofi else pkgs.rofi; description = "The launcher to use."; }; command = lib.mkOption { type = lib.types.str; default = "--show drun"; description = '' The command appended after the launcher binary to run it. ''; }; }; }; }; }; config = lib.mkIf (is-linux system) { home.packages = [ cfg.pinentry cfg.clipboard ]; programs.rbw = lib.mkDefault { settings.pinentry = cfg.pinentry; }; services.gpg-agent = lib.mkDefault { pinentryPackage = cfg.pinentry; }; }; }