{ lib, config, pkgs, ... }: with lib; let cfg = config.modules.desktop.wl-clip-persist; in { options.modules.desktop.wl-clip-persist = { enable = mkEnableOption "Enable wl-clip-persist, keep clipboard contents after app exit"; package = mkOption { type = types.package; default = pkgs.wl-clip-persist; }; clipboard = mkOption { description = "clipboard type to persist"; default = "regular"; type = types.enum ["regular" "primary" "both"]; }; }; config = mkIf cfg.enable { hm.systemd.user.services.wl-clip-persist = { Unit = { Description = "wl-clip-persist, keep clipboard contents after app exit"; After = [ "graphical-session.target" ]; PartOf = [ "graphical-session.target" ]; }; Install = { WantedBy = [ "graphical-session.target" ]; }; Service = { Type = "simple"; ExecStart = "${lib.getExe cfg.package} --clipboard ${cfg.clipboard}"; Restart = "on-failure"; RestartSec = 5; }; }; }; }