mirror of
https://github.com/Melorise/cp-nix.git
synced 2026-11-07 14:39:34 +00:00
133 lines
2.4 KiB
Nix
133 lines
2.4 KiB
Nix
{
|
|
lib,
|
|
callPackage,
|
|
stdenv,
|
|
electron_41,
|
|
makeWrapper,
|
|
copyDesktopItems,
|
|
makeDesktopItem,
|
|
wrapGAppsHook3,
|
|
autoPatchelfHook,
|
|
alsa-lib,
|
|
at-spi2-core,
|
|
glib,
|
|
libGL,
|
|
libayatana-appindicator,
|
|
libsecret,
|
|
libnotify,
|
|
libXScrnSaver,
|
|
libXtst,
|
|
nspr,
|
|
nss,
|
|
openssl,
|
|
udev,
|
|
src,
|
|
sysproxySrc,
|
|
country,
|
|
geoip,
|
|
geosite,
|
|
metadb,
|
|
asn,
|
|
subStore,
|
|
subStoreFrontend,
|
|
notoFontsColorEmoji,
|
|
mihomo,
|
|
commandLineArgs ? [ ],
|
|
}:
|
|
|
|
let
|
|
sysproxy = callPackage ./sysproxy.nix { inherit sysproxySrc; };
|
|
|
|
unwrapped = callPackage ./unwrapped.nix {
|
|
inherit
|
|
src
|
|
sysproxy
|
|
country
|
|
geoip
|
|
geosite
|
|
metadb
|
|
asn
|
|
subStore
|
|
subStoreFrontend
|
|
notoFontsColorEmoji
|
|
mihomo
|
|
;
|
|
};
|
|
in
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "clash-party";
|
|
version = "2.0.1";
|
|
|
|
dontUnpack = true;
|
|
|
|
nativeBuildInputs = [
|
|
autoPatchelfHook
|
|
copyDesktopItems
|
|
makeWrapper
|
|
wrapGAppsHook3
|
|
];
|
|
|
|
buildInputs = [
|
|
alsa-lib
|
|
at-spi2-core
|
|
glib
|
|
libGL
|
|
libayatana-appindicator
|
|
libnotify
|
|
libsecret
|
|
libXScrnSaver
|
|
libXtst
|
|
nspr
|
|
nss
|
|
openssl
|
|
stdenv.cc.cc.lib
|
|
udev
|
|
];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/lib/clash-party
|
|
cp -r ${unwrapped}/lib/clash-party/resources $out/lib/clash-party/
|
|
cp -r ${unwrapped}/share $out/
|
|
chmod -R u+w $out/share
|
|
|
|
makeWrapper ${lib.getExe electron_41} $out/bin/clash-party \
|
|
--inherit-argv0 \
|
|
--add-flags "$out/lib/clash-party/resources/app.asar" \
|
|
--add-flags ${lib.escapeShellArg (lib.escapeShellArgs commandLineArgs)} \
|
|
--set-default ELECTRON_OZONE_PLATFORM_HINT auto
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
desktopItems = [
|
|
(makeDesktopItem {
|
|
name = "clash-party";
|
|
desktopName = "Clash Party";
|
|
genericName = "Proxy Client";
|
|
comment = "A GUI client based on Mihomo";
|
|
exec = "clash-party %U";
|
|
icon = "clash-party";
|
|
startupWMClass = "clash-party";
|
|
categories = [ "Utility" ];
|
|
mimeTypes = [
|
|
"x-scheme-handler/clash"
|
|
"x-scheme-handler/mihomo"
|
|
];
|
|
})
|
|
];
|
|
|
|
passthru = {
|
|
inherit mihomo sysproxy unwrapped;
|
|
};
|
|
|
|
meta = {
|
|
description = "Clash Party desktop client built from source";
|
|
homepage = "https://github.com/mihomo-party-org/clash-party";
|
|
license = lib.licenses.gpl3Only;
|
|
mainProgram = "clash-party";
|
|
platforms = lib.platforms.linux;
|
|
};
|
|
})
|