From d40cab3aba8dfd34ffa39d3fd58701dcea52e10b Mon Sep 17 00:00:00 2001 From: Jan-Bulthuis Date: Mon, 2 Dec 2024 00:57:31 +0100 Subject: [PATCH] Added package for Jellyfin-tui, attempt to fix qutebrowser, attempt at working quickgui --- pkgs/custom/jellyfin-tui.nix | 59 ++ pkgs/default.nix | 19 +- pkgs/fixes/qutebrowser/default.nix | 167 +++ pkgs/fixes/qutebrowser/fix-restart.patch | 19 + pkgs/fonts/dina-vector.nix | 32 + pkgs/fonts/wqy-bitmapsong.nix | 2 +- pkgs/temp/pubspec.lock.json | 1189 ++++++++++++++++++++++ pkgs/temp/quickgui.nix | 70 ++ 8 files changed, 1548 insertions(+), 9 deletions(-) create mode 100644 pkgs/custom/jellyfin-tui.nix create mode 100644 pkgs/fixes/qutebrowser/default.nix create mode 100644 pkgs/fixes/qutebrowser/fix-restart.patch create mode 100644 pkgs/fonts/dina-vector.nix create mode 100644 pkgs/temp/pubspec.lock.json create mode 100644 pkgs/temp/quickgui.nix diff --git a/pkgs/custom/jellyfin-tui.nix b/pkgs/custom/jellyfin-tui.nix new file mode 100644 index 0000000..1aa213b --- /dev/null +++ b/pkgs/custom/jellyfin-tui.nix @@ -0,0 +1,59 @@ +{ + fetchFromGitHub, + lib, + linux-pam, + rustPlatform, + testers, + lemurs, + pkgs, +}: + +rustPlatform.buildRustPackage rec { + pname = "jellyfin-tui"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "dhonus"; + repo = "jellyfin-tui"; + rev = "v${version}"; + hash = "sha256-jHjTckdyPMJO1INF1AdJvvWTJ0ZJJGOxkBc0YZx9HWI="; + }; + + cargoHash = "sha256-H6JTupGh1ec6/RIkoAPMl2agNSbF9B5CuJlxDNEwDc4="; + + buildInputs = with pkgs; [ + mpv + ]; + + nativeBuildInputs = with pkgs; [ + pkg-config + openssl + openssl.dev + ]; + + desktopItems = + let + desktopEntry = pkgs.makeDesktopItem { + name = "siyuan"; + desktopName = "SiYuan"; + comment = "Refactor your thinking"; + terminal = true; + exec = "jellyfin-tui"; + }; + in + [ + desktopEntry + ]; + + PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig"; + + meta = with lib; { + description = "Jellyfin TUI music client written in Rust"; + homepage = "https://github.com/dhonus/jellyfin-tui"; + license = with licenses; [ + gpl3 + ]; + maintainers = with maintainers; [ ]; + mainProgram = "jellyfin-tui"; + }; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index 79adbaf..7129351 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,15 +1,18 @@ { - lib, - config, - pkgs, ... }: -with lib; { - nixpkgs.config.packageOverrides = pkgs: rec { - wqy-zenhei = pkgs.callPackage ./fonts/wqy-zenhei.nix { }; - wqy-microhei = pkgs.callPackage ./fonts/wqy-microhei.nix { }; - wqy-bitmapsong = pkgs.callPackage ./fonts/wqy-bitmapsong.nix { }; + nixpkgs.config = { + android_sdk.accept_license = true; + packageOverrides = pkgs: { + dina-vector = pkgs.callPackage ./fonts/dina-vector.nix { }; + wqy-zenhei = pkgs.callPackage ./fonts/wqy-zenhei.nix { }; + wqy-microhei = pkgs.callPackage ./fonts/wqy-microhei.nix { }; + wqy-bitmapsong = pkgs.callPackage ./fonts/wqy-bitmapsong.nix { }; + temp-quickgui = pkgs.callPackage ./temp/quickgui.nix { }; + # qutebrowser = pkgs.callPackage ./fixes/qutebrowser/default.nix { }; + jellyfin-tui = pkgs.callPackage ./custom/jellyfin-tui.nix { }; + }; }; } diff --git a/pkgs/fixes/qutebrowser/default.nix b/pkgs/fixes/qutebrowser/default.nix new file mode 100644 index 0000000..ab0cc71 --- /dev/null +++ b/pkgs/fixes/qutebrowser/default.nix @@ -0,0 +1,167 @@ +{ + pkgs, + stdenv, + lib, + fetchurl, + fetchzip, + python3, + glib-networking, + asciidoc, + docbook_xml_dtd_45, + docbook_xsl, + libxml2, + libxslt, + withPdfReader ? true, + pipewireSupport ? stdenv.hostPlatform.isLinux, + pipewire, + enableWideVine ? false, + widevine-cdm, + # can cause issues on some graphics chips + enableVulkan ? false, + vulkan-loader, +}: + +let + # Load in Qt packages. + qtbase = pkgs.kdePackages.qtbase; + qtwebengine = pkgs.kdePackages.qtwebengine; + qtwayland = pkgs.kdePackages.qtwayland; + wrapQtAppsHook = pkgs.kdePackages.wrapQtAppsHook; + + isQt6 = lib.versions.major qtbase.version == "6"; + pdfjs = + let + version = "4.2.67"; + in + fetchzip { + url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/pdfjs-${version}-dist.zip"; + hash = "sha256-7kfT3+ZwoGqZ5OwkO9h3DIuBFd0v8fRlcufxoBdcy8c="; + stripRoot = false; + }; + + version = "3.2.1"; +in + +python3.pkgs.buildPythonApplication { + pname = "qutebrowser" + lib.optionalString (!isQt6) "-qt5"; + inherit version; + src = fetchurl { + url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/qutebrowser-${version}.tar.gz"; + hash = "sha256-AqevKmxds42HsiWwuEEsgNmDgzXzLQ6KOPbX+804iX0="; + }; + + # Needs tox + doCheck = false; + + buildInputs = + [ + qtbase + glib-networking + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + qtwayland + ]; + + nativeBuildInputs = [ + wrapQtAppsHook + asciidoc + docbook_xml_dtd_45 + docbook_xsl + libxml2 + libxslt + ]; + + dependencies = with python3.pkgs; [ + colorama + pyyaml + (if isQt6 then pyqt6-webengine else pyqtwebengine) + jinja2 + pygments + # scripts and userscripts libs + tldextract + beautifulsoup4 + readability-lxml + pykeepass + stem + pynacl + # extensive ad blocking + adblock + # for the qute-bitwarden user script to be able to copy the TOTP token to clipboard + pyperclip + ]; + + patches = [ + ./fix-restart.patch + ]; + + dontWrapQtApps = true; + + postPatch = + '' + substituteInPlace qutebrowser/misc/quitter.py --subst-var-by qutebrowser "$out/bin/qutebrowser" + + sed -i "s,/usr,$out,g" qutebrowser/utils/standarddir.py + '' + + lib.optionalString withPdfReader '' + sed -i "s,/usr/share/pdf.js,${pdfjs},g" qutebrowser/browser/pdfjs.py + ''; + + installPhase = '' + runHook preInstall + + make -f misc/Makefile \ + PYTHON=${(python3.pythonOnBuildForHost.withPackages (ps: with ps; [ setuptools ])).interpreter} \ + PREFIX=. \ + DESTDIR="$out" \ + DATAROOTDIR=/share \ + install + + runHook postInstall + ''; + + postInstall = '' + # Patch python scripts + buildPythonPath "$out $propagatedBuildInputs" + scripts=$(grep -rl python "$out"/share/qutebrowser/{user,}scripts/) + for i in $scripts; do + patchPythonScript "$i" + done + ''; + + preFixup = + let + libPath = lib.makeLibraryPath [ pipewire ]; + in + '' + makeWrapperArgs+=( + # Force the app to use QT_PLUGIN_PATH values from wrapper + --unset QT_PLUGIN_PATH + "''${qtWrapperArgs[@]}" + # avoid persistant warning on starup + --set QT_STYLE_OVERRIDE Fusion + ${lib.optionalString pipewireSupport ''--prefix LD_LIBRARY_PATH : ${libPath}''} + ${lib.optionalString (enableVulkan) '' + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ vulkan-loader ]} + --set-default QSG_RHI_BACKEND vulkan + ''} + ${lib.optionalString enableWideVine ''--add-flags "--qt-flag widevine-path=${widevine-cdm}/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"''} + --set QTWEBENGINE_RESOURCES_PATH "${qtwebengine}/resources" + ) + ''; + + meta = with lib; { + homepage = "https://github.com/qutebrowser/qutebrowser"; + changelog = "https://github.com/qutebrowser/qutebrowser/blob/v${version}/doc/changelog.asciidoc"; + description = "Keyboard-focused browser with a minimal GUI"; + license = licenses.gpl3Plus; + mainProgram = "qutebrowser"; + platforms = if enableWideVine then [ "x86_64-linux" ] else qtwebengine.meta.platforms; + maintainers = with maintainers; [ + jagajaga + rnhmjoj + ebzzry + dotlambda + nrdxp + ]; + }; +} diff --git a/pkgs/fixes/qutebrowser/fix-restart.patch b/pkgs/fixes/qutebrowser/fix-restart.patch new file mode 100644 index 0000000..44221b5 --- /dev/null +++ b/pkgs/fixes/qutebrowser/fix-restart.patch @@ -0,0 +1,19 @@ +diff --git a/quitter.py b/quitter.py +index a42b9d0..f544ccb 100644 +--- a/qutebrowser/misc/quitter.py ++++ b/qutebrowser/misc/quitter.py +@@ -112,13 +112,7 @@ class Quitter(QObject): + Return: + The commandline as a list of strings. + """ +- if os.path.basename(sys.argv[0]) == 'qutebrowser': +- # Launched via launcher script +- args = [sys.argv[0]] +- elif hasattr(sys, 'frozen'): +- args = [sys.executable] +- else: +- args = [sys.executable, '-m', 'qutebrowser'] ++ args = ['@qutebrowser@'] + + # Add all open pages so they get reopened. + page_args = [] # type: typing.MutableSequence[str] \ No newline at end of file diff --git a/pkgs/fonts/dina-vector.nix b/pkgs/fonts/dina-vector.nix new file mode 100644 index 0000000..fc245ad --- /dev/null +++ b/pkgs/fonts/dina-vector.nix @@ -0,0 +1,32 @@ +{ + lib, + config, + pkgs, + ... +}: + +pkgs.stdenv.mkDerivation { + pname = "dina-font"; + version = "1.0.0"; + + # src = pkgs.fetchurl { + # url = "mirror://sourceforge/wqy/${pname}-${version}.tar.gz"; + # # hash = "sha256-r2Vf7ftJCqu7jOc2AqCKaoR/r8eNw2P/OQGqbDOEyl0="; + # hash = "sha256-0uvwkRUbvJ0remTnlP8dElRjaBVd6iukNYBTE/CTO7s="; + # }; + + unpackPhase = "true"; + + buildInputs = [ + pkgs.fontforge + pkgs.dina-font + pkgs.wqy-bitmapsong + pkgs.tree + ]; + buildPhase = '' + tree > debug.txt + ''; + installPhase = '' + install -Dm644 $out/debug.txt + ''; +} diff --git a/pkgs/fonts/wqy-bitmapsong.nix b/pkgs/fonts/wqy-bitmapsong.nix index d266866..cc66532 100644 --- a/pkgs/fonts/wqy-bitmapsong.nix +++ b/pkgs/fonts/wqy-bitmapsong.nix @@ -11,7 +11,7 @@ pkgs.stdenv.mkDerivation rec { src = pkgs.fetchurl { url = "mirror://sourceforge/wqy/${pname}-${version}.tar.gz"; - #hash = "sha256-r2Vf7ftJCqu7jOc2AqCKaoR/r8eNw2P/OQGqbDOEyl0="; + # hash = "sha256-r2Vf7ftJCqu7jOc2AqCKaoR/r8eNw2P/OQGqbDOEyl0="; hash = "sha256-0uvwkRUbvJ0remTnlP8dElRjaBVd6iukNYBTE/CTO7s="; }; diff --git a/pkgs/temp/pubspec.lock.json b/pkgs/temp/pubspec.lock.json new file mode 100644 index 0000000..a2ab539 --- /dev/null +++ b/pkgs/temp/pubspec.lock.json @@ -0,0 +1,1189 @@ +{ + "packages": { + "_discoveryapis_commons": { + "dependency": "transitive", + "description": { + "name": "_discoveryapis_commons", + "sha256": "f8bb1fdbd77f3d5c1d62b5b0eca75fbf1e41bf4f6c62628f880582e2182ae45d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.6" + }, + "ansicolor": { + "dependency": "transitive", + "description": { + "name": "ansicolor", + "sha256": "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, + "archive": { + "dependency": "transitive", + "description": { + "name": "archive", + "sha256": "cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.6.1" + }, + "args": { + "dependency": "transitive", + "description": { + "name": "args", + "sha256": "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.5.0" + }, + "async": { + "dependency": "transitive", + "description": { + "name": "async", + "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.11.0" + }, + "boolean_selector": { + "dependency": "transitive", + "description": { + "name": "boolean_selector", + "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "characters": { + "dependency": "transitive", + "description": { + "name": "characters", + "sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.0" + }, + "charset": { + "dependency": "transitive", + "description": { + "name": "charset", + "sha256": "27802032a581e01ac565904ece8c8962564b1070690794f0072f6865958ce8b9", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.1" + }, + "checked_yaml": { + "dependency": "transitive", + "description": { + "name": "checked_yaml", + "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.3" + }, + "cli_util": { + "dependency": "transitive", + "description": { + "name": "cli_util", + "sha256": "c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.1" + }, + "clock": { + "dependency": "transitive", + "description": { + "name": "clock", + "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "collection": { + "dependency": "transitive", + "description": { + "name": "collection", + "sha256": "ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.18.0" + }, + "console": { + "dependency": "transitive", + "description": { + "name": "console", + "sha256": "e04e7824384c5b39389acdd6dc7d33f3efe6b232f6f16d7626f194f6a01ad69a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.0" + }, + "cross_file": { + "dependency": "transitive", + "description": { + "name": "cross_file", + "sha256": "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.4+1" + }, + "crypto": { + "dependency": "transitive", + "description": { + "name": "crypto", + "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.3" + }, + "cupertino_icons": { + "dependency": "direct main", + "description": { + "name": "cupertino_icons", + "sha256": "ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.8" + }, + "dbus": { + "dependency": "transitive", + "description": { + "name": "dbus", + "sha256": "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.7.10" + }, + "desktop_notifications": { + "dependency": "direct main", + "description": { + "name": "desktop_notifications", + "sha256": "6d92694ad6e9297a862c5ff7dd6b8ff64c819972557754769f819d2209612927", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.3" + }, + "dio": { + "dependency": "transitive", + "description": { + "name": "dio", + "sha256": "11e40df547d418cc0c4900a9318b26304e665da6fa4755399a9ff9efd09034b5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.4.3+1" + }, + "fake_async": { + "dependency": "transitive", + "description": { + "name": "fake_async", + "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.1" + }, + "ffi": { + "dependency": "transitive", + "description": { + "name": "ffi", + "sha256": "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "file": { + "dependency": "transitive", + "description": { + "name": "file", + "sha256": "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.0.0" + }, + "file_picker": { + "dependency": "direct main", + "description": { + "name": "file_picker", + "sha256": "824f5b9f389bfc4dddac3dea76cd70c51092d9dff0b2ece7ef4f53db8547d258", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "8.0.6" + }, + "flutter": { + "dependency": "direct main", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_app_builder": { + "dependency": "transitive", + "description": { + "name": "flutter_app_builder", + "sha256": "74018c0e2da3ae33073e7417b5c8e900fdc7b5ebc3bdacd2dd05244d9b5e54cb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.5" + }, + "flutter_app_packager": { + "dependency": "transitive", + "description": { + "name": "flutter_app_packager", + "sha256": "3925c4e2ac53f4a5ce3bae1a5f54966620504d6c28725b112074cfbdf227a36b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.5" + }, + "flutter_app_publisher": { + "dependency": "transitive", + "description": { + "name": "flutter_app_publisher", + "sha256": "bbb1953ef723fc98a7f974ae9499194999f570194c6d856182518e6e73b51ff2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.5" + }, + "flutter_distributor": { + "dependency": "direct dev", + "description": { + "name": "flutter_distributor", + "sha256": "45d27526a5de93370e322da5314b0a1c07c024b79031a8ad44435046915fa0e8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.5" + }, + "flutter_lints": { + "dependency": "direct dev", + "description": { + "name": "flutter_lints", + "sha256": "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.0" + }, + "flutter_localizations": { + "dependency": "direct main", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_plugin_android_lifecycle": { + "dependency": "transitive", + "description": { + "name": "flutter_plugin_android_lifecycle", + "sha256": "c6b0b4c05c458e1c01ad9bcc14041dd7b1f6783d487be4386f793f47a8a4d03e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.20" + }, + "flutter_svg": { + "dependency": "direct main", + "description": { + "name": "flutter_svg", + "sha256": "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.10+1" + }, + "flutter_test": { + "dependency": "direct dev", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_web_plugins": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "get_it": { + "dependency": "transitive", + "description": { + "name": "get_it", + "sha256": "d85128a5dae4ea777324730dc65edd9c9f43155c109d5cc0a69cab74139fbac1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.7.0" + }, + "gettext": { + "dependency": "direct main", + "description": { + "name": "gettext", + "sha256": "007a3cbd5d8139252118bab34911d24edfc695665b38f91ae244f51b4d71f6b4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "gettext_i18n": { + "dependency": "direct main", + "description": { + "name": "gettext_i18n", + "sha256": "1acdb7f6bb7c06aaa69016a248de20123ac9af2e1a29321244012fbf6f2d4bdd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.7" + }, + "gettext_parser": { + "dependency": "direct main", + "description": { + "name": "gettext_parser", + "sha256": "9565c9dd1033ec125e1fbc7ccba6c0d2d753dd356122ba1a17e6aa7dc868f34a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.0" + }, + "glob": { + "dependency": "transitive", + "description": { + "name": "glob", + "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "google_identity_services_web": { + "dependency": "transitive", + "description": { + "name": "google_identity_services_web", + "sha256": "9482364c9f8b7bd36902572ebc3a7c2b5c8ee57a9c93e6eb5099c1a9ec5265d8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.1+1" + }, + "googleapis": { + "dependency": "transitive", + "description": { + "name": "googleapis", + "sha256": "864f222aed3f2ff00b816c675edf00a39e2aaf373d728d8abec30b37bee1a81c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "13.2.0" + }, + "googleapis_auth": { + "dependency": "transitive", + "description": { + "name": "googleapis_auth", + "sha256": "befd71383a955535060acde8792e7efc11d2fccd03dd1d3ec434e85b68775938", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.6.0" + }, + "http": { + "dependency": "transitive", + "description": { + "name": "http", + "sha256": "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "http_parser": { + "dependency": "transitive", + "description": { + "name": "http_parser", + "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.2" + }, + "image": { + "dependency": "transitive", + "description": { + "name": "image", + "sha256": "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.2.0" + }, + "intl": { + "dependency": "transitive", + "description": { + "name": "intl", + "sha256": "d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.19.0" + }, + "io": { + "dependency": "transitive", + "description": { + "name": "io", + "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "json_annotation": { + "dependency": "transitive", + "description": { + "name": "json_annotation", + "sha256": "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.9.0" + }, + "leak_tracker": { + "dependency": "transitive", + "description": { + "name": "leak_tracker", + "sha256": "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "10.0.4" + }, + "leak_tracker_flutter_testing": { + "dependency": "transitive", + "description": { + "name": "leak_tracker_flutter_testing", + "sha256": "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.3" + }, + "leak_tracker_testing": { + "dependency": "transitive", + "description": { + "name": "leak_tracker_testing", + "sha256": "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.1" + }, + "lints": { + "dependency": "transitive", + "description": { + "name": "lints", + "sha256": "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.0" + }, + "liquid_engine": { + "dependency": "transitive", + "description": { + "name": "liquid_engine", + "sha256": "41ae12d5a72451c3efb8d4e7b901cdf0537917597bc7e7376e9b0a237f92df29", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.2" + }, + "logging": { + "dependency": "transitive", + "description": { + "name": "logging", + "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "matcher": { + "dependency": "transitive", + "description": { + "name": "matcher", + "sha256": "d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.12.16+1" + }, + "material_color_utilities": { + "dependency": "transitive", + "description": { + "name": "material_color_utilities", + "sha256": "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.8.0" + }, + "meta": { + "dependency": "transitive", + "description": { + "name": "meta", + "sha256": "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.12.0" + }, + "msix": { + "dependency": "transitive", + "description": { + "name": "msix", + "sha256": "519b183d15dc9f9c594f247e2d2339d855cf0eaacc30e19b128e14f3ecc62047", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.16.7" + }, + "mustache_template": { + "dependency": "transitive", + "description": { + "name": "mustache_template", + "sha256": "a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "nested": { + "dependency": "transitive", + "description": { + "name": "nested", + "sha256": "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "package_config": { + "dependency": "transitive", + "description": { + "name": "package_config", + "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "package_info_plus": { + "dependency": "direct main", + "description": { + "name": "package_info_plus", + "sha256": "b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "8.0.0" + }, + "package_info_plus_platform_interface": { + "dependency": "transitive", + "description": { + "name": "package_info_plus_platform_interface", + "sha256": "f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.0" + }, + "parse_app_package": { + "dependency": "transitive", + "description": { + "name": "parse_app_package", + "sha256": "69f313fbadf457576015333a8da2e99018763dce88df248febcfb8883da8aedb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.5" + }, + "path": { + "dependency": "transitive", + "description": { + "name": "path", + "sha256": "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.9.0" + }, + "path_parsing": { + "dependency": "transitive", + "description": { + "name": "path_parsing", + "sha256": "e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.1" + }, + "path_provider_linux": { + "dependency": "transitive", + "description": { + "name": "path_provider_linux", + "sha256": "f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "path_provider_platform_interface": { + "dependency": "transitive", + "description": { + "name": "path_provider_platform_interface", + "sha256": "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "path_provider_windows": { + "dependency": "transitive", + "description": { + "name": "path_provider_windows", + "sha256": "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "petitparser": { + "dependency": "transitive", + "description": { + "name": "petitparser", + "sha256": "c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.0.2" + }, + "platform": { + "dependency": "transitive", + "description": { + "name": "platform", + "sha256": "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.5" + }, + "plist_parser": { + "dependency": "transitive", + "description": { + "name": "plist_parser", + "sha256": "e2a6f9abfa0c45c0253656b7360abb0dfb84af9937bace74605b93d2aad2bf0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.0.11" + }, + "plugin_platform_interface": { + "dependency": "transitive", + "description": { + "name": "plugin_platform_interface", + "sha256": "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.8" + }, + "process_run": { + "dependency": "direct main", + "description": { + "name": "process_run", + "sha256": "6052115540ad88715d6bcee60656970f70c68c85846d1948b92e435f0382899e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0+1" + }, + "provider": { + "dependency": "direct main", + "description": { + "name": "provider", + "sha256": "c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.2" + }, + "pub_semver": { + "dependency": "transitive", + "description": { + "name": "pub_semver", + "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "pubspec_parse": { + "dependency": "transitive", + "description": { + "name": "pubspec_parse", + "sha256": "c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.0" + }, + "qiniu_sdk_base": { + "dependency": "transitive", + "description": { + "name": "qiniu_sdk_base", + "sha256": "2506c6372512f81cfbddf162ea6da1ad7b1c6521dee1d10e9da6847c92e13349", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.2" + }, + "quiver": { + "dependency": "direct main", + "description": { + "name": "quiver", + "sha256": "b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.1" + }, + "recase": { + "dependency": "transitive", + "description": { + "name": "recase", + "sha256": "e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.0" + }, + "shared_preferences": { + "dependency": "direct main", + "description": { + "name": "shared_preferences", + "sha256": "d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.3" + }, + "shared_preferences_android": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_android", + "sha256": "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.3" + }, + "shared_preferences_foundation": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_foundation", + "sha256": "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.0" + }, + "shared_preferences_linux": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_linux", + "sha256": "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "shared_preferences_platform_interface": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_platform_interface", + "sha256": "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "shared_preferences_web": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_web", + "sha256": "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.0" + }, + "shared_preferences_windows": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_windows", + "sha256": "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "shell_executor": { + "dependency": "transitive", + "description": { + "name": "shell_executor", + "sha256": "9c024546fc96470a6b96be9902f0bc05347a017a7638ed8d93c77e8d77eb3c3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.6" + }, + "shell_uikit": { + "dependency": "transitive", + "description": { + "name": "shell_uikit", + "sha256": "03703090807091514ace2f9c8dc5d9b2d18c42a248c767220167825fbc3d2747", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.1" + }, + "sky_engine": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.99" + }, + "source_span": { + "dependency": "transitive", + "description": { + "name": "source_span", + "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.10.0" + }, + "stack_trace": { + "dependency": "transitive", + "description": { + "name": "stack_trace", + "sha256": "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.11.1" + }, + "stream_channel": { + "dependency": "transitive", + "description": { + "name": "stream_channel", + "sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "string_scanner": { + "dependency": "transitive", + "description": { + "name": "string_scanner", + "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "synchronized": { + "dependency": "transitive", + "description": { + "name": "synchronized", + "sha256": "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.0+1" + }, + "term_glyph": { + "dependency": "transitive", + "description": { + "name": "term_glyph", + "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "test_api": { + "dependency": "transitive", + "description": { + "name": "test_api", + "sha256": "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.7.0" + }, + "tuple": { + "dependency": "direct main", + "description": { + "name": "tuple", + "sha256": "a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, + "typed_data": { + "dependency": "transitive", + "description": { + "name": "typed_data", + "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.2" + }, + "url_launcher": { + "dependency": "direct main", + "description": { + "name": "url_launcher", + "sha256": "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.3.0" + }, + "url_launcher_android": { + "dependency": "transitive", + "description": { + "name": "url_launcher_android", + "sha256": "ceb2625f0c24ade6ef6778d1de0b2e44f2db71fded235eb52295247feba8c5cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.3.3" + }, + "url_launcher_ios": { + "dependency": "transitive", + "description": { + "name": "url_launcher_ios", + "sha256": "7068716403343f6ba4969b4173cbf3b84fc768042124bc2c011e5d782b24fe89", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.3.0" + }, + "url_launcher_linux": { + "dependency": "transitive", + "description": { + "name": "url_launcher_linux", + "sha256": "ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.1" + }, + "url_launcher_macos": { + "dependency": "transitive", + "description": { + "name": "url_launcher_macos", + "sha256": "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.0" + }, + "url_launcher_platform_interface": { + "dependency": "transitive", + "description": { + "name": "url_launcher_platform_interface", + "sha256": "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "url_launcher_web": { + "dependency": "transitive", + "description": { + "name": "url_launcher_web", + "sha256": "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.1" + }, + "url_launcher_windows": { + "dependency": "transitive", + "description": { + "name": "url_launcher_windows", + "sha256": "ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.1" + }, + "uuid": { + "dependency": "transitive", + "description": { + "name": "uuid", + "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.7" + }, + "vector_graphics": { + "dependency": "transitive", + "description": { + "name": "vector_graphics", + "sha256": "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.11+1" + }, + "vector_graphics_codec": { + "dependency": "transitive", + "description": { + "name": "vector_graphics_codec", + "sha256": "c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.11+1" + }, + "vector_graphics_compiler": { + "dependency": "transitive", + "description": { + "name": "vector_graphics_compiler", + "sha256": "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.11+1" + }, + "vector_math": { + "dependency": "transitive", + "description": { + "name": "vector_math", + "sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "version": { + "dependency": "direct main", + "description": { + "name": "version", + "sha256": "3d4140128e6ea10d83da32fef2fa4003fccbf6852217bb854845802f04191f94", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, + "vm_service": { + "dependency": "transitive", + "description": { + "name": "vm_service", + "sha256": "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "14.2.1" + }, + "web": { + "dependency": "transitive", + "description": { + "name": "web", + "sha256": "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.1" + }, + "win32": { + "dependency": "transitive", + "description": { + "name": "win32", + "sha256": "a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.5.1" + }, + "window_size": { + "dependency": "direct main", + "description": { + "path": "plugins/window_size", + "ref": "eb3964990cf19629c89ff8cb4a37640c7b3d5601", + "resolved-ref": "eb3964990cf19629c89ff8cb4a37640c7b3d5601", + "url": "https://github.com/google/flutter-desktop-embedding.git" + }, + "source": "git", + "version": "0.1.0" + }, + "xdg_directories": { + "dependency": "transitive", + "description": { + "name": "xdg_directories", + "sha256": "faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "xml": { + "dependency": "transitive", + "description": { + "name": "xml", + "sha256": "b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.5.0" + }, + "yaml": { + "dependency": "transitive", + "description": { + "name": "yaml", + "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + } + }, + "sdks": { + "dart": ">=3.4.0 <4.0.0", + "flutter": ">=3.22.0" + } +} \ No newline at end of file diff --git a/pkgs/temp/quickgui.nix b/pkgs/temp/quickgui.nix new file mode 100644 index 0000000..dd97525 --- /dev/null +++ b/pkgs/temp/quickgui.nix @@ -0,0 +1,70 @@ +{ + fetchFromGitHub, + makeDesktopItem, + copyDesktopItems, + lib, + flutter, + quickemu, + zenity, +}: +flutter.buildFlutterApplication rec { + pname = "quickgui"; + version = "1.2.10"; + src = fetchFromGitHub { + owner = "quickemu-project"; + repo = "quickgui"; + rev = version; + hash = "sha256-M2Qy66RqsjXg7ZpHwaXCN8qXRIsisnIyaENx3KqmUfQ="; + }; + + pubspecLock = lib.importJSON ./pubspec.lock.json; + + gitHashes = { + window_size = "sha256-XelNtp7tpZ91QCEcvewVphNUtgQX7xrp5QP0oFo6DgM="; + }; + + extraWrapProgramArgs = "--prefix PATH : ${ + lib.makeBinPath [ + quickemu + zenity + ] + }"; + + nativeBuildInputs = [ + copyDesktopItems + ]; + + postFixup = '' + for SIZE in 16 32 48 64 128 256 512; do + mkdir -p $out/share/icons/hicolor/$SIZEx$SIZE/apps/ + cp -av assets/resources/quickgui_$SIZE.png $out/share/icons/hicolor/$SIZEx$SIZE/apps/quickgui.png + done + ''; + + desktopItems = [ + (makeDesktopItem { + name = "quickgui"; + exec = "quickgui"; + icon = "quickgui"; + desktopName = "Quickgui"; + comment = "An elegant virtual machine manager for the desktop"; + categories = [ + "Development" + "System" + ]; + }) + ]; + + meta = with lib; { + description = "Elegant virtual machine manager for the desktop"; + homepage = "https://github.com/quickemu-project/quickgui"; + changelog = "https://github.com/quickemu-project/quickgui/releases/"; + license = licenses.mit; + maintainers = with maintainers; [ + flexiondotorg + heyimnova + ]; + platforms = [ "x86_64-linux" ]; + mainProgram = "quickgui"; + }; +}