{ lib, buildNimPackage, fetchFromGitea, makeDesktopItem, syndicate }: buildNimPackage rec { pname = "xdg_open_ng"; version = "20220625"; nimBinOnly = true; src = fetchFromGitea { domain = "git.syndicate-lang.org"; owner = "ehmry"; repo = pname; rev = version; hash = "sha256-yOuR4KYAMxlRc4AIr3ud0HzidHDQPeIiN3dzlnphLug="; }; propagatedBuildInputs = [ syndicate ]; desktopItem = makeDesktopItem rec { name = "xdg-open"; desktopName = "Syndicate URI dispatcher (xdg-open)"; exec = "${name} %U"; mimeTypes = [ "application/vnd.mozilla.xul+xml" "application/xhtml+xml" "text/html" "text/xml" "x-scheme-handler/http" "x-scheme-handler/https" ]; }; postInstall = '' mv $out/bin/xdg_open $out/bin/xdg-open cp -a $desktopItem/* $out/ ''; meta = src.meta // { description = "Replacement for xdg-open that uses Syndicate for messaging."; maintainers = [ lib.maintainers.ehmry ]; license = lib.licenses.unlicense; }; }