1 { config, lib, pkgs, ... }:
6 prl-tools = config.hardware.parallels.package;
12 (mkRemovedOptionModule [ "hardware" "parallels" "autoMountShares" ] "Shares are always automatically mounted since Parallels Desktop 20.")
16 hardware.parallels = {
22 This enables Parallels Tools for Linux guests, along with provided
23 video, mouse and other hardware drivers.
28 type = types.nullOr types.package;
29 default = config.boot.kernelPackages.prl-tools;
30 defaultText = "config.boot.kernelPackages.prl-tools";
31 example = literalExpression "config.boot.kernelPackages.prl-tools";
33 Defines which package to use for prl-tools. Override to change the version.
40 config = mkIf config.hardware.parallels.enable {
42 services.udev.packages = [ prl-tools ];
44 environment.systemPackages = [ prl-tools ];
46 boot.extraModulePackages = [ prl-tools ];
48 boot.kernelModules = [ "prl_fs" "prl_fs_freeze" "prl_tg" ]
49 ++ optional (pkgs.stdenv.hostPlatform.system == "aarch64-linux") "prl_notifier";
51 services.timesyncd.enable = false;
53 systemd.services.prltoolsd = {
54 description = "Parallels Tools Service";
55 wantedBy = [ "multi-user.target" ];
58 ExecStart = "${prl-tools}/bin/prltoolsd -f";
59 PIDFile = "/var/run/prltoolsd.pid";
60 WorkingDirectory = "${prl-tools}/bin";
64 systemd.services.prlshprint = {
65 description = "Parallels Printing Tool";
66 wantedBy = [ "multi-user.target" ];
67 bindsTo = [ "cups.service" ];
70 ExecStart = "${prl-tools}/bin/prlshprint";
71 WorkingDirectory = "${prl-tools}/bin";
75 systemd.user.services = {
77 description = "Parallels Control Center";
78 wantedBy = [ "graphical-session.target" ];
81 ExecStart = "${prl-tools}/bin/prlcc";
82 WorkingDirectory = "${prl-tools}/bin";
86 description = "Parallels Drag And Drop Tool";
87 wantedBy = [ "graphical-session.target" ];
90 ExecStart = "${prl-tools}/bin/prldnd";
91 WorkingDirectory = "${prl-tools}/bin";
95 description = "Parallels Copy Paste Tool";
96 wantedBy = [ "graphical-session.target" ];
99 ExecStart = "${prl-tools}/bin/prlcp";
101 WorkingDirectory = "${prl-tools}/bin";
105 description = "Parallels Shared Guest Applications Tool";
106 wantedBy = [ "graphical-session.target" ];
107 path = [ prl-tools ];
109 ExecStart = "${prl-tools}/bin/prlsga";
110 WorkingDirectory = "${prl-tools}/bin";
114 description = "Parallels Shared Profile Tool";
115 wantedBy = [ "graphical-session.target" ];
116 path = [ prl-tools ];
118 ExecStart = "${prl-tools}/bin/prlshprof";
119 WorkingDirectory = "${prl-tools}/bin";