{ lib, buildNimPackage, fetchFromGitea, makeDesktopItem, syndicate }: buildNimPackage rec { pname = "xdg_open_ng"; version = "0.3.1"; nimBinOnly = true; src = fetchFromGitea { domain = "git.syndicate-lang.org"; owner = "ehmry"; repo = pname; rev = "${pname}-${version}"; hash = "sha256-hOfaT4LaIH7QfLexQ1HNTxfTfPzSVpPnrpFhuHKJ3VM="; }; propagatedBuildInputs = [ syndicate ]; desktopItem = makeDesktopItem rec { name = "xdg-open"; desktopName = "Syndicate URI dispatcher (xdg-open)"; exec = "${name} %U"; mimeTypes = [ "all/all" ]; }; 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; }; }