mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-13 13:40:28 +03:00
prl-tools: 12.2.1-41615 -> 17.1.4-51567
Install Parallel Tools updated for version 17 of Parallels for macOS. This fixes clipboard sharing, so that copy and paste works between the host macOS and the guest NixOS VM. Support for guests on M1 Apple Silicon-based Macs (aarch64-linux) is also added. Co-authored-by: Paul Smith <paulsmith@gmail.com> Co-authored-by: Weijia Wang <9713184+wegank@users.noreply.github.com>
This commit is contained in:
parent
0a9f100d77
commit
f41fc22111
4 changed files with 238 additions and 128 deletions
|
@ -34,7 +34,8 @@ in
|
|||
package = mkOption {
|
||||
type = types.nullOr types.package;
|
||||
default = config.boot.kernelPackages.prl-tools;
|
||||
defaultText = literalExpression "config.boot.kernelPackages.prl-tools";
|
||||
defaultText = "config.boot.kernelPackages.prl-tools";
|
||||
example = literalExpression "config.boot.kernelPackages.prl-tools";
|
||||
description = ''
|
||||
Defines which package to use for prl-tools. Override to change the version.
|
||||
'';
|
||||
|
@ -44,27 +45,6 @@ in
|
|||
};
|
||||
|
||||
config = mkIf config.hardware.parallels.enable {
|
||||
services.xserver = {
|
||||
drivers = singleton
|
||||
{ name = "prlvideo"; modules = [ prl-tools ]; };
|
||||
|
||||
screenSection = ''
|
||||
Option "NoMTRR"
|
||||
'';
|
||||
|
||||
config = ''
|
||||
Section "InputClass"
|
||||
Identifier "prlmouse"
|
||||
MatchIsPointer "on"
|
||||
MatchTag "prlmouse"
|
||||
Driver "prlmouse"
|
||||
EndSection
|
||||
'';
|
||||
};
|
||||
|
||||
hardware.opengl.package = prl-tools;
|
||||
hardware.opengl.package32 = pkgs.pkgsi686Linux.linuxPackages.prl-tools.override { libsOnly = true; kernel = null; };
|
||||
hardware.opengl.setLdLibraryPath = true;
|
||||
|
||||
services.udev.packages = [ prl-tools ];
|
||||
|
||||
|
@ -72,37 +52,44 @@ in
|
|||
|
||||
boot.extraModulePackages = [ prl-tools ];
|
||||
|
||||
boot.kernelModules = [ "prl_tg" "prl_eth" "prl_fs" "prl_fs_freeze" ];
|
||||
boot.kernelModules = [ "prl_fs" "prl_fs_freeze" "prl_tg" ]
|
||||
++ optional (pkgs.stdenv.hostPlatform.system == "aarch64-linux") "prl_notifier";
|
||||
|
||||
services.timesyncd.enable = false;
|
||||
|
||||
systemd.services.prltoolsd = {
|
||||
description = "Parallels Tools' service";
|
||||
description = "Parallels Tools Service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = [ prl-tools ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${prl-tools}/bin/prltoolsd -f";
|
||||
PIDFile = "/var/run/prltoolsd.pid";
|
||||
WorkingDirectory = "${prl-tools}/bin";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.prlfsmountd = mkIf config.hardware.parallels.autoMountShares {
|
||||
description = "Parallels Shared Folders Daemon";
|
||||
description = "Parallels Guest File System Sharing Tool";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = [ prl-tools ];
|
||||
serviceConfig = rec {
|
||||
ExecStart = "${prl-tools}/sbin/prlfsmountd ${PIDFile}";
|
||||
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p /media";
|
||||
ExecStopPost = "${prl-tools}/sbin/prlfsmountd -u";
|
||||
PIDFile = "/run/prlfsmountd.pid";
|
||||
WorkingDirectory = "${prl-tools}/bin";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.prlshprint = {
|
||||
description = "Parallels Shared Printer Tool";
|
||||
description = "Parallels Printing Tool";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
bindsTo = [ "cups.service" ];
|
||||
path = [ prl-tools ];
|
||||
serviceConfig = {
|
||||
Type = "forking";
|
||||
ExecStart = "${prl-tools}/bin/prlshprint";
|
||||
WorkingDirectory = "${prl-tools}/bin";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -110,43 +97,47 @@ in
|
|||
prlcc = {
|
||||
description = "Parallels Control Center";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
path = [ prl-tools ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${prl-tools}/bin/prlcc";
|
||||
WorkingDirectory = "${prl-tools}/bin";
|
||||
};
|
||||
};
|
||||
prldnd = {
|
||||
description = "Parallels Control Center";
|
||||
description = "Parallels Drag And Drop Tool";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
path = [ prl-tools ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${prl-tools}/bin/prldnd";
|
||||
};
|
||||
};
|
||||
prl_wmouse_d = {
|
||||
description = "Parallels Walking Mouse Daemon";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${prl-tools}/bin/prl_wmouse_d";
|
||||
WorkingDirectory = "${prl-tools}/bin";
|
||||
};
|
||||
};
|
||||
prlcp = {
|
||||
description = "Parallels CopyPaste Tool";
|
||||
description = "Parallels Copy Paste Tool";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
path = [ prl-tools ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${prl-tools}/bin/prlcp";
|
||||
Restart = "always";
|
||||
WorkingDirectory = "${prl-tools}/bin";
|
||||
};
|
||||
};
|
||||
prlsga = {
|
||||
description = "Parallels Shared Guest Applications Tool";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
path = [ prl-tools ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${prl-tools}/bin/prlsga";
|
||||
WorkingDirectory = "${prl-tools}/bin";
|
||||
};
|
||||
};
|
||||
prlshprof = {
|
||||
description = "Parallels Shared Profile Tool";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
path = [ prl-tools ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${prl-tools}/bin/prlshprof";
|
||||
WorkingDirectory = "${prl-tools}/bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue