diff --git a/pkgs/by-name/op/opentrack/desktop-filename.patch b/pkgs/by-name/op/opentrack/desktop-filename.patch new file mode 100644 index 000000000000..9b7fa5c18c50 --- /dev/null +++ b/pkgs/by-name/op/opentrack/desktop-filename.patch @@ -0,0 +1,15 @@ +diff --git a/gui/init.cpp b/gui/init.cpp +index 1647b050db0efe76028000939a7ca8e4047116b7..9114c31c51a69294e0803c15008a824e18da7a09 100644 +--- a/gui/init.cpp ++++ b/gui/init.cpp +@@ -315,6 +315,10 @@ int otr_main(int argc, char** argv, std::function()> co + add_win32_path(); + #endif + ++#ifdef Q_OS_LINUX ++ app.setDesktopFileName("opentrack"); ++#endif ++ + QDir::setCurrent(OPENTRACK_BASE_PATH); + + set_qt_style(); diff --git a/pkgs/by-name/op/opentrack/package.nix b/pkgs/by-name/op/opentrack/package.nix index dfe8a2387ad1..f66c08ec2a67 100644 --- a/pkgs/by-name/op/opentrack/package.nix +++ b/pkgs/by-name/op/opentrack/package.nix @@ -40,6 +40,11 @@ stdenv.mkDerivation (finalAttrs: { meta.license = lib.licenses.free; }; + patches = [ + # calls `app.setDesktopFileName("opentrack");` - distros that don't wrap the binary apparently don't need this. + ./desktop-filename.patch + ]; + strictDeps = true; nativeBuildInputs = [ @@ -64,13 +69,14 @@ stdenv.mkDerivation (finalAttrs: { ]; cmakeFlags = [ + (lib.cmakeFeature "OPENTRACK_COMMIT" "opentrack-${finalAttrs.version}") (lib.cmakeBool "SDK_WINE" withWine) (lib.cmakeFeature "SDK_ARUCO_LIBPATH" "${finalAttrs.aruco}/lib/libaruco.a") (lib.cmakeFeature "SDK_XPLANE" finalAttrs.xplaneSdk.outPath) ]; postInstall = '' - install -Dt $out/share/icons/hicolor/256x256 $src/gui/images/opentrack.png + install -Dt $out/share/icons/hicolor/256x256/apps ../gui/images/opentrack.png ''; # manually wrap just the main binary