nix-dotfiles/modules/desktop/wl-clip-persist.nix
2025-05-18 23:05:26 -07:00

40 lines
1 KiB
Nix

{ 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;
};
};
};
}