14 appimage-exec = pkgs.substituteAll {
15 src = ./appimage-exec.sh;
18 path = lib.makeBinPath [
29 extract = args@{ name ? "${args.pname}-${args.version}", postExtract ? "", src, ... }: pkgs.runCommand "${name}-extracted" {
30 buildInputs = [ appimage-exec ];
32 appimage-exec.sh -x $out ${src}
36 # for compatibility, deprecated
37 extractType1 = extract;
38 extractType2 = extract;
39 wrapType1 = wrapType2;
43 extraPkgs ? pkgs: [ ],
47 (defaultFhsEnvArgs // {
48 targetPkgs = pkgs: [ appimage-exec ]
49 ++ defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs;
51 runScript = "appimage-exec.sh -w ${src} --";
54 sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
56 } // (removeAttrs args (builtins.attrNames (builtins.functionArgs wrapAppImage))));
58 wrapType2 = args@{ src, extraPkgs ? pkgs: [ ], ... }: wrapAppImage
61 src = extract (lib.filterAttrs (key: value: builtins.elem key [ "name" "pname" "version" "src" ]) args);
63 # passthru src to make nix-update work
64 # hack to keep the origin position (unsafeGetAttrPos)
65 passthru = lib.pipe args [
69 ] // args.passthru or { };
73 # Most of the packages were taken from the Steam chroot
74 targetPkgs = pkgs: with pkgs; [
84 gsettings-desktop-schemas
85 hicolor-icon-theme # dont show a gtk warning about hicolor not being installed
88 # list of libraries expected in an appimage environment:
89 # https://github.com/AppImage/pkg2appimage/blob/master/excludelist
90 multiPkgs = pkgs: with pkgs; [
101 gst_all_1.gst-plugins-ugly
102 gst_all_1.gst-plugins-base
148 xorg.xcbutilrenderutil
201 # libraries not on the upstream include list, but nevertheless expected
202 # by at least one appimage
203 libtool.lib # for Synfigstudio
204 xorg.libxshmfence # for apple-music-electron
206 pciutils # for FreeCAD
207 pipewire # immersed-vr wayland support
209 libsecret # For bitwarden