Change:
in stdenv.mkDerivation { inherit pname version; <del> desktopItem = makeDesktopItem { </del> <ins> desktopItem = makeDesktopItem ({ </ins> name = applicationName; exec = "${launcherName} %U"; inherit icon; desktopName = "${desktopName}${nameSuffix}${lib.optionalString forceWayland " (Wayland)"}"; <del> genericName = "Web Browser"; categories = [ "Network" "WebBrowser" ]; mimeTypes = [ "text/html" "text/xml" "application/xhtml+xml" "application/vnd.mozilla.xul+xml" "x-scheme-handler/http" "x-scheme-handler/https" "x-scheme-handler/ftp" ]; </del> <ins> startupNotify = true; </ins> startupWMClass = wmClass; <del> actions = { new-window = { name = "New Window"; exec = "${launcherName} --new-window %U"; }; new-private-window = { name = "New Private Window"; exec = "${launcherName} --private-window %U"; }; profile-manager-window = { name = "Profile Manager"; exec = "${launcherName} --ProfileManger"; }; }; }; </del> <ins> terminal = false; } // (if libName == "thunderbird" then { genericName = "Email Client"; comment = "Read and write e-mails or RSS feeds, or manage tasks on calendars."; categories = [ "Network" "Chat" "Email" "Feed" "GTK" "News" ]; keywords = [ "mail" "email" "e-mail" "messages" "rss" "calendar" "address book" "addressbook" "chat" ]; mimeTypes = [ "message/rfc822" "x-scheme-handler/mailto" "text/calendar" "text/x-vcard" ]; actions = { profile-manager-window = { name = "Profile Manager"; exec = "${launcherName} --ProfileManger"; }; }; } else { genericName = "Web Browser"; categories = [ "Network" "WebBrowser" ]; mimeTypes = [ "text/html" "text/xml" "application/xhtml+xml" "application/vnd.mozilla.xul+xml" "x-scheme-handler/http" "x-scheme-handler/https" ]; actions = { new-window = { name = "New Window"; exec = "${launcherName} --new-window %U"; }; new-private-window = { name = "New Private Window"; exec = "${launcherName} --private-window %U"; }; profile-manager-window = { name = "Profile Manager"; exec = "${launcherName} --ProfileManger"; }; }; })); </ins> nativeBuildInputs = [ makeWrapper lndir jq ]; buildInputs = [ browser.gtk3 ];

Discussion:
After installing thunderbird via , no entries are to Gnome Default Applications for Mail and Calendar. Steps to reproduce the behavior: thunderbird Gnome Settings to Default Applications that Thunderbird is not in Mail or Calendar lists A clear and concise description of what you expected to happen. Thunderbird should be in Mail and Calendar in Gnome Default Applications. If applicable, add screenshots to help explain your problem. Add any other context about the problem here. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. -- Please run and paste the result.
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
More specifically, the issue is that the desktop file lacks and in the key.
Uh, we generate the ourselves, by the same code as for Firefox, so it's a launcher for a browser
My proposal desktop entry: We cannot use since is hardcoded to in . References: Desktop Entry Specification: Desktop Menu Specification: Current wrong desktop entry: Template used for Gentoo: Debian:
I made PR .