about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorh7x4 <h7x4@nani.wtf>2023-11-27 02:17:53 +0100
committerh7x4 <h7x4@nani.wtf>2023-11-27 02:17:53 +0100
commit41974d5ed904a364dcf2f6251b1a25bb5aaa77c1 (patch)
treec1f175ca64b72db5dc39f77f9d1e070650dd4094 /pkgs
parent5171694860f185961daff3b1b413dabcab421300 (diff)
treewide: add mainProgram
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/accessibility/contrast/default.nix1
-rw-r--r--pkgs/applications/accessibility/dasher/default.nix1
-rw-r--r--pkgs/applications/accessibility/espeakup/default.nix1
-rw-r--r--pkgs/applications/accessibility/mousetweaks/default.nix1
-rw-r--r--pkgs/applications/accessibility/svkbd/default.nix1
-rw-r--r--pkgs/applications/accessibility/wvkbd/default.nix1
-rw-r--r--pkgs/applications/backup/deja-dup/default.nix1
-rw-r--r--pkgs/applications/backup/ludusavi/default.nix1
-rw-r--r--pkgs/applications/backup/restic-integrity/default.nix1
-rw-r--r--pkgs/applications/backup/restique/default.nix1
-rw-r--r--pkgs/applications/backup/unifi-protect-backup/default.nix1
-rw-r--r--pkgs/applications/backup/vorta/default.nix1
-rw-r--r--pkgs/applications/blockchains/alfis/default.nix1
-rw-r--r--pkgs/applications/blockchains/aperture/default.nix1
-rw-r--r--pkgs/applications/blockchains/charge-lnd/default.nix1
-rw-r--r--pkgs/applications/blockchains/chia-plotter/default.nix1
-rw-r--r--pkgs/applications/blockchains/clboss/default.nix1
-rw-r--r--pkgs/applications/blockchains/crypto-org-wallet/default.nix1
-rw-r--r--pkgs/applications/blockchains/cryptop/default.nix1
-rw-r--r--pkgs/applications/blockchains/dcrctl/default.nix1
-rw-r--r--pkgs/applications/blockchains/dcrwallet/default.nix1
-rw-r--r--pkgs/applications/blockchains/electrs/default.nix1
-rw-r--r--pkgs/applications/blockchains/ergo/default.nix1
-rw-r--r--pkgs/applications/blockchains/ethabi/default.nix1
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix1
-rw-r--r--pkgs/applications/blockchains/lighthouse/default.nix1
-rw-r--r--pkgs/applications/blockchains/lightwalletd/default.nix1
-rw-r--r--pkgs/applications/blockchains/lndconnect/default.nix1
-rw-r--r--pkgs/applications/blockchains/lndhub-go/default.nix1
-rw-r--r--pkgs/applications/blockchains/lndmanage/default.nix1
-rw-r--r--pkgs/applications/blockchains/miniscript/default.nix1
-rw-r--r--pkgs/applications/blockchains/mycrypto/default.nix1
-rw-r--r--pkgs/applications/blockchains/nbxplorer/default.nix1
-rw-r--r--pkgs/applications/blockchains/openethereum/default.nix1
-rw-r--r--pkgs/applications/blockchains/optimism/default.nix1
-rw-r--r--pkgs/applications/blockchains/snarkos/default.nix1
-rw-r--r--pkgs/applications/blockchains/stellar-core/default.nix1
-rw-r--r--pkgs/applications/blockchains/terra-station/default.nix1
-rw-r--r--pkgs/applications/blockchains/tessera/default.nix1
-rw-r--r--pkgs/applications/blockchains/torq/default.nix1
-rw-r--r--pkgs/applications/blockchains/trezor-suite/default.nix1
-rw-r--r--pkgs/applications/blockchains/zecwallet-lite/default.nix1
-rw-r--r--pkgs/applications/editors/amp/default.nix1
-rw-r--r--pkgs/applications/editors/apostrophe/default.nix1
-rw-r--r--pkgs/applications/editors/bless/default.nix1
-rw-r--r--pkgs/applications/editors/bluefish/default.nix1
-rw-r--r--pkgs/applications/editors/bonzomatic/default.nix1
-rw-r--r--pkgs/applications/editors/bviplus/default.nix1
-rw-r--r--pkgs/applications/editors/codux/default.nix1
-rw-r--r--pkgs/applications/editors/cpeditor/default.nix1
-rw-r--r--pkgs/applications/editors/cudatext/default.nix1
-rw-r--r--pkgs/applications/editors/dhex/default.nix1
-rw-r--r--pkgs/applications/editors/dit/default.nix1
-rw-r--r--pkgs/applications/editors/edbrowse/default.nix1
-rw-r--r--pkgs/applications/editors/edit/default.nix1
-rw-r--r--pkgs/applications/editors/edlin/default.nix1
-rw-r--r--pkgs/applications/editors/edwood/default.nix1
-rw-r--r--pkgs/applications/editors/em/default.nix1
-rw-r--r--pkgs/applications/editors/flpsed/default.nix1
-rw-r--r--pkgs/applications/editors/focuswriter/default.nix1
-rw-r--r--pkgs/applications/editors/gnome-builder/default.nix1
-rw-r--r--pkgs/applications/editors/gnome-inform7/default.nix1
-rw-r--r--pkgs/applications/editors/gnome-latex/default.nix1
-rw-r--r--pkgs/applications/editors/gophernotes/default.nix1
-rw-r--r--pkgs/applications/editors/hecate/default.nix1
-rw-r--r--pkgs/applications/editors/heh/default.nix1
-rw-r--r--pkgs/applications/editors/hexcurse/default.nix1
-rw-r--r--pkgs/applications/editors/hexdino/default.nix1
-rw-r--r--pkgs/applications/editors/hexedit/default.nix1
-rw-r--r--pkgs/applications/editors/ht/default.nix1
-rw-r--r--pkgs/applications/editors/kibi/default.nix1
-rw-r--r--pkgs/applications/editors/kile/default.nix1
-rw-r--r--pkgs/applications/editors/l3afpad/default.nix1
-rw-r--r--pkgs/applications/editors/ldtk/default.nix1
-rw-r--r--pkgs/applications/editors/leafpad/default.nix1
-rw-r--r--pkgs/applications/editors/lite-xl/default.nix1
-rw-r--r--pkgs/applications/editors/lite/default.nix1
-rw-r--r--pkgs/applications/editors/manuskript/default.nix1
-rw-r--r--pkgs/applications/editors/marker/default.nix1
-rw-r--r--pkgs/applications/editors/mindforger/default.nix1
-rw-r--r--pkgs/applications/editors/mle/default.nix1
-rw-r--r--pkgs/applications/editors/moe/default.nix1
-rw-r--r--pkgs/applications/editors/molsketch/default.nix1
-rw-r--r--pkgs/applications/editors/ne/default.nix1
-rw-r--r--pkgs/applications/editors/netbeans/default.nix1
-rw-r--r--pkgs/applications/editors/notepad-next/default.nix1
-rw-r--r--pkgs/applications/editors/notepadqq/default.nix1
-rw-r--r--pkgs/applications/editors/nvpy/default.nix1
-rw-r--r--pkgs/applications/editors/ox/default.nix1
-rw-r--r--pkgs/applications/editors/pinegrow/default.nix1
-rw-r--r--pkgs/applications/editors/pixelorama/default.nix1
-rw-r--r--pkgs/applications/editors/qxmledit/default.nix1
-rw-r--r--pkgs/applications/editors/qxw/default.nix1
-rw-r--r--pkgs/applications/editors/rednotebook/default.nix1
-rw-r--r--pkgs/applications/editors/rehex/default.nix1
-rw-r--r--pkgs/applications/editors/retext/default.nix1
-rw-r--r--pkgs/applications/editors/scite/default.nix1
-rw-r--r--pkgs/applications/editors/sigil/default.nix1
-rw-r--r--pkgs/applications/editors/spacevim/default.nix1
-rw-r--r--pkgs/applications/editors/standardnotes/default.nix1
-rw-r--r--pkgs/applications/editors/texmaker/default.nix1
-rw-r--r--pkgs/applications/editors/texstudio/default.nix1
-rw-r--r--pkgs/applications/editors/textadept/default.nix1
-rw-r--r--pkgs/applications/editors/texworks/default.nix1
-rw-r--r--pkgs/applications/editors/thonny/default.nix1
-rw-r--r--pkgs/applications/editors/tweak/default.nix1
-rw-r--r--pkgs/applications/editors/typora/default.nix1
-rw-r--r--pkgs/applications/editors/uivonim/default.nix1
-rw-r--r--pkgs/applications/editors/vbindiff/default.nix1
-rw-r--r--pkgs/applications/editors/viw/default.nix1
-rw-r--r--pkgs/applications/editors/wily/default.nix1
-rw-r--r--pkgs/applications/editors/wxhexeditor/default.nix1
-rw-r--r--pkgs/applications/editors/xed-editor/default.nix1
-rw-r--r--pkgs/applications/editors/xedit/default.nix1
-rw-r--r--pkgs/applications/editors/xmlcopyeditor/default.nix1
-rw-r--r--pkgs/applications/editors/zee/default.nix1
-rw-r--r--pkgs/applications/editors/zile/default.nix1
-rw-r--r--pkgs/applications/gis/grass/default.nix1
-rw-r--r--pkgs/applications/gis/openorienteering-mapper/default.nix1
-rw-r--r--pkgs/applications/gis/tunnelx/default.nix1
-rw-r--r--pkgs/applications/gis/udig/default.nix1
-rw-r--r--pkgs/applications/networking/Sylk/default.nix1
-rw-r--r--pkgs/applications/networking/alpnpass/default.nix1
-rw-r--r--pkgs/applications/networking/apache-directory-studio/default.nix1
-rw-r--r--pkgs/applications/networking/appgate-sdp/default.nix1
-rw-r--r--pkgs/applications/networking/asn/default.nix1
-rw-r--r--pkgs/applications/networking/avalanchego/default.nix1
-rw-r--r--pkgs/applications/networking/blocky/default.nix1
-rw-r--r--pkgs/applications/networking/brig/default.nix1
-rw-r--r--pkgs/applications/networking/calls/default.nix1
-rw-r--r--pkgs/applications/networking/charles/default.nix1
-rw-r--r--pkgs/applications/networking/cloudflare-dyndns/default.nix1
-rw-r--r--pkgs/applications/networking/cozy-drive/default.nix1
-rw-r--r--pkgs/applications/networking/datovka/default.nix1
-rw-r--r--pkgs/applications/networking/discordo/default.nix1
-rw-r--r--pkgs/applications/networking/diswall/default.nix1
-rw-r--r--pkgs/applications/networking/drive/default.nix1
-rw-r--r--pkgs/applications/networking/droopy/default.nix1
-rw-r--r--pkgs/applications/networking/dsvpn/default.nix1
-rw-r--r--pkgs/applications/networking/errbot/default.nix1
-rw-r--r--pkgs/applications/networking/filebrowser/default.nix1
-rw-r--r--pkgs/applications/networking/gdrive/default.nix1
-rw-r--r--pkgs/applications/networking/gdrive3/default.nix1
-rw-r--r--pkgs/applications/networking/giara/default.nix1
-rw-r--r--pkgs/applications/networking/gnmic/default.nix1
-rw-r--r--pkgs/applications/networking/gnome-network-displays/default.nix1
-rw-r--r--pkgs/applications/networking/google-drive-ocamlfuse/default.nix1
-rw-r--r--pkgs/applications/networking/gossa/default.nix1
-rw-r--r--pkgs/applications/networking/headlines/default.nix1
-rw-r--r--pkgs/applications/networking/hpmyroom/default.nix1
-rw-r--r--pkgs/applications/networking/hydroxide/default.nix1
-rw-r--r--pkgs/applications/networking/icemon/default.nix1
-rw-r--r--pkgs/applications/networking/insync/default.nix1
-rw-r--r--pkgs/applications/networking/ipfs-upload-client/default.nix1
-rw-r--r--pkgs/applications/networking/ipget/default.nix1
-rw-r--r--pkgs/applications/networking/iptraf-ng/default.nix1
-rw-r--r--pkgs/applications/networking/iroh/default.nix1
-rw-r--r--pkgs/applications/networking/juju/default.nix1
-rw-r--r--pkgs/applications/networking/jxplorer/default.nix1
-rw-r--r--pkgs/applications/networking/lieer/default.nix1
-rw-r--r--pkgs/applications/networking/linssid/default.nix1
-rw-r--r--pkgs/applications/networking/listadmin/default.nix1
-rw-r--r--pkgs/applications/networking/lls/default.nix1
-rw-r--r--pkgs/applications/networking/localproxy/default.nix1
-rw-r--r--pkgs/applications/networking/mhost/default.nix1
-rw-r--r--pkgs/applications/networking/modem-manager-gui/default.nix1
-rw-r--r--pkgs/applications/networking/n8n/default.nix1
-rw-r--r--pkgs/applications/networking/nali/default.nix1
-rw-r--r--pkgs/applications/networking/ncgopher/default.nix1
-rw-r--r--pkgs/applications/networking/ndppd/default.nix1
-rw-r--r--pkgs/applications/networking/netmaker/default.nix1
-rw-r--r--pkgs/applications/networking/nextdns/default.nix1
-rw-r--r--pkgs/applications/networking/nntp-proxy/default.nix1
-rw-r--r--pkgs/applications/networking/novnc/default.nix1
-rw-r--r--pkgs/applications/networking/offrss/default.nix1
-rw-r--r--pkgs/applications/networking/omping/default.nix1
-rw-r--r--pkgs/applications/networking/onionshare/default.nix1
-rw-r--r--pkgs/applications/networking/opsdroid/default.nix1
-rw-r--r--pkgs/applications/networking/pcloud/default.nix1
-rw-r--r--pkgs/applications/networking/protocol/default.nix1
-rw-r--r--pkgs/applications/networking/protonmail-bridge/default.nix1
-rw-r--r--pkgs/applications/networking/qv2ray/default.nix1
-rw-r--r--pkgs/applications/networking/r53-ddns/default.nix1
-rw-r--r--pkgs/applications/networking/resilio-sync/default.nix1
-rw-r--r--pkgs/applications/networking/rofi-vpn/default.nix1
-rw-r--r--pkgs/applications/networking/rymdport/default.nix1
-rw-r--r--pkgs/applications/networking/scaleft/default.nix1
-rw-r--r--pkgs/applications/networking/seafile-client/default.nix1
-rw-r--r--pkgs/applications/networking/shellhub-agent/default.nix1
-rw-r--r--pkgs/applications/networking/sieve-connect/default.nix1
-rw-r--r--pkgs/applications/networking/sniffnet/default.nix1
-rw-r--r--pkgs/applications/networking/sniproxy/default.nix1
-rw-r--r--pkgs/applications/networking/soapui/default.nix1
-rw-r--r--pkgs/applications/networking/spideroak/default.nix1
-rw-r--r--pkgs/applications/networking/station/default.nix1
-rw-r--r--pkgs/applications/networking/stc-cli/default.nix1
-rw-r--r--pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix1
-rw-r--r--pkgs/applications/networking/synology-drive-client/default.nix1
-rw-r--r--pkgs/applications/networking/tcping-go/default.nix1
-rw-r--r--pkgs/applications/networking/tcpkali/default.nix1
-rw-r--r--pkgs/applications/networking/termius/default.nix1
-rw-r--r--pkgs/applications/networking/testssl/default.nix1
-rw-r--r--pkgs/applications/networking/tmpmail/default.nix1
-rw-r--r--pkgs/applications/networking/trayscale/default.nix1
-rw-r--r--pkgs/applications/networking/twtxt/default.nix1
-rw-r--r--pkgs/applications/networking/umurmur/default.nix1
-rw-r--r--pkgs/applications/networking/upnp-router-control/default.nix1
-rw-r--r--pkgs/applications/networking/versus/default.nix1
-rw-r--r--pkgs/applications/networking/warp/default.nix1
-rw-r--r--pkgs/applications/networking/wayback_machine_downloader/default.nix1
-rw-r--r--pkgs/applications/networking/websocketd/default.nix1
-rw-r--r--pkgs/applications/networking/wg-bond/default.nix1
-rw-r--r--pkgs/applications/networking/wgcf/default.nix1
-rw-r--r--pkgs/applications/networking/wgnord/default.nix1
-rw-r--r--pkgs/applications/networking/yaup/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/contour/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/cool-retro-term/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/darktile/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/dterm/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/gnome-console/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/hyper/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/lxterminal/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/microcom/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/sakura/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/st/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/stupidterm/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/termite/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/tilix/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/tym/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/xtermcontrol/default.nix1
-rw-r--r--pkgs/applications/version-management/bcompare/default.nix1
-rw-r--r--pkgs/applications/version-management/bit/default.nix1
-rw-r--r--pkgs/applications/version-management/bumpver/default.nix1
-rw-r--r--pkgs/applications/version-management/codeberg-cli/default.nix1
-rw-r--r--pkgs/applications/version-management/conform/default.nix1
-rw-r--r--pkgs/applications/version-management/cvsps/default.nix1
-rw-r--r--pkgs/applications/version-management/danger-gitlab/default.nix1
-rw-r--r--pkgs/applications/version-management/darcs-to-git/default.nix1
-rw-r--r--pkgs/applications/version-management/deepgit/default.nix1
-rw-r--r--pkgs/applications/version-management/degit/default.nix1
-rw-r--r--pkgs/applications/version-management/diff-so-fancy/default.nix1
-rw-r--r--pkgs/applications/version-management/fnc/default.nix1
-rw-r--r--pkgs/applications/version-management/fornalder/default.nix1
-rw-r--r--pkgs/applications/version-management/gex/default.nix1
-rw-r--r--pkgs/applications/version-management/gfold/default.nix1
-rw-r--r--pkgs/applications/version-management/ghorg/default.nix1
-rw-r--r--pkgs/applications/version-management/ghq/default.nix1
-rw-r--r--pkgs/applications/version-management/ghr/default.nix1
-rw-r--r--pkgs/applications/version-management/git-absorb/default.nix1
-rw-r--r--pkgs/applications/version-management/git-annex-remote-dbx/default.nix1
-rw-r--r--pkgs/applications/version-management/git-annex-remote-googledrive/default.nix1
-rw-r--r--pkgs/applications/version-management/git-annex-remote-rclone/default.nix1
-rw-r--r--pkgs/applications/version-management/git-appraise/default.nix1
-rw-r--r--pkgs/applications/version-management/git-archive-all/default.nix1
-rw-r--r--pkgs/applications/version-management/git-backdate/default.nix1
-rw-r--r--pkgs/applications/version-management/git-backup/default.nix1
-rw-r--r--pkgs/applications/version-management/git-bars/default.nix1
-rw-r--r--pkgs/applications/version-management/git-big-picture/default.nix1
-rw-r--r--pkgs/applications/version-management/git-bug-migration/default.nix1
-rw-r--r--pkgs/applications/version-management/git-bug/default.nix1
-rw-r--r--pkgs/applications/version-management/git-chglog/default.nix1
-rw-r--r--pkgs/applications/version-management/git-codeowners/default.nix1
-rw-r--r--pkgs/applications/version-management/git-codereview/default.nix1
-rw-r--r--pkgs/applications/version-management/git-crecord/default.nix1
-rw-r--r--pkgs/applications/version-management/git-credential-1password/default.nix1
-rw-r--r--pkgs/applications/version-management/git-credential-keepassxc/default.nix1
-rw-r--r--pkgs/applications/version-management/git-credential-manager/default.nix1
-rw-r--r--pkgs/applications/version-management/git-credential-oauth/default.nix1
-rw-r--r--pkgs/applications/version-management/git-crypt/default.nix1
-rw-r--r--pkgs/applications/version-management/git-dive/default.nix1
-rw-r--r--pkgs/applications/version-management/git-fame/default.nix1
-rw-r--r--pkgs/applications/version-management/git-ftp/default.nix1
-rw-r--r--pkgs/applications/version-management/git-gone/default.nix1
-rw-r--r--pkgs/applications/version-management/git-graph/default.nix1
-rw-r--r--pkgs/applications/version-management/git-hub/default.nix1
-rw-r--r--pkgs/applications/version-management/git-ignore/default.nix1
-rw-r--r--pkgs/applications/version-management/git-imerge/default.nix1
-rw-r--r--pkgs/applications/version-management/git-lfs/default.nix1
-rw-r--r--pkgs/applications/version-management/git-machete/default.nix1
-rw-r--r--pkgs/applications/version-management/git-my/default.nix1
-rw-r--r--pkgs/applications/version-management/git-nomad/default.nix1
-rw-r--r--pkgs/applications/version-management/git-open/default.nix1
-rw-r--r--pkgs/applications/version-management/git-privacy/default.nix1
-rw-r--r--pkgs/applications/version-management/git-publish/default.nix1
-rw-r--r--pkgs/applications/version-management/git-quick-stats/default.nix1
-rw-r--r--pkgs/applications/version-management/git-quickfix/default.nix1
-rw-r--r--pkgs/applications/version-management/git-radar/default.nix1
-rw-r--r--pkgs/applications/version-management/git-recent/default.nix1
-rw-r--r--pkgs/applications/version-management/git-relevant-history/default.nix1
-rw-r--r--pkgs/applications/version-management/git-remote-codecommit/default.nix1
-rw-r--r--pkgs/applications/version-management/git-remote-gcrypt/default.nix1
-rw-r--r--pkgs/applications/version-management/git-reparent/default.nix1
-rw-r--r--pkgs/applications/version-management/git-repo-updater/default.nix1
-rw-r--r--pkgs/applications/version-management/git-repo/default.nix1
-rw-r--r--pkgs/applications/version-management/git-review/default.nix1
-rw-r--r--pkgs/applications/version-management/git-secret/default.nix1
-rw-r--r--pkgs/applications/version-management/git-secrets/default.nix1
-rw-r--r--pkgs/applications/version-management/git-series/default.nix1
-rw-r--r--pkgs/applications/version-management/git-sizer/default.nix1
-rw-r--r--pkgs/applications/version-management/git-stack/default.nix1
-rw-r--r--pkgs/applications/version-management/git-standup/default.nix1
-rw-r--r--pkgs/applications/version-management/git-stree/default.nix1
-rw-r--r--pkgs/applications/version-management/git-subtrac/default.nix1
-rw-r--r--pkgs/applications/version-management/git-team/default.nix1
-rw-r--r--pkgs/applications/version-management/git-test/default.nix1
-rw-r--r--pkgs/applications/version-management/git-town/default.nix1
-rw-r--r--pkgs/applications/version-management/git-trim/default.nix1
-rw-r--r--pkgs/applications/version-management/git-up/default.nix1
-rw-r--r--pkgs/applications/version-management/git-vanity-hash/default.nix1
-rw-r--r--pkgs/applications/version-management/git-vendor/default.nix1
-rw-r--r--pkgs/applications/version-management/git-when-merged/default.nix1
-rw-r--r--pkgs/applications/version-management/git-workspace/default.nix1
-rw-r--r--pkgs/applications/version-management/git2cl/default.nix1
-rw-r--r--pkgs/applications/version-management/gita/default.nix1
-rw-r--r--pkgs/applications/version-management/gitbatch/default.nix1
-rw-r--r--pkgs/applications/version-management/github-desktop/default.nix1
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix1
-rw-r--r--pkgs/applications/version-management/gitlab-triage/default.nix1
-rw-r--r--pkgs/applications/version-management/gitless/default.nix1
-rw-r--r--pkgs/applications/version-management/gitlint/default.nix1
-rw-r--r--pkgs/applications/version-management/gitls/default.nix1
-rw-r--r--pkgs/applications/version-management/gitmux/default.nix1
-rw-r--r--pkgs/applications/version-management/gitnuro/default.nix1
-rw-r--r--pkgs/applications/version-management/gitprompt-rs/default.nix1
-rw-r--r--pkgs/applications/version-management/gitqlient/default.nix1
-rw-r--r--pkgs/applications/version-management/gitstats/default.nix1
-rw-r--r--pkgs/applications/version-management/gitstatus/default.nix1
-rw-r--r--pkgs/applications/version-management/gitty/default.nix1
-rw-r--r--pkgs/applications/version-management/glab/default.nix1
-rw-r--r--pkgs/applications/version-management/glitter/default.nix1
-rw-r--r--pkgs/applications/version-management/gogs/default.nix1
-rw-r--r--pkgs/applications/version-management/gomp/default.nix1
-rw-r--r--pkgs/applications/version-management/gource/default.nix1
-rw-r--r--pkgs/applications/version-management/gst/default.nix1
-rw-r--r--pkgs/applications/version-management/guilt/default.nix1
-rw-r--r--pkgs/applications/version-management/gut/default.nix1
-rw-r--r--pkgs/applications/version-management/hut/default.nix1
-rw-r--r--pkgs/applications/version-management/lab/default.nix1
-rw-r--r--pkgs/applications/version-management/legit-web/default.nix1
-rw-r--r--pkgs/applications/version-management/legit/default.nix1
-rw-r--r--pkgs/applications/version-management/meld/default.nix1
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix1
-rw-r--r--pkgs/applications/version-management/merge-fmt/default.nix1
-rw-r--r--pkgs/applications/version-management/nbstripout/default.nix1
-rw-r--r--pkgs/applications/version-management/pass-git-helper/default.nix1
-rw-r--r--pkgs/applications/version-management/peru/default.nix1
-rw-r--r--pkgs/applications/version-management/pijul/default.nix1
-rw-r--r--pkgs/applications/version-management/qgit/default.nix1
-rw-r--r--pkgs/applications/version-management/rapidsvn/default.nix1
-rw-r--r--pkgs/applications/version-management/rcshist/default.nix1
-rw-r--r--pkgs/applications/version-management/rs-git-fsmonitor/default.nix1
-rw-r--r--pkgs/applications/version-management/scmpuff/default.nix1
-rw-r--r--pkgs/applications/version-management/scriv/default.nix1
-rw-r--r--pkgs/applications/version-management/sparkleshare/default.nix1
-rw-r--r--pkgs/applications/version-management/src/default.nix1
-rw-r--r--pkgs/applications/version-management/stgit/default.nix1
-rw-r--r--pkgs/applications/version-management/svn-all-fast-export/default.nix1
-rw-r--r--pkgs/applications/version-management/svn2git/default.nix1
-rw-r--r--pkgs/applications/version-management/tailor/default.nix1
-rw-r--r--pkgs/applications/version-management/thicket/default.nix1
-rw-r--r--pkgs/applications/version-management/tig/default.nix1
-rw-r--r--pkgs/applications/version-management/vcprompt/default.nix1
-rw-r--r--pkgs/applications/version-management/vcsh/default.nix1
-rw-r--r--pkgs/applications/version-management/verco/default.nix1
-rw-r--r--pkgs/applications/version-management/yadm/default.nix1
-rw-r--r--pkgs/applications/video/adl/default.nix1
-rw-r--r--pkgs/applications/video/aegisub/default.nix1
-rw-r--r--pkgs/applications/video/ani-cli/default.nix1
-rw-r--r--pkgs/applications/video/anime-downloader/default.nix1
-rw-r--r--pkgs/applications/video/asciicam/default.nix1
-rw-r--r--pkgs/applications/video/bilibili/default.nix1
-rw-r--r--pkgs/applications/video/bino3d/default.nix1
-rw-r--r--pkgs/applications/video/catt/default.nix1
-rw-r--r--pkgs/applications/video/ccextractor/default.nix1
-rw-r--r--pkgs/applications/video/clipgrab/default.nix1
-rw-r--r--pkgs/applications/video/coriander/default.nix1
-rw-r--r--pkgs/applications/video/crunchy-cli/default.nix1
-rw-r--r--pkgs/applications/video/davinci-resolve/default.nix1
-rw-r--r--pkgs/applications/video/deface/default.nix1
-rw-r--r--pkgs/applications/video/dra-cla/default.nix1
-rw-r--r--pkgs/applications/video/dvdbackup/default.nix1
-rw-r--r--pkgs/applications/video/dvdstyler/default.nix1
-rw-r--r--pkgs/applications/video/entangle/default.nix1
-rw-r--r--pkgs/applications/video/epgstation/default.nix1
-rw-r--r--pkgs/applications/video/f1viewer/default.nix1
-rw-r--r--pkgs/applications/video/ffmpeg-normalize/default.nix1
-rw-r--r--pkgs/applications/video/filebot/default.nix1
-rw-r--r--pkgs/applications/video/flowblade/default.nix1
-rw-r--r--pkgs/applications/video/freetube/default.nix1
-rw-r--r--pkgs/applications/video/giph/default.nix1
-rw-r--r--pkgs/applications/video/glaxnimate/default.nix1
-rw-r--r--pkgs/applications/video/gnomecast/default.nix1
-rw-r--r--pkgs/applications/video/go-chromecast/default.nix1
-rw-r--r--pkgs/applications/video/go2tv/default.nix1
-rw-r--r--pkgs/applications/video/haruna/default.nix1
-rw-r--r--pkgs/applications/video/hdhomerun-config-gui/default.nix1
-rw-r--r--pkgs/applications/video/hypnotix/default.nix1
-rw-r--r--pkgs/applications/video/imagination/default.nix1
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/default.nix1
-rw-r--r--pkgs/applications/video/jftui/default.nix1
-rw-r--r--pkgs/applications/video/kaffeine/default.nix1
-rw-r--r--pkgs/applications/video/kazam/default.nix1
-rw-r--r--pkgs/applications/video/lbry/default.nix1
-rw-r--r--pkgs/applications/video/linuxstopmotion/default.nix1
-rw-r--r--pkgs/applications/video/losslesscut-bin/default.nix1
-rw-r--r--pkgs/applications/video/mapmap/default.nix1
-rw-r--r--pkgs/applications/video/media-downloader/default.nix1
-rw-r--r--pkgs/applications/video/memento/default.nix1
-rw-r--r--pkgs/applications/video/minitube/default.nix1
-rw-r--r--pkgs/applications/video/mjpg-streamer/default.nix1
-rw-r--r--pkgs/applications/video/mlv-app/default.nix1
-rw-r--r--pkgs/applications/video/molotov/default.nix1
-rw-r--r--pkgs/applications/video/motion/default.nix1
-rw-r--r--pkgs/applications/video/mov-cli/default.nix1
-rw-r--r--pkgs/applications/video/mpc-qt/default.nix1
-rw-r--r--pkgs/applications/video/olive-editor/default.nix1
-rw-r--r--pkgs/applications/video/open-in-mpv/default.nix1
-rw-r--r--pkgs/applications/video/openshot-qt/default.nix1
-rw-r--r--pkgs/applications/video/p2pvc/default.nix1
-rw-r--r--pkgs/applications/video/peek/default.nix1
-rw-r--r--pkgs/applications/video/pipe-viewer/default.nix1
-rw-r--r--pkgs/applications/video/pitivi/default.nix1
-rw-r--r--pkgs/applications/video/plex-mpv-shim/default.nix1
-rw-r--r--pkgs/applications/video/popcorntime/default.nix1
-rw-r--r--pkgs/applications/video/prism/default.nix1
-rw-r--r--pkgs/applications/video/qarte/default.nix1
-rw-r--r--pkgs/applications/video/qmediathekview/default.nix1
-rw-r--r--pkgs/applications/video/qstopmotion/default.nix1
-rw-r--r--pkgs/applications/video/recapp/default.nix1
-rw-r--r--pkgs/applications/video/screenkey/default.nix1
-rw-r--r--pkgs/applications/video/shotcut/default.nix1
-rw-r--r--pkgs/applications/video/srtrelay/default.nix1
-rw-r--r--pkgs/applications/video/sub-batch/default.nix1
-rw-r--r--pkgs/applications/video/subdl/default.nix1
-rw-r--r--pkgs/applications/video/subtitleeditor/default.nix1
-rw-r--r--pkgs/applications/video/tartube/default.nix1
-rw-r--r--pkgs/applications/video/timelens/default.nix1
-rw-r--r--pkgs/applications/video/uvccapture/default.nix1
-rw-r--r--pkgs/applications/video/vcs/default.nix1
-rw-r--r--pkgs/applications/video/video-trimmer/default.nix1
-rw-r--r--pkgs/applications/video/vivictpp/default.nix1
-rw-r--r--pkgs/applications/video/vokoscreen-ng/default.nix1
-rw-r--r--pkgs/applications/video/vokoscreen/default.nix1
-rw-r--r--pkgs/applications/video/w_scan/default.nix1
-rw-r--r--pkgs/applications/video/w_scan2/default.nix1
-rw-r--r--pkgs/applications/video/webcamoid/default.nix1
-rw-r--r--pkgs/applications/video/webtorrent_desktop/default.nix1
-rw-r--r--pkgs/applications/video/wf-recorder/default.nix1
-rw-r--r--pkgs/applications/video/xscast/default.nix1
-rw-r--r--pkgs/applications/video/youtube-tui/default.nix1
-rw-r--r--pkgs/applications/video/yuview/default.nix1
-rw-r--r--pkgs/applications/virtualization/buildkit-nix/default.nix1
-rw-r--r--pkgs/applications/virtualization/catatonit/default.nix1
-rw-r--r--pkgs/applications/virtualization/cntr/default.nix1
-rw-r--r--pkgs/applications/virtualization/colima/default.nix1
-rw-r--r--pkgs/applications/virtualization/conmon/default.nix1
-rw-r--r--pkgs/applications/virtualization/crun/default.nix1
-rw-r--r--pkgs/applications/virtualization/dumb-init/default.nix1
-rw-r--r--pkgs/applications/virtualization/firectl/default.nix1
-rw-r--r--pkgs/applications/virtualization/krunvm/default.nix1
-rw-r--r--pkgs/applications/virtualization/nixpacks/default.nix1
-rw-r--r--pkgs/applications/virtualization/ops/default.nix1
-rw-r--r--pkgs/applications/virtualization/podman-compose/default.nix1
-rw-r--r--pkgs/applications/virtualization/podman-desktop/default.nix1
-rw-r--r--pkgs/applications/virtualization/podman-tui/default.nix1
-rw-r--r--pkgs/applications/virtualization/pods/default.nix1
-rw-r--r--pkgs/applications/virtualization/qtemu/default.nix1
-rw-r--r--pkgs/applications/virtualization/remotebox/default.nix1
-rw-r--r--pkgs/applications/virtualization/runc/default.nix1
-rw-r--r--pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix1
-rw-r--r--pkgs/applications/virtualization/rvvm/default.nix1
-rw-r--r--pkgs/applications/virtualization/stratovirt/default.nix1
-rw-r--r--pkgs/applications/virtualization/tini/default.nix1
-rw-r--r--pkgs/applications/virtualization/toolbox/default.nix1
-rw-r--r--pkgs/applications/virtualization/umoci/default.nix1
-rw-r--r--pkgs/applications/virtualization/virt-top/default.nix1
-rw-r--r--pkgs/applications/virtualization/virt-what/default.nix1
-rw-r--r--pkgs/applications/virtualization/virter/default.nix1
-rw-r--r--pkgs/applications/virtualization/x11docker/default.nix1
-rw-r--r--pkgs/applications/virtualization/youki/default.nix1
-rw-r--r--pkgs/applications/window-managers/cagebreak/default.nix1
-rw-r--r--pkgs/applications/window-managers/cwm/default.nix1
-rw-r--r--pkgs/applications/window-managers/dwl/default.nix1
-rw-r--r--pkgs/applications/window-managers/dwm/default.nix1
-rw-r--r--pkgs/applications/window-managers/evilwm/default.nix1
-rw-r--r--pkgs/applications/window-managers/fbpanel/default.nix1
-rw-r--r--pkgs/applications/window-managers/gamescope/default.nix1
-rw-r--r--pkgs/applications/window-managers/jay/default.nix1
-rw-r--r--pkgs/applications/window-managers/jwm/default.nix1
-rw-r--r--pkgs/applications/window-managers/kbdd/default.nix1
-rw-r--r--pkgs/applications/window-managers/lemonbar/default.nix1
-rw-r--r--pkgs/applications/window-managers/lesbar/default.nix1
-rw-r--r--pkgs/applications/window-managers/lwm/default.nix1
-rw-r--r--pkgs/applications/window-managers/mlvwm/default.nix1
-rw-r--r--pkgs/applications/window-managers/neocomp/default.nix1
-rw-r--r--pkgs/applications/window-managers/nimdow/default.nix1
-rw-r--r--pkgs/applications/window-managers/phosh/default.nix1
-rw-r--r--pkgs/applications/window-managers/sommelier/default.nix1
-rw-r--r--pkgs/applications/window-managers/stalonetray/default.nix1
-rw-r--r--pkgs/applications/window-managers/stumpish/default.nix1
-rw-r--r--pkgs/applications/window-managers/tinywl/default.nix1
-rw-r--r--pkgs/applications/window-managers/trayer/default.nix1
-rw-r--r--pkgs/applications/window-managers/vwm/default.nix1
-rw-r--r--pkgs/applications/window-managers/windowlab/default.nix1
-rw-r--r--pkgs/applications/window-managers/wmderland/default.nix1
-rw-r--r--pkgs/applications/window-managers/wmderlandc/default.nix1
-rw-r--r--pkgs/applications/window-managers/wmfs/default.nix1
-rw-r--r--pkgs/applications/window-managers/x-create-mouse-void/default.nix1
-rw-r--r--pkgs/applications/window-managers/yabar/build.nix1
-rw-r--r--pkgs/servers/adguardhome/default.nix1
-rw-r--r--pkgs/servers/alps/default.nix1
-rw-r--r--pkgs/servers/althttpd/default.nix1
-rw-r--r--pkgs/servers/ankisyncd/default.nix1
-rw-r--r--pkgs/servers/beanstalkd/default.nix1
-rw-r--r--pkgs/servers/bloat/default.nix1
-rw-r--r--pkgs/servers/blockbook/default.nix1
-rw-r--r--pkgs/servers/brickd/default.nix1
-rw-r--r--pkgs/servers/calibre-web/default.nix1
-rw-r--r--pkgs/servers/cayley/default.nix1
-rw-r--r--pkgs/servers/dcnnt/default.nix1
-rw-r--r--pkgs/servers/demoit/default.nix1
-rw-r--r--pkgs/servers/dex/default.nix1
-rw-r--r--pkgs/servers/dgraph/default.nix1
-rw-r--r--pkgs/servers/domoticz/default.nix1
-rw-r--r--pkgs/servers/duckling-proxy/default.nix1
-rw-r--r--pkgs/servers/echoip/default.nix1
-rw-r--r--pkgs/servers/elasticmq-server-bin/default.nix1
-rw-r--r--pkgs/servers/endlessh-go/default.nix1
-rw-r--r--pkgs/servers/endlessh/default.nix1
-rw-r--r--pkgs/servers/fcgiwrap/default.nix1
-rw-r--r--pkgs/servers/fedigroups/default.nix1
-rw-r--r--pkgs/servers/felix/default.nix1
-rw-r--r--pkgs/servers/fiche/default.nix1
-rw-r--r--pkgs/servers/fileshare/default.nix1
-rw-r--r--pkgs/servers/filtron/default.nix1
-rw-r--r--pkgs/servers/fishnet/default.nix1
-rw-r--r--pkgs/servers/gerbera/default.nix1
-rw-r--r--pkgs/servers/gonic/default.nix1
-rw-r--r--pkgs/servers/hashi-ui/default.nix1
-rw-r--r--pkgs/servers/headphones/default.nix1
-rw-r--r--pkgs/servers/heisenbridge/default.nix1
-rw-r--r--pkgs/servers/hitch/default.nix1
-rw-r--r--pkgs/servers/home-assistant/default.nix1
-rw-r--r--pkgs/servers/jitsi-videobridge/default.nix1
-rw-r--r--pkgs/servers/livepeer/default.nix1
-rw-r--r--pkgs/servers/ma1sd/default.nix1
-rw-r--r--pkgs/servers/matterbridge/default.nix1
-rw-r--r--pkgs/servers/mattermost/default.nix1
-rw-r--r--pkgs/servers/mautrix-facebook/default.nix1
-rw-r--r--pkgs/servers/mautrix-signal/default.nix1
-rw-r--r--pkgs/servers/mautrix-whatsapp/default.nix1
-rw-r--r--pkgs/servers/memcached/default.nix1
-rw-r--r--pkgs/servers/metabase/default.nix1
-rw-r--r--pkgs/servers/meteor/default.nix1
-rw-r--r--pkgs/servers/microserver/default.nix1
-rw-r--r--pkgs/servers/plik/programs.nix1
-rw-r--r--pkgs/servers/rtrtr/default.nix1
-rw-r--r--pkgs/servers/simple-http-server/default.nix1
-rw-r--r--pkgs/tools/archivers/afio/default.nix1
-rw-r--r--pkgs/tools/archivers/arc_unpacker/default.nix1
-rw-r--r--pkgs/tools/archivers/cabextract/default.nix1
-rw-r--r--pkgs/tools/archivers/cpio/default.nix1
-rw-r--r--pkgs/tools/archivers/ctrtool/default.nix1
-rw-r--r--pkgs/tools/archivers/dumpnar/default.nix1
-rw-r--r--pkgs/tools/archivers/fsarchiver/default.nix1
-rw-r--r--pkgs/tools/archivers/gbl/default.nix1
-rw-r--r--pkgs/tools/archivers/innoextract/default.nix1
-rw-r--r--pkgs/tools/archivers/lha/default.nix1
-rw-r--r--pkgs/tools/archivers/maxcso/default.nix1
-rw-r--r--pkgs/tools/archivers/ndstool/default.nix1
-rw-r--r--pkgs/tools/archivers/payload_dumper/default.nix1
-rw-r--r--pkgs/tools/archivers/pxattr/default.nix1
-rw-r--r--pkgs/tools/archivers/quickbms/default.nix1
-rw-r--r--pkgs/tools/archivers/rpmextract/default.nix1
-rw-r--r--pkgs/tools/archivers/runzip/default.nix1
-rw-r--r--pkgs/tools/archivers/tarlz/default.nix1
-rw-r--r--pkgs/tools/archivers/undmg/default.nix1
-rw-r--r--pkgs/tools/archivers/unshield/default.nix1
-rw-r--r--pkgs/tools/archivers/unzoo/default.nix1
-rw-r--r--pkgs/tools/archivers/xarchive/default.nix1
-rw-r--r--pkgs/tools/archivers/xarchiver/default.nix1
-rw-r--r--pkgs/tools/archivers/zarchive/default.nix1
-rw-r--r--pkgs/tools/archivers/zpaq/default.nix1
-rw-r--r--pkgs/tools/misc/aaa/default.nix1
-rw-r--r--pkgs/tools/misc/abduco/default.nix1
-rw-r--r--pkgs/tools/misc/adafruit-ampy/default.nix1
-rw-r--r--pkgs/tools/misc/addic7ed-cli/default.nix1
-rw-r--r--pkgs/tools/misc/addlicense/default.nix1
-rw-r--r--pkgs/tools/misc/adrgen/default.nix1
-rw-r--r--pkgs/tools/misc/afetch/default.nix1
-rw-r--r--pkgs/tools/misc/agedu/default.nix1
-rw-r--r--pkgs/tools/misc/aichat/default.nix1
-rw-r--r--pkgs/tools/misc/alarm-clock-applet/default.nix1
-rw-r--r--pkgs/tools/misc/antimicrox/default.nix1
-rw-r--r--pkgs/tools/misc/aoc-cli/default.nix1
-rw-r--r--pkgs/tools/misc/apkeep/default.nix1
-rw-r--r--pkgs/tools/misc/apparix/default.nix1
-rw-r--r--pkgs/tools/misc/aptly/default.nix1
-rw-r--r--pkgs/tools/misc/aquosctl/default.nix1
-rw-r--r--pkgs/tools/misc/archi/default.nix1
-rw-r--r--pkgs/tools/misc/as-tree/default.nix1
-rw-r--r--pkgs/tools/misc/asciinema-agg/default.nix1
-rw-r--r--pkgs/tools/misc/asciinema-scenario/default.nix1
-rw-r--r--pkgs/tools/misc/askalono/default.nix1
-rw-r--r--pkgs/tools/misc/atuin/default.nix1
-rw-r--r--pkgs/tools/misc/automirror/default.nix1
-rw-r--r--pkgs/tools/misc/autorevision/default.nix1
-rw-r--r--pkgs/tools/misc/bandwidth/default.nix1
-rw-r--r--pkgs/tools/misc/bartib/default.nix1
-rw-r--r--pkgs/tools/misc/bash_unit/default.nix1
-rw-r--r--pkgs/tools/misc/bashcards/default.nix1
-rw-r--r--pkgs/tools/misc/bbe/default.nix1
-rw-r--r--pkgs/tools/misc/bdf2psf/default.nix1
-rw-r--r--pkgs/tools/misc/bdf2sfd/default.nix1
-rw-r--r--pkgs/tools/misc/bdfresize/default.nix1
-rw-r--r--pkgs/tools/misc/beats/default.nix1
-rw-r--r--pkgs/tools/misc/betterdiscord-installer/default.nix1
-rw-r--r--pkgs/tools/misc/bfetch/default.nix1
-rw-r--r--pkgs/tools/misc/bibtool/default.nix1
-rw-r--r--pkgs/tools/misc/bitwise/default.nix1
-rw-r--r--pkgs/tools/misc/blacken-docs/default.nix1
-rw-r--r--pkgs/tools/misc/blahaj/default.nix1
-rw-r--r--pkgs/tools/misc/blflash/default.nix1
-rw-r--r--pkgs/tools/misc/blink1-tool/default.nix1
-rw-r--r--pkgs/tools/misc/bmap-tools/default.nix1
-rw-r--r--pkgs/tools/misc/bmon/default.nix1
-rw-r--r--pkgs/tools/misc/boltbrowser/default.nix1
-rw-r--r--pkgs/tools/misc/boxxy/default.nix1
-rw-r--r--pkgs/tools/misc/broot/default.nix1
-rw-r--r--pkgs/tools/misc/bsp-layout/default.nix1
-rw-r--r--pkgs/tools/misc/btdu/default.nix1
-rw-r--r--pkgs/tools/misc/buildtorrent/default.nix1
-rw-r--r--pkgs/tools/misc/calamares/default.nix1
-rw-r--r--pkgs/tools/misc/capture/default.nix1
-rw-r--r--pkgs/tools/misc/castty/default.nix1
-rw-r--r--pkgs/tools/misc/cc2538-bsl/default.nix1
-rw-r--r--pkgs/tools/misc/cf-terraforming/default.nix1
-rw-r--r--pkgs/tools/misc/cfonts/default.nix1
-rw-r--r--pkgs/tools/misc/chafa/default.nix1
-rw-r--r--pkgs/tools/misc/changelogger/default.nix1
-rw-r--r--pkgs/tools/misc/charasay/default.nix1
-rw-r--r--pkgs/tools/misc/checkpwn/default.nix1
-rw-r--r--pkgs/tools/misc/chef-cli/default.nix1
-rw-r--r--pkgs/tools/misc/chelf/default.nix1
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix1
-rw-r--r--pkgs/tools/misc/cicero-tui/default.nix1
-rw-r--r--pkgs/tools/misc/citron/default.nix1
-rw-r--r--pkgs/tools/misc/clac/default.nix1
-rw-r--r--pkgs/tools/misc/claws/default.nix1
-rw-r--r--pkgs/tools/misc/clematis/default.nix1
-rw-r--r--pkgs/tools/misc/clickclack/default.nix1
-rw-r--r--pkgs/tools/misc/clini/default.nix1
-rw-r--r--pkgs/tools/misc/clipbuzz/default.nix1
-rw-r--r--pkgs/tools/misc/clipnotify/default.nix1
-rw-r--r--pkgs/tools/misc/clipster/default.nix1
-rw-r--r--pkgs/tools/misc/cloc/default.nix1
-rw-r--r--pkgs/tools/misc/clolcat/default.nix1
-rw-r--r--pkgs/tools/misc/clpeak/default.nix1
-rw-r--r--pkgs/tools/misc/cod/default.nix1
-rw-r--r--pkgs/tools/misc/code-minimap/default.nix1
-rw-r--r--pkgs/tools/misc/codebraid/default.nix1
-rw-r--r--pkgs/tools/misc/codemov/default.nix1
-rw-r--r--pkgs/tools/misc/codevis/default.nix1
-rw-r--r--pkgs/tools/misc/coinlive/default.nix1
-rw-r--r--pkgs/tools/misc/colord-gtk/default.nix1
-rw-r--r--pkgs/tools/misc/colorless/default.nix1
-rw-r--r--pkgs/tools/misc/colorz/default.nix1
-rw-r--r--pkgs/tools/misc/compdb/default.nix1
-rw-r--r--pkgs/tools/misc/complete-alias/default.nix1
-rw-r--r--pkgs/tools/misc/completely/default.nix1
-rw-r--r--pkgs/tools/misc/convbin/default.nix1
-rw-r--r--pkgs/tools/misc/convfont/default.nix1
-rw-r--r--pkgs/tools/misc/convimg/default.nix1
-rw-r--r--pkgs/tools/misc/convmv/default.nix1
-rw-r--r--pkgs/tools/misc/copier/default.nix1
-rw-r--r--pkgs/tools/misc/coreboot-configurator/default.nix1
-rw-r--r--pkgs/tools/misc/cp437/default.nix1
-rw-r--r--pkgs/tools/misc/cpufetch/default.nix1
-rw-r--r--pkgs/tools/misc/cpuminer/default.nix1
-rw-r--r--pkgs/tools/misc/crex/default.nix1
-rw-r--r--pkgs/tools/misc/crypto-tracker/default.nix1
-rw-r--r--pkgs/tools/misc/csv2latex/default.nix1
-rw-r--r--pkgs/tools/misc/csv2parquet/default.nix1
-rw-r--r--pkgs/tools/misc/csvs-to-sqlite/default.nix1
-rw-r--r--pkgs/tools/misc/cutecom/default.nix1
-rw-r--r--pkgs/tools/misc/cyclonedx-python/default.nix1
-rw-r--r--pkgs/tools/misc/dabet/default.nix1
-rw-r--r--pkgs/tools/misc/dashing/default.nix1
-rw-r--r--pkgs/tools/misc/datefmt/default.nix1
-rw-r--r--pkgs/tools/misc/dbus-map/default.nix1
-rw-r--r--pkgs/tools/misc/ddate/default.nix1
-rw-r--r--pkgs/tools/misc/ddcutil/default.nix1
-rw-r--r--pkgs/tools/misc/debootstrap/default.nix1
-rw-r--r--pkgs/tools/misc/dgoss/default.nix1
-rw-r--r--pkgs/tools/misc/dialogbox/default.nix1
-rw-r--r--pkgs/tools/misc/didu/default.nix1
-rw-r--r--pkgs/tools/misc/diffoci/default.nix1
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix1
-rw-r--r--pkgs/tools/misc/dijo/default.nix1
-rw-r--r--pkgs/tools/misc/discocss/default.nix1
-rw-r--r--pkgs/tools/misc/disfetch/default.nix1
-rw-r--r--pkgs/tools/misc/diskonaut/default.nix1
-rw-r--r--pkgs/tools/misc/diskscan/default.nix1
-rw-r--r--pkgs/tools/misc/diskus/default.nix1
-rw-r--r--pkgs/tools/misc/djenrandom/default.nix1
-rw-r--r--pkgs/tools/misc/docbook2mdoc/default.nix1
-rw-r--r--pkgs/tools/misc/docker-sync/default.nix1
-rw-r--r--pkgs/tools/misc/docui/default.nix1
-rw-r--r--pkgs/tools/misc/doitlive/default.nix1
-rw-r--r--pkgs/tools/misc/dooit/default.nix1
-rw-r--r--pkgs/tools/misc/dotacat/default.nix1
-rw-r--r--pkgs/tools/misc/dotter/default.nix1
-rw-r--r--pkgs/tools/misc/dtach/default.nix1
-rw-r--r--pkgs/tools/misc/dtool/default.nix1
-rw-r--r--pkgs/tools/misc/dua/default.nix1
-rw-r--r--pkgs/tools/misc/duc/default.nix1
-rw-r--r--pkgs/tools/misc/duf/default.nix1
-rw-r--r--pkgs/tools/misc/dumptorrent/default.nix1
-rw-r--r--pkgs/tools/misc/dupd/default.nix1
-rw-r--r--pkgs/tools/misc/dutree/default.nix1
-rw-r--r--pkgs/tools/misc/dwarf2json/default.nix1
-rw-r--r--pkgs/tools/misc/dwt1-shell-color-scripts/default.nix1
-rw-r--r--pkgs/tools/misc/easeprobe/default.nix1
-rw-r--r--pkgs/tools/misc/edid-decode/default.nix1
-rw-r--r--pkgs/tools/misc/edir/default.nix1
-rw-r--r--pkgs/tools/misc/elfcat/default.nix1
-rw-r--r--pkgs/tools/misc/empty/default.nix1
-rw-r--r--pkgs/tools/misc/emv/default.nix1
-rw-r--r--pkgs/tools/misc/encpipe/default.nix1
-rw-r--r--pkgs/tools/misc/enjarify/default.nix1
-rw-r--r--pkgs/tools/misc/ent/default.nix1
-rw-r--r--pkgs/tools/misc/entr/default.nix1
-rw-r--r--pkgs/tools/misc/enumer/default.nix1
-rw-r--r--pkgs/tools/misc/envchain/default.nix1
-rw-r--r--pkgs/tools/misc/esphome/default.nix1
-rw-r--r--pkgs/tools/misc/esptool-ck/default.nix1
-rw-r--r--pkgs/tools/misc/ethtool/default.nix1
-rw-r--r--pkgs/tools/misc/ets/default.nix1
-rw-r--r--pkgs/tools/misc/eva/default.nix1
-rw-r--r--pkgs/tools/misc/evhz/default.nix1
-rw-r--r--pkgs/tools/misc/f2/default.nix1
-rw-r--r--pkgs/tools/misc/faketty/default.nix1
-rw-r--r--pkgs/tools/misc/fclones/default.nix1
-rw-r--r--pkgs/tools/misc/fcp/default.nix1
-rw-r--r--pkgs/tools/misc/fdupes/default.nix1
-rw-r--r--pkgs/tools/misc/fedifetcher/default.nix1
-rw-r--r--pkgs/tools/misc/fetch-scm/default.nix1
-rw-r--r--pkgs/tools/misc/ffsend/default.nix1
-rw-r--r--pkgs/tools/misc/filebench/default.nix1
-rw-r--r--pkgs/tools/misc/fileschanged/default.nix1
-rw-r--r--pkgs/tools/misc/findup/default.nix1
-rw-r--r--pkgs/tools/misc/flashrom-stable/default.nix1
-rw-r--r--pkgs/tools/misc/flashrom/default.nix1
-rw-r--r--pkgs/tools/misc/flitter/default.nix1
-rw-r--r--pkgs/tools/misc/flowgger/default.nix1
-rw-r--r--pkgs/tools/misc/fltrdr/default.nix1
-rw-r--r--pkgs/tools/misc/font-config-info/default.nix1
-rw-r--r--pkgs/tools/misc/fontfor/default.nix1
-rw-r--r--pkgs/tools/misc/fpp/default.nix1
-rw-r--r--pkgs/tools/misc/fre/default.nix1
-rw-r--r--pkgs/tools/misc/freshfetch/default.nix1
-rw-r--r--pkgs/tools/misc/fselect/default.nix1
-rw-r--r--pkgs/tools/misc/fsmark/default.nix1
-rw-r--r--pkgs/tools/misc/fsmon/default.nix1
-rw-r--r--pkgs/tools/misc/fsql/default.nix1
-rw-r--r--pkgs/tools/misc/fsrx/default.nix1
-rw-r--r--pkgs/tools/misc/fw/default.nix1
-rw-r--r--pkgs/tools/misc/fx-cast-bridge/default.nix1
-rw-r--r--pkgs/tools/misc/fzy/default.nix1
-rw-r--r--pkgs/tools/misc/g203-led/default.nix1
-rw-r--r--pkgs/tools/misc/g933-utils/default.nix1
-rw-r--r--pkgs/tools/misc/gay/default.nix1
-rw-r--r--pkgs/tools/misc/gazelle-origin/default.nix1
-rw-r--r--pkgs/tools/misc/gbdfed/default.nix1
-rw-r--r--pkgs/tools/misc/geteltorito/default.nix1
-rw-r--r--pkgs/tools/misc/getopt/default.nix1
-rw-r--r--pkgs/tools/misc/gh-actions-cache/default.nix1
-rw-r--r--pkgs/tools/misc/gh-cal/default.nix1
-rw-r--r--pkgs/tools/misc/gh-dash/default.nix1
-rw-r--r--pkgs/tools/misc/gh-eco/default.nix1
-rw-r--r--pkgs/tools/misc/gh-markdown-preview/default.nix1
-rw-r--r--pkgs/tools/misc/gh-ost/default.nix1
-rw-r--r--pkgs/tools/misc/ghostie/default.nix1
-rw-r--r--pkgs/tools/misc/gibo/default.nix1
-rw-r--r--pkgs/tools/misc/gif-for-cli/default.nix1
-rw-r--r--pkgs/tools/misc/gigalixir/default.nix1
-rw-r--r--pkgs/tools/misc/github-backup/default.nix1
-rw-r--r--pkgs/tools/misc/github-copilot-cli/default.nix1
-rw-r--r--pkgs/tools/misc/glasgow/default.nix1
-rw-r--r--pkgs/tools/misc/go-ios/default.nix1
-rw-r--r--pkgs/tools/misc/goaccess/default.nix1
-rw-r--r--pkgs/tools/misc/godu/default.nix1
-rw-r--r--pkgs/tools/misc/gomi/default.nix1
-rw-r--r--pkgs/tools/misc/goose/default.nix1
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix1
-rw-r--r--pkgs/tools/misc/gotify-desktop/default.nix1
-rw-r--r--pkgs/tools/misc/gparted/default.nix1
-rw-r--r--pkgs/tools/misc/gpick/default.nix1
-rw-r--r--pkgs/tools/misc/grafterm/default.nix1
-rw-r--r--pkgs/tools/misc/grass-sass/default.nix1
-rw-r--r--pkgs/tools/misc/grit/default.nix1
-rw-r--r--pkgs/tools/misc/grizzly/default.nix1
-rw-r--r--pkgs/tools/misc/gti/default.nix1
-rw-r--r--pkgs/tools/misc/gwe/default.nix1
-rw-r--r--pkgs/tools/misc/hackertyper/default.nix1
-rw-r--r--pkgs/tools/misc/hacksaw/default.nix1
-rw-r--r--pkgs/tools/misc/hakuneko/default.nix1
-rw-r--r--pkgs/tools/misc/halp/default.nix1
-rw-r--r--pkgs/tools/misc/handlr-regex/default.nix1
-rw-r--r--pkgs/tools/misc/handlr/default.nix1
-rw-r--r--pkgs/tools/misc/hashpump/default.nix1
-rw-r--r--pkgs/tools/misc/haste-client/default.nix1
-rw-r--r--pkgs/tools/misc/hdaps-gl/default.nix1
-rw-r--r--pkgs/tools/misc/hddtemp/default.nix1
-rw-r--r--pkgs/tools/misc/hdfview/default.nix1
-rw-r--r--pkgs/tools/misc/hebcal/default.nix1
-rw-r--r--pkgs/tools/misc/heimdall/default.nix1
-rw-r--r--pkgs/tools/misc/hexd/default.nix1
-rw-r--r--pkgs/tools/misc/hexdiff/default.nix1
-rw-r--r--pkgs/tools/misc/hexyl/default.nix1
-rw-r--r--pkgs/tools/misc/hhpc/default.nix1
-rw-r--r--pkgs/tools/misc/hid-listen/default.nix1
-rw-r--r--pkgs/tools/misc/hidrd/default.nix1
-rw-r--r--pkgs/tools/misc/homesick/default.nix1
-rw-r--r--pkgs/tools/misc/hpcg/default.nix1
-rw-r--r--pkgs/tools/misc/hpl/default.nix1
-rw-r--r--pkgs/tools/misc/html-proofer/default.nix1
-rw-r--r--pkgs/tools/misc/hueadm/default.nix1
-rw-r--r--pkgs/tools/misc/hunt/default.nix1
-rw-r--r--pkgs/tools/misc/hwatch/default.nix1
-rw-r--r--pkgs/tools/misc/hyperfine/default.nix1
-rw-r--r--pkgs/tools/misc/i3nator/default.nix1
-rw-r--r--pkgs/tools/misc/iay/default.nix1
-rw-r--r--pkgs/tools/misc/ibus-theme-tools/default.nix1
-rw-r--r--pkgs/tools/misc/ical2orgpy/default.nix1
-rw-r--r--pkgs/tools/misc/ictree/default.nix1
-rw-r--r--pkgs/tools/misc/ideviceinstaller/default.nix1
-rw-r--r--pkgs/tools/misc/idevicerestore/default.nix1
-rw-r--r--pkgs/tools/misc/ikill/default.nix1
-rw-r--r--pkgs/tools/misc/ili2c/default.nix1
-rw-r--r--pkgs/tools/misc/infracost/default.nix1
-rw-r--r--pkgs/tools/misc/ink/default.nix1
-rw-r--r--pkgs/tools/misc/inklingreader/default.nix1
-rw-r--r--pkgs/tools/misc/inspec/default.nix1
-rw-r--r--pkgs/tools/misc/instaloader/default.nix1
-rw-r--r--pkgs/tools/misc/invoice/default.nix1
-rw-r--r--pkgs/tools/misc/iotools/default.nix1
-rw-r--r--pkgs/tools/misc/ipad_charge/default.nix1
-rw-r--r--pkgs/tools/misc/ipbt/default.nix1
-rw-r--r--pkgs/tools/misc/ised/default.nix1
-rw-r--r--pkgs/tools/misc/isoimagewriter/default.nix1
-rw-r--r--pkgs/tools/misc/ix/default.nix1
-rw-r--r--pkgs/tools/misc/jdiskreport/default.nix1
-rw-r--r--pkgs/tools/misc/jdupes/default.nix1
-rw-r--r--pkgs/tools/misc/journaldriver/default.nix1
-rw-r--r--pkgs/tools/misc/jsonwatch/default.nix1
-rw-r--r--pkgs/tools/misc/jstest-gtk/default.nix1
-rw-r--r--pkgs/tools/misc/jugglinglab/default.nix1
-rw-r--r--pkgs/tools/misc/kak-lsp/default.nix1
-rw-r--r--pkgs/tools/misc/kalker/default.nix1
-rw-r--r--pkgs/tools/misc/kargo/default.nix1
-rw-r--r--pkgs/tools/misc/kb/default.nix1
-rw-r--r--pkgs/tools/misc/kcollectd/default.nix1
-rw-r--r--pkgs/tools/misc/keychain/default.nix1
-rw-r--r--pkgs/tools/misc/keymapviz/default.nix1
-rw-r--r--pkgs/tools/misc/kicli/default.nix1
-rw-r--r--pkgs/tools/misc/killport/default.nix1
-rw-r--r--pkgs/tools/misc/kitty-img/default.nix1
-rw-r--r--pkgs/tools/misc/krapslog/default.nix1
-rw-r--r--pkgs/tools/misc/kronometer/default.nix1
-rw-r--r--pkgs/tools/misc/ksnip/default.nix1
-rw-r--r--pkgs/tools/misc/kt/default.nix1
-rw-r--r--pkgs/tools/misc/lavat/default.nix1
-rw-r--r--pkgs/tools/misc/lazycli/default.nix1
-rw-r--r--pkgs/tools/misc/lazydocker/default.nix1
-rw-r--r--pkgs/tools/misc/ldapvi/default.nix1
-rw-r--r--pkgs/tools/misc/ldmtool/default.nix1
-rw-r--r--pkgs/tools/misc/leanify/default.nix1
-rw-r--r--pkgs/tools/misc/ledit/default.nix1
-rw-r--r--pkgs/tools/misc/lemmeknow/default.nix1
-rw-r--r--pkgs/tools/misc/lemmy-help/default.nix1
-rw-r--r--pkgs/tools/misc/lerpn/default.nix1
-rw-r--r--pkgs/tools/misc/libgen-cli/default.nix1
-rw-r--r--pkgs/tools/misc/librespeed-cli/default.nix1
-rw-r--r--pkgs/tools/misc/lice/default.nix1
-rw-r--r--pkgs/tools/misc/license-generator/default.nix1
-rw-r--r--pkgs/tools/misc/lighthouse-steamvr/default.nix1
-rw-r--r--pkgs/tools/misc/limitcpu/default.nix1
-rw-r--r--pkgs/tools/misc/lineselect/default.nix1
-rw-r--r--pkgs/tools/misc/lipl/default.nix1
-rw-r--r--pkgs/tools/misc/livedl/default.nix1
-rw-r--r--pkgs/tools/misc/lnav/default.nix1
-rw-r--r--pkgs/tools/misc/lnch/default.nix1
-rw-r--r--pkgs/tools/misc/loadlibrary/default.nix1
-rw-r--r--pkgs/tools/misc/locate-dominating-file/default.nix1
-rw-r--r--pkgs/tools/misc/logtop/default.nix1
-rw-r--r--pkgs/tools/misc/lolcat/default.nix1
-rw-r--r--pkgs/tools/misc/lorri/default.nix1
-rw-r--r--pkgs/tools/misc/lottieconverter/default.nix1
-rw-r--r--pkgs/tools/misc/lsd/default.nix1
-rw-r--r--pkgs/tools/misc/ltunify/default.nix1
-rw-r--r--pkgs/tools/misc/lwc/default.nix1
-rw-r--r--pkgs/tools/misc/macchina/default.nix1
-rw-r--r--pkgs/tools/misc/mailman-rss/default.nix1
-rw-r--r--pkgs/tools/misc/makebootfat/default.nix1
-rw-r--r--pkgs/tools/misc/mandown/default.nix1
-rw-r--r--pkgs/tools/misc/manga-cli/default.nix1
-rw-r--r--pkgs/tools/misc/mapcidr/default.nix1
-rw-r--r--pkgs/tools/misc/markdown-anki-decks/default.nix1
-rw-r--r--pkgs/tools/misc/marlin-calc/default.nix1
-rw-r--r--pkgs/tools/misc/massren/default.nix1
-rw-r--r--pkgs/tools/misc/mastotool/default.nix1
-rw-r--r--pkgs/tools/misc/mathpix-snipping-tool/default.nix1
-rw-r--r--pkgs/tools/misc/mbuffer/default.nix1
-rw-r--r--pkgs/tools/misc/mcfly/default.nix1
-rw-r--r--pkgs/tools/misc/mdr/default.nix1
-rw-r--r--pkgs/tools/misc/mdslides/default.nix1
-rw-r--r--pkgs/tools/misc/me_cleaner/default.nix1
-rw-r--r--pkgs/tools/misc/megacli/default.nix1
-rw-r--r--pkgs/tools/misc/melody/default.nix1
-rw-r--r--pkgs/tools/misc/mermaid-filter/default.nix1
-rw-r--r--pkgs/tools/misc/mimeo/default.nix1
-rw-r--r--pkgs/tools/misc/minipro/default.nix1
-rw-r--r--pkgs/tools/misc/miniserve/default.nix1
-rw-r--r--pkgs/tools/misc/ministat/default.nix1
-rw-r--r--pkgs/tools/misc/mktorrent/default.nix1
-rw-r--r--pkgs/tools/misc/mloader/default.nix1
-rw-r--r--pkgs/tools/misc/mmake/default.nix1
-rw-r--r--pkgs/tools/misc/mmctl/default.nix1
-rw-r--r--pkgs/tools/misc/mnc/default.nix1
-rw-r--r--pkgs/tools/misc/mods/default.nix1
-rw-r--r--pkgs/tools/misc/mongodb-compass/default.nix1
-rw-r--r--pkgs/tools/misc/mons/default.nix1
-rw-r--r--pkgs/tools/misc/moon-phases/default.nix1
-rw-r--r--pkgs/tools/misc/moserial/default.nix1
-rw-r--r--pkgs/tools/misc/most/default.nix1
-rw-r--r--pkgs/tools/misc/mpdscribble/default.nix1
-rw-r--r--pkgs/tools/misc/mpremote/default.nix1
-rw-r--r--pkgs/tools/misc/mprime/default.nix1
-rw-r--r--pkgs/tools/misc/mprocs/default.nix1
-rw-r--r--pkgs/tools/misc/ms-sys/default.nix1
-rw-r--r--pkgs/tools/misc/mslink/default.nix1
-rw-r--r--pkgs/tools/misc/mtm/default.nix1
-rw-r--r--pkgs/tools/misc/multitail/default.nix1
-rw-r--r--pkgs/tools/misc/multitime/default.nix1
-rw-r--r--pkgs/tools/misc/mutagen-compose/default.nix1
-rw-r--r--pkgs/tools/misc/mvebu64boot/default.nix1
-rw-r--r--pkgs/tools/misc/mysqltuner/default.nix1
-rw-r--r--pkgs/tools/misc/natls/default.nix1
-rw-r--r--pkgs/tools/misc/nb/default.nix1
-rw-r--r--pkgs/tools/misc/nbench/default.nix1
-rw-r--r--pkgs/tools/misc/nbqa/default.nix1
-rw-r--r--pkgs/tools/misc/nginx-config-formatter/default.nix1
-rw-r--r--pkgs/tools/misc/nitch/default.nix1
-rw-r--r--pkgs/tools/misc/nomino/default.nix1
-rw-r--r--pkgs/tools/misc/noteshrink/default.nix1
-rw-r--r--pkgs/tools/misc/noti/default.nix1
-rw-r--r--pkgs/tools/misc/notify/default.nix1
-rw-r--r--pkgs/tools/misc/ntfy/default.nix1
-rw-r--r--pkgs/tools/misc/nux/default.nix1
-rw-r--r--pkgs/tools/misc/nvfancontrol/default.nix1
-rw-r--r--pkgs/tools/misc/nvimpager/default.nix1
-rw-r--r--pkgs/tools/misc/nyancat/default.nix1
-rw-r--r--pkgs/tools/misc/ocs-url/default.nix1
-rw-r--r--pkgs/tools/misc/octofetch/default.nix1
-rw-r--r--pkgs/tools/misc/octosql/default.nix1
-rw-r--r--pkgs/tools/misc/odyssey/default.nix1
-rw-r--r--pkgs/tools/misc/ondir/default.nix1
-rw-r--r--pkgs/tools/misc/onefetch/default.nix1
-rw-r--r--pkgs/tools/misc/open-pdf-sign/default.nix1
-rw-r--r--pkgs/tools/misc/opencorsairlink/default.nix1
-rw-r--r--pkgs/tools/misc/opentsdb/default.nix1
-rw-r--r--pkgs/tools/misc/org-stats/default.nix1
-rw-r--r--pkgs/tools/misc/otel-cli/default.nix1
-rw-r--r--pkgs/tools/misc/owofetch/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-acro/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-drawio-filter/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-eqnos/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-fignos/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-imagine/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-include/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-katex/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-plantuml-filter/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-secnos/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-tablenos/default.nix1
-rw-r--r--pkgs/tools/misc/panicparse/default.nix1
-rw-r--r--pkgs/tools/misc/panoply/default.nix1
-rw-r--r--pkgs/tools/misc/paperlike-go/default.nix1
-rw-r--r--pkgs/tools/misc/paps/default.nix1
-rw-r--r--pkgs/tools/misc/parcellite/default.nix1
-rw-r--r--pkgs/tools/misc/parquet-tools/default.nix1
-rw-r--r--pkgs/tools/misc/partition-manager/default.nix1
-rw-r--r--pkgs/tools/misc/past-time/default.nix1
-rw-r--r--pkgs/tools/misc/pastebinit/default.nix1
-rw-r--r--pkgs/tools/misc/pazi/default.nix1
-rw-r--r--pkgs/tools/misc/pb_cli/default.nix1
-rw-r--r--pkgs/tools/misc/pcp/default.nix1
-rw-r--r--pkgs/tools/misc/pdd/default.nix1
-rw-r--r--pkgs/tools/misc/pdf-parser/default.nix1
-rw-r--r--pkgs/tools/misc/peep/default.nix1
-rw-r--r--pkgs/tools/misc/pferd/default.nix1
-rw-r--r--pkgs/tools/misc/pfetch-rs/default.nix1
-rw-r--r--pkgs/tools/misc/pfetch/default.nix1
-rw-r--r--pkgs/tools/misc/pfsshell/default.nix1
-rw-r--r--pkgs/tools/misc/pg_flame/default.nix1
-rw-r--r--pkgs/tools/misc/pg_top/default.nix1
-rw-r--r--pkgs/tools/misc/pgbadger/default.nix1
-rw-r--r--pkgs/tools/misc/pgcenter/default.nix1
-rw-r--r--pkgs/tools/misc/pgmetrics/default.nix1
-rw-r--r--pkgs/tools/misc/phoronix-test-suite/default.nix1
-rw-r--r--pkgs/tools/misc/pick/default.nix1
-rw-r--r--pkgs/tools/misc/picocom/default.nix1
-rw-r--r--pkgs/tools/misc/pipectl/default.nix1
-rw-r--r--pkgs/tools/misc/pipelight/default.nix1
-rw-r--r--pkgs/tools/misc/pipreqs/default.nix1
-rw-r--r--pkgs/tools/misc/pistol/default.nix1
-rw-r--r--pkgs/tools/misc/piston-cli/default.nix1
-rw-r--r--pkgs/tools/misc/pixd/default.nix1
-rw-r--r--pkgs/tools/misc/pk2cmd/default.nix1
-rw-r--r--pkgs/tools/misc/pkgdiff/default.nix1
-rw-r--r--pkgs/tools/misc/pkgtop/default.nix1
-rw-r--r--pkgs/tools/misc/plantuml/default.nix1
-rw-r--r--pkgs/tools/misc/pmbootstrap/default.nix1
-rw-r--r--pkgs/tools/misc/pod2mdoc/default.nix1
-rw-r--r--pkgs/tools/misc/poop/default.nix1
-rw-r--r--pkgs/tools/misc/portal/default.nix1
-rw-r--r--pkgs/tools/misc/pouf/default.nix1
-rw-r--r--pkgs/tools/misc/poweralertd/default.nix1
-rw-r--r--pkgs/tools/misc/powerline-rs/default.nix1
-rw-r--r--pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix1
-rw-r--r--pkgs/tools/misc/pre-commit/default.nix1
-rw-r--r--pkgs/tools/misc/precice-config-visualizer/default.nix1
-rw-r--r--pkgs/tools/misc/present-cli/default.nix1
-rw-r--r--pkgs/tools/misc/pridecat/default.nix1
-rw-r--r--pkgs/tools/misc/pridefetch/default.nix1
-rw-r--r--pkgs/tools/misc/procyon/default.nix1
-rw-r--r--pkgs/tools/misc/profetch/default.nix1
-rw-r--r--pkgs/tools/misc/progress/default.nix1
-rw-r--r--pkgs/tools/misc/promexplorer/default.nix1
-rw-r--r--pkgs/tools/misc/promql-cli/default.nix1
-rw-r--r--pkgs/tools/misc/proximity-sort/default.nix1
-rw-r--r--pkgs/tools/misc/pspg/default.nix1
-rw-r--r--pkgs/tools/misc/psql2csv/default.nix1
-rw-r--r--pkgs/tools/misc/psrecord/default.nix1
-rw-r--r--pkgs/tools/misc/pv/default.nix1
-rw-r--r--pkgs/tools/misc/pws/default.nix1
-rw-r--r--pkgs/tools/misc/q-text-as-data/default.nix1
-rw-r--r--pkgs/tools/misc/qdl/default.nix1
-rw-r--r--pkgs/tools/misc/qjoypad/default.nix1
-rw-r--r--pkgs/tools/misc/qmk/default.nix1
-rw-r--r--pkgs/tools/misc/qmk_hid/default.nix1
-rw-r--r--pkgs/tools/misc/qt5ct/default.nix1
-rw-r--r--pkgs/tools/misc/qt6ct/default.nix1
-rw-r--r--pkgs/tools/misc/quich/default.nix1
-rw-r--r--pkgs/tools/misc/radeon-profile/default.nix1
-rw-r--r--pkgs/tools/misc/ramfetch/default.nix1
-rw-r--r--pkgs/tools/misc/rargs/default.nix1
-rw-r--r--pkgs/tools/misc/rates/default.nix1
-rw-r--r--pkgs/tools/misc/rauc/default.nix1
-rw-r--r--pkgs/tools/misc/rename/default.nix1
-rw-r--r--pkgs/tools/misc/rfc/default.nix1
-rw-r--r--pkgs/tools/misc/rig/default.nix1
-rw-r--r--pkgs/tools/misc/ripdrag/default.nix1
-rw-r--r--pkgs/tools/misc/ristate/default.nix1
-rw-r--r--pkgs/tools/misc/rlwrap/default.nix1
-rw-r--r--pkgs/tools/misc/rmate-sh/default.nix1
-rw-r--r--pkgs/tools/misc/rmlint/default.nix1
-rw-r--r--pkgs/tools/misc/rmw/default.nix1
-rw-r--r--pkgs/tools/misc/roundup/default.nix1
-rw-r--r--pkgs/tools/misc/rpcsvc-proto/default.nix1
-rw-r--r--pkgs/tools/misc/rpm-ostree/default.nix1
-rw-r--r--pkgs/tools/misc/rtz/default.nix1
-rw-r--r--pkgs/tools/misc/rust-motd/default.nix1
-rw-r--r--pkgs/tools/misc/rw/default.nix1
-rw-r--r--pkgs/tools/misc/sagoin/default.nix1
-rw-r--r--pkgs/tools/misc/sanctity/default.nix1
-rw-r--r--pkgs/tools/misc/savepagenow/default.nix1
-rw-r--r--pkgs/tools/misc/scdl/default.nix1
-rw-r--r--pkgs/tools/misc/scfbuild/default.nix1
-rw-r--r--pkgs/tools/misc/screenfetch/default.nix1
-rw-r--r--pkgs/tools/misc/scrub/default.nix1
-rw-r--r--pkgs/tools/misc/sd-mux-ctrl/default.nix1
-rw-r--r--pkgs/tools/misc/sdate/default.nix1
-rw-r--r--pkgs/tools/misc/see/default.nix1
-rw-r--r--pkgs/tools/misc/semiphemeral/default.nix1
-rw-r--r--pkgs/tools/misc/serverspec/default.nix1
-rw-r--r--pkgs/tools/misc/setconf/default.nix1
-rw-r--r--pkgs/tools/misc/sfz/default.nix1
-rw-r--r--pkgs/tools/misc/shadowenv/default.nix1
-rw-r--r--pkgs/tools/misc/shallot/default.nix1
-rw-r--r--pkgs/tools/misc/sharedown/default.nix1
-rw-r--r--pkgs/tools/misc/sheldon/default.nix1
-rw-r--r--pkgs/tools/misc/shell-hist/default.nix1
-rw-r--r--pkgs/tools/misc/shelldap/default.nix1
-rw-r--r--pkgs/tools/misc/shellspec/default.nix1
-rw-r--r--pkgs/tools/misc/shunit2/default.nix1
-rw-r--r--pkgs/tools/misc/silicon/default.nix1
-rw-r--r--pkgs/tools/misc/sixpair/default.nix1
-rw-r--r--pkgs/tools/misc/sl/default.nix1
-rw-r--r--pkgs/tools/misc/slop/default.nix1
-rw-r--r--pkgs/tools/misc/sloth/default.nix1
-rw-r--r--pkgs/tools/misc/slsnif/default.nix1
-rw-r--r--pkgs/tools/misc/smc/default.nix1
-rw-r--r--pkgs/tools/misc/smenu/default.nix1
-rw-r--r--pkgs/tools/misc/smug/default.nix1
-rw-r--r--pkgs/tools/misc/snore/default.nix1
-rw-r--r--pkgs/tools/misc/sonota/default.nix1
-rw-r--r--pkgs/tools/misc/spacer/default.nix1
-rw-r--r--pkgs/tools/misc/sqlite3-to-mysql/default.nix1
-rw-r--r--pkgs/tools/misc/srisum/default.nix1
-rw-r--r--pkgs/tools/misc/star-history/default.nix1
-rw-r--r--pkgs/tools/misc/starfetch/default.nix1
-rw-r--r--pkgs/tools/misc/staruml/default.nix1
-rw-r--r--pkgs/tools/misc/statserial/default.nix1
-rw-r--r--pkgs/tools/misc/subberthehut/default.nix1
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix1
-rw-r--r--pkgs/tools/misc/svu/default.nix1
-rw-r--r--pkgs/tools/misc/swaglyrics/default.nix1
-rw-r--r--pkgs/tools/misc/systrayhelper/default.nix1
-rw-r--r--pkgs/tools/misc/sysz/default.nix1
-rw-r--r--pkgs/tools/misc/szyszka/default.nix1
-rw-r--r--pkgs/tools/misc/t/default.nix1
-rw-r--r--pkgs/tools/misc/tagref/default.nix1
-rw-r--r--pkgs/tools/misc/tailer/default.nix1
-rw-r--r--pkgs/tools/misc/tbls/default.nix1
-rw-r--r--pkgs/tools/misc/tcat/default.nix1
-rw-r--r--pkgs/tools/misc/td/default.nix1
-rw-r--r--pkgs/tools/misc/tdfgo/default.nix1
-rw-r--r--pkgs/tools/misc/tea/default.nix1
-rw-r--r--pkgs/tools/misc/teamocil/default.nix1
-rw-r--r--pkgs/tools/misc/tensorman/default.nix1
-rw-r--r--pkgs/tools/misc/tere/default.nix1
-rw-r--r--pkgs/tools/misc/termplay/default.nix1
-rw-r--r--pkgs/tools/misc/termtosvg/default.nix1
-rw-r--r--pkgs/tools/misc/tewisay/default.nix1
-rw-r--r--pkgs/tools/misc/texi2mdoc/default.nix1
-rw-r--r--pkgs/tools/misc/tfk8s/default.nix1
-rw-r--r--pkgs/tools/misc/tgpt/default.nix1
-rw-r--r--pkgs/tools/misc/time-decode/default.nix1
-rw-r--r--pkgs/tools/misc/timelimit/default.nix1
-rw-r--r--pkgs/tools/misc/timer/default.nix1
-rw-r--r--pkgs/tools/misc/timetagger_cli/default.nix1
-rw-r--r--pkgs/tools/misc/timidity/default.nix1
-rw-r--r--pkgs/tools/misc/tio/default.nix1
-rw-r--r--pkgs/tools/misc/tldr/default.nix1
-rw-r--r--pkgs/tools/misc/tmate/default.nix1
-rw-r--r--pkgs/tools/misc/tmpwatch/default.nix1
-rw-r--r--pkgs/tools/misc/tmux-cssh/default.nix1
-rw-r--r--pkgs/tools/misc/tmux-mem-cpu-load/default.nix1
-rw-r--r--pkgs/tools/misc/tmux-sessionizer/default.nix1
-rw-r--r--pkgs/tools/misc/tmuxinator/default.nix1
-rw-r--r--pkgs/tools/misc/tmuxp/default.nix1
-rw-r--r--pkgs/tools/misc/toastify/default.nix1
-rw-r--r--pkgs/tools/misc/toilet/default.nix1
-rw-r--r--pkgs/tools/misc/topgrade/default.nix1
-rw-r--r--pkgs/tools/misc/topicctl/default.nix1
-rw-r--r--pkgs/tools/misc/torrenttools/default.nix1
-rw-r--r--pkgs/tools/misc/traefik-certs-dumper/default.nix1
-rw-r--r--pkgs/tools/misc/triehash/default.nix1
-rw-r--r--pkgs/tools/misc/ttchat/default.nix1
-rw-r--r--pkgs/tools/misc/ttmkfdir/default.nix1
-rw-r--r--pkgs/tools/misc/tty-clock/default.nix1
-rw-r--r--pkgs/tools/misc/ttygif/default.nix1
-rw-r--r--pkgs/tools/misc/ttylog/default.nix1
-rw-r--r--pkgs/tools/misc/ttyplot/default.nix1
-rw-r--r--pkgs/tools/misc/tvnamer/default.nix1
-rw-r--r--pkgs/tools/misc/twitch-dl/default.nix1
-rw-r--r--pkgs/tools/misc/twm/default.nix1
-rw-r--r--pkgs/tools/misc/twspace-crawler/default.nix1
-rw-r--r--pkgs/tools/misc/twurl/default.nix1
-rw-r--r--pkgs/tools/misc/txtw/default.nix1
-rw-r--r--pkgs/tools/misc/tydra/default.nix1
-rw-r--r--pkgs/tools/misc/tz/default.nix1
-rw-r--r--pkgs/tools/misc/ugs/default.nix1
-rw-r--r--pkgs/tools/misc/uhubctl/default.nix1
-rw-r--r--pkgs/tools/misc/umlet/default.nix1
-rw-r--r--pkgs/tools/misc/unclutter/default.nix1
-rw-r--r--pkgs/tools/misc/undocker/default.nix1
-rw-r--r--pkgs/tools/misc/unparam/default.nix1
-rw-r--r--pkgs/tools/misc/up/default.nix1
-rw-r--r--pkgs/tools/misc/url-parser/default.nix1
-rw-r--r--pkgs/tools/misc/urlencode/default.nix1
-rw-r--r--pkgs/tools/misc/usbimager/default.nix1
-rw-r--r--pkgs/tools/misc/usbmuxd/default.nix1
-rw-r--r--pkgs/tools/misc/usbmuxd2/default.nix1
-rw-r--r--pkgs/tools/misc/usbview/default.nix1
-rw-r--r--pkgs/tools/misc/uwufetch/default.nix1
-rw-r--r--pkgs/tools/misc/uwuify/default.nix1
-rw-r--r--pkgs/tools/misc/valeronoi/default.nix1
-rw-r--r--pkgs/tools/misc/vcs_query/default.nix1
-rw-r--r--pkgs/tools/misc/veikk-linux-driver-gui/default.nix1
-rw-r--r--pkgs/tools/misc/via/default.nix1
-rw-r--r--pkgs/tools/misc/viddy/default.nix1
-rw-r--r--pkgs/tools/misc/vimer/default.nix1
-rw-r--r--pkgs/tools/misc/vimwiki-markdown/default.nix1
-rw-r--r--pkgs/tools/misc/vivid/default.nix1
-rw-r--r--pkgs/tools/misc/vix/default.nix1
-rw-r--r--pkgs/tools/misc/vmtouch/default.nix1
-rw-r--r--pkgs/tools/misc/void/default.nix1
-rw-r--r--pkgs/tools/misc/vorbisgain/default.nix1
-rw-r--r--pkgs/tools/misc/vrc-get/default.nix1
-rw-r--r--pkgs/tools/misc/vsh/default.nix1
-rw-r--r--pkgs/tools/misc/vtm/default.nix1
-rw-r--r--pkgs/tools/misc/vttest/default.nix1
-rw-r--r--pkgs/tools/misc/wagyu/default.nix1
-rw-r--r--pkgs/tools/misc/wakapi/default.nix1
-rw-r--r--pkgs/tools/misc/wasm-tools/default.nix1
-rw-r--r--pkgs/tools/misc/watchexec/default.nix1
-rw-r--r--pkgs/tools/misc/wayback-machine-archiver/default.nix1
-rw-r--r--pkgs/tools/misc/waylevel/default.nix1
-rw-r--r--pkgs/tools/misc/webcat/default.nix1
-rw-r--r--pkgs/tools/misc/websocat/default.nix1
-rw-r--r--pkgs/tools/misc/wemux/default.nix1
-rw-r--r--pkgs/tools/misc/wlc/default.nix1
-rw-r--r--pkgs/tools/misc/woeusb/default.nix1
-rw-r--r--pkgs/tools/misc/woof/default.nix1
-rw-r--r--pkgs/tools/misc/wootility/default.nix1
-rw-r--r--pkgs/tools/misc/wsl-open/default.nix1
-rw-r--r--pkgs/tools/misc/wwcd/default.nix1
-rw-r--r--pkgs/tools/misc/wyrd/default.nix1
-rw-r--r--pkgs/tools/misc/x11idle/default.nix1
-rw-r--r--pkgs/tools/misc/xcd/default.nix1
-rw-r--r--pkgs/tools/misc/xcp/default.nix1
-rw-r--r--pkgs/tools/misc/xdaliclock/default.nix1
-rw-r--r--pkgs/tools/misc/xdg-ninja/default.nix1
-rw-r--r--pkgs/tools/misc/xdiskusage/default.nix1
-rw-r--r--pkgs/tools/misc/xdo/default.nix1
-rw-r--r--pkgs/tools/misc/xdxf2slob/default.nix1
-rw-r--r--pkgs/tools/misc/xflux/default.nix1
-rw-r--r--pkgs/tools/misc/xfstests/default.nix1
-rw-r--r--pkgs/tools/misc/xiccd/default.nix1
-rw-r--r--pkgs/tools/misc/xilinx-bootgen/default.nix1
-rw-r--r--pkgs/tools/misc/xjobs/default.nix1
-rw-r--r--pkgs/tools/misc/xmonad-log/default.nix1
-rw-r--r--pkgs/tools/misc/xq/default.nix1
-rw-r--r--pkgs/tools/misc/xtitle/default.nix1
-rw-r--r--pkgs/tools/misc/xxv/default.nix1
-rw-r--r--pkgs/tools/misc/yafetch/default.nix1
-rw-r--r--pkgs/tools/misc/yai/default.nix1
-rw-r--r--pkgs/tools/misc/yajsv/default.nix1
-rw-r--r--pkgs/tools/misc/yank/default.nix1
-rw-r--r--pkgs/tools/misc/yle-dl/default.nix1
-rw-r--r--pkgs/tools/misc/you-get/default.nix1
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix1
-rw-r--r--pkgs/tools/misc/ytarchive/default.nix1
-rw-r--r--pkgs/tools/misc/ytcast/default.nix1
-rw-r--r--pkgs/tools/misc/ytfzf/default.nix1
-rw-r--r--pkgs/tools/misc/ytmdl/default.nix1
-rw-r--r--pkgs/tools/misc/yubico-piv-tool/default.nix1
-rw-r--r--pkgs/tools/misc/yubikey-personalization-gui/default.nix1
-rw-r--r--pkgs/tools/misc/yutto/default.nix1
-rw-r--r--pkgs/tools/misc/zabbixctl/default.nix1
-rw-r--r--pkgs/tools/misc/zalgo/default.nix1
-rw-r--r--pkgs/tools/misc/zf/default.nix1
-rw-r--r--pkgs/tools/misc/zitadel-tools/default.nix1
-rw-r--r--pkgs/tools/misc/zotero-translation-server/default.nix1
-rw-r--r--pkgs/tools/misc/zsh-history-to-fish/default.nix1
-rw-r--r--pkgs/tools/misc/zthrottle/default.nix1
-rw-r--r--pkgs/tools/package-management/akku/default.nix1
-rw-r--r--pkgs/tools/package-management/apk-tools/default.nix1
-rw-r--r--pkgs/tools/package-management/apkg/default.nix1
-rw-r--r--pkgs/tools/package-management/apx/default.nix1
-rw-r--r--pkgs/tools/package-management/ciel/default.nix1
-rw-r--r--pkgs/tools/package-management/elm-github-install/default.nix1
-rw-r--r--pkgs/tools/package-management/emplace/default.nix1
-rw-r--r--pkgs/tools/package-management/fortran-fpm/default.nix1
-rw-r--r--pkgs/tools/package-management/fpm/default.nix1
-rw-r--r--pkgs/tools/package-management/fusesoc/default.nix1
-rw-r--r--pkgs/tools/package-management/gx/default.nix1
-rw-r--r--pkgs/tools/package-management/holo-build/default.nix1
-rw-r--r--pkgs/tools/package-management/home-manager/default.nix1
-rw-r--r--pkgs/tools/package-management/licensee/default.nix1
-rw-r--r--pkgs/tools/package-management/microdnf/default.nix1
-rw-r--r--pkgs/tools/package-management/morph/default.nix1
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix1
-rw-r--r--pkgs/tools/package-management/niff/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-doc/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-du/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-eval-jobs/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-pin/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-prefetch/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-serve/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-simple-deploy/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-template/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-top/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-universal-prefetch/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-update-source/default.nix1
-rw-r--r--pkgs/tools/package-management/pacup/default.nix1
-rw-r--r--pkgs/tools/package-management/pkg/default.nix1
-rw-r--r--pkgs/tools/package-management/poetry/unwrapped.nix1
-rw-r--r--pkgs/tools/package-management/poetry2conda/default.nix1
-rw-r--r--pkgs/tools/package-management/repro-get/default.nix1
-rw-r--r--pkgs/tools/package-management/reuse/default.nix1
-rw-r--r--pkgs/tools/package-management/smlpkg/default.nix1
-rw-r--r--pkgs/tools/package-management/yarn-lock-converter/default.nix1
-rw-r--r--pkgs/tools/system/actkbd/default.nix1
-rw-r--r--pkgs/tools/system/amdgpu_top/default.nix1
-rw-r--r--pkgs/tools/system/automatic-timezoned/default.nix1
-rw-r--r--pkgs/tools/system/awstats/default.nix1
-rw-r--r--pkgs/tools/system/bar/default.nix1
-rw-r--r--pkgs/tools/system/btop/default.nix1
-rw-r--r--pkgs/tools/system/chase/default.nix1
-rw-r--r--pkgs/tools/system/clinfo/default.nix1
-rw-r--r--pkgs/tools/system/colorls/default.nix1
-rw-r--r--pkgs/tools/system/confd/default.nix1
-rw-r--r--pkgs/tools/system/ctop/default.nix1
-rw-r--r--pkgs/tools/system/daemon/default.nix1
-rw-r--r--pkgs/tools/system/daemonize/default.nix1
-rw-r--r--pkgs/tools/system/datefudge/default.nix1
-rw-r--r--pkgs/tools/system/dcfldd/default.nix1
-rw-r--r--pkgs/tools/system/ddh/default.nix1
-rw-r--r--pkgs/tools/system/ddrescueview/default.nix1
-rw-r--r--pkgs/tools/system/dfc/default.nix1
-rw-r--r--pkgs/tools/system/dfrs/default.nix1
-rw-r--r--pkgs/tools/system/disk-filltest/default.nix1
-rw-r--r--pkgs/tools/system/dog/default.nix1
-rw-r--r--pkgs/tools/system/dool/default.nix1
-rw-r--r--pkgs/tools/system/envconsul/default.nix1
-rw-r--r--pkgs/tools/system/epilys-bb/default.nix1
-rw-r--r--pkgs/tools/system/facter/default.nix1
-rw-r--r--pkgs/tools/system/foreman/default.nix1
-rw-r--r--pkgs/tools/system/foremost/default.nix1
-rw-r--r--pkgs/tools/system/gdmap/default.nix1
-rw-r--r--pkgs/tools/system/gdu/default.nix1
-rw-r--r--pkgs/tools/system/gkraken/default.nix1
-rw-r--r--pkgs/tools/system/go-audit/default.nix1
-rw-r--r--pkgs/tools/system/gohai/default.nix1
-rw-r--r--pkgs/tools/system/gopsuinfo/default.nix1
-rw-r--r--pkgs/tools/system/gotop/default.nix1
-rw-r--r--pkgs/tools/system/gptman/default.nix1
-rw-r--r--pkgs/tools/system/gt5/default.nix1
-rw-r--r--pkgs/tools/system/gtop/default.nix1
-rw-r--r--pkgs/tools/system/hardinfo/default.nix1
-rw-r--r--pkgs/tools/system/hddfancontrol/default.nix1
-rw-r--r--pkgs/tools/system/hiera-eyaml/default.nix1
-rw-r--r--pkgs/tools/system/honcho/default.nix1
-rw-r--r--pkgs/tools/system/hostctl/default.nix1
-rw-r--r--pkgs/tools/system/hw-probe/default.nix1
-rw-r--r--pkgs/tools/system/idle3tools/default.nix1
-rw-r--r--pkgs/tools/system/illum/default.nix1
-rw-r--r--pkgs/tools/system/inxi/default.nix1
-rw-r--r--pkgs/tools/system/ioping/default.nix1
-rw-r--r--pkgs/tools/system/java-service-wrapper/default.nix1
-rw-r--r--pkgs/tools/system/jobber/default.nix1
-rw-r--r--pkgs/tools/system/jsvc/default.nix1
-rw-r--r--pkgs/tools/system/jump/default.nix1
-rw-r--r--pkgs/tools/system/kmon/default.nix1
-rw-r--r--pkgs/tools/system/lact/default.nix1
-rw-r--r--pkgs/tools/system/localtime/default.nix1
-rw-r--r--pkgs/tools/system/logrotate/default.nix1
-rw-r--r--pkgs/tools/system/lr/default.nix1
-rw-r--r--pkgs/tools/system/lshw/default.nix1
-rw-r--r--pkgs/tools/system/mediawriter/default.nix1
-rw-r--r--pkgs/tools/system/memtester/default.nix1
-rw-r--r--pkgs/tools/system/minijail/default.nix1
-rw-r--r--pkgs/tools/system/mlc/default.nix1
-rw-r--r--pkgs/tools/system/monit/default.nix1
-rw-r--r--pkgs/tools/system/mq-cli/default.nix1
-rw-r--r--pkgs/tools/system/nats-top/default.nix1
-rw-r--r--pkgs/tools/system/opencl-info/default.nix1
-rw-r--r--pkgs/tools/system/pcstat/default.nix1
-rw-r--r--pkgs/tools/system/procodile/default.nix1
-rw-r--r--pkgs/tools/system/ps_mem/default.nix1
-rw-r--r--pkgs/tools/system/psensor/default.nix1
-rw-r--r--pkgs/tools/system/psstop/default.nix1
-rw-r--r--pkgs/tools/system/r10k/default.nix1
-rw-r--r--pkgs/tools/system/retry/default.nix1
-rw-r--r--pkgs/tools/system/rofi-systemd/default.nix1
-rw-r--r--pkgs/tools/system/runitor/default.nix1
-rw-r--r--pkgs/tools/system/rwc/default.nix1
-rw-r--r--pkgs/tools/system/s-tui/default.nix1
-rw-r--r--pkgs/tools/system/s0ix-selftest-tool/default.nix1
-rw-r--r--pkgs/tools/system/safe-rm/default.nix1
-rw-r--r--pkgs/tools/system/safecopy/default.nix1
-rw-r--r--pkgs/tools/system/setserial/default.nix1
-rw-r--r--pkgs/tools/system/skeema/default.nix1
-rw-r--r--pkgs/tools/system/snooze/default.nix1
-rw-r--r--pkgs/tools/system/stacer/default.nix1
-rw-r--r--pkgs/tools/system/stress-ng/default.nix1
-rw-r--r--pkgs/tools/system/stress/default.nix1
-rw-r--r--pkgs/tools/system/stressapptest/default.nix1
-rw-r--r--pkgs/tools/system/supercronic/default.nix1
-rw-r--r--pkgs/tools/system/symlinks/default.nix1
-rw-r--r--pkgs/tools/system/systemd-journal2gelf/default.nix1
-rw-r--r--pkgs/tools/system/thermald/default.nix1
-rw-r--r--pkgs/tools/system/thinkfan/default.nix1
-rw-r--r--pkgs/tools/system/tm/default.nix1
-rw-r--r--pkgs/tools/system/tp-auto-kbbl/default.nix1
-rw-r--r--pkgs/tools/system/ts/default.nix1
-rw-r--r--pkgs/tools/system/ttop/default.nix1
-rw-r--r--pkgs/tools/system/tuptime/default.nix1
-rw-r--r--pkgs/tools/system/ufiformat/default.nix1
-rw-r--r--pkgs/tools/system/undaemonize/default.nix1
-rw-r--r--pkgs/tools/system/vbetool/default.nix1
-rw-r--r--pkgs/tools/system/wsysmon/default.nix1
-rw-r--r--pkgs/tools/system/xe/default.nix1
-rw-r--r--pkgs/tools/system/yeshup/default.nix1
-rw-r--r--pkgs/tools/system/zfxtop/default.nix1
-rw-r--r--pkgs/tools/system/zps/default.nix1
-rw-r--r--pkgs/tools/system/zx/default.nix1
-rw-r--r--pkgs/tools/wayland/aw-watcher-window-wayland/default.nix1
-rw-r--r--pkgs/tools/wayland/chayang/default.nix1
-rw-r--r--pkgs/tools/wayland/clapboard/default.nix1
-rw-r--r--pkgs/tools/wayland/clipman/default.nix1
-rw-r--r--pkgs/tools/wayland/gnome-randr/default.nix1
-rw-r--r--pkgs/tools/wayland/hyprland-per-window-layout/default.nix1
-rw-r--r--pkgs/tools/wayland/proycon-wayout/default.nix1
-rw-r--r--pkgs/tools/wayland/shikane/default.nix1
-rw-r--r--pkgs/tools/wayland/swaycwd/default.nix1
-rw-r--r--pkgs/tools/wayland/swayimg/default.nix1
-rw-r--r--pkgs/tools/wayland/swaykbdd/default.nix1
-rw-r--r--pkgs/tools/wayland/swayrbar/default.nix1
-rw-r--r--pkgs/tools/wayland/swaysome/default.nix1
-rw-r--r--pkgs/tools/wayland/way-displays/default.nix1
-rw-r--r--pkgs/tools/wayland/waylogout/default.nix1
-rw-r--r--pkgs/tools/wayland/wayout/default.nix1
-rw-r--r--pkgs/tools/wayland/wdomirror/default.nix1
-rw-r--r--pkgs/tools/wayland/wev/default.nix2
-rw-r--r--pkgs/tools/wayland/wl-color-picker/default.nix1
-rw-r--r--pkgs/tools/wayland/wl-gammactl/default.nix1
-rw-r--r--pkgs/tools/wayland/wlay/default.nix1
-rw-r--r--pkgs/tools/wayland/wlprop/default.nix1
-rw-r--r--pkgs/tools/wayland/wlr-randr/default.nix1
-rw-r--r--pkgs/tools/wayland/wlr-which-key/default.nix1
-rw-r--r--pkgs/tools/wayland/wlrctl/default.nix1
-rw-r--r--pkgs/tools/wayland/wlsunset/default.nix1
-rw-r--r--pkgs/tools/wayland/wluma/default.nix1
-rw-r--r--pkgs/tools/wayland/wob/default.nix1
-rw-r--r--pkgs/tools/wayland/wpaperd/default.nix1
-rw-r--r--pkgs/tools/wayland/wshowkeys/default.nix1
1430 files changed, 1430 insertions, 1 deletions
diff --git a/pkgs/applications/accessibility/contrast/default.nix b/pkgs/applications/accessibility/contrast/default.nix
index 3a10bd72d309a..3858de921592e 100644
--- a/pkgs/applications/accessibility/contrast/default.nix
+++ b/pkgs/applications/accessibility/contrast/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     # never built on aarch64-darwin, x86_64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin;
+    mainProgram = "contrast";
   };
 }
diff --git a/pkgs/applications/accessibility/dasher/default.nix b/pkgs/applications/accessibility/dasher/default.nix
index c159f2579eae6..0de562c5331bb 100644
--- a/pkgs/applications/accessibility/dasher/default.nix
+++ b/pkgs/applications/accessibility/dasher/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2Only;
     maintainers = [ ];
     platforms = lib.platforms.all;
+    mainProgram = "dasher";
   };
 }
diff --git a/pkgs/applications/accessibility/espeakup/default.nix b/pkgs/applications/accessibility/espeakup/default.nix
index 00f432ff4138a..a0adef6aa935e 100644
--- a/pkgs/applications/accessibility/espeakup/default.nix
+++ b/pkgs/applications/accessibility/espeakup/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ethindp ];
     platforms = with platforms; linux;
+    mainProgram = "espeakup";
   };
 }
diff --git a/pkgs/applications/accessibility/mousetweaks/default.nix b/pkgs/applications/accessibility/mousetweaks/default.nix
index 815b956da8e12..847002c6d7114 100644
--- a/pkgs/applications/accessibility/mousetweaks/default.nix
+++ b/pkgs/applications/accessibility/mousetweaks/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.johnazoidberg ];
+    mainProgram = "mousetweaks";
   };
 }
diff --git a/pkgs/applications/accessibility/svkbd/default.nix b/pkgs/applications/accessibility/svkbd/default.nix
index f9cad958c02c9..cc1951e4caea3 100644
--- a/pkgs/applications/accessibility/svkbd/default.nix
+++ b/pkgs/applications/accessibility/svkbd/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "svkbd-mobile-intl";
   };
 }
diff --git a/pkgs/applications/accessibility/wvkbd/default.nix b/pkgs/applications/accessibility/wvkbd/default.nix
index 2d706b4204ceb..65cbf91676cb8 100644
--- a/pkgs/applications/accessibility/wvkbd/default.nix
+++ b/pkgs/applications/accessibility/wvkbd/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.elohmeier ];
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
+    mainProgram = "wvkbd-mobintl";
   };
 }
diff --git a/pkgs/applications/backup/deja-dup/default.nix b/pkgs/applications/backup/deja-dup/default.nix
index c2212373e70ff..da97e45b63f6b 100644
--- a/pkgs/applications/backup/deja-dup/default.nix
+++ b/pkgs/applications/backup/deja-dup/default.nix
@@ -75,5 +75,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.linux;
+    mainProgram = "deja-dup";
   };
 }
diff --git a/pkgs/applications/backup/ludusavi/default.nix b/pkgs/applications/backup/ludusavi/default.nix
index f6abbf346c6da..f83f16a4e4569 100644
--- a/pkgs/applications/backup/ludusavi/default.nix
+++ b/pkgs/applications/backup/ludusavi/default.nix
@@ -83,5 +83,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/mtkennerly/ludusavi/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ pasqui23 ];
+    mainProgram = "ludusavi";
   };
 }
diff --git a/pkgs/applications/backup/restic-integrity/default.nix b/pkgs/applications/backup/restic-integrity/default.nix
index 6c571527248de..9065f7f486c0f 100644
--- a/pkgs/applications/backup/restic-integrity/default.nix
+++ b/pkgs/applications/backup/restic-integrity/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.upi.li/networkException/restic-integrity";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ janik ];
+    mainProgram = "restic-integrity";
   };
 }
diff --git a/pkgs/applications/backup/restique/default.nix b/pkgs/applications/backup/restique/default.nix
index 6bc2ea8caf945..b7038d5a3d6ed 100644
--- a/pkgs/applications/backup/restique/default.nix
+++ b/pkgs/applications/backup/restique/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     homepage = "https://git.srcbox.net/stefan/restique";
     license = with licenses; [ gpl3Plus cc-by-sa-40 cc0 ];
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "restique";
   };
 }
diff --git a/pkgs/applications/backup/unifi-protect-backup/default.nix b/pkgs/applications/backup/unifi-protect-backup/default.nix
index f2beb553edd54..2f164adcea12d 100644
--- a/pkgs/applications/backup/unifi-protect-backup/default.nix
+++ b/pkgs/applications/backup/unifi-protect-backup/default.nix
@@ -50,5 +50,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/ep1cman/unifi-protect-backup/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ajs124 ];
+    mainProgram = "unifi-protect-backup";
   };
 }
diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix
index 7870b3c11ee68..6ce761e8677f1 100644
--- a/pkgs/applications/backup/vorta/default.nix
+++ b/pkgs/applications/backup/vorta/default.nix
@@ -95,5 +95,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ma27 ];
     platforms = platforms.linux;
+    mainProgram = "vorta";
   };
 }
diff --git a/pkgs/applications/blockchains/alfis/default.nix b/pkgs/applications/blockchains/alfis/default.nix
index cef4af1d77a0d..af1da19f63867 100644
--- a/pkgs/applications/blockchains/alfis/default.nix
+++ b/pkgs/applications/blockchains/alfis/default.nix
@@ -57,5 +57,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ misuzu ];
     platforms = platforms.unix;
+    mainProgram = "alfis";
   };
 }
diff --git a/pkgs/applications/blockchains/aperture/default.nix b/pkgs/applications/blockchains/aperture/default.nix
index e208666bfe2cb..c453d48c567ac 100644
--- a/pkgs/applications/blockchains/aperture/default.nix
+++ b/pkgs/applications/blockchains/aperture/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/lightninglabs/aperture";
     license = licenses.mit;
     maintainers = with maintainers; [ sputn1ck ];
+    mainProgram = "aperture";
   };
 }
diff --git a/pkgs/applications/blockchains/charge-lnd/default.nix b/pkgs/applications/blockchains/charge-lnd/default.nix
index 521a44de1dd07..1ea8912a75352 100644
--- a/pkgs/applications/blockchains/charge-lnd/default.nix
+++ b/pkgs/applications/blockchains/charge-lnd/default.nix
@@ -35,5 +35,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/accumulator/charge-lnd";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ mmilata mariaa144 ];
+    mainProgram = "charge-lnd";
   };
 }
diff --git a/pkgs/applications/blockchains/chia-plotter/default.nix b/pkgs/applications/blockchains/chia-plotter/default.nix
index 25d4d8653466b..5c0fa18739fb6 100644
--- a/pkgs/applications/blockchains/chia-plotter/default.nix
+++ b/pkgs/applications/blockchains/chia-plotter/default.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ilyakooo0 ];
+    mainProgram = "chia_plot";
   };
 }
diff --git a/pkgs/applications/blockchains/clboss/default.nix b/pkgs/applications/blockchains/clboss/default.nix
index c6ffe8e07f983..c016e0f37e38c 100644
--- a/pkgs/applications/blockchains/clboss/default.nix
+++ b/pkgs/applications/blockchains/clboss/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "clboss";
   };
 }
diff --git a/pkgs/applications/blockchains/crypto-org-wallet/default.nix b/pkgs/applications/blockchains/crypto-org-wallet/default.nix
index e45e43497563a..1460d87d932bf 100644
--- a/pkgs/applications/blockchains/crypto-org-wallet/default.nix
+++ b/pkgs/applications/blockchains/crypto-org-wallet/default.nix
@@ -29,5 +29,6 @@ in appimageTools.wrapType2 rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ th0rgal ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "chain-desktop-wallet";
   };
 }
diff --git a/pkgs/applications/blockchains/cryptop/default.nix b/pkgs/applications/blockchains/cryptop/default.nix
index d93a10436fc31..588fb03a36569 100644
--- a/pkgs/applications/blockchains/cryptop/default.nix
+++ b/pkgs/applications/blockchains/cryptop/default.nix
@@ -19,5 +19,6 @@ buildPythonApplication rec {
     description = "Command line Cryptocurrency Portfolio";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ bhipple ];
+    mainProgram = "cryptop";
   };
 }
diff --git a/pkgs/applications/blockchains/dcrctl/default.nix b/pkgs/applications/blockchains/dcrctl/default.nix
index 97f9b7767db7b..04411399ac34d 100644
--- a/pkgs/applications/blockchains/dcrctl/default.nix
+++ b/pkgs/applications/blockchains/dcrctl/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "A secure Decred wallet daemon written in Go (golang)";
     license = with lib.licenses; [ isc ];
     maintainers = with lib.maintainers; [ ];
+    mainProgram = "dcrctl";
   };
 }
diff --git a/pkgs/applications/blockchains/dcrwallet/default.nix b/pkgs/applications/blockchains/dcrwallet/default.nix
index da1755f14b5bc..fa604e9aac938 100644
--- a/pkgs/applications/blockchains/dcrwallet/default.nix
+++ b/pkgs/applications/blockchains/dcrwallet/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "A secure Decred wallet daemon written in Go (golang)";
     license = with lib.licenses; [ isc ];
     maintainers = with lib.maintainers; [ juaningan ];
+    mainProgram = "dcrwallet";
   };
 }
diff --git a/pkgs/applications/blockchains/electrs/default.nix b/pkgs/applications/blockchains/electrs/default.nix
index 40dfe70debd30..2401231367ef6 100644
--- a/pkgs/applications/blockchains/electrs/default.nix
+++ b/pkgs/applications/blockchains/electrs/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/romanz/electrs";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
+    mainProgram = "electrs";
   };
 }
diff --git a/pkgs/applications/blockchains/ergo/default.nix b/pkgs/applications/blockchains/ergo/default.nix
index 7ff9b9563d90c..d630ce55383c3 100644
--- a/pkgs/applications/blockchains/ergo/default.nix
+++ b/pkgs/applications/blockchains/ergo/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.cc0;
     platforms = platforms.all;
     maintainers = with maintainers; [ mmahut ];
+    mainProgram = "ergo";
   };
 }
diff --git a/pkgs/applications/blockchains/ethabi/default.nix b/pkgs/applications/blockchains/ethabi/default.nix
index eea4d546f14ba..50fa8fee06687 100644
--- a/pkgs/applications/blockchains/ethabi/default.nix
+++ b/pkgs/applications/blockchains/ethabi/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rust-ethereum/ethabi";
     maintainers = [ maintainers.dbrock ];
     license = licenses.asl20;
+    mainProgram = "ethabi";
   };
 }
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 8ba06230bb277..5f96baba174bb 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -33,5 +33,6 @@ appimageTools.wrapType2 rec {
     license = licenses.mit;
     maintainers = with maintainers; [ andresilva thedavidmeister nyanloutre RaghavSood th0rgal ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "ledger-live-desktop";
   };
 }
diff --git a/pkgs/applications/blockchains/lighthouse/default.nix b/pkgs/applications/blockchains/lighthouse/default.nix
index 2500ec5c28571..dbc4d4d4b9aac 100644
--- a/pkgs/applications/blockchains/lighthouse/default.nix
+++ b/pkgs/applications/blockchains/lighthouse/default.nix
@@ -152,5 +152,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://lighthouse.sigmaprime.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ centromere pmw ];
+    mainProgram = "lighthouse";
   };
 }
diff --git a/pkgs/applications/blockchains/lightwalletd/default.nix b/pkgs/applications/blockchains/lightwalletd/default.nix
index 040d08e752b6e..5b89ec20091a9 100644
--- a/pkgs/applications/blockchains/lightwalletd/default.nix
+++ b/pkgs/applications/blockchains/lightwalletd/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/zcash/lightwalletd";
     maintainers = with maintainers; [ centromere ];
     license = licenses.mit;
+    mainProgram = "lightwalletd";
   };
 }
diff --git a/pkgs/applications/blockchains/lndconnect/default.nix b/pkgs/applications/blockchains/lndconnect/default.nix
index 860ca5a1bd6af..c773ce8e193ff 100644
--- a/pkgs/applications/blockchains/lndconnect/default.nix
+++ b/pkgs/applications/blockchains/lndconnect/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/LN-Zap/lndconnect";
     maintainers = [ maintainers.d-xo ];
     platforms = platforms.linux;
+    mainProgram = "lndconnect";
   };
 }
diff --git a/pkgs/applications/blockchains/lndhub-go/default.nix b/pkgs/applications/blockchains/lndhub-go/default.nix
index 08bfd05471d4c..b236ed5da4424 100644
--- a/pkgs/applications/blockchains/lndhub-go/default.nix
+++ b/pkgs/applications/blockchains/lndhub-go/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/getAlby/lndhub.go";
     license = licenses.gpl3;
     maintainers = with maintainers; [ prusnak ];
+    mainProgram = "lndhub.go";
   };
 }
diff --git a/pkgs/applications/blockchains/lndmanage/default.nix b/pkgs/applications/blockchains/lndmanage/default.nix
index 97333fde00dd9..6a76ff9530c69 100644
--- a/pkgs/applications/blockchains/lndmanage/default.nix
+++ b/pkgs/applications/blockchains/lndmanage/default.nix
@@ -40,5 +40,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/bitromortac/lndmanage";
     license = licenses.mit;
     maintainers = with maintainers; [ mmilata ];
+    mainProgram = "lndmanage";
   };
 }
diff --git a/pkgs/applications/blockchains/miniscript/default.nix b/pkgs/applications/blockchains/miniscript/default.nix
index e9d68b756212f..acdcd108c607a 100644
--- a/pkgs/applications/blockchains/miniscript/default.nix
+++ b/pkgs/applications/blockchains/miniscript/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license         = licenses.mit;
     platforms       = platforms.linux;
     maintainers     = with maintainers; [ RaghavSood jb55 ];
+    mainProgram = "miniscript";
   };
 }
diff --git a/pkgs/applications/blockchains/mycrypto/default.nix b/pkgs/applications/blockchains/mycrypto/default.nix
index d4793eb9276b8..fada1835bfb17 100644
--- a/pkgs/applications/blockchains/mycrypto/default.nix
+++ b/pkgs/applications/blockchains/mycrypto/default.nix
@@ -50,5 +50,6 @@ in appimageTools.wrapType2 rec {
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = [ ];
+    mainProgram = "MyCrypto";
   };
 }
diff --git a/pkgs/applications/blockchains/nbxplorer/default.nix b/pkgs/applications/blockchains/nbxplorer/default.nix
index 6de7cf7578c4d..a2e7b0241baf7 100644
--- a/pkgs/applications/blockchains/nbxplorer/default.nix
+++ b/pkgs/applications/blockchains/nbxplorer/default.nix
@@ -30,5 +30,6 @@ buildDotnetModule rec {
     maintainers = with maintainers; [ kcalvinalvin erikarvstedt ];
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "nbxplorer";
   };
 }
diff --git a/pkgs/applications/blockchains/openethereum/default.nix b/pkgs/applications/blockchains/openethereum/default.nix
index 43b24ecd61a10..a41b9df837513 100644
--- a/pkgs/applications/blockchains/openethereum/default.nix
+++ b/pkgs/applications/blockchains/openethereum/default.nix
@@ -57,5 +57,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ akru ];
     platforms = lib.platforms.unix;
+    mainProgram = "openethereum";
   };
 }
diff --git a/pkgs/applications/blockchains/optimism/default.nix b/pkgs/applications/blockchains/optimism/default.nix
index 2cbcaf532afe5..cd7cc1ce9fe25 100644
--- a/pkgs/applications/blockchains/optimism/default.nix
+++ b/pkgs/applications/blockchains/optimism/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/ethereum-optimism/optimism";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
+    mainProgram = "cmd";
   };
 }
diff --git a/pkgs/applications/blockchains/snarkos/default.nix b/pkgs/applications/blockchains/snarkos/default.nix
index f3ea89a73f011..8513eb6de413b 100644
--- a/pkgs/applications/blockchains/snarkos/default.nix
+++ b/pkgs/applications/blockchains/snarkos/default.nix
@@ -55,5 +55,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
     platforms = platforms.unix;
+    mainProgram = "snarkos";
   };
 }
diff --git a/pkgs/applications/blockchains/stellar-core/default.nix b/pkgs/applications/blockchains/stellar-core/default.nix
index 6d3359cdcd006..5a70cce931747 100644
--- a/pkgs/applications/blockchains/stellar-core/default.nix
+++ b/pkgs/applications/blockchains/stellar-core/default.nix
@@ -71,5 +71,6 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     maintainers = [ ];
     platforms = lib.platforms.linux;
+    mainProgram = "stellar-core";
   };
 })
diff --git a/pkgs/applications/blockchains/terra-station/default.nix b/pkgs/applications/blockchains/terra-station/default.nix
index 7b82f2658a1c6..cf684e062c5cb 100644
--- a/pkgs/applications/blockchains/terra-station/default.nix
+++ b/pkgs/applications/blockchains/terra-station/default.nix
@@ -67,5 +67,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = [ maintainers.peterwilli ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "terra-station";
   };
 }
diff --git a/pkgs/applications/blockchains/tessera/default.nix b/pkgs/applications/blockchains/tessera/default.nix
index a0facc33b7dd3..03bd6734a9a59 100644
--- a/pkgs/applications/blockchains/tessera/default.nix
+++ b/pkgs/applications/blockchains/tessera/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ mmahut ];
+    mainProgram = "tessera";
   };
 }
diff --git a/pkgs/applications/blockchains/torq/default.nix b/pkgs/applications/blockchains/torq/default.nix
index c57ab07e4045c..7518508f64b1a 100644
--- a/pkgs/applications/blockchains/torq/default.nix
+++ b/pkgs/applications/blockchains/torq/default.nix
@@ -56,5 +56,6 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://github.com/lncapital/torq";
     maintainers = with maintainers; [ mmilata prusnak ];
+    mainProgram = "torq";
   };
 }
diff --git a/pkgs/applications/blockchains/trezor-suite/default.nix b/pkgs/applications/blockchains/trezor-suite/default.nix
index e5f8963e921c6..bff5cad84e4f9 100644
--- a/pkgs/applications/blockchains/trezor-suite/default.nix
+++ b/pkgs/applications/blockchains/trezor-suite/default.nix
@@ -59,5 +59,6 @@ appimageTools.wrapType2 rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ prusnak ];
     platforms = [ "aarch64-linux" "x86_64-linux" ];
+    mainProgram = "trezor-suite";
   };
 }
diff --git a/pkgs/applications/blockchains/zecwallet-lite/default.nix b/pkgs/applications/blockchains/zecwallet-lite/default.nix
index e3aad8cb0c5ff..27004722c38e2 100644
--- a/pkgs/applications/blockchains/zecwallet-lite/default.nix
+++ b/pkgs/applications/blockchains/zecwallet-lite/default.nix
@@ -26,5 +26,6 @@ appimageTools.wrapType2 rec {
     license = licenses.mit;
     maintainers = with maintainers; [ colinsane ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "zecwallet-lite";
   };
 }
diff --git a/pkgs/applications/editors/amp/default.nix b/pkgs/applications/editors/amp/default.nix
index 7f4081a399e79..a1c96ea92beb9 100644
--- a/pkgs/applications/editors/amp/default.nix
+++ b/pkgs/applications/editors/amp/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     license = [ licenses.gpl3 ];
     maintainers = [ maintainers.sb0 ];
     platforms = platforms.unix;
+    mainProgram = "amp";
   };
 }
diff --git a/pkgs/applications/editors/apostrophe/default.nix b/pkgs/applications/editors/apostrophe/default.nix
index bbc84b4caa5e0..501f820664f2f 100644
--- a/pkgs/applications/editors/apostrophe/default.nix
+++ b/pkgs/applications/editors/apostrophe/default.nix
@@ -54,5 +54,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.sternenseemann ];
+    mainProgram = "apostrophe";
   };
 }
diff --git a/pkgs/applications/editors/bless/default.nix b/pkgs/applications/editors/bless/default.nix
index dc7e0ff2f8ecc..2ac885683eb17 100644
--- a/pkgs/applications/editors/bless/default.nix
+++ b/pkgs/applications/editors/bless/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.mkg20001 ];
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "bless";
   };
 }
diff --git a/pkgs/applications/editors/bluefish/default.nix b/pkgs/applications/editors/bluefish/default.nix
index 6a5d3cbd1f6aa..0ec47ceb95666 100644
--- a/pkgs/applications/editors/bluefish/default.nix
+++ b/pkgs/applications/editors/bluefish/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vbgl ];
     platforms = platforms.all;
+    mainProgram = "bluefish";
   };
 }
diff --git a/pkgs/applications/editors/bonzomatic/default.nix b/pkgs/applications/editors/bonzomatic/default.nix
index 318c459dd21d0..886e42414da13 100644
--- a/pkgs/applications/editors/bonzomatic/default.nix
+++ b/pkgs/applications/editors/bonzomatic/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.unlicense;
     maintainers = [ maintainers.ilian ];
     platforms = [ "i686-linux" "x86_64-linux" ];
+    mainProgram = "bonzomatic";
   };
 }
diff --git a/pkgs/applications/editors/bviplus/default.nix b/pkgs/applications/editors/bviplus/default.nix
index 1cffe049c73de..ddf37bb69fc6d 100644
--- a/pkgs/applications/editors/bviplus/default.nix
+++ b/pkgs/applications/editors/bviplus/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "bviplus";
   };
 }
diff --git a/pkgs/applications/editors/codux/default.nix b/pkgs/applications/editors/codux/default.nix
index bc44da21dc26a..314f639f10603 100644
--- a/pkgs/applications/editors/codux/default.nix
+++ b/pkgs/applications/editors/codux/default.nix
@@ -31,5 +31,6 @@ appimageTools.wrapType2 rec {
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ dit7ya kashw2 ];
+    mainProgram = "codux";
   };
 }
diff --git a/pkgs/applications/editors/cpeditor/default.nix b/pkgs/applications/editors/cpeditor/default.nix
index 718c3fdd20fdf..c7d56cf50abe1 100644
--- a/pkgs/applications/editors/cpeditor/default.nix
+++ b/pkgs/applications/editors/cpeditor/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ rewine ];
+    mainProgram = "cpeditor";
   };
 }
diff --git a/pkgs/applications/editors/cudatext/default.nix b/pkgs/applications/editors/cudatext/default.nix
index 7b5bcd12ef436..37b79d9815c3e 100644
--- a/pkgs/applications/editors/cudatext/default.nix
+++ b/pkgs/applications/editors/cudatext/default.nix
@@ -118,5 +118,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl20;
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.linux;
+    mainProgram = "cudatext";
   };
 }
diff --git a/pkgs/applications/editors/dhex/default.nix b/pkgs/applications/editors/dhex/default.nix
index 743e55b096938..4ee1897bda79e 100644
--- a/pkgs/applications/editors/dhex/default.nix
+++ b/pkgs/applications/editors/dhex/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [qknight];
     platforms = with lib.platforms; linux;
+    mainProgram = "dhex";
   };
 }
diff --git a/pkgs/applications/editors/dit/default.nix b/pkgs/applications/editors/dit/default.nix
index 90502172faa5d..bb148ab9260ee 100644
--- a/pkgs/applications/editors/dit/default.nix
+++ b/pkgs/applications/editors/dit/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = with platforms; linux;
     maintainers = with maintainers; [ davidak ];
+    mainProgram = "dit";
   };
 }
diff --git a/pkgs/applications/editors/edbrowse/default.nix b/pkgs/applications/editors/edbrowse/default.nix
index 5b37b86556b7f..0f51e016c0ea7 100644
--- a/pkgs/applications/editors/edbrowse/default.nix
+++ b/pkgs/applications/editors/edbrowse/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl1Plus;
     maintainers = with maintainers; [ schmitthenner vrthra equirosa ];
     platforms = platforms.linux;
+    mainProgram = "edbrowse";
   };
 }
 # TODO: send the patch to upstream developers
diff --git a/pkgs/applications/editors/edit/default.nix b/pkgs/applications/editors/edit/default.nix
index 6ea90b0b8a81e..192aa903f3e9d 100644
--- a/pkgs/applications/editors/edit/default.nix
+++ b/pkgs/applications/editors/edit/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation {
     license = lib.licenses.publicDomain;
     maintainers = with lib.maintainers; [ AndersonTorres vrthra ];
     platforms = lib.platforms.unix;
+    mainProgram = "edit";
   };
 }
diff --git a/pkgs/applications/editors/edlin/default.nix b/pkgs/applications/editors/edlin/default.nix
index 9de4f8d4a8c78..f8baa9aa67bc1 100644
--- a/pkgs/applications/editors/edlin/default.nix
+++ b/pkgs/applications/editors/edlin/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; unix;
+    mainProgram = "edlin";
   };
 })
diff --git a/pkgs/applications/editors/edwood/default.nix b/pkgs/applications/editors/edwood/default.nix
index 8dfa36398bfd3..fc32c5ed39378 100644
--- a/pkgs/applications/editors/edwood/default.nix
+++ b/pkgs/applications/editors/edwood/default.nix
@@ -43,5 +43,6 @@ buildGoModule rec {
     homepage = "https://github.com/rjkroege/edwood";
     license = with licenses; [ mit bsd3 ];
     maintainers = with maintainers; [ kranzes ];
+    mainProgram = "edwood";
   };
 }
diff --git a/pkgs/applications/editors/em/default.nix b/pkgs/applications/editors/em/default.nix
index 89cc795f5674e..89da2d719fa8c 100644
--- a/pkgs/applications/editors/em/default.nix
+++ b/pkgs/applications/editors/em/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "em";
   };
 }
diff --git a/pkgs/applications/editors/flpsed/default.nix b/pkgs/applications/editors/flpsed/default.nix
index bffa50643899d..ae541b8dd7685 100644
--- a/pkgs/applications/editors/flpsed/default.nix
+++ b/pkgs/applications/editors/flpsed/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "flpsed";
   };
 }
diff --git a/pkgs/applications/editors/focuswriter/default.nix b/pkgs/applications/editors/focuswriter/default.nix
index de008a54513ad..f2b422d8cbf79 100644
--- a/pkgs/applications/editors/focuswriter/default.nix
+++ b/pkgs/applications/editors/focuswriter/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ madjar kashw2 ];
     platforms = platforms.linux;
     homepage = "https://gottcode.org/focuswriter/";
+    mainProgram = "focuswriter";
   };
 }
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index 0391685137f7b..fc3f3fd274741 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -178,5 +178,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
+    mainProgram = "gnome-builder";
   };
 }
diff --git a/pkgs/applications/editors/gnome-inform7/default.nix b/pkgs/applications/editors/gnome-inform7/default.nix
index 3b73e0843d92a..cab490cd76e4c 100644
--- a/pkgs/applications/editors/gnome-inform7/default.nix
+++ b/pkgs/applications/editors/gnome-inform7/default.nix
@@ -113,5 +113,6 @@ in stdenv.mkDerivation {
     license = licenses.gpl3Only;
     maintainers = [ maintainers.fitzgibbon ];
     platforms = platforms.linux;
+    mainProgram = "gnome-inform7";
   };
 }
diff --git a/pkgs/applications/editors/gnome-latex/default.nix b/pkgs/applications/editors/gnome-latex/default.nix
index e0b7bc9524fd0..90b145c503302 100644
--- a/pkgs/applications/editors/gnome-latex/default.nix
+++ b/pkgs/applications/editors/gnome-latex/default.nix
@@ -71,5 +71,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.manveru ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "gnome-latex";
   };
 }
diff --git a/pkgs/applications/editors/gophernotes/default.nix b/pkgs/applications/editors/gophernotes/default.nix
index 3ed0b67741afe..9e6ebb47f9668 100644
--- a/pkgs/applications/editors/gophernotes/default.nix
+++ b/pkgs/applications/editors/gophernotes/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/gopherdata/gophernotes";
     license = licenses.mit;
     maintainers = [ maintainers.costrouc ];
+    mainProgram = "gophernotes";
   };
 }
diff --git a/pkgs/applications/editors/hecate/default.nix b/pkgs/applications/editors/hecate/default.nix
index a2bb4e84c999e..a3e8726b13ecb 100644
--- a/pkgs/applications/editors/hecate/default.nix
+++ b/pkgs/applications/editors/hecate/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     longDescription = "The Hex Editor From Hell!";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "hecate";
   };
 }
diff --git a/pkgs/applications/editors/heh/default.nix b/pkgs/applications/editors/heh/default.nix
index ca044168b8450..a3ad923ef561c 100644
--- a/pkgs/applications/editors/heh/default.nix
+++ b/pkgs/applications/editors/heh/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/ndd7xv/heh/releases/tag/${src.rev}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ piturnah ];
+    mainProgram = "heh";
   };
 }
diff --git a/pkgs/applications/editors/hexcurse/default.nix b/pkgs/applications/editors/hexcurse/default.nix
index 1c2e09695e5e4..17291a458a4b5 100644
--- a/pkgs/applications/editors/hexcurse/default.nix
+++ b/pkgs/applications/editors/hexcurse/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "hexcurse";
   };
 }
diff --git a/pkgs/applications/editors/hexdino/default.nix b/pkgs/applications/editors/hexdino/default.nix
index 5eb023f8b9ed0..8ebd84cf248db 100644
--- a/pkgs/applications/editors/hexdino/default.nix
+++ b/pkgs/applications/editors/hexdino/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Luz/hexdino";
     license = licenses.mit;
     maintainers = [ maintainers.luz ];
+    mainProgram = "hexdino";
   };
 }
diff --git a/pkgs/applications/editors/hexedit/default.nix b/pkgs/applications/editors/hexedit/default.nix
index 238bc905f7130..7f32835fdc84d 100644
--- a/pkgs/applications/editors/hexedit/default.nix
+++ b/pkgs/applications/editors/hexedit/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ delroth ];
+    mainProgram = "hexedit";
   };
 }
diff --git a/pkgs/applications/editors/ht/default.nix b/pkgs/applications/editors/ht/default.nix
index c8a13738c9109..363466e160d0b 100644
--- a/pkgs/applications/editors/ht/default.nix
+++ b/pkgs/applications/editors/ht/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "ht";
   };
 }
diff --git a/pkgs/applications/editors/kibi/default.nix b/pkgs/applications/editors/kibi/default.nix
index 3d1f01f4b021f..a5056575fa4a2 100644
--- a/pkgs/applications/editors/kibi/default.nix
+++ b/pkgs/applications/editors/kibi/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ilai-deutel/kibi";
     license = licenses.mit;
     maintainers = with maintainers; [ robertodr ];
+    mainProgram = "kibi";
   };
 }
diff --git a/pkgs/applications/editors/kile/default.nix b/pkgs/applications/editors/kile/default.nix
index 686113452eb81..0e1326f50c492 100644
--- a/pkgs/applications/editors/kile/default.nix
+++ b/pkgs/applications/editors/kile/default.nix
@@ -64,5 +64,6 @@ mkDerivation rec {
     homepage = "https://www.kde.org/applications/office/kile/";
     maintainers = with lib.maintainers; [ fridh ];
     license = lib.licenses.gpl2Plus;
+    mainProgram = "kile";
   };
 }
diff --git a/pkgs/applications/editors/l3afpad/default.nix b/pkgs/applications/editors/l3afpad/default.nix
index 2ccea6afc3ee2..2caf4ee781e2e 100644
--- a/pkgs/applications/editors/l3afpad/default.nix
+++ b/pkgs/applications/editors/l3afpad/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ ckie ];
     license = licenses.gpl2;
+    mainProgram = "l3afpad";
   };
 }
diff --git a/pkgs/applications/editors/ldtk/default.nix b/pkgs/applications/editors/ldtk/default.nix
index a9688241ab1d7..337bc3bc6dfa6 100644
--- a/pkgs/applications/editors/ldtk/default.nix
+++ b/pkgs/applications/editors/ldtk/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation (finalAttrs: {
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ felschr ];
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    mainProgram = "ldtk";
   };
 })
diff --git a/pkgs/applications/editors/leafpad/default.nix b/pkgs/applications/editors/leafpad/default.nix
index d0b38bcd35a89..b02067a2113e5 100644
--- a/pkgs/applications/editors/leafpad/default.nix
+++ b/pkgs/applications/editors/leafpad/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = [ maintainers.flosse ];
     license = licenses.gpl3;
+    mainProgram = "leafpad";
   };
 }
diff --git a/pkgs/applications/editors/lite-xl/default.nix b/pkgs/applications/editors/lite-xl/default.nix
index 857bc35309f2e..d74c5a2135321 100644
--- a/pkgs/applications/editors/lite-xl/default.nix
+++ b/pkgs/applications/editors/lite-xl/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ sefidel ];
     platforms = platforms.unix;
+    mainProgram = "lite-xl";
   };
 }
diff --git a/pkgs/applications/editors/lite/default.nix b/pkgs/applications/editors/lite/default.nix
index 5ed1603ba8a86..77f3a38bc6c5e 100644
--- a/pkgs/applications/editors/lite/default.nix
+++ b/pkgs/applications/editors/lite/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
     platforms = platforms.unix;
+    mainProgram = "lite";
   };
 }
diff --git a/pkgs/applications/editors/manuskript/default.nix b/pkgs/applications/editors/manuskript/default.nix
index c93ba5ed88740..645883f5489fb 100644
--- a/pkgs/applications/editors/manuskript/default.nix
+++ b/pkgs/applications/editors/manuskript/default.nix
@@ -58,5 +58,6 @@ python3Packages.buildPythonApplication rec {
     license = lib.licenses.gpl3;
     maintainers = [ ];
     platforms = lib.platforms.unix;
+    mainProgram = "manuskript";
   };
 }
diff --git a/pkgs/applications/editors/marker/default.nix b/pkgs/applications/editors/marker/default.nix
index dcfe3d8ed35f0..f24f83c70f278 100644
--- a/pkgs/applications/editors/marker/default.nix
+++ b/pkgs/applications/editors/marker/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     changelog = "https://github.com/fabiocolacio/Marker/releases/tag/${version}";
+    mainProgram = "marker";
   };
 }
diff --git a/pkgs/applications/editors/mindforger/default.nix b/pkgs/applications/editors/mindforger/default.nix
index 2f75fb34cd183..de304cd6208af 100644
--- a/pkgs/applications/editors/mindforger/default.nix
+++ b/pkgs/applications/editors/mindforger/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ cyplo ];
+    mainProgram = "mindforger";
   };
 }
diff --git a/pkgs/applications/editors/mle/default.nix b/pkgs/applications/editors/mle/default.nix
index 088f10a9e9767..079c24c2e732b 100644
--- a/pkgs/applications/editors/mle/default.nix
+++ b/pkgs/applications/editors/mle/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ adsr ];
+    mainProgram = "mle";
   };
 }
diff --git a/pkgs/applications/editors/moe/default.nix b/pkgs/applications/editors/moe/default.nix
index 71449a0b8a808..9d0724f1997b5 100644
--- a/pkgs/applications/editors/moe/default.nix
+++ b/pkgs/applications/editors/moe/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
+    mainProgram = "moe";
   };
 })
 # TODO: a configurable, global moerc file
diff --git a/pkgs/applications/editors/molsketch/default.nix b/pkgs/applications/editors/molsketch/default.nix
index aa336ce45e213..6a656114ff5f7 100644
--- a/pkgs/applications/editors/molsketch/default.nix
+++ b/pkgs/applications/editors/molsketch/default.nix
@@ -49,5 +49,6 @@ mkDerivation rec {
     homepage = "https://sourceforge.net/projects/molsketch/";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.moni ];
+    mainProgram = "molsketch";
   };
 }
diff --git a/pkgs/applications/editors/ne/default.nix b/pkgs/applications/editors/ne/default.nix
index e246185e2a19d..017354222e824 100644
--- a/pkgs/applications/editors/ne/default.nix
+++ b/pkgs/applications/editors/ne/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ geri1701 ];
+    mainProgram = "ne";
   };
 }
diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix
index c2b1d627496fe..a2d7f13338a96 100644
--- a/pkgs/applications/editors/netbeans/default.nix
+++ b/pkgs/applications/editors/netbeans/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation {
     ];
     maintainers = with lib.maintainers; [ sander rszibele kashw2 ];
     platforms = lib.platforms.unix;
+    mainProgram = "netbeans";
   };
 }
diff --git a/pkgs/applications/editors/notepad-next/default.nix b/pkgs/applications/editors/notepad-next/default.nix
index c2085bcf0455d..2f668a6fc526e 100644
--- a/pkgs/applications/editors/notepad-next/default.nix
+++ b/pkgs/applications/editors/notepad-next/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     platforms = platforms.unix;
     maintainers = [ maintainers.sebtm ];
     broken = stdenv.isAarch64;
+    mainProgram = "NotepadNext";
   };
 }
diff --git a/pkgs/applications/editors/notepadqq/default.nix b/pkgs/applications/editors/notepadqq/default.nix
index 3aa08559bdf78..56de0b332a55f 100644
--- a/pkgs/applications/editors/notepadqq/default.nix
+++ b/pkgs/applications/editors/notepadqq/default.nix
@@ -55,5 +55,6 @@ mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.rszibele ];
+    mainProgram = "notepadqq";
   };
 }
diff --git a/pkgs/applications/editors/nvpy/default.nix b/pkgs/applications/editors/nvpy/default.nix
index cc5f60984c935..5532bd8524dae 100644
--- a/pkgs/applications/editors/nvpy/default.nix
+++ b/pkgs/applications/editors/nvpy/default.nix
@@ -37,5 +37,6 @@ in pythonPackages.buildPythonApplication rec {
     homepage = "https://github.com/cpbotha/nvpy";
     platforms = platforms.linux;
     license = licenses.bsd3;
+    mainProgram = "nvpy";
   };
 }
diff --git a/pkgs/applications/editors/ox/default.nix b/pkgs/applications/editors/ox/default.nix
index 2e67e83e972b3..24ce2cec46df1 100644
--- a/pkgs/applications/editors/ox/default.nix
+++ b/pkgs/applications/editors/ox/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/curlpipe/ox/releases/tag/${version}";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ moni ];
+    mainProgram = "ox";
   };
 }
diff --git a/pkgs/applications/editors/pinegrow/default.nix b/pkgs/applications/editors/pinegrow/default.nix
index b4555bc898789..cf5d35c1c296c 100644
--- a/pkgs/applications/editors/pinegrow/default.nix
+++ b/pkgs/applications/editors/pinegrow/default.nix
@@ -97,5 +97,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = with licenses; [ unfreeRedistributable ];
     maintainers = with maintainers; [ gador ];
+    mainProgram = "pinegrow";
   };
 }
diff --git a/pkgs/applications/editors/pixelorama/default.nix b/pkgs/applications/editors/pixelorama/default.nix
index 65e724df3db9e..f80e01e1e18e8 100644
--- a/pkgs/applications/editors/pixelorama/default.nix
+++ b/pkgs/applications/editors/pixelorama/default.nix
@@ -90,5 +90,6 @@ in stdenv.mkDerivation (finalAttrs: {
     license = licenses.mit;
     platforms = [ "i686-linux" "x86_64-linux" ];
     maintainers = with maintainers; [ felschr ];
+    mainProgram = "pixelorama";
   };
 })
diff --git a/pkgs/applications/editors/qxmledit/default.nix b/pkgs/applications/editors/qxmledit/default.nix
index bbb8d39a5f7a2..1991b2a7bc77c 100644
--- a/pkgs/applications/editors/qxmledit/default.nix
+++ b/pkgs/applications/editors/qxmledit/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2;
     platforms = platforms.unix;
     changelog = "https://github.com/lbellonda/qxmledit/blob/${version}/NEWS";
+    mainProgram = "qxmledit";
   };
 }
diff --git a/pkgs/applications/editors/qxw/default.nix b/pkgs/applications/editors/qxw/default.nix
index c36aba6d9bba1..2d2af2ce508ef 100644
--- a/pkgs/applications/editors/qxw/default.nix
+++ b/pkgs/applications/editors/qxw/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.tckmn ];
     platforms = platforms.linux;
+    mainProgram = "qxw";
   };
 }
diff --git a/pkgs/applications/editors/rednotebook/default.nix b/pkgs/applications/editors/rednotebook/default.nix
index abbfefce52933..545e82cf6de9d 100644
--- a/pkgs/applications/editors/rednotebook/default.nix
+++ b/pkgs/applications/editors/rednotebook/default.nix
@@ -36,5 +36,6 @@ buildPythonApplication rec {
     description = "A modern journal that includes a calendar navigation, customizable templates, export functionality and word clouds";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ orivej ];
+    mainProgram = "rednotebook";
   };
 }
diff --git a/pkgs/applications/editors/rehex/default.nix b/pkgs/applications/editors/rehex/default.nix
index 0d4d171d98281..bc2bc733c6c03 100644
--- a/pkgs/applications/editors/rehex/default.nix
+++ b/pkgs/applications/editors/rehex/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ markus1189 wegank ];
     platforms = platforms.all;
+    mainProgram = "rehex";
   };
 }
diff --git a/pkgs/applications/editors/retext/default.nix b/pkgs/applications/editors/retext/default.nix
index 574d83f1be974..feb42d9a99a93 100644
--- a/pkgs/applications/editors/retext/default.nix
+++ b/pkgs/applications/editors/retext/default.nix
@@ -88,5 +88,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ klntsky ];
     platforms = platforms.unix;
+    mainProgram = "retext";
   };
 }
diff --git a/pkgs/applications/editors/scite/default.nix b/pkgs/applications/editors/scite/default.nix
index 4118aee8a2dd1..67ebd13134b2f 100644
--- a/pkgs/applications/editors/scite/default.nix
+++ b/pkgs/applications/editors/scite/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.rszibele ];
+    mainProgram = "SciTE";
   };
 }
diff --git a/pkgs/applications/editors/sigil/default.nix b/pkgs/applications/editors/sigil/default.nix
index 1740d5a8e374b..022e9ec697202 100644
--- a/pkgs/applications/editors/sigil/default.nix
+++ b/pkgs/applications/editors/sigil/default.nix
@@ -41,5 +41,6 @@ mkDerivation rec {
     license = licenses.gpl3;
     # currently unmaintained
     platforms = platforms.linux;
+    mainProgram = "sigil";
   };
 }
diff --git a/pkgs/applications/editors/spacevim/default.nix b/pkgs/applications/editors/spacevim/default.nix
index 8252f8ce1c145..3db7c73fd422e 100644
--- a/pkgs/applications/editors/spacevim/default.nix
+++ b/pkgs/applications/editors/spacevim/default.nix
@@ -73,5 +73,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.fzakaria ];
     platforms = platforms.all;
+    mainProgram = "spacevim";
   };
 }
diff --git a/pkgs/applications/editors/standardnotes/default.nix b/pkgs/applications/editors/standardnotes/default.nix
index 6e4354612e3f6..e3348ceebfd72 100644
--- a/pkgs/applications/editors/standardnotes/default.nix
+++ b/pkgs/applications/editors/standardnotes/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ mgregoire chuangzhu squalus ];
     sourceProvenance = [ sourceTypes.binaryNativeCode ];
     platforms = builtins.attrNames srcjson.deb;
+    mainProgram = "standardnotes";
   };
 }
diff --git a/pkgs/applications/editors/texmaker/default.nix b/pkgs/applications/editors/texmaker/default.nix
index 3cec9808ed4d4..4684831416b0d 100644
--- a/pkgs/applications/editors/texmaker/default.nix
+++ b/pkgs/applications/editors/texmaker/default.nix
@@ -36,5 +36,6 @@ mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ cfouche markuskowa ];
+    mainProgram = "texmaker";
   };
 }
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index 1f66a581dbe51..0451c067c16cf 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ajs124 cfouche ];
+    mainProgram = "texstudio";
   };
 })
diff --git a/pkgs/applications/editors/textadept/default.nix b/pkgs/applications/editors/textadept/default.nix
index 47a7445bd7f19..536f2cd110096 100644
--- a/pkgs/applications/editors/textadept/default.nix
+++ b/pkgs/applications/editors/textadept/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ raskin mirrexagon arcuru ];
     platforms = platforms.linux;
+    mainProgram = "textadept";
   };
 }
diff --git a/pkgs/applications/editors/texworks/default.nix b/pkgs/applications/editors/texworks/default.nix
index b27ab8bbb69bd..315db41159007 100644
--- a/pkgs/applications/editors/texworks/default.nix
+++ b/pkgs/applications/editors/texworks/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dotlambda ];
     platforms = with platforms; linux;
+    mainProgram = "texworks";
   };
 }
diff --git a/pkgs/applications/editors/thonny/default.nix b/pkgs/applications/editors/thonny/default.nix
index 9b6c9a02985da..2eae992a36c6f 100644
--- a/pkgs/applications/editors/thonny/default.nix
+++ b/pkgs/applications/editors/thonny/default.nix
@@ -64,5 +64,6 @@ buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ leenaars ];
     platforms = platforms.unix;
+    mainProgram = "thonny";
   };
 }
diff --git a/pkgs/applications/editors/tweak/default.nix b/pkgs/applications/editors/tweak/default.nix
index f6b241c9d07f0..9663728e6ef90 100644
--- a/pkgs/applications/editors/tweak/default.nix
+++ b/pkgs/applications/editors/tweak/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.chiark.greenend.org.uk/~sgtatham/tweak";
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "tweak";
   };
 }
diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix
index 936cc9f7bb87d..5bedface4c5a1 100644
--- a/pkgs/applications/editors/typora/default.nix
+++ b/pkgs/applications/editors/typora/default.nix
@@ -100,5 +100,6 @@ in stdenv.mkDerivation {
     license = licenses.unfree;
     maintainers = with maintainers; [ npulidomateo ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "typora";
   };
 }
diff --git a/pkgs/applications/editors/uivonim/default.nix b/pkgs/applications/editors/uivonim/default.nix
index 36d3ee4afddcc..a888747d05223 100644
--- a/pkgs/applications/editors/uivonim/default.nix
+++ b/pkgs/applications/editors/uivonim/default.nix
@@ -39,5 +39,6 @@ buildNpmPackage rec {
     maintainers = with maintainers; [ gebner ];
     platforms = platforms.unix;
     license = licenses.agpl3Only;
+    mainProgram = "uivonim";
   };
 }
diff --git a/pkgs/applications/editors/vbindiff/default.nix b/pkgs/applications/editors/vbindiff/default.nix
index 9a103867fbc69..30d902ce0fd08 100644
--- a/pkgs/applications/editors/vbindiff/default.nix
+++ b/pkgs/applications/editors/vbindiff/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.cjmweb.net/vbindiff/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
+    mainProgram = "vbindiff";
   };
 }
diff --git a/pkgs/applications/editors/viw/default.nix b/pkgs/applications/editors/viw/default.nix
index 0ba381901b983..ad47edfe83e4d 100644
--- a/pkgs/applications/editors/viw/default.nix
+++ b/pkgs/applications/editors/viw/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/lpan/viw";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "viw";
   };
 }
diff --git a/pkgs/applications/editors/wily/default.nix b/pkgs/applications/editors/wily/default.nix
index 3fe756bcf72b7..74d0bc156758b 100644
--- a/pkgs/applications/editors/wily/default.nix
+++ b/pkgs/applications/editors/wily/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.artistic1;
     maintainers = [ maintainers.vrthra ];
     platforms = platforms.unix;
+    mainProgram = "wily";
   };
 }
diff --git a/pkgs/applications/editors/wxhexeditor/default.nix b/pkgs/applications/editors/wxhexeditor/default.nix
index a036e05329773..23ef7a0ef567a 100644
--- a/pkgs/applications/editors/wxhexeditor/default.nix
+++ b/pkgs/applications/editors/wxhexeditor/default.nix
@@ -76,5 +76,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ wegank ];
+    mainProgram = "wxHexEditor";
   };
 }
diff --git a/pkgs/applications/editors/xed-editor/default.nix b/pkgs/applications/editors/xed-editor/default.nix
index 85909af04e981..6013f8a699fe5 100644
--- a/pkgs/applications/editors/xed-editor/default.nix
+++ b/pkgs/applications/editors/xed-editor/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ tu-maurice bobby285271 ];
+    mainProgram = "xed";
   };
 }
diff --git a/pkgs/applications/editors/xedit/default.nix b/pkgs/applications/editors/xedit/default.nix
index a6a29addc7a96..679d64d6cca4b 100644
--- a/pkgs/applications/editors/xedit/default.nix
+++ b/pkgs/applications/editors/xedit/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     # never built on aarch64-darwin, x86_64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin;
+    mainProgram = "xedit";
   };
 }
diff --git a/pkgs/applications/editors/xmlcopyeditor/default.nix b/pkgs/applications/editors/xmlcopyeditor/default.nix
index bd7c237e8c133..7d75bdce82eff 100644
--- a/pkgs/applications/editors/xmlcopyeditor/default.nix
+++ b/pkgs/applications/editors/xmlcopyeditor/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ candeira wegank ];
+    mainProgram = "xmlcopyeditor";
   };
 }
diff --git a/pkgs/applications/editors/zee/default.nix b/pkgs/applications/editors/zee/default.nix
index 8de11fd5d59c2..e7db019467ba8 100644
--- a/pkgs/applications/editors/zee/default.nix
+++ b/pkgs/applications/editors/zee/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/zee-editor/zee";
     license = licenses.mit;
     maintainers = with maintainers; [ booklearner ];
+    mainProgram = "zee";
   };
 }
diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix
index cb1307d7ffb42..bafb1aa303853 100644
--- a/pkgs/applications/editors/zile/default.nix
+++ b/pkgs/applications/editors/zile/default.nix
@@ -76,5 +76,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ pSub AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "zile";
   };
 }
diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix
index cd0d6dbc93863..9294c33c5863d 100644
--- a/pkgs/applications/gis/grass/default.nix
+++ b/pkgs/applications/gis/grass/default.nix
@@ -152,5 +152,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; teams.geospatial.members ++ [ mpickering ];
     platforms = platforms.all;
+    mainProgram = "grass";
   };
 })
diff --git a/pkgs/applications/gis/openorienteering-mapper/default.nix b/pkgs/applications/gis/openorienteering-mapper/default.nix
index 9722c3cb4dee5..81278c9184e79 100644
--- a/pkgs/applications/gis/openorienteering-mapper/default.nix
+++ b/pkgs/applications/gis/openorienteering-mapper/default.nix
@@ -87,5 +87,6 @@ mkDerivation rec {
     maintainers = with maintainers; [ mpickering sikmir ];
     platforms = with platforms; unix;
     broken = stdenv.isDarwin;
+    mainProgram = "Mapper";
   };
 }
diff --git a/pkgs/applications/gis/tunnelx/default.nix b/pkgs/applications/gis/tunnelx/default.nix
index 3ec0439a5d882..270faac53f685 100644
--- a/pkgs/applications/gis/tunnelx/default.nix
+++ b/pkgs/applications/gis/tunnelx/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ goatchurchprime ];
     platforms = lib.platforms.linux;
+    mainProgram = "tunnelx";
   };
 })
diff --git a/pkgs/applications/gis/udig/default.nix b/pkgs/applications/gis/udig/default.nix
index 808b70ed5ec93..8510918d4cabc 100644
--- a/pkgs/applications/gis/udig/default.nix
+++ b/pkgs/applications/gis/udig/default.nix
@@ -22,6 +22,7 @@ let
     license = with licenses; [ epl10 bsd3 ];
     maintainers = with maintainers; [ sikmir ];
     platforms = builtins.attrNames srcs;
+    mainProgram = "udig";
   };
 
   linux = stdenv.mkDerivation {
diff --git a/pkgs/applications/networking/Sylk/default.nix b/pkgs/applications/networking/Sylk/default.nix
index cc9e218bad359..b7eca10fc7cfd 100644
--- a/pkgs/applications/networking/Sylk/default.nix
+++ b/pkgs/applications/networking/Sylk/default.nix
@@ -27,5 +27,6 @@ appimageTools.wrapType2 rec {
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ zimbatm ];
     platforms = [ "i386-linux" "x86_64-linux" ];
+    mainProgram = "Sylk";
   };
 }
diff --git a/pkgs/applications/networking/alpnpass/default.nix b/pkgs/applications/networking/alpnpass/default.nix
index 81bdc29a54f33..edf8061da4d17 100644
--- a/pkgs/applications/networking/alpnpass/default.nix
+++ b/pkgs/applications/networking/alpnpass/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     homepage = "https://github.com/VerSprite/alpnpass";
     license = licenses.unlicense;
     maintainers = [ maintainers.raboof ];
+    mainProgram = "alpnpass";
   };
 }
diff --git a/pkgs/applications/networking/apache-directory-studio/default.nix b/pkgs/applications/networking/apache-directory-studio/default.nix
index 0b1047cbc70c4..596ba95b7450b 100644
--- a/pkgs/applications/networking/apache-directory-studio/default.nix
+++ b/pkgs/applications/networking/apache-directory-studio/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     # Upstream supports macOS and Windows too.
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "ApacheDirectoryStudio";
   };
 }
diff --git a/pkgs/applications/networking/appgate-sdp/default.nix b/pkgs/applications/networking/appgate-sdp/default.nix
index 93ba2ac105b13..fc32fb97f58b9 100644
--- a/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/pkgs/applications/networking/appgate-sdp/default.nix
@@ -155,5 +155,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ymatsiuk ];
+    mainProgram = "appgate";
   };
 }
diff --git a/pkgs/applications/networking/asn/default.nix b/pkgs/applications/networking/asn/default.nix
index 7b8caee04bc95..e81931c619b35 100644
--- a/pkgs/applications/networking/asn/default.nix
+++ b/pkgs/applications/networking/asn/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/nitefood/asn/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "asn";
   };
 }
diff --git a/pkgs/applications/networking/avalanchego/default.nix b/pkgs/applications/networking/avalanchego/default.nix
index e2673068dcb3e..7ac034568c82e 100644
--- a/pkgs/applications/networking/avalanchego/default.nix
+++ b/pkgs/applications/networking/avalanchego/default.nix
@@ -41,5 +41,6 @@ buildGoModule rec {
     changelog = "https://github.com/ava-labs/avalanchego/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ urandom qjoly ];
+    mainProgram = "avalanchego";
   };
 }
diff --git a/pkgs/applications/networking/blocky/default.nix b/pkgs/applications/networking/blocky/default.nix
index bd07776c7df06..3f299be447ad2 100644
--- a/pkgs/applications/networking/blocky/default.nix
+++ b/pkgs/applications/networking/blocky/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     changelog = "https://github.com/0xERR0R/blocky/releases";
     license = licenses.asl20;
     maintainers = with maintainers; [ ratsclub ];
+    mainProgram = "blocky";
   };
 }
diff --git a/pkgs/applications/networking/brig/default.nix b/pkgs/applications/networking/brig/default.nix
index 23370866e7215..8c659a99d0ffb 100644
--- a/pkgs/applications/networking/brig/default.nix
+++ b/pkgs/applications/networking/brig/default.nix
@@ -53,5 +53,6 @@ buildGoModule rec {
     changelog = "https://github.com/sahib/brig/releases/tag/${src.rev}";
     license = licenses.agpl3;
     maintainers = with maintainers; [ offline ];
+    mainProgram = "brig";
   };
 }
diff --git a/pkgs/applications/networking/calls/default.nix b/pkgs/applications/networking/calls/default.nix
index 55924db4a3893..3546284f99c35 100644
--- a/pkgs/applications/networking/calls/default.nix
+++ b/pkgs/applications/networking/calls/default.nix
@@ -112,5 +112,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ craigem lheckemann tomfitzhenry ];
     platforms = platforms.linux;
+    mainProgram = "gnome-calls";
   };
 }
diff --git a/pkgs/applications/networking/charles/default.nix b/pkgs/applications/networking/charles/default.nix
index 27fa0981f170e..27c5ebf9e9c0f 100644
--- a/pkgs/applications/networking/charles/default.nix
+++ b/pkgs/applications/networking/charles/default.nix
@@ -75,5 +75,6 @@ in {
     version = "3.12.3";
     sha256 = "13zk82ny1w5zd9qcs9qkq0kdb22ni5byzajyshpxdfm4zv6p32ss";
     jdk = jdk8.jre;
+    mainProgram = "charles";
   });
 }
diff --git a/pkgs/applications/networking/cloudflare-dyndns/default.nix b/pkgs/applications/networking/cloudflare-dyndns/default.nix
index 7f11ec257038b..2be03621a016f 100644
--- a/pkgs/applications/networking/cloudflare-dyndns/default.nix
+++ b/pkgs/applications/networking/cloudflare-dyndns/default.nix
@@ -56,5 +56,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/kissgyorgy/cloudflare-dyndns";
     license = licenses.mit;
     maintainers = with maintainers; [ lovesegfault ];
+    mainProgram = "cloudflare-dyndns";
   };
 }
diff --git a/pkgs/applications/networking/cozy-drive/default.nix b/pkgs/applications/networking/cozy-drive/default.nix
index c945576f32e11..53d401f01e18e 100644
--- a/pkgs/applications/networking/cozy-drive/default.nix
+++ b/pkgs/applications/networking/cozy-drive/default.nix
@@ -31,5 +31,6 @@ appimageTools.wrapType2 {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ simarra ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "cozydrive";
   };
 }
diff --git a/pkgs/applications/networking/datovka/default.nix b/pkgs/applications/networking/datovka/default.nix
index f86fd87573b3b..b72426bc50dbc 100644
--- a/pkgs/applications/networking/datovka/default.nix
+++ b/pkgs/applications/networking/datovka/default.nix
@@ -29,5 +29,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.mmahut ];
     platforms = platforms.linux;
+    mainProgram = "datovka";
   };
 }
diff --git a/pkgs/applications/networking/discordo/default.nix b/pkgs/applications/networking/discordo/default.nix
index 50112238215de..8b46e31b7b5cf 100644
--- a/pkgs/applications/networking/discordo/default.nix
+++ b/pkgs/applications/networking/discordo/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://github.com/ayn2op/discordo";
     license = licenses.mit;
     maintainers = [ maintainers.arian-d ];
+    mainProgram = "discordo";
   };
 }
diff --git a/pkgs/applications/networking/diswall/default.nix b/pkgs/applications/networking/diswall/default.nix
index f7ef51b7040f1..3d78aa42a2404 100644
--- a/pkgs/applications/networking/diswall/default.nix
+++ b/pkgs/applications/networking/diswall/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://www.diswall.stream";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ izorkin ];
+    mainProgram = "diswall";
   };
 }
diff --git a/pkgs/applications/networking/drive/default.nix b/pkgs/applications/networking/drive/default.nix
index 4c7b5727fbac9..e8b62033f350b 100644
--- a/pkgs/applications/networking/drive/default.nix
+++ b/pkgs/applications/networking/drive/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     description = "Google Drive client for the commandline";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "drive";
   };
 }
diff --git a/pkgs/applications/networking/droopy/default.nix b/pkgs/applications/networking/droopy/default.nix
index 47298fb4dbc2f..35176db8b2415 100644
--- a/pkgs/applications/networking/droopy/default.nix
+++ b/pkgs/applications/networking/droopy/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation {
     homepage = "http://stackp.online.fr/droopy";
     license = licenses.bsd3;
     maintainers = [ maintainers.Profpatsch ];
+    mainProgram = "droopy";
   };
 
 }
diff --git a/pkgs/applications/networking/dsvpn/default.nix b/pkgs/applications/networking/dsvpn/default.nix
index f165e6a59942d..53aa9fb894087 100644
--- a/pkgs/applications/networking/dsvpn/default.nix
+++ b/pkgs/applications/networking/dsvpn/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.unix;
+    mainProgram = "dsvpn";
   };
 }
diff --git a/pkgs/applications/networking/errbot/default.nix b/pkgs/applications/networking/errbot/default.nix
index 9e239627b02c1..c94bbc8780188 100644
--- a/pkgs/applications/networking/errbot/default.nix
+++ b/pkgs/applications/networking/errbot/default.nix
@@ -68,5 +68,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     # flaky on darwin, "RuntimeError: can't start new thread"
+    mainProgram = "errbot";
   };
 }
diff --git a/pkgs/applications/networking/filebrowser/default.nix b/pkgs/applications/networking/filebrowser/default.nix
index 153cc791cbf91..334302cae0089 100644
--- a/pkgs/applications/networking/filebrowser/default.nix
+++ b/pkgs/applications/networking/filebrowser/default.nix
@@ -56,5 +56,6 @@ buildGoModule rec {
     homepage = "https://filebrowser.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ nielsegberts ];
+    mainProgram = "filebrowser";
   };
 }
diff --git a/pkgs/applications/networking/gdrive/default.nix b/pkgs/applications/networking/gdrive/default.nix
index c442303e6758c..2d100e3c21599 100644
--- a/pkgs/applications/networking/gdrive/default.nix
+++ b/pkgs/applications/networking/gdrive/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     description = "A command line utility for interacting with Google Drive";
     license = licenses.mit;
     maintainers = [ maintainers.rzetterberg ];
+    mainProgram = "gdrive";
   };
 }
diff --git a/pkgs/applications/networking/gdrive3/default.nix b/pkgs/applications/networking/gdrive3/default.nix
index 8d9553270906b..4e7fea1296542 100644
--- a/pkgs/applications/networking/gdrive3/default.nix
+++ b/pkgs/applications/networking/gdrive3/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/glotlabs/gdrive/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "gdrive";
   };
 }
diff --git a/pkgs/applications/networking/giara/default.nix b/pkgs/applications/networking/giara/default.nix
index 7335a60920243..9acbf6f929b98 100644
--- a/pkgs/applications/networking/giara/default.nix
+++ b/pkgs/applications/networking/giara/default.nix
@@ -73,5 +73,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://gitlab.gnome.org/World/giara";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "giara";
   };
 }
diff --git a/pkgs/applications/networking/gnmic/default.nix b/pkgs/applications/networking/gnmic/default.nix
index c6d8770415a1e..3bd4697a6e6e0 100644
--- a/pkgs/applications/networking/gnmic/default.nix
+++ b/pkgs/applications/networking/gnmic/default.nix
@@ -41,5 +41,6 @@ buildGoModule rec {
     changelog = "https://github.com/openconfig/gnmic/releases/tag/${src.rev}";
     license = licenses.asl20;
     maintainers = with maintainers; [ vincentbernat ];
+    mainProgram = "gnmic";
   };
 }
diff --git a/pkgs/applications/networking/gnome-network-displays/default.nix b/pkgs/applications/networking/gnome-network-displays/default.nix
index b9722b6989ff1..e7bfde8a5192f 100644
--- a/pkgs/applications/networking/gnome-network-displays/default.nix
+++ b/pkgs/applications/networking/gnome-network-displays/default.nix
@@ -76,5 +76,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with maintainers; [ doronbehar ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "gnome-network-displays";
   };
 })
diff --git a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
index 2367f847d1073..281c9e5526eb0 100644
--- a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
+++ b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
@@ -27,5 +27,6 @@ buildDunePackage rec {
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ obadz ];
+    mainProgram = "google-drive-ocamlfuse";
   };
 }
diff --git a/pkgs/applications/networking/gossa/default.nix b/pkgs/applications/networking/gossa/default.nix
index 17d9f828b6423..13b59f4c4d9df 100644
--- a/pkgs/applications/networking/gossa/default.nix
+++ b/pkgs/applications/networking/gossa/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     description = "A fast and simple multimedia fileserver";
     license = licenses.mit;
     maintainers = with maintainers; [ dsymbol ];
+    mainProgram = "gossa";
   };
 }
diff --git a/pkgs/applications/networking/headlines/default.nix b/pkgs/applications/networking/headlines/default.nix
index ed26c6f60de22..8db698e963bc4 100644
--- a/pkgs/applications/networking/headlines/default.nix
+++ b/pkgs/applications/networking/headlines/default.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ chuangzhu ];
+    mainProgram = "headlines";
   };
 }
diff --git a/pkgs/applications/networking/hpmyroom/default.nix b/pkgs/applications/networking/hpmyroom/default.nix
index 1897a283f70d8..a177256432d30 100644
--- a/pkgs/applications/networking/hpmyroom/default.nix
+++ b/pkgs/applications/networking/hpmyroom/default.nix
@@ -55,5 +55,6 @@ mkDerivation rec {
     homepage = "https://myroom.hpe.com";
     # TODO: A Darwin binary is available upstream
     platforms = [ "x86_64-linux" ];
+    mainProgram = "hpmyroom";
   };
 }
diff --git a/pkgs/applications/networking/hydroxide/default.nix b/pkgs/applications/networking/hydroxide/default.nix
index 994e17c750c89..132ad32160b97 100644
--- a/pkgs/applications/networking/hydroxide/default.nix
+++ b/pkgs/applications/networking/hydroxide/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/emersion/hydroxide";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "hydroxide";
   };
 }
diff --git a/pkgs/applications/networking/icemon/default.nix b/pkgs/applications/networking/icemon/default.nix
index b757445eb087b..7fa4c37b557a2 100644
--- a/pkgs/applications/networking/icemon/default.nix
+++ b/pkgs/applications/networking/icemon/default.nix
@@ -20,5 +20,6 @@ mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ emantor ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "icemon";
   };
 }
diff --git a/pkgs/applications/networking/insync/default.nix b/pkgs/applications/networking/insync/default.nix
index 4e11d9fe38634..844b8648d6c85 100644
--- a/pkgs/applications/networking/insync/default.nix
+++ b/pkgs/applications/networking/insync/default.nix
@@ -37,6 +37,7 @@ let
      1) Currently the system try icon does not render correctly.
      2) libqtvirtualkeyboardplugin does not have necessary Qt library shipped from vendor.
     '';
+    mainProgram = "insync";
   };
 
   insync-pkg = stdenvNoCC.mkDerivation {
diff --git a/pkgs/applications/networking/ipfs-upload-client/default.nix b/pkgs/applications/networking/ipfs-upload-client/default.nix
index 8a06565e1fced..416f3dc60cc6e 100644
--- a/pkgs/applications/networking/ipfs-upload-client/default.nix
+++ b/pkgs/applications/networking/ipfs-upload-client/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/INFURA/ipfs-upload-client";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
+    mainProgram = "ipfs-upload-client";
   };
 }
diff --git a/pkgs/applications/networking/ipget/default.nix b/pkgs/applications/networking/ipget/default.nix
index c45398dfd4f4b..0ad7de8ec468c 100644
--- a/pkgs/applications/networking/ipget/default.nix
+++ b/pkgs/applications/networking/ipget/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://ipfs.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ Luflosi ];
+    mainProgram = "ipget";
   };
 }
diff --git a/pkgs/applications/networking/iptraf-ng/default.nix b/pkgs/applications/networking/iptraf-ng/default.nix
index c90fd239267e0..d21f21def8e2a 100644
--- a/pkgs/applications/networking/iptraf-ng/default.nix
+++ b/pkgs/applications/networking/iptraf-ng/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "iptraf-ng";
   };
 }
diff --git a/pkgs/applications/networking/iroh/default.nix b/pkgs/applications/networking/iroh/default.nix
index a260bca6a55d2..2e2ef6ee6ccc3 100644
--- a/pkgs/applications/networking/iroh/default.nix
+++ b/pkgs/applications/networking/iroh/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://iroh.computer";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ cameronfyfe ];
+    mainProgram = "iroh";
   };
 }
diff --git a/pkgs/applications/networking/juju/default.nix b/pkgs/applications/networking/juju/default.nix
index d0542f5c3edca..17d80e496e317 100644
--- a/pkgs/applications/networking/juju/default.nix
+++ b/pkgs/applications/networking/juju/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://juju.is";
     license = licenses.mit;
     maintainers = with maintainers; [ citadelcore ];
+    mainProgram = "juju";
   };
 }
diff --git a/pkgs/applications/networking/jxplorer/default.nix b/pkgs/applications/networking/jxplorer/default.nix
index 7f1a46b37dabf..e64cbaf357b01 100644
--- a/pkgs/applications/networking/jxplorer/default.nix
+++ b/pkgs/applications/networking/jxplorer/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license     = lib.licenses.caossl;
     maintainers = with maintainers; [ benwbooth ];
     platforms   = platforms.linux;
+    mainProgram = "jxplorer";
   };
 }
diff --git a/pkgs/applications/networking/lieer/default.nix b/pkgs/applications/networking/lieer/default.nix
index 26ecf043a4d53..7ce2d07ce7dd3 100644
--- a/pkgs/applications/networking/lieer/default.nix
+++ b/pkgs/applications/networking/lieer/default.nix
@@ -42,5 +42,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://lieer.gaute.vetsj.com/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ flokli ];
+    mainProgram = "gmi";
   };
 }
diff --git a/pkgs/applications/networking/linssid/default.nix b/pkgs/applications/networking/linssid/default.nix
index 72128a5ef95c4..000354d1e5c9a 100644
--- a/pkgs/applications/networking/linssid/default.nix
+++ b/pkgs/applications/networking/linssid/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "linssid";
   };
 }
diff --git a/pkgs/applications/networking/listadmin/default.nix b/pkgs/applications/networking/listadmin/default.nix
index a59f65995e2e3..6a4a2927d3ef3 100644
--- a/pkgs/applications/networking/listadmin/default.nix
+++ b/pkgs/applications/networking/listadmin/default.nix
@@ -44,5 +44,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.publicDomain;
     platforms = platforms.unix;
     maintainers = with maintainers; [ nomeata ];
+    mainProgram = "listadmin";
   };
 }
diff --git a/pkgs/applications/networking/lls/default.nix b/pkgs/applications/networking/lls/default.nix
index 5c882c1da80e3..3d4d70597e69c 100644
--- a/pkgs/applications/networking/lls/default.nix
+++ b/pkgs/applications/networking/lls/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = [ maintainers.k900 ];
     platforms = platforms.linux;
     homepage = "https://github.com/jcaesar/lls";
+    mainProgram = "lls";
   };
 }
diff --git a/pkgs/applications/networking/localproxy/default.nix b/pkgs/applications/networking/localproxy/default.nix
index 719b730817b41..9144b67c9abb3 100644
--- a/pkgs/applications/networking/localproxy/default.nix
+++ b/pkgs/applications/networking/localproxy/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.asl20;
     maintainers = with maintainers; [ spalf ];
     platforms = platforms.unix;
+    mainProgram = "localproxy";
   };
 })
diff --git a/pkgs/applications/networking/mhost/default.nix b/pkgs/applications/networking/mhost/default.nix
index beed066e65e98..ac02ca8f64c17 100644
--- a/pkgs/applications/networking/mhost/default.nix
+++ b/pkgs/applications/networking/mhost/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lukaspustina/mhost";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.mgttlinger ];
+    mainProgram = "mhost";
   };
 }
diff --git a/pkgs/applications/networking/modem-manager-gui/default.nix b/pkgs/applications/networking/modem-manager-gui/default.nix
index 5702ff414f336..21748a86e81b1 100644
--- a/pkgs/applications/networking/modem-manager-gui/default.nix
+++ b/pkgs/applications/networking/modem-manager-gui/default.nix
@@ -81,5 +81,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ ahuzik galagora ];
     platforms = platforms.linux;
+    mainProgram = "modem-manager-gui";
   };
 }
diff --git a/pkgs/applications/networking/n8n/default.nix b/pkgs/applications/networking/n8n/default.nix
index 1b2caaf5bb065..20775c4ed4afe 100644
--- a/pkgs/applications/networking/n8n/default.nix
+++ b/pkgs/applications/networking/n8n/default.nix
@@ -41,5 +41,6 @@ nodePackages.n8n.override {
     description = "Free and source-available fair-code licensed workflow automation tool. Easily automate tasks across different services.";
     maintainers = with maintainers; [ freezeboy k900 ];
     license = licenses.sustainableUse;
+    mainProgram = "n8n";
   };
 }
diff --git a/pkgs/applications/networking/nali/default.nix b/pkgs/applications/networking/nali/default.nix
index 8fc822416bf2d..80087822bf858 100644
--- a/pkgs/applications/networking/nali/default.nix
+++ b/pkgs/applications/networking/nali/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/zu1k/nali";
     license = licenses.mit;
     maintainers = with maintainers; [ diffumist xyenon ];
+    mainProgram = "nali";
   };
 }
diff --git a/pkgs/applications/networking/ncgopher/default.nix b/pkgs/applications/networking/ncgopher/default.nix
index bebb16740840c..5bc7da276caf3 100644
--- a/pkgs/applications/networking/ncgopher/default.nix
+++ b/pkgs/applications/networking/ncgopher/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "ncgopher";
   };
 }
diff --git a/pkgs/applications/networking/ndppd/default.nix b/pkgs/applications/networking/ndppd/default.nix
index 290a6519f85a4..b52f312e03fe3 100644
--- a/pkgs/applications/networking/ndppd/default.nix
+++ b/pkgs/applications/networking/ndppd/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ fadenb ];
+    mainProgram = "ndppd";
   };
 }
diff --git a/pkgs/applications/networking/netmaker/default.nix b/pkgs/applications/networking/netmaker/default.nix
index ffab340d023fa..086c9325f565e 100644
--- a/pkgs/applications/networking/netmaker/default.nix
+++ b/pkgs/applications/networking/netmaker/default.nix
@@ -40,5 +40,6 @@ buildGoModule rec {
     changelog = "https://github.com/gravitl/netmaker/-/releases/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom qjoly ];
+    mainProgram = "netmaker";
   };
 }
diff --git a/pkgs/applications/networking/nextdns/default.nix b/pkgs/applications/networking/nextdns/default.nix
index 91d4c8dccbacf..094fa8007d7b8 100644
--- a/pkgs/applications/networking/nextdns/default.nix
+++ b/pkgs/applications/networking/nextdns/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://nextdns.io";
     license = licenses.mit;
     maintainers = with maintainers; [ pnelson ];
+    mainProgram = "nextdns";
   };
 }
diff --git a/pkgs/applications/networking/nntp-proxy/default.nix b/pkgs/applications/networking/nntp-proxy/default.nix
index a3a136a32695c..05c8263f436bb 100644
--- a/pkgs/applications/networking/nntp-proxy/default.nix
+++ b/pkgs/applications/networking/nntp-proxy/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.fadenb ];
     platforms = lib.platforms.all;
+    mainProgram = "nntp-proxy";
   };
 }
diff --git a/pkgs/applications/networking/novnc/default.nix b/pkgs/applications/networking/novnc/default.nix
index 17d32b84a78f6..c0fa9afdb2430 100644
--- a/pkgs/applications/networking/novnc/default.nix
+++ b/pkgs/applications/networking/novnc/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     homepage = "https://novnc.com";
     license = with licenses; [ mpl20 ofl bsd3 bsd2 mit ];
     maintainers = with maintainers; [ neverbehave ];
+    mainProgram = "novnc";
   };
 }
diff --git a/pkgs/applications/networking/offrss/default.nix b/pkgs/applications/networking/offrss/default.nix
index 773ec444edf92..8d7889663fff7 100644
--- a/pkgs/applications/networking/offrss/default.nix
+++ b/pkgs/applications/networking/offrss/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ viric ];
     platforms = lib.platforms.linux;
+    mainProgram = "offrss";
   };
 }
diff --git a/pkgs/applications/networking/omping/default.nix b/pkgs/applications/networking/omping/default.nix
index 2089408d09bab..808df455a4f2e 100644
--- a/pkgs/applications/networking/omping/default.nix
+++ b/pkgs/applications/networking/omping/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.unix;
     inherit (src.meta) homepage;
+    mainProgram = "omping";
   };
 }
diff --git a/pkgs/applications/networking/onionshare/default.nix b/pkgs/applications/networking/onionshare/default.nix
index d1aef51808377..6cb15ad685d95 100644
--- a/pkgs/applications/networking/onionshare/default.nix
+++ b/pkgs/applications/networking/onionshare/default.nix
@@ -58,6 +58,7 @@ let
 
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ lourkeur ];
+    mainProgram = "onionshare-cli";
   };
 
   # TODO: package meek https://support.torproject.org/glossary/meek/
diff --git a/pkgs/applications/networking/opsdroid/default.nix b/pkgs/applications/networking/opsdroid/default.nix
index d4f2a9b26a185..45569fefb28fa 100644
--- a/pkgs/applications/networking/opsdroid/default.nix
+++ b/pkgs/applications/networking/opsdroid/default.nix
@@ -32,5 +32,6 @@ python3Packages.buildPythonPackage rec {
     maintainers = with maintainers; [ globin willibutz ];
     license = licenses.asl20;
     platforms = platforms.unix;
+    mainProgram = "opsdroid";
   };
 }
diff --git a/pkgs/applications/networking/pcloud/default.nix b/pkgs/applications/networking/pcloud/default.nix
index e0249f813a74c..09662f4eb56b3 100644
--- a/pkgs/applications/networking/pcloud/default.nix
+++ b/pkgs/applications/networking/pcloud/default.nix
@@ -121,5 +121,6 @@ stdenv.mkDerivation {
     license = licenses.unfree;
     maintainers = with maintainers; [ patryk27 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "pcloud";
   };
 }
diff --git a/pkgs/applications/networking/protocol/default.nix b/pkgs/applications/networking/protocol/default.nix
index 535cc3aa3171d..15067e2d9ab2e 100644
--- a/pkgs/applications/networking/protocol/default.nix
+++ b/pkgs/applications/networking/protocol/default.nix
@@ -25,5 +25,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/luismartingarcia/protocol";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ teto ];
+    mainProgram = "protocol";
   };
 }
diff --git a/pkgs/applications/networking/protonmail-bridge/default.nix b/pkgs/applications/networking/protonmail-bridge/default.nix
index 7d53cbbcb8dac..85922fea6551e 100644
--- a/pkgs/applications/networking/protonmail-bridge/default.nix
+++ b/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -52,5 +52,6 @@ buildGoModule rec {
 
       To work, use secret-service freedesktop.org API (e.g. Gnome keyring) or pass.
     '';
+    mainProgram = "protonmail-bridge";
   };
 }
diff --git a/pkgs/applications/networking/qv2ray/default.nix b/pkgs/applications/networking/qv2ray/default.nix
index 50143013b88f0..ee2e7ddf3f08e 100644
--- a/pkgs/applications/networking/qv2ray/default.nix
+++ b/pkgs/applications/networking/qv2ray/default.nix
@@ -79,5 +79,6 @@ mkDerivation rec {
     platforms = platforms.all;
     # never built on aarch64-darwin, x86_64-darwin since update to unstable-2022-09-25
     broken = stdenv.isDarwin;
+    mainProgram = "qv2ray";
   };
 }
diff --git a/pkgs/applications/networking/r53-ddns/default.nix b/pkgs/applications/networking/r53-ddns/default.nix
index 6761741ce9cec..8db9ddacef726 100644
--- a/pkgs/applications/networking/r53-ddns/default.nix
+++ b/pkgs/applications/networking/r53-ddns/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/fleaz/r53-ddns";
     description = "A DIY DynDNS tool based on Route53";
     maintainers = with maintainers; [ fleaz ];
+    mainProgram = "r53-ddns";
   };
 }
diff --git a/pkgs/applications/networking/resilio-sync/default.nix b/pkgs/applications/networking/resilio-sync/default.nix
index 16d5f0952ebc8..5bf146995f128 100644
--- a/pkgs/applications/networking/resilio-sync/default.nix
+++ b/pkgs/applications/networking/resilio-sync/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license     = licenses.unfreeRedistributable;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ domenkozar thoughtpolice cwoac jwoudenberg ];
+    mainProgram = "rslsync";
   };
 }
diff --git a/pkgs/applications/networking/rofi-vpn/default.nix b/pkgs/applications/networking/rofi-vpn/default.nix
index 8ff83db294ff4..d900df082076d 100644
--- a/pkgs/applications/networking/rofi-vpn/default.nix
+++ b/pkgs/applications/networking/rofi-vpn/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ DamienCassou ];
     platforms = platforms.linux;
+    mainProgram = "rofi-vpn";
   };
 }
diff --git a/pkgs/applications/networking/rymdport/default.nix b/pkgs/applications/networking/rymdport/default.nix
index b9f4838f58bf0..cb7d99b047996 100644
--- a/pkgs/applications/networking/rymdport/default.nix
+++ b/pkgs/applications/networking/rymdport/default.nix
@@ -48,5 +48,6 @@ buildGoModule rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda ];
     platforms = lib.platforms.linux;
+    mainProgram = "rymdport";
   };
 }
diff --git a/pkgs/applications/networking/scaleft/default.nix b/pkgs/applications/networking/scaleft/default.nix
index d31d56702ace2..bcfde9f1a0057 100644
--- a/pkgs/applications/networking/scaleft/default.nix
+++ b/pkgs/applications/networking/scaleft/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ jloyet ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "sft";
   };
 }
diff --git a/pkgs/applications/networking/seafile-client/default.nix b/pkgs/applications/networking/seafile-client/default.nix
index c7d4508c060cc..4da47eddd61bb 100644
--- a/pkgs/applications/networking/seafile-client/default.nix
+++ b/pkgs/applications/networking/seafile-client/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ schmittlauch greizgh ];
+    mainProgram = "seafile-applet";
   };
 }
diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix
index e87ea1bbe5149..bc722b91fa029 100644
--- a/pkgs/applications/networking/shellhub-agent/default.nix
+++ b/pkgs/applications/networking/shellhub-agent/default.nix
@@ -56,5 +56,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ otavio ];
     platforms = platforms.linux;
+    mainProgram = "agent";
   };
 }
diff --git a/pkgs/applications/networking/sieve-connect/default.nix b/pkgs/applications/networking/sieve-connect/default.nix
index 46fc2a7ae1701..a3f78b5d59518 100644
--- a/pkgs/applications/networking/sieve-connect/default.nix
+++ b/pkgs/applications/networking/sieve-connect/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ das_j ];
+    mainProgram = "sieve-connect";
   };
 }
diff --git a/pkgs/applications/networking/sniffnet/default.nix b/pkgs/applications/networking/sniffnet/default.nix
index afa496f5ab612..b3cb5316ec0c8 100644
--- a/pkgs/applications/networking/sniffnet/default.nix
+++ b/pkgs/applications/networking/sniffnet/default.nix
@@ -61,5 +61,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/gyulyvgc/sniffnet/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "sniffnet";
   };
 }
diff --git a/pkgs/applications/networking/sniproxy/default.nix b/pkgs/applications/networking/sniproxy/default.nix
index 8d2b619ab7189..778681063b616 100644
--- a/pkgs/applications/networking/sniproxy/default.nix
+++ b/pkgs/applications/networking/sniproxy/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ womfoo raitobezarius ];
     platforms = platforms.linux;
+    mainProgram = "sniproxy";
   };
 
 }
diff --git a/pkgs/applications/networking/soapui/default.nix b/pkgs/applications/networking/soapui/default.nix
index fc515590f37ae..df54826608b66 100644
--- a/pkgs/applications/networking/soapui/default.nix
+++ b/pkgs/applications/networking/soapui/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = "SoapUI End User License Agreement";
     maintainers = with maintainers; [ gerschtli ];
     platforms = platforms.all;
+    mainProgram = "soapui";
   };
 }
diff --git a/pkgs/applications/networking/spideroak/default.nix b/pkgs/applications/networking/spideroak/default.nix
index 0bfc62ccfbb2b..c1531a25b5480 100644
--- a/pkgs/applications/networking/spideroak/default.nix
+++ b/pkgs/applications/networking/spideroak/default.nix
@@ -57,5 +57,6 @@ in stdenv.mkDerivation {
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ amorsillo ];
     platforms = lib.platforms.linux;
+    mainProgram = "spideroak";
   };
 }
diff --git a/pkgs/applications/networking/station/default.nix b/pkgs/applications/networking/station/default.nix
index 9160568ee4830..43392ae28e483 100644
--- a/pkgs/applications/networking/station/default.nix
+++ b/pkgs/applications/networking/station/default.nix
@@ -37,5 +37,6 @@ in appimageTools.wrapType2 rec {
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ ];
+    mainProgram = "station";
   };
 }
diff --git a/pkgs/applications/networking/stc-cli/default.nix b/pkgs/applications/networking/stc-cli/default.nix
index bae71f82cb4eb..bfc2d1e84d290 100644
--- a/pkgs/applications/networking/stc-cli/default.nix
+++ b/pkgs/applications/networking/stc-cli/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     changelog = "https://github.com/tenox7/stc/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = [ maintainers.ivankovnatsky ];
+    mainProgram = "stc";
   };
 }
diff --git a/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix b/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix
index 3ceb5c0e1afd2..77ad4dad40d09 100644
--- a/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix
+++ b/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix
@@ -39,5 +39,6 @@ qt5.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ kalbasit ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "SynologyCloudSyncDecryptionTool";
   };
 }
diff --git a/pkgs/applications/networking/synology-drive-client/default.nix b/pkgs/applications/networking/synology-drive-client/default.nix
index 34d33e326ab4d..7d3efef57de9d 100644
--- a/pkgs/applications/networking/synology-drive-client/default.nix
+++ b/pkgs/applications/networking/synology-drive-client/default.nix
@@ -11,6 +11,7 @@ let
     license = licenses.unfree;
     maintainers = with maintainers; [ jcouyang MoritzBoehme ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    mainProgram = "synology-drive";
   };
   passthru.updateScript = writeScript "update-synology-drive-client" ''
     #!/usr/bin/env nix-shell
diff --git a/pkgs/applications/networking/tcping-go/default.nix b/pkgs/applications/networking/tcping-go/default.nix
index 1502f8a16aef7..950c648337ad9 100644
--- a/pkgs/applications/networking/tcping-go/default.nix
+++ b/pkgs/applications/networking/tcping-go/default.nix
@@ -18,5 +18,6 @@ buildGoModule {
     homepage = "https://github.com/cloverstd/tcping";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
+    mainProgram = "tcping";
   };
 }
diff --git a/pkgs/applications/networking/tcpkali/default.nix b/pkgs/applications/networking/tcpkali/default.nix
index fa0236dcd8c20..805a70f88e741 100644
--- a/pkgs/applications/networking/tcpkali/default.nix
+++ b/pkgs/applications/networking/tcpkali/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     inherit (src.meta) homepage;
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ ethercrow ];
+    mainProgram = "tcpkali";
   };
 }
diff --git a/pkgs/applications/networking/termius/default.nix b/pkgs/applications/networking/termius/default.nix
index f2d8b8d685414..deaa49e4f66d5 100644
--- a/pkgs/applications/networking/termius/default.nix
+++ b/pkgs/applications/networking/termius/default.nix
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ Br1ght0ne th0rgal ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "termius-app";
   };
 }
diff --git a/pkgs/applications/networking/testssl/default.nix b/pkgs/applications/networking/testssl/default.nix
index b5f8285087a7b..a8e60b9b9439b 100644
--- a/pkgs/applications/networking/testssl/default.nix
+++ b/pkgs/applications/networking/testssl/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     homepage = "https://testssl.sh/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ etu ];
+    mainProgram = "testssl.sh";
   };
 }
diff --git a/pkgs/applications/networking/tmpmail/default.nix b/pkgs/applications/networking/tmpmail/default.nix
index d29d5816f449d..8c72fdd435e59 100644
--- a/pkgs/applications/networking/tmpmail/default.nix
+++ b/pkgs/applications/networking/tmpmail/default.nix
@@ -29,5 +29,6 @@ stdenvNoCC.mkDerivation rec {
     description = "A temporary email right from your terminal written in POSIX sh ";
     license = licenses.mit;
     maintainers = [ maintainers.lom ];
+    mainProgram = "tmpmail";
   };
 }
diff --git a/pkgs/applications/networking/trayscale/default.nix b/pkgs/applications/networking/trayscale/default.nix
index ad4c40cd4ad22..023b72b88837e 100644
--- a/pkgs/applications/networking/trayscale/default.nix
+++ b/pkgs/applications/networking/trayscale/default.nix
@@ -50,5 +50,6 @@ buildGoModule rec {
     homepage = "https://github.com/DeedleFake/trayscale";
     license = licenses.mit;
     maintainers = with maintainers; [ k900 ];
+    mainProgram = "trayscale";
   };
 }
diff --git a/pkgs/applications/networking/twtxt/default.nix b/pkgs/applications/networking/twtxt/default.nix
index 7d703d2db4ff5..eb216b1df8612 100644
--- a/pkgs/applications/networking/twtxt/default.nix
+++ b/pkgs/applications/networking/twtxt/default.nix
@@ -33,5 +33,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/buckket/twtxt";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "twtxt";
   };
 }
diff --git a/pkgs/applications/networking/umurmur/default.nix b/pkgs/applications/networking/umurmur/default.nix
index 9af0fb7b73ca2..5af5c568e4636 100644
--- a/pkgs/applications/networking/umurmur/default.nix
+++ b/pkgs/applications/networking/umurmur/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     # never built on aarch64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin && stdenv.isAarch64;
+    mainProgram = "umurmurd";
   };
 }
diff --git a/pkgs/applications/networking/upnp-router-control/default.nix b/pkgs/applications/networking/upnp-router-control/default.nix
index d9ee62affa3b8..928c7a69fd8c6 100644
--- a/pkgs/applications/networking/upnp-router-control/default.nix
+++ b/pkgs/applications/networking/upnp-router-control/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
+    mainProgram = "upnp-router-control";
   };
 }
diff --git a/pkgs/applications/networking/versus/default.nix b/pkgs/applications/networking/versus/default.nix
index 57b14ed54c72f..4e2ca164fda11 100644
--- a/pkgs/applications/networking/versus/default.nix
+++ b/pkgs/applications/networking/versus/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/INFURA/versus";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
+    mainProgram = "versus";
   };
 }
diff --git a/pkgs/applications/networking/warp/default.nix b/pkgs/applications/networking/warp/default.nix
index 2a4591ec3e3f4..b39b102c2f2f4 100644
--- a/pkgs/applications/networking/warp/default.nix
+++ b/pkgs/applications/networking/warp/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ dotlambda foo-dogsquared ];
     platforms = lib.platforms.all;
+    mainProgram = "warp";
   };
 }
diff --git a/pkgs/applications/networking/wayback_machine_downloader/default.nix b/pkgs/applications/networking/wayback_machine_downloader/default.nix
index 49471ebf7e39f..4b8c5096cc5d3 100644
--- a/pkgs/applications/networking/wayback_machine_downloader/default.nix
+++ b/pkgs/applications/networking/wayback_machine_downloader/default.nix
@@ -12,5 +12,6 @@ bundlerApp {
     license = licenses.mit;
     maintainers = [ maintainers.manveru ];
     platforms = platforms.all;
+    mainProgram = "wayback_machine_downloader";
   };
 }
diff --git a/pkgs/applications/networking/websocketd/default.nix b/pkgs/applications/networking/websocketd/default.nix
index 212850dcc7f52..92a65320b8c56 100644
--- a/pkgs/applications/networking/websocketd/default.nix
+++ b/pkgs/applications/networking/websocketd/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "http://websocketd.com/";
     maintainers = [ maintainers.bjornfor ];
     license = licenses.bsd2;
+    mainProgram = "websocketd";
   };
 }
diff --git a/pkgs/applications/networking/wg-bond/default.nix b/pkgs/applications/networking/wg-bond/default.nix
index 0c8c629208af8..f3dec5e6ab07e 100644
--- a/pkgs/applications/networking/wg-bond/default.nix
+++ b/pkgs/applications/networking/wg-bond/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://gitlab.com/cab404/wg-bond/-/releases#v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ cab404 ];
+    mainProgram = "wg-bond";
   };
 }
diff --git a/pkgs/applications/networking/wgcf/default.nix b/pkgs/applications/networking/wgcf/default.nix
index 9b6db44f437e8..a975f1c26cefc 100644
--- a/pkgs/applications/networking/wgcf/default.nix
+++ b/pkgs/applications/networking/wgcf/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/ViRb3/wgcf";
     license = licenses.mit;
     maintainers = with maintainers; [ yureien ];
+    mainProgram = "wgcf";
   };
 }
diff --git a/pkgs/applications/networking/wgnord/default.nix b/pkgs/applications/networking/wgnord/default.nix
index a85c318c65d77..0e73d07616a7e 100644
--- a/pkgs/applications/networking/wgnord/default.nix
+++ b/pkgs/applications/networking/wgnord/default.nix
@@ -61,5 +61,6 @@ resholve.mkDerivation rec {
     changelog = "https://github.com/phirecc/wgnord/releases/tag/v${version}";
     maintainers = with lib.maintainers; [ urandom ];
     license = licenses.mit;
+    mainProgram = "wgnord";
   };
 }
diff --git a/pkgs/applications/networking/yaup/default.nix b/pkgs/applications/networking/yaup/default.nix
index 5894e758e9d96..a5c49ece00d1c 100644
--- a/pkgs/applications/networking/yaup/default.nix
+++ b/pkgs/applications/networking/yaup/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     # ld: unknown option: --export-dynamic
     broken = stdenv.isDarwin;
+    mainProgram = "yaup";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/contour/default.nix b/pkgs/applications/terminal-emulators/contour/default.nix
index 1a036106c6dfc..a1692dd255a2c 100644
--- a/pkgs/applications/terminal-emulators/contour/default.nix
+++ b/pkgs/applications/terminal-emulators/contour/default.nix
@@ -105,5 +105,6 @@ mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ moni ];
     platforms = platforms.unix;
+    mainProgram = "contour";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/cool-retro-term/default.nix b/pkgs/applications/terminal-emulators/cool-retro-term/default.nix
index 528c82fe81993..6630cbaa1258f 100644
--- a/pkgs/applications/terminal-emulators/cool-retro-term/default.nix
+++ b/pkgs/applications/terminal-emulators/cool-retro-term/default.nix
@@ -57,5 +57,6 @@ mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     platforms = with lib.platforms; linux ++ darwin;
     maintainers = with lib.maintainers; [ ];
+    mainProgram = "cool-retro-term";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/darktile/default.nix b/pkgs/applications/terminal-emulators/darktile/default.nix
index 80d3d6187d1ad..fc2b470178f3b 100644
--- a/pkgs/applications/terminal-emulators/darktile/default.nix
+++ b/pkgs/applications/terminal-emulators/darktile/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/liamg/darktile/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ flexagoon ];
+    mainProgram = "darktile";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/dterm/default.nix b/pkgs/applications/terminal-emulators/dterm/default.nix
index 69b1f67d629a9..b9ab08e9bbbc3 100644
--- a/pkgs/applications/terminal-emulators/dterm/default.nix
+++ b/pkgs/applications/terminal-emulators/dterm/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ auchter ];
     platforms = platforms.unix;
+    mainProgram = "dterm";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/gnome-console/default.nix b/pkgs/applications/terminal-emulators/gnome-console/default.nix
index 3b55aafa0a4f9..2141effcf015f 100644
--- a/pkgs/applications/terminal-emulators/gnome-console/default.nix
+++ b/pkgs/applications/terminal-emulators/gnome-console/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members ++ (with maintainers; [ zhaofengli ]);
     platforms = platforms.unix;
+    mainProgram = "kgx";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/hyper/default.nix b/pkgs/applications/terminal-emulators/hyper/default.nix
index 6873558830be1..0c4d0b9d99a20 100644
--- a/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/pkgs/applications/terminal-emulators/hyper/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.mit;
     platforms   = [ "x86_64-linux" ];
+    mainProgram = "hyper";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/lxterminal/default.nix b/pkgs/applications/terminal-emulators/lxterminal/default.nix
index 877655ffbc070..90483efc89a51 100644
--- a/pkgs/applications/terminal-emulators/lxterminal/default.nix
+++ b/pkgs/applications/terminal-emulators/lxterminal/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.pbsds ];
     platforms = lib.platforms.linux;
+    mainProgram = "lxterminal";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/microcom/default.nix b/pkgs/applications/terminal-emulators/microcom/default.nix
index 890a70ac30b7c..ef9f09a606fa3 100644
--- a/pkgs/applications/terminal-emulators/microcom/default.nix
+++ b/pkgs/applications/terminal-emulators/microcom/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ emantor ];
     platforms = with platforms; linux;
+    mainProgram = "microcom";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/sakura/default.nix b/pkgs/applications/terminal-emulators/sakura/default.nix
index 4d1ab91f83afd..bbf435fd4ff73 100644
--- a/pkgs/applications/terminal-emulators/sakura/default.nix
+++ b/pkgs/applications/terminal-emulators/sakura/default.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ astsmtl codyopel AndersonTorres ];
     platforms = lib.platforms.linux;
+    mainProgram = "sakura";
  };
 })
diff --git a/pkgs/applications/terminal-emulators/st/default.nix b/pkgs/applications/terminal-emulators/st/default.nix
index 9856d1428f971..86b0657e0c039 100644
--- a/pkgs/applications/terminal-emulators/st/default.nix
+++ b/pkgs/applications/terminal-emulators/st/default.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.mit;
     maintainers = with maintainers; [ andsild ];
     platforms = platforms.unix;
+    mainProgram = "st";
   };
 })
diff --git a/pkgs/applications/terminal-emulators/stupidterm/default.nix b/pkgs/applications/terminal-emulators/stupidterm/default.nix
index 279af55254e0b..f10d91229376b 100644
--- a/pkgs/applications/terminal-emulators/stupidterm/default.nix
+++ b/pkgs/applications/terminal-emulators/stupidterm/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation {
     license = licenses.lgpl3Plus;
     maintainers = [ maintainers.etu ];
     platforms = platforms.linux;
+    mainProgram = "stupidterm";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/termite/default.nix b/pkgs/applications/terminal-emulators/termite/default.nix
index 2b05ecdc72217..ab854a2f99069 100644
--- a/pkgs/applications/terminal-emulators/termite/default.nix
+++ b/pkgs/applications/terminal-emulators/termite/default.nix
@@ -76,5 +76,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://github.com/thestinger/termite/";
     maintainers = with maintainers; [ koral ];
     platforms = platforms.all;
+    mainProgram = "termite";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/tilix/default.nix b/pkgs/applications/terminal-emulators/tilix/default.nix
index fb8d1b56d0863..65da21cbabc79 100644
--- a/pkgs/applications/terminal-emulators/tilix/default.nix
+++ b/pkgs/applications/terminal-emulators/tilix/default.nix
@@ -83,5 +83,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl20;
     maintainers = with maintainers; [ midchildan ];
     platforms = platforms.linux;
+    mainProgram = "tilix";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/tym/default.nix b/pkgs/applications/terminal-emulators/tym/default.nix
index d999bb5db2979..acfbbb48943d0 100644
--- a/pkgs/applications/terminal-emulators/tym/default.nix
+++ b/pkgs/applications/terminal-emulators/tym/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ wesleyjrz kashw2 ];
     platforms = platforms.linux;
+    mainProgram = "tym";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/xtermcontrol/default.nix b/pkgs/applications/terminal-emulators/xtermcontrol/default.nix
index ebc7657e8af3c..f0c7203fd9cee 100644
--- a/pkgs/applications/terminal-emulators/xtermcontrol/default.nix
+++ b/pkgs/applications/terminal-emulators/xtermcontrol/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.derchris ];
+    mainProgram = "xtermcontrol";
   };
 }
diff --git a/pkgs/applications/version-management/bcompare/default.nix b/pkgs/applications/version-management/bcompare/default.nix
index 9b7a4df091de3..33b4cb0f90b54 100644
--- a/pkgs/applications/version-management/bcompare/default.nix
+++ b/pkgs/applications/version-management/bcompare/default.nix
@@ -90,6 +90,7 @@ let
     license = licenses.unfree;
     maintainers = with maintainers; [ ktor arkivm ];
     platforms = builtins.attrNames srcs;
+    mainProgram = "bcompare";
   };
 in
 if stdenv.isDarwin
diff --git a/pkgs/applications/version-management/bit/default.nix b/pkgs/applications/version-management/bit/default.nix
index 23d676e54eb5b..a1242c43a9ca5 100644
--- a/pkgs/applications/version-management/bit/default.nix
+++ b/pkgs/applications/version-management/bit/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/chriswalz/bit";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "bit";
   };
 }
diff --git a/pkgs/applications/version-management/bumpver/default.nix b/pkgs/applications/version-management/bumpver/default.nix
index 3a1a51f83f8ea..d540d42110736 100644
--- a/pkgs/applications/version-management/bumpver/default.nix
+++ b/pkgs/applications/version-management/bumpver/default.nix
@@ -30,5 +30,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://pypi.org/project/bumpver/";
     license = licenses.mit;
     maintainers = with maintainers; [ kfollesdal ];
+    mainProgram = "bumpver";
   };
 }
diff --git a/pkgs/applications/version-management/codeberg-cli/default.nix b/pkgs/applications/version-management/codeberg-cli/default.nix
index da16be94c33b7..ae63280f7ee7c 100644
--- a/pkgs/applications/version-management/codeberg-cli/default.nix
+++ b/pkgs/applications/version-management/codeberg-cli/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://codeberg.org/RobWalt/codeberg-cli";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ robwalt ];
+    mainProgram = "berg";
   };
 }
diff --git a/pkgs/applications/version-management/conform/default.nix b/pkgs/applications/version-management/conform/default.nix
index 4800a14b31eef..7ee825f566ec7 100644
--- a/pkgs/applications/version-management/conform/default.nix
+++ b/pkgs/applications/version-management/conform/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/siderolabs/conform";
     license = licenses.mpl20;
     maintainers = with maintainers; [ jmgilman jk ];
+    mainProgram = "conform";
   };
 }
diff --git a/pkgs/applications/version-management/cvsps/default.nix b/pkgs/applications/version-management/cvsps/default.nix
index 7423726ac3bad..ebee69ebb3cdd 100644
--- a/pkgs/applications/version-management/cvsps/default.nix
+++ b/pkgs/applications/version-management/cvsps/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.cobite.com/cvsps/";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.unix;
+    mainProgram = "cvsps";
   };
 }
diff --git a/pkgs/applications/version-management/danger-gitlab/default.nix b/pkgs/applications/version-management/danger-gitlab/default.nix
index e994739008d39..654ad2c82d560 100644
--- a/pkgs/applications/version-management/danger-gitlab/default.nix
+++ b/pkgs/applications/version-management/danger-gitlab/default.nix
@@ -10,5 +10,6 @@ bundlerApp {
     homepage = "https://github.com/danger/danger-gitlab-gem";
     license = licenses.mit;
     maintainers = teams.serokell.members;
+    mainProgram = "danger";
   };
 }
diff --git a/pkgs/applications/version-management/darcs-to-git/default.nix b/pkgs/applications/version-management/darcs-to-git/default.nix
index 895e4610f4fc0..14348921054b2 100644
--- a/pkgs/applications/version-management/darcs-to-git/default.nix
+++ b/pkgs/applications/version-management/darcs-to-git/default.nix
@@ -77,5 +77,6 @@ stdenv.mkDerivation {
     homepage = "http://www.sanityinc.com/articles/converting-darcs-repositories-to-git";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
+    mainProgram = "darcs-to-git";
   };
 }
diff --git a/pkgs/applications/version-management/deepgit/default.nix b/pkgs/applications/version-management/deepgit/default.nix
index d9742a6a8f54e..c430a02b24c68 100644
--- a/pkgs/applications/version-management/deepgit/default.nix
+++ b/pkgs/applications/version-management/deepgit/default.nix
@@ -82,5 +82,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ urandom ];
     platforms = platforms.linux;
+    mainProgram = "deepgit";
   };
 }
diff --git a/pkgs/applications/version-management/degit/default.nix b/pkgs/applications/version-management/degit/default.nix
index af586da3496ae..b126569c59912 100644
--- a/pkgs/applications/version-management/degit/default.nix
+++ b/pkgs/applications/version-management/degit/default.nix
@@ -22,5 +22,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/Rich-Harris/degit";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ kidonng ];
+    mainProgram = "degit";
   };
 }
diff --git a/pkgs/applications/version-management/diff-so-fancy/default.nix b/pkgs/applications/version-management/diff-so-fancy/default.nix
index 2cdae39897954..ef9b81f6d031b 100644
--- a/pkgs/applications/version-management/diff-so-fancy/default.nix
+++ b/pkgs/applications/version-management/diff-so-fancy/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
       diff-highlight to upgrade your diffs' appearances.
     '';
     maintainers = with maintainers; [ fpletz ma27 ];
+    mainProgram = "diff-so-fancy";
   };
 }
diff --git a/pkgs/applications/version-management/fnc/default.nix b/pkgs/applications/version-management/fnc/default.nix
index 0b4205eb60551..31a71d5b8ad7d 100644
--- a/pkgs/applications/version-management/fnc/default.nix
+++ b/pkgs/applications/version-management/fnc/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ abbe ];
+    mainProgram = "fnc";
   };
 }
diff --git a/pkgs/applications/version-management/fornalder/default.nix b/pkgs/applications/version-management/fornalder/default.nix
index 85f1ad6e6ba2f..7d012c83606a6 100644
--- a/pkgs/applications/version-management/fornalder/default.nix
+++ b/pkgs/applications/version-management/fornalder/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/hpjansson/fornalder";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ astro figsoda ];
+    mainProgram = "fornalder";
   };
 }
diff --git a/pkgs/applications/version-management/gex/default.nix b/pkgs/applications/version-management/gex/default.nix
index 7d6af92b7e79c..51a8839261af9 100644
--- a/pkgs/applications/version-management/gex/default.nix
+++ b/pkgs/applications/version-management/gex/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Piturnah/gex/releases/tag/${src.rev}";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ azd325 evanrichter piturnah ];
+    mainProgram = "gex";
   };
 }
diff --git a/pkgs/applications/version-management/gfold/default.nix b/pkgs/applications/version-management/gfold/default.nix
index cf254293987db..41aab380d5554 100644
--- a/pkgs/applications/version-management/gfold/default.nix
+++ b/pkgs/applications/version-management/gfold/default.nix
@@ -41,5 +41,6 @@ rustPlatform.buildRustPackage {
     license = licenses.asl20;
     maintainers = [ maintainers.shanesveller ];
     platforms = platforms.unix;
+    mainProgram = "gfold";
   };
 }
diff --git a/pkgs/applications/version-management/ghorg/default.nix b/pkgs/applications/version-management/ghorg/default.nix
index ac534ff573a69..f76a0f77e54f2 100644
--- a/pkgs/applications/version-management/ghorg/default.nix
+++ b/pkgs/applications/version-management/ghorg/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     homepage = "https://github.com/gabrie30/ghorg";
     license = licenses.asl20;
     maintainers = with maintainers; [ vidbina ];
+    mainProgram = "ghorg";
   };
 }
diff --git a/pkgs/applications/version-management/ghq/default.nix b/pkgs/applications/version-management/ghq/default.nix
index 80704e49a208a..17ac4a3b08949 100644
--- a/pkgs/applications/version-management/ghq/default.nix
+++ b/pkgs/applications/version-management/ghq/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://github.com/x-motemen/ghq";
     maintainers = with lib.maintainers; [ sigma ];
     license = lib.licenses.mit;
+    mainProgram = "ghq";
   };
 }
diff --git a/pkgs/applications/version-management/ghr/default.nix b/pkgs/applications/version-management/ghr/default.nix
index 7c786bb0b6b1c..f7e6cadac0d31 100644
--- a/pkgs/applications/version-management/ghr/default.nix
+++ b/pkgs/applications/version-management/ghr/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     description = "Upload multiple artifacts to GitHub Release in parallel";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "ghr";
   };
 }
diff --git a/pkgs/applications/version-management/git-absorb/default.nix b/pkgs/applications/version-management/git-absorb/default.nix
index 39e834168c32d..b0d00c912a783 100644
--- a/pkgs/applications/version-management/git-absorb/default.nix
+++ b/pkgs/applications/version-management/git-absorb/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     description = "git commit --fixup, but automatic";
     license = [ licenses.bsd3 ];
     maintainers = [ maintainers.marsam ];
+    mainProgram = "git-absorb";
   };
 }
diff --git a/pkgs/applications/version-management/git-annex-remote-dbx/default.nix b/pkgs/applications/version-management/git-annex-remote-dbx/default.nix
index addfd1f5041b1..ed48250114904 100644
--- a/pkgs/applications/version-management/git-annex-remote-dbx/default.nix
+++ b/pkgs/applications/version-management/git-annex-remote-dbx/default.nix
@@ -21,5 +21,6 @@ buildPythonApplication rec {
     description = "A git-annex special remote for Dropbox";
     homepage = "https://pypi.org/project/git-annex-remote-dbx/";
     license = licenses.mit;
+    mainProgram = "git-annex-remote-dbx";
   };
 }
diff --git a/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix b/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix
index 16c5b49406f67..10eec961104d8 100644
--- a/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix
+++ b/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix
@@ -39,5 +39,6 @@ buildPythonApplication rec {
     homepage = "https://pypi.org/project/git-annex-remote-googledrive/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ gravndal ];
+    mainProgram = "git-annex-remote-googledrive";
   };
 }
diff --git a/pkgs/applications/version-management/git-annex-remote-rclone/default.nix b/pkgs/applications/version-management/git-annex-remote-rclone/default.nix
index e05bed928889d..a38be753dfa9e 100644
--- a/pkgs/applications/version-management/git-annex-remote-rclone/default.nix
+++ b/pkgs/applications/version-management/git-annex-remote-rclone/default.nix
@@ -25,5 +25,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = [ maintainers.montag451 ];
+    mainProgram = "git-annex-remote-rclone";
   };
 }
diff --git a/pkgs/applications/version-management/git-appraise/default.nix b/pkgs/applications/version-management/git-appraise/default.nix
index 652c0be521171..cc77bf5aca65c 100644
--- a/pkgs/applications/version-management/git-appraise/default.nix
+++ b/pkgs/applications/version-management/git-appraise/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/google/git-appraise";
     license = licenses.asl20;
     maintainers = with maintainers; [ vdemeester ];
+    mainProgram = "git-appraise";
   };
 }
diff --git a/pkgs/applications/version-management/git-archive-all/default.nix b/pkgs/applications/version-management/git-archive-all/default.nix
index 22f16692ec8e9..f38e08ba8c8ee 100644
--- a/pkgs/applications/version-management/git-archive-all/default.nix
+++ b/pkgs/applications/version-management/git-archive-all/default.nix
@@ -58,5 +58,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/Kentzo/git-archive-all";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
+    mainProgram = "git-archive-all";
   };
 }
diff --git a/pkgs/applications/version-management/git-backdate/default.nix b/pkgs/applications/version-management/git-backdate/default.nix
index 0898ce089fc05..c63b2e6f3429c 100644
--- a/pkgs/applications/version-management/git-backdate/default.nix
+++ b/pkgs/applications/version-management/git-backdate/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/rixx/git-backdate";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ matthiasbeyer ];
+    mainProgram = "git-backdate";
   };
 }
 
diff --git a/pkgs/applications/version-management/git-backup/default.nix b/pkgs/applications/version-management/git-backup/default.nix
index dc21b61ed3e63..7f181fa006f81 100644
--- a/pkgs/applications/version-management/git-backup/default.nix
+++ b/pkgs/applications/version-management/git-backup/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     description = "A tool to help you backup your git repositories from services like GitHub";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "git-backup";
   };
 }
diff --git a/pkgs/applications/version-management/git-bars/default.nix b/pkgs/applications/version-management/git-bars/default.nix
index de396a0f7d01a..d9acc9d46fb9c 100644
--- a/pkgs/applications/version-management/git-bars/default.nix
+++ b/pkgs/applications/version-management/git-bars/default.nix
@@ -21,5 +21,6 @@ python3Packages.buildPythonApplication {
     description = "A utility for visualising git commit activity as bars on the terminal";
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
+    mainProgram = "git-bars";
   };
 }
diff --git a/pkgs/applications/version-management/git-big-picture/default.nix b/pkgs/applications/version-management/git-big-picture/default.nix
index 959031fad9f95..a3ac58c04be8e 100644
--- a/pkgs/applications/version-management/git-big-picture/default.nix
+++ b/pkgs/applications/version-management/git-big-picture/default.nix
@@ -22,5 +22,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/git-big-picture/git-big-picture";
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.nthorne ];
+    mainProgram = "git-big-picture";
   };
 }
diff --git a/pkgs/applications/version-management/git-bug-migration/default.nix b/pkgs/applications/version-management/git-bug-migration/default.nix
index 386f405eb225c..45e90c521f104 100644
--- a/pkgs/applications/version-management/git-bug-migration/default.nix
+++ b/pkgs/applications/version-management/git-bug-migration/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     homepage = "https://github.com/MichaelMure/git-bug-migration";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ DeeUnderscore ];
+    mainProgram = "git-bug-migration";
   };
 }
diff --git a/pkgs/applications/version-management/git-bug/default.nix b/pkgs/applications/version-management/git-bug/default.nix
index 5a2e9e5eeca63..588ef81ced00f 100644
--- a/pkgs/applications/version-management/git-bug/default.nix
+++ b/pkgs/applications/version-management/git-bug/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     homepage = "https://github.com/MichaelMure/git-bug";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ royneary DeeUnderscore ];
+    mainProgram = "git-bug";
   };
 }
diff --git a/pkgs/applications/version-management/git-chglog/default.nix b/pkgs/applications/version-management/git-chglog/default.nix
index ad0d64a6ef62a..eccc508fc257a 100644
--- a/pkgs/applications/version-management/git-chglog/default.nix
+++ b/pkgs/applications/version-management/git-chglog/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/git-chglog/git-chglog";
     license = licenses.mit;
     maintainers = with maintainers; [ ldenefle ];
+    mainProgram = "git-chglog";
   };
 }
diff --git a/pkgs/applications/version-management/git-codeowners/default.nix b/pkgs/applications/version-management/git-codeowners/default.nix
index 862461827eb17..90e0482675ae0 100644
--- a/pkgs/applications/version-management/git-codeowners/default.nix
+++ b/pkgs/applications/version-management/git-codeowners/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     description = "a git extension to work with CODEOWNERS files";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
+    mainProgram = "git-codeowners";
   };
 }
diff --git a/pkgs/applications/version-management/git-codereview/default.nix b/pkgs/applications/version-management/git-codereview/default.nix
index 4cd4c68673a72..b8ddc56e88c69 100644
--- a/pkgs/applications/version-management/git-codereview/default.nix
+++ b/pkgs/applications/version-management/git-codereview/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://golang.org/x/review/git-codereview";
     license = licenses.bsd3;
     maintainers = [ maintainers.edef ];
+    mainProgram = "git-codereview";
   };
 }
diff --git a/pkgs/applications/version-management/git-crecord/default.nix b/pkgs/applications/version-management/git-crecord/default.nix
index 1ad75e75b7bfd..5ea10a13c418f 100644
--- a/pkgs/applications/version-management/git-crecord/default.nix
+++ b/pkgs/applications/version-management/git-crecord/default.nix
@@ -21,5 +21,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Git subcommand to interactively select changes to commit or stage";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ onny ];
+    mainProgram = "git-crecord";
   };
 }
diff --git a/pkgs/applications/version-management/git-credential-1password/default.nix b/pkgs/applications/version-management/git-credential-1password/default.nix
index 65afd5f1c3870..832698718c3d6 100644
--- a/pkgs/applications/version-management/git-credential-1password/default.nix
+++ b/pkgs/applications/version-management/git-credential-1password/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     changelog = "https://github.com/develerik/git-credential-1password/releases/tag/v${version}";
     license = licenses.isc;
     maintainers = [ maintainers.ivankovnatsky ];
+    mainProgram = "git-credential-1password";
   };
 }
diff --git a/pkgs/applications/version-management/git-credential-keepassxc/default.nix b/pkgs/applications/version-management/git-credential-keepassxc/default.nix
index 20183c5fada39..2d3e511fcbfdf 100644
--- a/pkgs/applications/version-management/git-credential-keepassxc/default.nix
+++ b/pkgs/applications/version-management/git-credential-keepassxc/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Frederick888/git-credential-keepassxc";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fgaz ];
+    mainProgram = "git-credential-keepassxc";
   };
 }
diff --git a/pkgs/applications/version-management/git-credential-manager/default.nix b/pkgs/applications/version-management/git-credential-manager/default.nix
index 962bf18b366b6..54de6b1bcf3a4 100644
--- a/pkgs/applications/version-management/git-credential-manager/default.nix
+++ b/pkgs/applications/version-management/git-credential-manager/default.nix
@@ -63,5 +63,6 @@ buildDotnetModule rec {
       .NET can find `/usr/bin/codesign` to sign the compiled binary.
       This problem is common to all .NET packages on MacOS with Nix.
     '';
+    mainProgram = "git-credential-manager";
   };
 }
diff --git a/pkgs/applications/version-management/git-credential-oauth/default.nix b/pkgs/applications/version-management/git-credential-oauth/default.nix
index 9b46a0c501b17..d04faab2a65cb 100644
--- a/pkgs/applications/version-management/git-credential-oauth/default.nix
+++ b/pkgs/applications/version-management/git-credential-oauth/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     changelog = "https://github.com/hickford/git-credential-oauth/releases/tag/${src.rev}";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ shyim ];
+    mainProgram = "git-credential-oauth";
   };
 }
diff --git a/pkgs/applications/version-management/git-crypt/default.nix b/pkgs/applications/version-management/git-crypt/default.nix
index c2f4b4a270308..2355f48bcb779 100644
--- a/pkgs/applications/version-management/git-crypt/default.nix
+++ b/pkgs/applications/version-management/git-crypt/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ dochang ];
     platforms = platforms.unix;
+    mainProgram = "git-crypt";
   };
 
 }
diff --git a/pkgs/applications/version-management/git-dive/default.nix b/pkgs/applications/version-management/git-dive/default.nix
index a843b5243352f..983d7b3dd672c 100644
--- a/pkgs/applications/version-management/git-dive/default.nix
+++ b/pkgs/applications/version-management/git-dive/default.nix
@@ -62,5 +62,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/gitext-rs/git-dive/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "git-dive";
   };
 }
diff --git a/pkgs/applications/version-management/git-fame/default.nix b/pkgs/applications/version-management/git-fame/default.nix
index 4dc9c4f8453d6..d69988eca0125 100644
--- a/pkgs/applications/version-management/git-fame/default.nix
+++ b/pkgs/applications/version-management/git-fame/default.nix
@@ -17,5 +17,6 @@ bundlerEnv {
     license     = licenses.mit;
     maintainers = with maintainers; [ expipiplus1 nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "git-fame";
   };
 }
diff --git a/pkgs/applications/version-management/git-ftp/default.nix b/pkgs/applications/version-management/git-ftp/default.nix
index 57b5e3c463724..a3087249caddb 100644
--- a/pkgs/applications/version-management/git-ftp/default.nix
+++ b/pkgs/applications/version-management/git-ftp/default.nix
@@ -95,5 +95,6 @@ resholve.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ tweber ];
     platforms = platforms.unix;
+    mainProgram = "git-ftp";
   };
 }
diff --git a/pkgs/applications/version-management/git-gone/default.nix b/pkgs/applications/version-management/git-gone/default.nix
index dc80052fe62a3..559c81dd48c63 100644
--- a/pkgs/applications/version-management/git-gone/default.nix
+++ b/pkgs/applications/version-management/git-gone/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/swsnr/git-gone/raw/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "git-gone";
   };
 }
diff --git a/pkgs/applications/version-management/git-graph/default.nix b/pkgs/applications/version-management/git-graph/default.nix
index 93db500f0a267..016892892247d 100644
--- a/pkgs/applications/version-management/git-graph/default.nix
+++ b/pkgs/applications/version-management/git-graph/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     broken = stdenv.isDarwin;
     maintainers = with maintainers; [ cafkafk ];
+    mainProgram = "git-graph";
   };
 }
diff --git a/pkgs/applications/version-management/git-hub/default.nix b/pkgs/applications/version-management/git-hub/default.nix
index 279ae81b10108..907721f882b3b 100644
--- a/pkgs/applications/version-management/git-hub/default.nix
+++ b/pkgs/applications/version-management/git-hub/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3Plus;
     platforms = platforms.all;
+    mainProgram = "git-hub";
   };
 }
diff --git a/pkgs/applications/version-management/git-ignore/default.nix b/pkgs/applications/version-management/git-ignore/default.nix
index b6b8b6f941345..ca931ac2786dc 100644
--- a/pkgs/applications/version-management/git-ignore/default.nix
+++ b/pkgs/applications/version-management/git-ignore/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sondr3/git-ignore/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "git-ignore";
   };
 }
diff --git a/pkgs/applications/version-management/git-imerge/default.nix b/pkgs/applications/version-management/git-imerge/default.nix
index 592f61db8e088..66e141ef85ff6 100644
--- a/pkgs/applications/version-management/git-imerge/default.nix
+++ b/pkgs/applications/version-management/git-imerge/default.nix
@@ -20,5 +20,6 @@ buildPythonApplication rec {
     description = "Perform a merge between two branches incrementally";
     license = licenses.gpl2Plus;
     maintainers = [ ];
+    mainProgram = "git-imerge";
   };
 }
diff --git a/pkgs/applications/version-management/git-lfs/default.nix b/pkgs/applications/version-management/git-lfs/default.nix
index ed36f2092716a..54ce30907323e 100644
--- a/pkgs/applications/version-management/git-lfs/default.nix
+++ b/pkgs/applications/version-management/git-lfs/default.nix
@@ -55,5 +55,6 @@ buildGoModule rec {
     changelog = "https://github.com/git-lfs/git-lfs/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ twey marsam ];
+    mainProgram = "git-lfs";
   };
 }
diff --git a/pkgs/applications/version-management/git-machete/default.nix b/pkgs/applications/version-management/git-machete/default.nix
index 26cce4b25c9d7..a1f45d65db354 100644
--- a/pkgs/applications/version-management/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-machete/default.nix
@@ -55,5 +55,6 @@ buildPythonApplication rec {
     changelog = "https://github.com/VirtusLab/git-machete/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ blitz ];
+    mainProgram = "git-machete";
   };
 }
diff --git a/pkgs/applications/version-management/git-my/default.nix b/pkgs/applications/version-management/git-my/default.nix
index d8ce7a42bb591..2683af4022877 100644
--- a/pkgs/applications/version-management/git-my/default.nix
+++ b/pkgs/applications/version-management/git-my/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
     license = licenses.free;
     maintainers = with maintainers; [ bb010g ];
     platforms = platforms.all;
+    mainProgram = "git-my";
   };
 }
 
diff --git a/pkgs/applications/version-management/git-nomad/default.nix b/pkgs/applications/version-management/git-nomad/default.nix
index e1c55676da091..941b84b68fcc3 100644
--- a/pkgs/applications/version-management/git-nomad/default.nix
+++ b/pkgs/applications/version-management/git-nomad/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/rraval/git-nomad/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ rraval ];
+    mainProgram = "git-nomad";
   };
 }
diff --git a/pkgs/applications/version-management/git-open/default.nix b/pkgs/applications/version-management/git-open/default.nix
index 42e23dcd32e37..29975c5b68d0b 100644
--- a/pkgs/applications/version-management/git-open/default.nix
+++ b/pkgs/applications/version-management/git-open/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "git-open";
   };
 }
diff --git a/pkgs/applications/version-management/git-privacy/default.nix b/pkgs/applications/version-management/git-privacy/default.nix
index 0fe486dbc2d12..3d3d7521f28dc 100644
--- a/pkgs/applications/version-management/git-privacy/default.nix
+++ b/pkgs/applications/version-management/git-privacy/default.nix
@@ -43,5 +43,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/EMPRI-DEVOPS/git-privacy";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "git-privacy";
   };
 }
diff --git a/pkgs/applications/version-management/git-publish/default.nix b/pkgs/applications/version-management/git-publish/default.nix
index 0f0eeff156b06..94949396ee9f1 100644
--- a/pkgs/applications/version-management/git-publish/default.nix
+++ b/pkgs/applications/version-management/git-publish/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.lheckemann ];
     homepage = "https://github.com/stefanha/git-publish";
+    mainProgram = "git-publish";
   };
 }
diff --git a/pkgs/applications/version-management/git-quick-stats/default.nix b/pkgs/applications/version-management/git-quick-stats/default.nix
index 5a3a41e05b05d..feb4bcafc1b44 100644
--- a/pkgs/applications/version-management/git-quick-stats/default.nix
+++ b/pkgs/applications/version-management/git-quick-stats/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = [ maintainers.kmein ];
     license = licenses.mit;
+    mainProgram = "git-quick-stats";
   };
 }
diff --git a/pkgs/applications/version-management/git-quickfix/default.nix b/pkgs/applications/version-management/git-quickfix/default.nix
index 4b4319f8cd7cc..a85bbbc54f5d7 100644
--- a/pkgs/applications/version-management/git-quickfix/default.nix
+++ b/pkgs/applications/version-management/git-quickfix/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = with maintainers; [ msfjarvis ];
+    mainProgram = "git-quickfix";
   };
 }
diff --git a/pkgs/applications/version-management/git-radar/default.nix b/pkgs/applications/version-management/git-radar/default.nix
index 1cd14aa969278..27979d63cca56 100644
--- a/pkgs/applications/version-management/git-radar/default.nix
+++ b/pkgs/applications/version-management/git-radar/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     description = "A tool you can add to your prompt to provide at-a-glance information on your git repo";
     platforms = with platforms; linux ++ darwin;
     maintainers = with maintainers; [ kamilchm ];
+    mainProgram = "git-radar";
   };
 }
diff --git a/pkgs/applications/version-management/git-recent/default.nix b/pkgs/applications/version-management/git-recent/default.nix
index 1a1811b2f4384..52b4a49d19b99 100644
--- a/pkgs/applications/version-management/git-recent/default.nix
+++ b/pkgs/applications/version-management/git-recent/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.jlesquembre ];
+    mainProgram = "git-recent";
   };
 }
diff --git a/pkgs/applications/version-management/git-relevant-history/default.nix b/pkgs/applications/version-management/git-relevant-history/default.nix
index c4cb223d253b8..063aa3215705b 100644
--- a/pkgs/applications/version-management/git-relevant-history/default.nix
+++ b/pkgs/applications/version-management/git-relevant-history/default.nix
@@ -20,5 +20,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.asl20;
     platforms = platforms.all;
     maintainers = [ maintainers.bendlas ];
+    mainProgram = "git-relevant-history";
   };
 }
diff --git a/pkgs/applications/version-management/git-remote-codecommit/default.nix b/pkgs/applications/version-management/git-remote-codecommit/default.nix
index f2b47af2e3828..fc9bd9ee02edf 100644
--- a/pkgs/applications/version-management/git-remote-codecommit/default.nix
+++ b/pkgs/applications/version-management/git-remote-codecommit/default.nix
@@ -35,5 +35,6 @@ buildPythonApplication rec {
     maintainers = [ lib.maintainers.zaninime ];
     homepage = "https://github.com/awslabs/git-remote-codecommit";
     license = lib.licenses.asl20;
+    mainProgram = "git-remote-codecommit";
   };
 }
diff --git a/pkgs/applications/version-management/git-remote-gcrypt/default.nix b/pkgs/applications/version-management/git-remote-gcrypt/default.nix
index 8f3155ce0546b..fd506ca2b46b6 100644
--- a/pkgs/applications/version-management/git-remote-gcrypt/default.nix
+++ b/pkgs/applications/version-management/git-remote-gcrypt/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ ellis montag451 ];
     platforms = platforms.unix;
+    mainProgram = "git-remote-gcrypt";
   };
 }
diff --git a/pkgs/applications/version-management/git-reparent/default.nix b/pkgs/applications/version-management/git-reparent/default.nix
index ec1c44b96134e..df42e3b18779d 100644
--- a/pkgs/applications/version-management/git-reparent/default.nix
+++ b/pkgs/applications/version-management/git-reparent/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.marsam ];
     license = licenses.gpl2;
     platforms = platforms.unix;
+    mainProgram = "git-reparent";
   };
 }
diff --git a/pkgs/applications/version-management/git-repo-updater/default.nix b/pkgs/applications/version-management/git-repo-updater/default.nix
index ebea57c1552a8..5c215644463cc 100644
--- a/pkgs/applications/version-management/git-repo-updater/default.nix
+++ b/pkgs/applications/version-management/git-repo-updater/default.nix
@@ -27,5 +27,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/earwig/git-repo-updater";
     license = licenses.mit;
     maintainers = with maintainers; [bdesham ];
+    mainProgram = "gitup";
   };
 }
diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix
index edf05ff03f816..e989e03ca1cfb 100644
--- a/pkgs/applications/version-management/git-repo/default.nix
+++ b/pkgs/applications/version-management/git-repo/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ otavio ];
     platforms = platforms.unix;
+    mainProgram = "repo";
   };
 }
diff --git a/pkgs/applications/version-management/git-review/default.nix b/pkgs/applications/version-management/git-review/default.nix
index 2650f330c0a99..e32d89c042ca2 100644
--- a/pkgs/applications/version-management/git-review/default.nix
+++ b/pkgs/applications/version-management/git-review/default.nix
@@ -48,5 +48,6 @@ buildPythonApplication rec {
     homepage = "https://opendev.org/opendev/git-review";
     license = licenses.asl20;
     maintainers = with maintainers; [ kira-bruneau ];
+    mainProgram = "git-review";
   };
 }
diff --git a/pkgs/applications/version-management/git-secret/default.nix b/pkgs/applications/version-management/git-secret/default.nix
index 6293af4642a34..877a727523b56 100644
--- a/pkgs/applications/version-management/git-secret/default.nix
+++ b/pkgs/applications/version-management/git-secret/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.lo1tuma ];
     platforms = lib.platforms.all;
+    mainProgram = "git-secret";
   };
 }
diff --git a/pkgs/applications/version-management/git-secrets/default.nix b/pkgs/applications/version-management/git-secrets/default.nix
index 154a4048e0a7a..a2f2045a3ddcf 100644
--- a/pkgs/applications/version-management/git-secrets/default.nix
+++ b/pkgs/applications/version-management/git-secrets/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/awslabs/git-secrets";
     license = licenses.asl20;
     platforms = platforms.all;
+    mainProgram = "git-secrets";
   };
 }
diff --git a/pkgs/applications/version-management/git-series/default.nix b/pkgs/applications/version-management/git-series/default.nix
index 2e173dd41be93..a055ccc868f28 100644
--- a/pkgs/applications/version-management/git-series/default.nix
+++ b/pkgs/applications/version-management/git-series/default.nix
@@ -63,5 +63,6 @@ rustPlatform.buildRustPackage {
 
     license = licenses.mit;
     maintainers = with maintainers; [ edef vmandela ];
+    mainProgram = "git-series";
   };
 }
diff --git a/pkgs/applications/version-management/git-sizer/default.nix b/pkgs/applications/version-management/git-sizer/default.nix
index 277786d72420b..b3d7f7a3a432e 100644
--- a/pkgs/applications/version-management/git-sizer/default.nix
+++ b/pkgs/applications/version-management/git-sizer/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/github/git-sizer";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewbauer ];
+    mainProgram = "git-sizer";
   };
 }
diff --git a/pkgs/applications/version-management/git-stack/default.nix b/pkgs/applications/version-management/git-stack/default.nix
index fe81f0b41ef0a..d9792654a94b0 100644
--- a/pkgs/applications/version-management/git-stack/default.nix
+++ b/pkgs/applications/version-management/git-stack/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/gitext-rs/git-stack/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ stehessel ];
+    mainProgram = "git-stack";
   };
 }
diff --git a/pkgs/applications/version-management/git-standup/default.nix b/pkgs/applications/version-management/git-standup/default.nix
index 2bbf7840138dd..0fcdd265a0c39 100644
--- a/pkgs/applications/version-management/git-standup/default.nix
+++ b/pkgs/applications/version-management/git-standup/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
+    mainProgram = "git-standup";
   };
 }
diff --git a/pkgs/applications/version-management/git-stree/default.nix b/pkgs/applications/version-management/git-stree/default.nix
index aa53529933ff1..53f43d69d4d40 100644
--- a/pkgs/applications/version-management/git-stree/default.nix
+++ b/pkgs/applications/version-management/git-stree/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = [ maintainers.benley ];
     platforms = platforms.unix;
+    mainProgram = "git-stree";
   };
 }
diff --git a/pkgs/applications/version-management/git-subtrac/default.nix b/pkgs/applications/version-management/git-subtrac/default.nix
index c10a271024904..547adee7d6a3a 100644
--- a/pkgs/applications/version-management/git-subtrac/default.nix
+++ b/pkgs/applications/version-management/git-subtrac/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/apenwarr/git-subtrac";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "git-subtrac";
   };
 }
diff --git a/pkgs/applications/version-management/git-team/default.nix b/pkgs/applications/version-management/git-team/default.nix
index afce41e15d19a..19556366b1eb7 100644
--- a/pkgs/applications/version-management/git-team/default.nix
+++ b/pkgs/applications/version-management/git-team/default.nix
@@ -41,5 +41,6 @@ buildGoModule rec {
     homepage = "https://github.com/hekmekk/git-team";
     license = licenses.mit;
     maintainers = with maintainers; [ lockejan ];
+    mainProgram = "git-team";
   };
 }
diff --git a/pkgs/applications/version-management/git-test/default.nix b/pkgs/applications/version-management/git-test/default.nix
index 624ce5616909e..2f56091e2ad6d 100644
--- a/pkgs/applications/version-management/git-test/default.nix
+++ b/pkgs/applications/version-management/git-test/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
+    mainProgram = "git-test";
   };
 }
diff --git a/pkgs/applications/version-management/git-town/default.nix b/pkgs/applications/version-management/git-town/default.nix
index bc5f7f3b08541..661abe06f73e2 100644
--- a/pkgs/applications/version-management/git-town/default.nix
+++ b/pkgs/applications/version-management/git-town/default.nix
@@ -64,5 +64,6 @@ buildGoModule rec {
     homepage = "https://www.git-town.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ allonsy blaggacao ];
+    mainProgram = "git-town";
   };
 }
diff --git a/pkgs/applications/version-management/git-trim/default.nix b/pkgs/applications/version-management/git-trim/default.nix
index 7e90b6e38035c..cbc96ed1e78c3 100644
--- a/pkgs/applications/version-management/git-trim/default.nix
+++ b/pkgs/applications/version-management/git-trim/default.nix
@@ -51,5 +51,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/foriequal0/git-trim";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "git-trim";
   };
 }
diff --git a/pkgs/applications/version-management/git-up/default.nix b/pkgs/applications/version-management/git-up/default.nix
index 7c0e6d53db0ad..851cb8464c5b2 100644
--- a/pkgs/applications/version-management/git-up/default.nix
+++ b/pkgs/applications/version-management/git-up/default.nix
@@ -52,5 +52,6 @@ pythonPackages.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.all;
+    mainProgram = "git-up";
   };
 }
diff --git a/pkgs/applications/version-management/git-vanity-hash/default.nix b/pkgs/applications/version-management/git-vanity-hash/default.nix
index 48fee5c578eda..915ef38307b2f 100644
--- a/pkgs/applications/version-management/git-vanity-hash/default.nix
+++ b/pkgs/applications/version-management/git-vanity-hash/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     description = "Tool for creating commit hashes with a specific prefix";
     license = [ licenses.mit ];
     maintainers = [ maintainers.kaction ];
+    mainProgram = "git-vanity-hash";
   };
 }
diff --git a/pkgs/applications/version-management/git-vendor/default.nix b/pkgs/applications/version-management/git-vendor/default.nix
index 9d72cc18b94fb..6722f94d503e7 100644
--- a/pkgs/applications/version-management/git-vendor/default.nix
+++ b/pkgs/applications/version-management/git-vendor/default.nix
@@ -61,6 +61,7 @@ in stdenv.mkDerivation {
     license = lib.licenses.mit;
     maintainers = [ ];
     platforms = lib.platforms.all;
+    mainProgram = "git-vendor";
   };
 
 }
diff --git a/pkgs/applications/version-management/git-when-merged/default.nix b/pkgs/applications/version-management/git-when-merged/default.nix
index 00c9bfa0ae4af..36336d964cc35 100644
--- a/pkgs/applications/version-management/git-when-merged/default.nix
+++ b/pkgs/applications/version-management/git-when-merged/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = python3.meta.platforms;
     maintainers = with maintainers; [ DamienCassou ];
+    mainProgram = "git-when-merged";
   };
 }
diff --git a/pkgs/applications/version-management/git-workspace/default.nix b/pkgs/applications/version-management/git-workspace/default.nix
index 7ceb970737c3d..fc16e778f28c9 100644
--- a/pkgs/applications/version-management/git-workspace/default.nix
+++ b/pkgs/applications/version-management/git-workspace/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/orf/git-workspace";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ misuzu ];
+    mainProgram = "git-workspace";
   };
 }
diff --git a/pkgs/applications/version-management/git2cl/default.nix b/pkgs/applications/version-management/git2cl/default.nix
index b68179b182bca..cddc6eb7e2fe9 100644
--- a/pkgs/applications/version-management/git2cl/default.nix
+++ b/pkgs/applications/version-management/git2cl/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     homepage = "https://savannah.nongnu.org/projects/git2cl";
     description = "Convert git logs to GNU style ChangeLog files";
     platforms = lib.platforms.unix;
+    mainProgram = "git2cl";
   };
 }
diff --git a/pkgs/applications/version-management/gita/default.nix b/pkgs/applications/version-management/gita/default.nix
index 257ace5013e21..eba9f5ed75257 100644
--- a/pkgs/applications/version-management/gita/default.nix
+++ b/pkgs/applications/version-management/gita/default.nix
@@ -39,5 +39,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/nosarthur/gita";
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
+    mainProgram = "gita";
   };
 }
diff --git a/pkgs/applications/version-management/gitbatch/default.nix b/pkgs/applications/version-management/gitbatch/default.nix
index cb19964f733bd..c880b9343f1a6 100644
--- a/pkgs/applications/version-management/gitbatch/default.nix
+++ b/pkgs/applications/version-management/gitbatch/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ teto ];
     platforms = with platforms; linux;
+    mainProgram = "gitbatch";
   };
 }
diff --git a/pkgs/applications/version-management/github-desktop/default.nix b/pkgs/applications/version-management/github-desktop/default.nix
index 33233fe9cf86e..8c79258fd3ff6 100644
--- a/pkgs/applications/version-management/github-desktop/default.nix
+++ b/pkgs/applications/version-management/github-desktop/default.nix
@@ -79,5 +79,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dan4ik605743 ];
     platforms = lib.platforms.linux;
+    mainProgram = "github-desktop";
   };
 })
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 9082bffce0f9d..a58ea68fe2b6d 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -40,6 +40,7 @@ let
     license = licenses.unfree;
     platforms = builtins.attrNames srcs;
     maintainers = with maintainers; [ xnwdd evanjs arkivm ];
+    mainProgram = "gitkraken";
   };
 
   linux = stdenv.mkDerivation rec {
diff --git a/pkgs/applications/version-management/gitlab-triage/default.nix b/pkgs/applications/version-management/gitlab-triage/default.nix
index 34fb6f73c64e6..5397688ebf1fa 100644
--- a/pkgs/applications/version-management/gitlab-triage/default.nix
+++ b/pkgs/applications/version-management/gitlab-triage/default.nix
@@ -12,5 +12,6 @@ bundlerApp {
     homepage = "https://gitlab.com/gitlab-org/gitlab-triage";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "gitlab-triage";
   };
 }
diff --git a/pkgs/applications/version-management/gitless/default.nix b/pkgs/applications/version-management/gitless/default.nix
index 0f6a59ac641e4..8bbb0eee971de 100644
--- a/pkgs/applications/version-management/gitless/default.nix
+++ b/pkgs/applications/version-management/gitless/default.nix
@@ -36,5 +36,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ cransom ];
     platforms = platforms.all;
+    mainProgram = "gl";
   };
 }
diff --git a/pkgs/applications/version-management/gitlint/default.nix b/pkgs/applications/version-management/gitlint/default.nix
index 575cf96826d4c..37783a92ab3e1 100644
--- a/pkgs/applications/version-management/gitlint/default.nix
+++ b/pkgs/applications/version-management/gitlint/default.nix
@@ -49,5 +49,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/jorisroovers/gitlint/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ethancedwards8 fab ];
+    mainProgram = "gitlint";
   };
 }
diff --git a/pkgs/applications/version-management/gitls/default.nix b/pkgs/applications/version-management/gitls/default.nix
index 28fbba659f427..16ae8c9e6a8bc 100644
--- a/pkgs/applications/version-management/gitls/default.nix
+++ b/pkgs/applications/version-management/gitls/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     changelog = "https://github.com/hahwul/gitls/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "gitls";
   };
 }
diff --git a/pkgs/applications/version-management/gitmux/default.nix b/pkgs/applications/version-management/gitmux/default.nix
index be565f4fda44d..667a204f8447d 100644
--- a/pkgs/applications/version-management/gitmux/default.nix
+++ b/pkgs/applications/version-management/gitmux/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/arl/gitmux";
     license = licenses.mit;
     maintainers = with maintainers; [ nialov ];
+    mainProgram = "gitmux";
   };
 }
diff --git a/pkgs/applications/version-management/gitnuro/default.nix b/pkgs/applications/version-management/gitnuro/default.nix
index db79637ef9ff9..e265f56aea855 100644
--- a/pkgs/applications/version-management/gitnuro/default.nix
+++ b/pkgs/applications/version-management/gitnuro/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ zendo ];
+    mainProgram = "gitnuro";
   };
 }
diff --git a/pkgs/applications/version-management/gitprompt-rs/default.nix b/pkgs/applications/version-management/gitprompt-rs/default.nix
index 6980c8f225764..6d0013f5ad513 100644
--- a/pkgs/applications/version-management/gitprompt-rs/default.nix
+++ b/pkgs/applications/version-management/gitprompt-rs/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/9ary/gitprompt-rs";
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ novenary ];
+    mainProgram = "gitprompt-rs";
   };
 }
diff --git a/pkgs/applications/version-management/gitqlient/default.nix b/pkgs/applications/version-management/gitqlient/default.nix
index d7c1e46577e57..2c1ccb76dd73a 100644
--- a/pkgs/applications/version-management/gitqlient/default.nix
+++ b/pkgs/applications/version-management/gitqlient/default.nix
@@ -82,5 +82,6 @@ mkDerivation rec {
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "gitqlient";
   };
 }
diff --git a/pkgs/applications/version-management/gitstats/default.nix b/pkgs/applications/version-management/gitstats/default.nix
index a795f0f6f6dd3..25fcd7247c220 100644
--- a/pkgs/applications/version-management/gitstats/default.nix
+++ b/pkgs/applications/version-management/gitstats/default.nix
@@ -62,5 +62,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "gitstats";
   };
 }
diff --git a/pkgs/applications/version-management/gitstatus/default.nix b/pkgs/applications/version-management/gitstatus/default.nix
index 21e8bafcd0b35..ccb1f07edeca4 100644
--- a/pkgs/applications/version-management/gitstatus/default.nix
+++ b/pkgs/applications/version-management/gitstatus/default.nix
@@ -87,5 +87,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ mmlb hexa SuperSandro2000 ];
     platforms = platforms.all;
+    mainProgram = "gitstatusd";
   };
 }
diff --git a/pkgs/applications/version-management/gitty/default.nix b/pkgs/applications/version-management/gitty/default.nix
index 0bc267d9647c8..ba677b2ba8e54 100644
--- a/pkgs/applications/version-management/gitty/default.nix
+++ b/pkgs/applications/version-management/gitty/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "Contextual information about your git projects, right on the command-line";
     license = licenses.mit;
     maintainers = with maintainers; [ izorkin ];
+    mainProgram = "gitty";
   };
 }
diff --git a/pkgs/applications/version-management/glab/default.nix b/pkgs/applications/version-management/glab/default.nix
index f4e1815e278e2..781eeae33231b 100644
--- a/pkgs/applications/version-management/glab/default.nix
+++ b/pkgs/applications/version-management/glab/default.nix
@@ -43,5 +43,6 @@ buildGoModule rec {
     homepage = "https://gitlab.com/gitlab-org/cli";
     changelog = "https://gitlab.com/gitlab-org/cli/-/releases/v${version}";
     maintainers = with maintainers; [ freezeboy ];
+    mainProgram = "glab";
   };
 }
diff --git a/pkgs/applications/version-management/glitter/default.nix b/pkgs/applications/version-management/glitter/default.nix
index c99403889d54a..ddd56fdfb11c7 100644
--- a/pkgs/applications/version-management/glitter/default.nix
+++ b/pkgs/applications/version-management/glitter/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Milo123459/glitter/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "glitter";
   };
 }
diff --git a/pkgs/applications/version-management/gogs/default.nix b/pkgs/applications/version-management/gogs/default.nix
index 2a7d70cdc1b7a..e0f20d1467f61 100644
--- a/pkgs/applications/version-management/gogs/default.nix
+++ b/pkgs/applications/version-management/gogs/default.nix
@@ -44,5 +44,6 @@ buildGoModule rec {
     homepage = "https://gogs.io";
     license = licenses.mit;
     maintainers = [ maintainers.schneefux ];
+    mainProgram = "gogs";
   };
 }
diff --git a/pkgs/applications/version-management/gomp/default.nix b/pkgs/applications/version-management/gomp/default.nix
index 3f60ba8b7acfc..03385404e787c 100644
--- a/pkgs/applications/version-management/gomp/default.nix
+++ b/pkgs/applications/version-management/gomp/default.nix
@@ -20,5 +20,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
     platforms = platforms.unix;
+    mainProgram = "gomp";
   };
 }
diff --git a/pkgs/applications/version-management/gource/default.nix b/pkgs/applications/version-management/gource/default.nix
index d0175251e6ec2..63c2202b4be96 100644
--- a/pkgs/applications/version-management/gource/default.nix
+++ b/pkgs/applications/version-management/gource/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     '';
     platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "gource";
   };
 }
diff --git a/pkgs/applications/version-management/gst/default.nix b/pkgs/applications/version-management/gst/default.nix
index bf7abf12d7bfc..c282da41c1ebc 100644
--- a/pkgs/applications/version-management/gst/default.nix
+++ b/pkgs/applications/version-management/gst/default.nix
@@ -52,5 +52,6 @@ buildGoModule rec {
     homepage = "https://github.com/uetchy/gst";
     maintainers = with lib.maintainers; [ _0x4A6F ];
     license = lib.licenses.asl20;
+    mainProgram = "gst";
   };
 }
diff --git a/pkgs/applications/version-management/guilt/default.nix b/pkgs/applications/version-management/guilt/default.nix
index 664db771e93f2..aeb0eaf43f11a 100644
--- a/pkgs/applications/version-management/guilt/default.nix
+++ b/pkgs/applications/version-management/guilt/default.nix
@@ -88,5 +88,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ javimerino ];
     license = [ licenses.gpl2 ];
     platforms = platforms.all;
+    mainProgram = "guilt";
   };
 }
diff --git a/pkgs/applications/version-management/gut/default.nix b/pkgs/applications/version-management/gut/default.nix
index 92457cdbf4c3d..3d57ceb03a802 100644
--- a/pkgs/applications/version-management/gut/default.nix
+++ b/pkgs/applications/version-management/gut/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://gut-cli.dev";
     license = licenses.mit;
     maintainers = with maintainers; [ paveloom ];
+    mainProgram = "gut";
   };
 }
diff --git a/pkgs/applications/version-management/hut/default.nix b/pkgs/applications/version-management/hut/default.nix
index ef188ba68d95d..931f85fd45f0b 100644
--- a/pkgs/applications/version-management/hut/default.nix
+++ b/pkgs/applications/version-management/hut/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     description = "A CLI tool for Sourcehut / sr.ht";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ fgaz ];
+    mainProgram = "hut";
   };
 }
diff --git a/pkgs/applications/version-management/lab/default.nix b/pkgs/applications/version-management/lab/default.nix
index 6bbe405f65c13..d75a1cba61426 100644
--- a/pkgs/applications/version-management/lab/default.nix
+++ b/pkgs/applications/version-management/lab/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://zaquestion.github.io/lab";
     license = licenses.cc0;
     maintainers = with maintainers; [ marsam dtzWill ];
+    mainProgram = "lab";
   };
 }
diff --git a/pkgs/applications/version-management/legit-web/default.nix b/pkgs/applications/version-management/legit-web/default.nix
index 72de9d90c3e82..a14b7c22bd4bc 100644
--- a/pkgs/applications/version-management/legit-web/default.nix
+++ b/pkgs/applications/version-management/legit-web/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://github.com/icyphox/legit";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.ratsclub ];
+    mainProgram = "legit";
   };
 }
diff --git a/pkgs/applications/version-management/legit/default.nix b/pkgs/applications/version-management/legit/default.nix
index fd2875b13be2a..c42f6eecfeeab 100644
--- a/pkgs/applications/version-management/legit/default.nix
+++ b/pkgs/applications/version-management/legit/default.nix
@@ -28,5 +28,6 @@ python3Packages.buildPythonApplication rec {
     description = "Git for Humans, Inspired by GitHub for Mac";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ryneeverett ];
+    mainProgram = "legit";
   };
 }
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index fc8ec7b55d1fe..e43448fd2f1d1 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -69,5 +69,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ jtojnar mimame ];
+    mainProgram = "meld";
   };
 }
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 01dc3efcd6e0c..29dbe0573422d 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -94,6 +94,7 @@ let
       license = licenses.gpl2Plus;
       maintainers = with maintainers; [ eelco lukegb pacien techknowlogick ];
       platforms = platforms.unix;
+      mainProgram = "hg";
     };
   };
 
diff --git a/pkgs/applications/version-management/merge-fmt/default.nix b/pkgs/applications/version-management/merge-fmt/default.nix
index 2f1ec571b162f..6a9a18aa992f2 100644
--- a/pkgs/applications/version-management/merge-fmt/default.nix
+++ b/pkgs/applications/version-management/merge-fmt/default.nix
@@ -24,5 +24,6 @@ buildDunePackage rec {
       conflicts by leveraging code formatters.
     '';
     maintainers = [ maintainers.alizter ];
+    mainProgram = "merge-fmt";
   };
 }
diff --git a/pkgs/applications/version-management/nbstripout/default.nix b/pkgs/applications/version-management/nbstripout/default.nix
index 027bba16e86c9..854c66a6d5e41 100644
--- a/pkgs/applications/version-management/nbstripout/default.nix
+++ b/pkgs/applications/version-management/nbstripout/default.nix
@@ -46,5 +46,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/kynan/nbstripout";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ jluttine ];
+    mainProgram = "nbstripout";
   };
 }
diff --git a/pkgs/applications/version-management/pass-git-helper/default.nix b/pkgs/applications/version-management/pass-git-helper/default.nix
index 7085e0c48f250..cc34a67c04b5a 100644
--- a/pkgs/applications/version-management/pass-git-helper/default.nix
+++ b/pkgs/applications/version-management/pass-git-helper/default.nix
@@ -22,5 +22,6 @@ buildPythonApplication rec {
     description = "A git credential helper interfacing with pass, the standard unix password manager";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hmenke vanzef ];
+    mainProgram = "pass-git-helper";
   };
 }
diff --git a/pkgs/applications/version-management/peru/default.nix b/pkgs/applications/version-management/peru/default.nix
index b7b6d62e4b4cb..5637471711b18 100644
--- a/pkgs/applications/version-management/peru/default.nix
+++ b/pkgs/applications/version-management/peru/default.nix
@@ -23,6 +23,7 @@ python3Packages.buildPythonApplication rec {
     description = "A tool for including other people's code in your projects";
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "peru";
   };
 
 }
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index 63f7bf7fbbe2a..4c35e2706ed1c 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -44,5 +44,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://pijul.org";
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ gal_bolle dywedir fabianhjr ];
+    mainProgram = "pijul";
   };
 }
diff --git a/pkgs/applications/version-management/qgit/default.nix b/pkgs/applications/version-management/qgit/default.nix
index 85cb9127c21e2..a0038554d86ce 100644
--- a/pkgs/applications/version-management/qgit/default.nix
+++ b/pkgs/applications/version-management/qgit/default.nix
@@ -21,5 +21,6 @@ mkDerivation rec {
     description = "Graphical front-end to Git";
     maintainers = with maintainers; [ peterhoeg markuskowa ];
     inherit (qtbase.meta) platforms;
+    mainProgram = "qgit";
   };
 }
diff --git a/pkgs/applications/version-management/rapidsvn/default.nix b/pkgs/applications/version-management/rapidsvn/default.nix
index 7c2972538e9e5..53df3af4a79d4 100644
--- a/pkgs/applications/version-management/rapidsvn/default.nix
+++ b/pkgs/applications/version-management/rapidsvn/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.viric ];
     platforms = lib.platforms.unix;
+    mainProgram = "rapidsvn";
   };
 }
diff --git a/pkgs/applications/version-management/rcshist/default.nix b/pkgs/applications/version-management/rcshist/default.nix
index f7cdceaa1b4ca..f11c515b5399e 100644
--- a/pkgs/applications/version-management/rcshist/default.nix
+++ b/pkgs/applications/version-management/rcshist/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.kaction ];
     platforms = lib.platforms.unix;
+    mainProgram = "rcshist";
   };
 }
diff --git a/pkgs/applications/version-management/rs-git-fsmonitor/default.nix b/pkgs/applications/version-management/rs-git-fsmonitor/default.nix
index b369e5db05b1c..8d6c7f072d041 100644
--- a/pkgs/applications/version-management/rs-git-fsmonitor/default.nix
+++ b/pkgs/applications/version-management/rs-git-fsmonitor/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jgavris/rs-git-fsmonitor";
     license = licenses.mit;
     maintainers = [ ];
+    mainProgram = "rs-git-fsmonitor";
   };
 }
diff --git a/pkgs/applications/version-management/scmpuff/default.nix b/pkgs/applications/version-management/scmpuff/default.nix
index 38927d75757e8..a94099e30478b 100644
--- a/pkgs/applications/version-management/scmpuff/default.nix
+++ b/pkgs/applications/version-management/scmpuff/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/mroth/scmpuff";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
+    mainProgram = "scmpuff";
   };
 }
diff --git a/pkgs/applications/version-management/scriv/default.nix b/pkgs/applications/version-management/scriv/default.nix
index 5ba5e26d3f147..fd7d78cc28a56 100644
--- a/pkgs/applications/version-management/scriv/default.nix
+++ b/pkgs/applications/version-management/scriv/default.nix
@@ -53,5 +53,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/nedbat/scriv/releases/tag/${version}";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ amesgen ];
+    mainProgram = "scriv";
   };
 }
diff --git a/pkgs/applications/version-management/sparkleshare/default.nix b/pkgs/applications/version-management/sparkleshare/default.nix
index da6bb386535c4..a13f25e681955 100644
--- a/pkgs/applications/version-management/sparkleshare/default.nix
+++ b/pkgs/applications/version-management/sparkleshare/default.nix
@@ -87,5 +87,6 @@ stdenv.mkDerivation rec {
     homepage = "https://sparkleshare.org";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ kevincox ];
+    mainProgram = "sparkleshare";
   };
 }
diff --git a/pkgs/applications/version-management/src/default.nix b/pkgs/applications/version-management/src/default.nix
index f2f6f8cd32e10..5ac3919775986 100644
--- a/pkgs/applications/version-management/src/default.nix
+++ b/pkgs/applications/version-management/src/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ calvertvl AndersonTorres ];
     inherit (python.meta) platforms;
+    mainProgram = "src";
   };
 }
diff --git a/pkgs/applications/version-management/stgit/default.nix b/pkgs/applications/version-management/stgit/default.nix
index 196cdea93dbab..f576859647c59 100644
--- a/pkgs/applications/version-management/stgit/default.nix
+++ b/pkgs/applications/version-management/stgit/default.nix
@@ -84,5 +84,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl2Only;
     platforms = platforms.unix;
     maintainers = with maintainers; [ jshholland ];
+    mainProgram = "stg";
   };
 }
diff --git a/pkgs/applications/version-management/svn-all-fast-export/default.nix b/pkgs/applications/version-management/svn-all-fast-export/default.nix
index a40e959a50a41..5fc67ef47d783 100644
--- a/pkgs/applications/version-management/svn-all-fast-export/default.nix
+++ b/pkgs/applications/version-management/svn-all-fast-export/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = [ maintainers.flokli ];
+    mainProgram = "svn-all-fast-export";
   };
 }
diff --git a/pkgs/applications/version-management/svn2git/default.nix b/pkgs/applications/version-management/svn2git/default.nix
index 562658a6e99fe..89ea5c0e84ae2 100644
--- a/pkgs/applications/version-management/svn2git/default.nix
+++ b/pkgs/applications/version-management/svn2git/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     description = "Tool for importing Subversion repositories into git";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
+    mainProgram = "svn2git";
   };
 }
diff --git a/pkgs/applications/version-management/tailor/default.nix b/pkgs/applications/version-management/tailor/default.nix
index bd824a71633cc..3e2e6a848008e 100644
--- a/pkgs/applications/version-management/tailor/default.nix
+++ b/pkgs/applications/version-management/tailor/default.nix
@@ -33,5 +33,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://gitlab.com/ports1/tailor";
     license = licenses.gpl1Plus;
     platforms = platforms.unix;
+    mainProgram = "tailor";
   };
 }
diff --git a/pkgs/applications/version-management/thicket/default.nix b/pkgs/applications/version-management/thicket/default.nix
index 1f331ffd49623..710cdda4f94aa 100644
--- a/pkgs/applications/version-management/thicket/default.nix
+++ b/pkgs/applications/version-management/thicket/default.nix
@@ -26,5 +26,6 @@ crystal.buildCrystalPackage rec {
     homepage = "https://github.com/taylorthurlow/thicket";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "thicket";
   };
 }
diff --git a/pkgs/applications/version-management/tig/default.nix b/pkgs/applications/version-management/tig/default.nix
index e4b54078edc5e..1cce34df66adb 100644
--- a/pkgs/applications/version-management/tig/default.nix
+++ b/pkgs/applications/version-management/tig/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ bjornfor domenkozar qknight globin ma27 ];
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
+    mainProgram = "tig";
   };
 }
diff --git a/pkgs/applications/version-management/vcprompt/default.nix b/pkgs/applications/version-management/vcprompt/default.nix
index d4a4889f4a3f9..ff4968d7166de 100644
--- a/pkgs/applications/version-management/vcprompt/default.nix
+++ b/pkgs/applications/version-management/vcprompt/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     platforms   = with platforms; linux ++ darwin;
     license = licenses.gpl2Plus;
+    mainProgram = "vcprompt";
   };
 }
diff --git a/pkgs/applications/version-management/vcsh/default.nix b/pkgs/applications/version-management/vcsh/default.nix
index 0625d0a684e00..bd056e8a7ce71 100644
--- a/pkgs/applications/version-management/vcsh/default.nix
+++ b/pkgs/applications/version-management/vcsh/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ttuegel alerque ];
     platforms = platforms.unix;
+    mainProgram = "vcsh";
   };
 }
diff --git a/pkgs/applications/version-management/verco/default.nix b/pkgs/applications/version-management/verco/default.nix
index 22fe2b2fbbd27..4597a87b4721b 100644
--- a/pkgs/applications/version-management/verco/default.nix
+++ b/pkgs/applications/version-management/verco/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://vamolessa.github.io/verco";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "verco";
   };
 }
diff --git a/pkgs/applications/version-management/yadm/default.nix b/pkgs/applications/version-management/yadm/default.nix
index 73a2035c31fb5..0dab32e57accf 100644
--- a/pkgs/applications/version-management/yadm/default.nix
+++ b/pkgs/applications/version-management/yadm/default.nix
@@ -135,5 +135,6 @@ resholve.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ abathur ];
     platforms = lib.platforms.unix;
+    mainProgram = "yadm";
   };
 }
diff --git a/pkgs/applications/video/adl/default.nix b/pkgs/applications/video/adl/default.nix
index 9dbec102a55e5..6bf36cc375b82 100644
--- a/pkgs/applications/video/adl/default.nix
+++ b/pkgs/applications/video/adl/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "adl";
   };
 }
diff --git a/pkgs/applications/video/aegisub/default.nix b/pkgs/applications/video/aegisub/default.nix
index 9b427a2284d77..2c01d052eedab 100644
--- a/pkgs/applications/video/aegisub/default.nix
+++ b/pkgs/applications/video/aegisub/default.nix
@@ -158,5 +158,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ AndersonTorres wegank ];
     platforms = platforms.unix;
+    mainProgram = "aegisub";
   };
 }
diff --git a/pkgs/applications/video/ani-cli/default.nix b/pkgs/applications/video/ani-cli/default.nix
index 21c04812f9f33..389d00dc1a41e 100644
--- a/pkgs/applications/video/ani-cli/default.nix
+++ b/pkgs/applications/video/ani-cli/default.nix
@@ -58,5 +58,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ skykanin ];
     platforms = platforms.unix;
+    mainProgram = "ani-cli";
   };
 }
diff --git a/pkgs/applications/video/anime-downloader/default.nix b/pkgs/applications/video/anime-downloader/default.nix
index 235c5c58f381a..5e4f58cea1d30 100644
--- a/pkgs/applications/video/anime-downloader/default.nix
+++ b/pkgs/applications/video/anime-downloader/default.nix
@@ -50,5 +50,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.unlicense;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "anime";
   };
 }
diff --git a/pkgs/applications/video/asciicam/default.nix b/pkgs/applications/video/asciicam/default.nix
index fa9a232e0db9f..6a600fec30835 100644
--- a/pkgs/applications/video/asciicam/default.nix
+++ b/pkgs/applications/video/asciicam/default.nix
@@ -23,5 +23,6 @@ buildGoModule {
     homepage = "https://github.com/muesli/asciicam";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "asciicam";
   };
 }
diff --git a/pkgs/applications/video/bilibili/default.nix b/pkgs/applications/video/bilibili/default.nix
index 9a507e93ab655..7a103bc045b54 100644
--- a/pkgs/applications/video/bilibili/default.nix
+++ b/pkgs/applications/video/bilibili/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ jedsek kashw2 ];
     platforms = platforms.unix;
+    mainProgram = "bilibili";
   };
 }
diff --git a/pkgs/applications/video/bino3d/default.nix b/pkgs/applications/video/bino3d/default.nix
index d15d649b841b5..92096c6a34746 100644
--- a/pkgs/applications/video/bino3d/default.nix
+++ b/pkgs/applications/video/bino3d/default.nix
@@ -21,5 +21,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.linux;
+    mainProgram = "bino";
   };
 }
diff --git a/pkgs/applications/video/catt/default.nix b/pkgs/applications/video/catt/default.nix
index 90081d4e59083..8b1c74ee66ccc 100644
--- a/pkgs/applications/video/catt/default.nix
+++ b/pkgs/applications/video/catt/default.nix
@@ -46,5 +46,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/skorokithakis/catt";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "catt";
   };
 }
diff --git a/pkgs/applications/video/ccextractor/default.nix b/pkgs/applications/video/ccextractor/default.nix
index 8b2f185a55bd7..3814f921fa240 100644
--- a/pkgs/applications/video/ccextractor/default.nix
+++ b/pkgs/applications/video/ccextractor/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     broken = stdenv.isAarch64;
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ titanous ];
+    mainProgram = "ccextractor";
   };
 }
diff --git a/pkgs/applications/video/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix
index 9a1940cffc753..1625c87e0c0bb 100644
--- a/pkgs/applications/video/clipgrab/default.nix
+++ b/pkgs/applications/video/clipgrab/default.nix
@@ -61,5 +61,6 @@ mkDerivation rec {
     homepage = "https://clipgrab.org/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "clipgrab";
   };
 }
diff --git a/pkgs/applications/video/coriander/default.nix b/pkgs/applications/video/coriander/default.nix
index d4e35ac484183..80892b96c94b6 100644
--- a/pkgs/applications/video/coriander/default.nix
+++ b/pkgs/applications/video/coriander/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux;
+    mainProgram = "coriander";
   };
 }
diff --git a/pkgs/applications/video/crunchy-cli/default.nix b/pkgs/applications/video/crunchy-cli/default.nix
index 917fdd2f9a245..3efeeb8544d43 100644
--- a/pkgs/applications/video/crunchy-cli/default.nix
+++ b/pkgs/applications/video/crunchy-cli/default.nix
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
     homepage = "https://github.com/crunchy-labs/crunchy-cli";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ stepbrobd ];
+    mainProgram = "crunchy-cli";
   };
 }
 
diff --git a/pkgs/applications/video/davinci-resolve/default.nix b/pkgs/applications/video/davinci-resolve/default.nix
index 99694efda1d31..8070a96a2b4b3 100644
--- a/pkgs/applications/video/davinci-resolve/default.nix
+++ b/pkgs/applications/video/davinci-resolve/default.nix
@@ -230,5 +230,6 @@ buildFHSEnv {
     maintainers = with maintainers; [ jshcmpbll ];
     platforms = [ "x86_64-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    mainProgram = "davinci-resolve";
   };
 }
diff --git a/pkgs/applications/video/deface/default.nix b/pkgs/applications/video/deface/default.nix
index 43c009c9dbb81..8b9e822070cf1 100644
--- a/pkgs/applications/video/deface/default.nix
+++ b/pkgs/applications/video/deface/default.nix
@@ -52,5 +52,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/ORB-HD/deface";
     license = licenses.mit;
     maintainers = with maintainers; [ lurkki ];
+    mainProgram = "deface";
   };
 }
diff --git a/pkgs/applications/video/dra-cla/default.nix b/pkgs/applications/video/dra-cla/default.nix
index 3a097d3e130f4..27b745a403d4b 100644
--- a/pkgs/applications/video/dra-cla/default.nix
+++ b/pkgs/applications/video/dra-cla/default.nix
@@ -41,5 +41,6 @@ stdenvNoCC.mkDerivation {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ idlip ];
     platforms = platforms.unix;
+    mainProgram = "dra-cla";
   };
 }
diff --git a/pkgs/applications/video/dvdbackup/default.nix b/pkgs/applications/video/dvdbackup/default.nix
index 3e998d0c4a170..523847db247f1 100644
--- a/pkgs/applications/video/dvdbackup/default.nix
+++ b/pkgs/applications/video/dvdbackup/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.bradediger ];
     platforms = lib.platforms.linux;
+    mainProgram = "dvdbackup";
   };
 }
diff --git a/pkgs/applications/video/dvdstyler/default.nix b/pkgs/applications/video/dvdstyler/default.nix
index 8d7d5a6611d34..18018f88d0256 100644
--- a/pkgs/applications/video/dvdstyler/default.nix
+++ b/pkgs/applications/video/dvdstyler/default.nix
@@ -128,5 +128,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; linux;
+    mainProgram = "dvdstyler";
   };
 }
diff --git a/pkgs/applications/video/entangle/default.nix b/pkgs/applications/video/entangle/default.nix
index daf56c174456a..cfab93dbcd71a 100644
--- a/pkgs/applications/video/entangle/default.nix
+++ b/pkgs/applications/video/entangle/default.nix
@@ -133,5 +133,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ ShamrockLee ];
+    mainProgram = "entangle";
   };
 }
diff --git a/pkgs/applications/video/epgstation/default.nix b/pkgs/applications/video/epgstation/default.nix
index 49d2dedbb0c3e..c5d12c8403c12 100644
--- a/pkgs/applications/video/epgstation/default.nix
+++ b/pkgs/applications/video/epgstation/default.nix
@@ -119,5 +119,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/l3tnun/EPGStation";
     license = licenses.mit;
     maintainers = with maintainers; [ midchildan ];
+    mainProgram = "epgstation";
   };
 }
diff --git a/pkgs/applications/video/f1viewer/default.nix b/pkgs/applications/video/f1viewer/default.nix
index 7541ec6598a02..5d89a8df657c1 100644
--- a/pkgs/applications/video/f1viewer/default.nix
+++ b/pkgs/applications/video/f1viewer/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/SoMuchForSubtlety/f1viewer";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ michzappa ];
+    mainProgram = "f1viewer";
   };
 }
diff --git a/pkgs/applications/video/ffmpeg-normalize/default.nix b/pkgs/applications/video/ffmpeg-normalize/default.nix
index 75a7a9b46bb77..a3b40daacf79a 100644
--- a/pkgs/applications/video/ffmpeg-normalize/default.nix
+++ b/pkgs/applications/video/ffmpeg-normalize/default.nix
@@ -25,5 +25,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/slhck/ffmpeg-normalize";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ prusnak ];
+    mainProgram = "ffmpeg-normalize";
   };
 }
diff --git a/pkgs/applications/video/filebot/default.nix b/pkgs/applications/video/filebot/default.nix
index 9fffd01019e8a..e38b4dde3d29a 100644
--- a/pkgs/applications/video/filebot/default.nix
+++ b/pkgs/applications/video/filebot/default.nix
@@ -67,5 +67,6 @@ in stdenv.mkDerivation (finalAttrs: {
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ gleber felschr ];
     platforms = platforms.linux;
+    mainProgram = "filebot";
   };
 })
diff --git a/pkgs/applications/video/flowblade/default.nix b/pkgs/applications/video/flowblade/default.nix
index 2643a449c60fd..29d095fe67fde 100644
--- a/pkgs/applications/video/flowblade/default.nix
+++ b/pkgs/applications/video/flowblade/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl3Plus ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ polygon ];
+    mainProgram = "flowblade";
   };
 }
diff --git a/pkgs/applications/video/freetube/default.nix b/pkgs/applications/video/freetube/default.nix
index a3fd87e6142ea..b5a8221b7fdfc 100644
--- a/pkgs/applications/video/freetube/default.nix
+++ b/pkgs/applications/video/freetube/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ ryneeverett alyaeanyx ];
     inherit (electron.meta) platforms;
+    mainProgram = "freetube";
   };
 }
diff --git a/pkgs/applications/video/giph/default.nix b/pkgs/applications/video/giph/default.nix
index 3255544ff8b3c..9d0175911d690 100644
--- a/pkgs/applications/video/giph/default.nix
+++ b/pkgs/applications/video/giph/default.nix
@@ -39,5 +39,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.lom ];
     platforms = platforms.linux;
+    mainProgram = "giph";
   };
 }
diff --git a/pkgs/applications/video/glaxnimate/default.nix b/pkgs/applications/video/glaxnimate/default.nix
index 4ab5222c54ba5..a50e3d15614a8 100644
--- a/pkgs/applications/video/glaxnimate/default.nix
+++ b/pkgs/applications/video/glaxnimate/default.nix
@@ -82,5 +82,6 @@ stdenv.mkDerivation rec {
     description = "Simple vector animation program.";
     license = licenses.gpl3;
     maintainers = with maintainers; [ tobiasBora ];
+    mainProgram = "glaxnimate";
   };
 }
diff --git a/pkgs/applications/video/gnomecast/default.nix b/pkgs/applications/video/gnomecast/default.nix
index 6e41dcb7b8e37..9d0bfa9e966e3 100644
--- a/pkgs/applications/video/gnomecast/default.nix
+++ b/pkgs/applications/video/gnomecast/default.nix
@@ -41,5 +41,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/keredson/gnomecast";
     license = with licenses; [ gpl3 ];
     broken = stdenv.isDarwin;
+    mainProgram = "gnomecast";
   };
 }
diff --git a/pkgs/applications/video/go-chromecast/default.nix b/pkgs/applications/video/go-chromecast/default.nix
index 523eef1b85914..d554fd56847cb 100644
--- a/pkgs/applications/video/go-chromecast/default.nix
+++ b/pkgs/applications/video/go-chromecast/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "CLI for Google Chromecast, Home devices and Cast Groups";
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "go-chromecast";
   };
 }
diff --git a/pkgs/applications/video/go2tv/default.nix b/pkgs/applications/video/go2tv/default.nix
index fb0db20990e48..d8fc548f10b3c 100644
--- a/pkgs/applications/video/go2tv/default.nix
+++ b/pkgs/applications/video/go2tv/default.nix
@@ -53,5 +53,6 @@ buildGoModule rec {
     homepage = "https://github.com/alexballas/go2tv";
     license = licenses.mit;
     maintainers = with maintainers; [ gdamjan ];
+    mainProgram = "go2tv";
   };
 }
diff --git a/pkgs/applications/video/haruna/default.nix b/pkgs/applications/video/haruna/default.nix
index b73933e36a716..8b112ed838a31 100644
--- a/pkgs/applications/video/haruna/default.nix
+++ b/pkgs/applications/video/haruna/default.nix
@@ -74,5 +74,6 @@ mkDerivation rec {
     description = "Open source video player built with Qt/QML and libmpv";
     license = with licenses; [ bsd3 cc-by-40 cc-by-sa-40 cc0 gpl2Plus gpl3Plus wtfpl ];
     maintainers = with maintainers; [ jojosch kashw2 ];
+    mainProgram = "haruna";
   };
 }
diff --git a/pkgs/applications/video/hdhomerun-config-gui/default.nix b/pkgs/applications/video/hdhomerun-config-gui/default.nix
index 12689bedcbd38..c5ed409117e3f 100644
--- a/pkgs/applications/video/hdhomerun-config-gui/default.nix
+++ b/pkgs/applications/video/hdhomerun-config-gui/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.louisdk1 ];
+    mainProgram = "hdhomerun_config_gui";
   };
 }
diff --git a/pkgs/applications/video/hypnotix/default.nix b/pkgs/applications/video/hypnotix/default.nix
index 74d2389fce7b8..647f171c87311 100644
--- a/pkgs/applications/video/hypnotix/default.nix
+++ b/pkgs/applications/video/hypnotix/default.nix
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda bobby285271 ];
     platforms = lib.platforms.linux;
+    mainProgram = "hypnotix";
   };
 }
diff --git a/pkgs/applications/video/imagination/default.nix b/pkgs/applications/video/imagination/default.nix
index 804265bcb5456..8d1d6ac305f9e 100644
--- a/pkgs/applications/video/imagination/default.nix
+++ b/pkgs/applications/video/imagination/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ austinbutler ];
     platforms = platforms.linux;
+    mainProgram = "imagination";
   };
 }
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index a5c6a7beb06b0..dad9a52402495 100644
--- a/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -120,5 +120,6 @@ buildPythonApplication rec {
       unlicense
     ];
     maintainers = with maintainers; [ jojosch ];
+    mainProgram = "jellyfin-mpv-shim";
   };
 }
diff --git a/pkgs/applications/video/jftui/default.nix b/pkgs/applications/video/jftui/default.nix
index 6f5fb3cf6fbbc..efd8d6ed6e2a8 100644
--- a/pkgs/applications/video/jftui/default.nix
+++ b/pkgs/applications/video/jftui/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.unlicense;
     maintainers = [ maintainers.nyanloutre ];
     platforms = platforms.linux;
+    mainProgram = "jftui";
   };
 }
diff --git a/pkgs/applications/video/kaffeine/default.nix b/pkgs/applications/video/kaffeine/default.nix
index 02263f46e0f4b..40701d2cbf85e 100644
--- a/pkgs/applications/video/kaffeine/default.nix
+++ b/pkgs/applications/video/kaffeine/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.pasqui23 ];
     platforms = platforms.all;
+    mainProgram = "kaffeine";
   };
 }
diff --git a/pkgs/applications/video/kazam/default.nix b/pkgs/applications/video/kazam/default.nix
index a2a9d8d112cd4..8ca3b813663f4 100644
--- a/pkgs/applications/video/kazam/default.nix
+++ b/pkgs/applications/video/kazam/default.nix
@@ -58,5 +58,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.domenkozar ];
+    mainProgram = "kazam";
   };
 }
diff --git a/pkgs/applications/video/lbry/default.nix b/pkgs/applications/video/lbry/default.nix
index afcec67d9134b..cadd38523ca15 100644
--- a/pkgs/applications/video/lbry/default.nix
+++ b/pkgs/applications/video/lbry/default.nix
@@ -45,5 +45,6 @@ in appimageTools.wrapAppImage rec {
     changelog = "https://github.com/lbryio/lbry-desktop/blob/master/CHANGELOG.md";
     maintainers = with maintainers; [ enderger ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "lbry";
   };
 }
diff --git a/pkgs/applications/video/linuxstopmotion/default.nix b/pkgs/applications/video/linuxstopmotion/default.nix
index ad9a77af080ab..bdf361cec9fc1 100644
--- a/pkgs/applications/video/linuxstopmotion/default.nix
+++ b/pkgs/applications/video/linuxstopmotion/default.nix
@@ -23,5 +23,6 @@ mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "stopmotion";
   };
 }
diff --git a/pkgs/applications/video/losslesscut-bin/default.nix b/pkgs/applications/video/losslesscut-bin/default.nix
index 0e6b52f8f7aba..5fe8c8785a818 100644
--- a/pkgs/applications/video/losslesscut-bin/default.nix
+++ b/pkgs/applications/video/losslesscut-bin/default.nix
@@ -12,6 +12,7 @@ let
     homepage = "https://mifi.no/losslesscut/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ShamrockLee ];
+    mainProgram = "losslesscut";
   };
   x86_64-appimage = callPackage ./build-from-appimage.nix {
     inherit pname version metaCommon;
diff --git a/pkgs/applications/video/mapmap/default.nix b/pkgs/applications/video/mapmap/default.nix
index 6bca33eb38854..39904f8291593 100644
--- a/pkgs/applications/video/mapmap/default.nix
+++ b/pkgs/applications/video/mapmap/default.nix
@@ -73,6 +73,7 @@ mkDerivation rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.erictapen ];
     platforms = platforms.linux;
+    mainProgram = "mapmap";
   };
 
 }
diff --git a/pkgs/applications/video/media-downloader/default.nix b/pkgs/applications/video/media-downloader/default.nix
index 61f59854debd5..dd0d4924aaea1 100644
--- a/pkgs/applications/video/media-downloader/default.nix
+++ b/pkgs/applications/video/media-downloader/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ zendo ];
     platforms = lib.platforms.linux;
+    mainProgram = "media-downloader";
   };
 })
diff --git a/pkgs/applications/video/memento/default.nix b/pkgs/applications/video/memento/default.nix
index 8fda60e3a0a09..f09b3a79794d1 100644
--- a/pkgs/applications/video/memento/default.nix
+++ b/pkgs/applications/video/memento/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2;
     maintainers = with maintainers; [ teto ];
     platforms = platforms.linux;
+    mainProgram = "memento";
   };
 })
 
diff --git a/pkgs/applications/video/minitube/default.nix b/pkgs/applications/video/minitube/default.nix
index 06bed9211318f..3caa2b7fc56cc 100644
--- a/pkgs/applications/video/minitube/default.nix
+++ b/pkgs/applications/video/minitube/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "minitube";
   };
 }
diff --git a/pkgs/applications/video/mjpg-streamer/default.nix b/pkgs/applications/video/mjpg-streamer/default.nix
index a82839ef7548c..f04025b37ddc4 100644
--- a/pkgs/applications/video/mjpg-streamer/default.nix
+++ b/pkgs/applications/video/mjpg-streamer/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation {
     platforms = platforms.linux;
     license = licenses.gpl2;
     maintainers = with maintainers; [ gebner ];
+    mainProgram = "mjpg_streamer";
   };
 }
diff --git a/pkgs/applications/video/mlv-app/default.nix b/pkgs/applications/video/mlv-app/default.nix
index 757759b1146f3..e3bd3cbf99a26 100644
--- a/pkgs/applications/video/mlv-app/default.nix
+++ b/pkgs/applications/video/mlv-app/default.nix
@@ -58,5 +58,6 @@ mkDerivation rec {
       kiwi
     ];
     platforms = platforms.linux;
+    mainProgram = "mlvapp";
   };
 }
diff --git a/pkgs/applications/video/molotov/default.nix b/pkgs/applications/video/molotov/default.nix
index 670eef3aa3ee7..1930f06ffdb60 100644
--- a/pkgs/applications/video/molotov/default.nix
+++ b/pkgs/applications/video/molotov/default.nix
@@ -26,5 +26,6 @@ appimageTools.wrapType2 {
     license = with licenses; [ unfree ];
     maintainers = with maintainers; [ apeyroux freezeboy ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "molotov";
   };
 }
diff --git a/pkgs/applications/video/motion/default.nix b/pkgs/applications/video/motion/default.nix
index 372ace9ffa3a5..95bc378192407 100644
--- a/pkgs/applications/video/motion/default.nix
+++ b/pkgs/applications/video/motion/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     # never built on aarch64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin && stdenv.isAarch64;
+    mainProgram = "motion";
   };
 }
diff --git a/pkgs/applications/video/mov-cli/default.nix b/pkgs/applications/video/mov-cli/default.nix
index 23954a05c5aae..829c4b83778dc 100644
--- a/pkgs/applications/video/mov-cli/default.nix
+++ b/pkgs/applications/video/mov-cli/default.nix
@@ -35,5 +35,6 @@ python3.pkgs.buildPythonPackage rec {
     description = "A cli tool to browse and watch movies";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ baitinq ];
+    mainProgram = "mov-cli";
   };
 }
diff --git a/pkgs/applications/video/mpc-qt/default.nix b/pkgs/applications/video/mpc-qt/default.nix
index 372bc52044e70..73fab758d75ef 100644
--- a/pkgs/applications/video/mpc-qt/default.nix
+++ b/pkgs/applications/video/mpc-qt/default.nix
@@ -24,5 +24,6 @@ mkDerivation rec {
     platforms = platforms.unix;
     broken = stdenv.isDarwin;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "mpc-qt";
   };
 }
diff --git a/pkgs/applications/video/olive-editor/default.nix b/pkgs/applications/video/olive-editor/default.nix
index 5daac65313e82..f23ed20c797be 100644
--- a/pkgs/applications/video/olive-editor/default.nix
+++ b/pkgs/applications/video/olive-editor/default.nix
@@ -79,5 +79,6 @@ stdenv.mkDerivation {
     platforms = platforms.unix;
     # never built on aarch64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin && stdenv.isAarch64;
+    mainProgram = "olive-editor";
   };
 }
diff --git a/pkgs/applications/video/open-in-mpv/default.nix b/pkgs/applications/video/open-in-mpv/default.nix
index f3ac6414a7094..02c9d80a43ea8 100644
--- a/pkgs/applications/video/open-in-mpv/default.nix
+++ b/pkgs/applications/video/open-in-mpv/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     homepage = "https://github.com/Baldomo/open-in-mpv";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "open-in-mpv";
   };
 }
diff --git a/pkgs/applications/video/openshot-qt/default.nix b/pkgs/applications/video/openshot-qt/default.nix
index ec980f1bfd1be..f209c092bdc1d 100644
--- a/pkgs/applications/video/openshot-qt/default.nix
+++ b/pkgs/applications/video/openshot-qt/default.nix
@@ -80,5 +80,6 @@ mkDerivationWith python3.pkgs.buildPythonApplication rec {
     license = with licenses; gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; unix;
+    mainProgram = "openshot-qt";
   };
 }
diff --git a/pkgs/applications/video/p2pvc/default.nix b/pkgs/applications/video/p2pvc/default.nix
index f64af16709f62..ec2f0c95f8998 100644
--- a/pkgs/applications/video/p2pvc/default.nix
+++ b/pkgs/applications/video/p2pvc/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ trino ];
     platforms = with lib.platforms; linux;
+    mainProgram = "p2pvc";
   };
 }
diff --git a/pkgs/applications/video/peek/default.nix b/pkgs/applications/video/peek/default.nix
index b8dff4f1af773..105a86fbf4a7b 100644
--- a/pkgs/applications/video/peek/default.nix
+++ b/pkgs/applications/video/peek/default.nix
@@ -89,5 +89,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ puffnfresh ];
     platforms = platforms.linux;
+    mainProgram = "peek";
   };
 }
diff --git a/pkgs/applications/video/pipe-viewer/default.nix b/pkgs/applications/video/pipe-viewer/default.nix
index 18e38122f27c8..5fc574881cfbd 100644
--- a/pkgs/applications/video/pipe-viewer/default.nix
+++ b/pkgs/applications/video/pipe-viewer/default.nix
@@ -83,5 +83,6 @@ buildPerlModule rec {
     license = licenses.artistic2;
     maintainers = with maintainers; [ julm ];
     platforms = platforms.all;
+    mainProgram = "pipe-viewer";
   };
 }
diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix
index d37fc66cb0364..1b8c40e233a53 100644
--- a/pkgs/applications/video/pitivi/default.nix
+++ b/pkgs/applications/video/pitivi/default.nix
@@ -104,5 +104,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ akechishiro ];
     platforms = platforms.linux;
+    mainProgram = "pitivi";
   };
 }
diff --git a/pkgs/applications/video/plex-mpv-shim/default.nix b/pkgs/applications/video/plex-mpv-shim/default.nix
index 90f18613ca07e..2e71c4668356e 100644
--- a/pkgs/applications/video/plex-mpv-shim/default.nix
+++ b/pkgs/applications/video/plex-mpv-shim/default.nix
@@ -47,5 +47,6 @@ buildPythonApplication rec {
     maintainers = with maintainers; [ devusb ];
     license = licenses.mit;
     platforms = platforms.linux;
+    mainProgram = "plex-mpv-shim";
   };
 }
diff --git a/pkgs/applications/video/popcorntime/default.nix b/pkgs/applications/video/popcorntime/default.nix
index a121717729669..9e5a14d4983c3 100644
--- a/pkgs/applications/video/popcorntime/default.nix
+++ b/pkgs/applications/video/popcorntime/default.nix
@@ -89,5 +89,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.gpl3;
     maintainers = with maintainers; [ onny ];
+    mainProgram = "popcorntime";
   };
 }
diff --git a/pkgs/applications/video/prism/default.nix b/pkgs/applications/video/prism/default.nix
index 8fa0c7b03762c..68ef965ec1ab1 100644
--- a/pkgs/applications/video/prism/default.nix
+++ b/pkgs/applications/video/prism/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/muesli/prism";
     license = licenses.mit;
     maintainers = with maintainers; [ paperdigits ];
+    mainProgram = "prism";
   };
 }
diff --git a/pkgs/applications/video/qarte/default.nix b/pkgs/applications/video/qarte/default.nix
index be2ac3c7413c1..e237a1c641a92 100644
--- a/pkgs/applications/video/qarte/default.nix
+++ b/pkgs/applications/video/qarte/default.nix
@@ -42,5 +42,6 @@ in mkDerivation {
     license = licenses.gpl3;
     maintainers = with maintainers; [ vbgl ];
     platforms = platforms.linux;
+    mainProgram = "qarte";
   };
 }
diff --git a/pkgs/applications/video/qmediathekview/default.nix b/pkgs/applications/video/qmediathekview/default.nix
index e37a8b1ed4ae0..3596791034979 100644
--- a/pkgs/applications/video/qmediathekview/default.nix
+++ b/pkgs/applications/video/qmediathekview/default.nix
@@ -38,5 +38,6 @@ mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ dotlambda ];
     broken = stdenv.isAarch64;
+    mainProgram = "QMediathekView";
   };
 }
diff --git a/pkgs/applications/video/qstopmotion/default.nix b/pkgs/applications/video/qstopmotion/default.nix
index 469ba5b8eaa60..3172c4bb43435 100644
--- a/pkgs/applications/video/qstopmotion/default.nix
+++ b/pkgs/applications/video/qstopmotion/default.nix
@@ -81,5 +81,6 @@ mkDerivation rec {
     maintainers = [ maintainers.leenaars ];
     broken = stdenv.isAarch64;
     platforms = lib.platforms.gnu ++ lib.platforms.linux;
+    mainProgram = "qstopmotion";
   };
 }
diff --git a/pkgs/applications/video/recapp/default.nix b/pkgs/applications/video/recapp/default.nix
index 1e644ff9f4172..c15a0680a9333 100644
--- a/pkgs/applications/video/recapp/default.nix
+++ b/pkgs/applications/video/recapp/default.nix
@@ -77,5 +77,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/amikha1lov/RecApp";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "recapp";
   };
 }
diff --git a/pkgs/applications/video/screenkey/default.nix b/pkgs/applications/video/screenkey/default.nix
index 83ebf1db9b4e0..90cf5e7dcf247 100644
--- a/pkgs/applications/video/screenkey/default.nix
+++ b/pkgs/applications/video/screenkey/default.nix
@@ -64,5 +64,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.rasendubi ];
+    mainProgram = "screenkey";
   };
 }
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 5abc6c47a1346..efa7782891ceb 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -93,5 +93,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ goibhniu woffs peti ];
     platforms = platforms.linux;
+    mainProgram = "shotcut";
   };
 }
diff --git a/pkgs/applications/video/srtrelay/default.nix b/pkgs/applications/video/srtrelay/default.nix
index 43901d1524adf..8640424be1e95 100644
--- a/pkgs/applications/video/srtrelay/default.nix
+++ b/pkgs/applications/video/srtrelay/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/voc/srtrelay";
     license = licenses.mit;
     maintainers = with maintainers; [ fpletz ];
+    mainProgram = "srtrelay";
   };
 }
diff --git a/pkgs/applications/video/sub-batch/default.nix b/pkgs/applications/video/sub-batch/default.nix
index 9455f6d1a1e41..bc0d6bd3a6cb4 100644
--- a/pkgs/applications/video/sub-batch/default.nix
+++ b/pkgs/applications/video/sub-batch/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ erictapen ];
     broken = stdenv.isDarwin;
+    mainProgram = "sub-batch";
   };
 }
diff --git a/pkgs/applications/video/subdl/default.nix b/pkgs/applications/video/subdl/default.nix
index 95f7be2cbcafe..773d1f1ad4237 100644
--- a/pkgs/applications/video/subdl/default.nix
+++ b/pkgs/applications/video/subdl/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     platforms = lib.platforms.all;
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.exfalso ];
+    mainProgram = "subdl";
   };
 }
diff --git a/pkgs/applications/video/subtitleeditor/default.nix b/pkgs/applications/video/subtitleeditor/default.nix
index 56d830a2ac76d..fd8e03963dca0 100644
--- a/pkgs/applications/video/subtitleeditor/default.nix
+++ b/pkgs/applications/video/subtitleeditor/default.nix
@@ -59,5 +59,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.plcplc ];
+    mainProgram = "subtitleeditor";
   };
 }
diff --git a/pkgs/applications/video/tartube/default.nix b/pkgs/applications/video/tartube/default.nix
index 859cd8e8cc365..b1b05a524f74f 100644
--- a/pkgs/applications/video/tartube/default.nix
+++ b/pkgs/applications/video/tartube/default.nix
@@ -74,5 +74,6 @@ python3Packages.buildPythonApplication rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ mkg20001 luc65r ];
     homepage = "https://tartube.sourceforge.io/";
+    mainProgram = "tartube";
   };
 }
diff --git a/pkgs/applications/video/timelens/default.nix b/pkgs/applications/video/timelens/default.nix
index 05455b0f84f79..bd38a4c2f76af 100644
--- a/pkgs/applications/video/timelens/default.nix
+++ b/pkgs/applications/video/timelens/default.nix
@@ -41,5 +41,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/timelens/timelens/blob/${src.rev}/CHANGELOG.md";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ janik ];
+    mainProgram = "timelens";
   };
 }
diff --git a/pkgs/applications/video/uvccapture/default.nix b/pkgs/applications/video/uvccapture/default.nix
index be0a7fcd2416e..96e42b1a7f95a 100644
--- a/pkgs/applications/video/uvccapture/default.nix
+++ b/pkgs/applications/video/uvccapture/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "uvccapture";
   };
 }
diff --git a/pkgs/applications/video/vcs/default.nix b/pkgs/applications/video/vcs/default.nix
index 37ea20718fd6e..e21e3a98f1f7f 100644
--- a/pkgs/applications/video/vcs/default.nix
+++ b/pkgs/applications/video/vcs/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation {
     license = licenses.cc-by-nc-sa-30;
     maintainers = with maintainers; [ elitak ];
     platforms = with platforms; unix;
+    mainProgram = "vcs";
   };
 }
diff --git a/pkgs/applications/video/video-trimmer/default.nix b/pkgs/applications/video/video-trimmer/default.nix
index d61f30de1be57..d3d55d2cb4a6b 100644
--- a/pkgs/applications/video/video-trimmer/default.nix
+++ b/pkgs/applications/video/video-trimmer/default.nix
@@ -73,5 +73,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with maintainers; [ doronbehar ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "video-trimmer";
   };
 })
diff --git a/pkgs/applications/video/vivictpp/default.nix b/pkgs/applications/video/vivictpp/default.nix
index 13f3564fa0d08..9b8a8773b1b4b 100644
--- a/pkgs/applications/video/vivictpp/default.nix
+++ b/pkgs/applications/video/vivictpp/default.nix
@@ -69,5 +69,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ tilpner ];
+    mainProgram = "vivictpp";
   };
 }
diff --git a/pkgs/applications/video/vokoscreen-ng/default.nix b/pkgs/applications/video/vokoscreen-ng/default.nix
index 6f445da73d38a..15d59af318fbe 100644
--- a/pkgs/applications/video/vokoscreen-ng/default.nix
+++ b/pkgs/applications/video/vokoscreen-ng/default.nix
@@ -69,5 +69,6 @@ mkDerivation rec {
     homepage = "https://github.com/vkohaupt/vokoscreenNG";
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "vokoscreenNG";
   };
 }
diff --git a/pkgs/applications/video/vokoscreen/default.nix b/pkgs/applications/video/vokoscreen/default.nix
index 82c23b4892e43..cb0df69ee2c53 100644
--- a/pkgs/applications/video/vokoscreen/default.nix
+++ b/pkgs/applications/video/vokoscreen/default.nix
@@ -53,5 +53,6 @@ mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.league ];
     platforms = platforms.linux;
+    mainProgram = "vokoscreen";
   };
 }
diff --git a/pkgs/applications/video/w_scan/default.nix b/pkgs/applications/video/w_scan/default.nix
index 1a8c6f2d3adbe..4dedf71d39bf2 100644
--- a/pkgs/applications/video/w_scan/default.nix
+++ b/pkgs/applications/video/w_scan/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.nico202 ] ;
     license = lib.licenses.gpl2;
+    mainProgram = "w_scan";
   };
 }
diff --git a/pkgs/applications/video/w_scan2/default.nix b/pkgs/applications/video/w_scan2/default.nix
index 26202ee18bc23..b1a4c907c0dbc 100644
--- a/pkgs/applications/video/w_scan2/default.nix
+++ b/pkgs/applications/video/w_scan2/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ _0x4A6F ] ;
     license = lib.licenses.gpl2Only;
+    mainProgram = "w_scan2";
   };
 }
diff --git a/pkgs/applications/video/webcamoid/default.nix b/pkgs/applications/video/webcamoid/default.nix
index b8d7e7b6bfed2..799e68bf072e6 100644
--- a/pkgs/applications/video/webcamoid/default.nix
+++ b/pkgs/applications/video/webcamoid/default.nix
@@ -31,5 +31,6 @@ mkDerivation rec {
     license = [ licenses.gpl3Plus ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ robaca ];
+    mainProgram = "webcamoid";
   };
 }
diff --git a/pkgs/applications/video/webtorrent_desktop/default.nix b/pkgs/applications/video/webtorrent_desktop/default.nix
index 925fa38a199aa..75a8d9f5c639f 100644
--- a/pkgs/applications/video/webtorrent_desktop/default.nix
+++ b/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -57,6 +57,7 @@ buildNpmPackage {
     homepage = "https://webtorrent.io/desktop";
     license = licenses.mit;
     maintainers = [ maintainers.bendlas ];
+    mainProgram = "WebTorrent";
   };
 
 }
diff --git a/pkgs/applications/video/wf-recorder/default.nix b/pkgs/applications/video/wf-recorder/default.nix
index 8799455834a95..56a85517eb0a1 100644
--- a/pkgs/applications/video/wf-recorder/default.nix
+++ b/pkgs/applications/video/wf-recorder/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ yuka ];
     platforms = platforms.linux;
+    mainProgram = "wf-recorder";
   };
 }
diff --git a/pkgs/applications/video/xscast/default.nix b/pkgs/applications/video/xscast/default.nix
index f3b44bf7c6aa4..4e7252a514f88 100644
--- a/pkgs/applications/video/xscast/default.nix
+++ b/pkgs/applications/video/xscast/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     description = "Screencasts of windows with list of keystrokes overlayed";
     maintainers = with maintainers; [ ];
+    mainProgram = "xscast";
   };
 }
diff --git a/pkgs/applications/video/youtube-tui/default.nix b/pkgs/applications/video/youtube-tui/default.nix
index e0ede1f1e704c..bfa1039d5d330 100644
--- a/pkgs/applications/video/youtube-tui/default.nix
+++ b/pkgs/applications/video/youtube-tui/default.nix
@@ -52,5 +52,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://siriusmart.github.io/youtube-tui";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Ruixi-rebirth ];
+    mainProgram = "youtube-tui";
   };
 }
diff --git a/pkgs/applications/video/yuview/default.nix b/pkgs/applications/video/yuview/default.nix
index 7df47d3f42562..a6c7ad6ceb869 100644
--- a/pkgs/applications/video/yuview/default.nix
+++ b/pkgs/applications/video/yuview/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ leixb ];
     platforms = platforms.unix;
+    mainProgram = "YUView";
   };
 }
diff --git a/pkgs/applications/virtualization/buildkit-nix/default.nix b/pkgs/applications/virtualization/buildkit-nix/default.nix
index 3e7027f9dfd91..df354c08f4141 100644
--- a/pkgs/applications/virtualization/buildkit-nix/default.nix
+++ b/pkgs/applications/virtualization/buildkit-nix/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ lesuisse ];
+    mainProgram = "buildkit-nix";
   };
 }
diff --git a/pkgs/applications/virtualization/catatonit/default.nix b/pkgs/applications/virtualization/catatonit/default.nix
index 5b66a59e5850f..f7b2b973ab579 100644
--- a/pkgs/applications/virtualization/catatonit/default.nix
+++ b/pkgs/applications/virtualization/catatonit/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ erosennin ] ++ teams.podman.members;
     platforms = platforms.linux;
+    mainProgram = "catatonit";
   };
 }
diff --git a/pkgs/applications/virtualization/cntr/default.nix b/pkgs/applications/virtualization/cntr/default.nix
index e95e404f82f83..3cfd905bc5601 100644
--- a/pkgs/applications/virtualization/cntr/default.nix
+++ b/pkgs/applications/virtualization/cntr/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.mic92 ];
+    mainProgram = "cntr";
   };
 }
diff --git a/pkgs/applications/virtualization/colima/default.nix b/pkgs/applications/virtualization/colima/default.nix
index 3c4281d8e734f..f096b59efc996 100644
--- a/pkgs/applications/virtualization/colima/default.nix
+++ b/pkgs/applications/virtualization/colima/default.nix
@@ -68,5 +68,6 @@ buildGoModule rec {
     homepage = "https://github.com/abiosoft/colima";
     license = licenses.mit;
     maintainers = with maintainers; [ aaschmid tricktron ];
+    mainProgram = "colima";
   };
 }
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index d0eceae70525a..f929bac673c2e 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ ] ++ teams.podman.members;
     platforms = platforms.linux;
+    mainProgram = "conmon";
   };
 }
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index 6b513dae9e1e9..a2824004a153c 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -80,5 +80,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ] ++ teams.podman.members;
+    mainProgram = "crun";
   };
 }
diff --git a/pkgs/applications/virtualization/dumb-init/default.nix b/pkgs/applications/virtualization/dumb-init/default.nix
index ee61a1bafacca..6c22a5ec12982 100644
--- a/pkgs/applications/virtualization/dumb-init/default.nix
+++ b/pkgs/applications/virtualization/dumb-init/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.linux;
+    mainProgram = "dumb-init";
   };
 }
diff --git a/pkgs/applications/virtualization/firectl/default.nix b/pkgs/applications/virtualization/firectl/default.nix
index 66ab59e58bd87..de0d3cd4131f8 100644
--- a/pkgs/applications/virtualization/firectl/default.nix
+++ b/pkgs/applications/virtualization/firectl/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ xrelkd ];
+    mainProgram = "firectl";
   };
 }
diff --git a/pkgs/applications/virtualization/krunvm/default.nix b/pkgs/applications/virtualization/krunvm/default.nix
index 5f365f5c62963..0c2c4d0d0df87 100644
--- a/pkgs/applications/virtualization/krunvm/default.nix
+++ b/pkgs/applications/virtualization/krunvm/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
     platforms = libkrun.meta.platforms;
+    mainProgram = "krunvm";
   };
 }
diff --git a/pkgs/applications/virtualization/nixpacks/default.nix b/pkgs/applications/virtualization/nixpacks/default.nix
index e35a5d16a49df..a896829356b1f 100644
--- a/pkgs/applications/virtualization/nixpacks/default.nix
+++ b/pkgs/applications/virtualization/nixpacks/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/railwayapp/nixpacks";
     license = licenses.mit;
     maintainers = [ maintainers.zoedsoupe ];
+    mainProgram = "nixpacks";
   };
 }
diff --git a/pkgs/applications/virtualization/ops/default.nix b/pkgs/applications/virtualization/ops/default.nix
index 56829737ead90..1181d12c9aecf 100644
--- a/pkgs/applications/virtualization/ops/default.nix
+++ b/pkgs/applications/virtualization/ops/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "ops";
   };
 }
diff --git a/pkgs/applications/virtualization/podman-compose/default.nix b/pkgs/applications/virtualization/podman-compose/default.nix
index df73860dda8bf..8671617a40431 100644
--- a/pkgs/applications/virtualization/podman-compose/default.nix
+++ b/pkgs/applications/virtualization/podman-compose/default.nix
@@ -19,5 +19,6 @@ buildPythonApplication rec {
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.sikmir ] ++ lib.teams.podman.members;
+    mainProgram = "podman-compose";
   };
 }
diff --git a/pkgs/applications/virtualization/podman-desktop/default.nix b/pkgs/applications/virtualization/podman-desktop/default.nix
index 7a5bc71ce85c8..80c013becb405 100644
--- a/pkgs/applications/virtualization/podman-desktop/default.nix
+++ b/pkgs/applications/virtualization/podman-desktop/default.nix
@@ -116,5 +116,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.asl20;
     maintainers = with maintainers; [ panda2134 ];
     inherit (electron.meta) platforms;
+    mainProgram = "podman-desktop";
   };
 })
diff --git a/pkgs/applications/virtualization/podman-tui/default.nix b/pkgs/applications/virtualization/podman-tui/default.nix
index e5d5eb9309820..3372ea695ef47 100644
--- a/pkgs/applications/virtualization/podman-tui/default.nix
+++ b/pkgs/applications/virtualization/podman-tui/default.nix
@@ -45,5 +45,6 @@ buildGoModule rec {
     description = "Podman Terminal UI";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "podman-tui";
   };
 }
diff --git a/pkgs/applications/virtualization/pods/default.nix b/pkgs/applications/virtualization/pods/default.nix
index 1e50f157adcf4..698dd5b86959c 100644
--- a/pkgs/applications/virtualization/pods/default.nix
+++ b/pkgs/applications/virtualization/pods/default.nix
@@ -63,5 +63,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
     platforms = platforms.linux;
+    mainProgram = "pods";
   };
 }
diff --git a/pkgs/applications/virtualization/qtemu/default.nix b/pkgs/applications/virtualization/qtemu/default.nix
index 9568a0bb695c2..d8fda62ccf904 100644
--- a/pkgs/applications/virtualization/qtemu/default.nix
+++ b/pkgs/applications/virtualization/qtemu/default.nix
@@ -41,5 +41,6 @@ mkDerivation rec {
     license = licenses.gpl2;
     platforms = with platforms; linux;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "qtemu";
   };
 }
diff --git a/pkgs/applications/virtualization/remotebox/default.nix b/pkgs/applications/virtualization/remotebox/default.nix
index fa4f105f6e838..3e7c50690896e 100644
--- a/pkgs/applications/virtualization/remotebox/default.nix
+++ b/pkgs/applications/virtualization/remotebox/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
       client which is able to manage a VirtualBox server installation.
     '';
     platforms = platforms.all;
+    mainProgram = "remotebox";
   };
 }
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index 67edd6887c90a..a17c5753981fa 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -56,5 +56,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ offline ] ++ teams.podman.members;
     platforms = platforms.linux;
+    mainProgram = "runc";
   };
 }
diff --git a/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix b/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix
index 67ea1e07b9088..286a521be0541 100644
--- a/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix
+++ b/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix
@@ -67,5 +67,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ astro ];
     platforms = [ "x86_64-none" ];
+    mainProgram = "hypervisor-fw";
   };
 }
diff --git a/pkgs/applications/virtualization/rvvm/default.nix b/pkgs/applications/virtualization/rvvm/default.nix
index b1b03d09680fa..b6eaea8d75978 100644
--- a/pkgs/applications/virtualization/rvvm/default.nix
+++ b/pkgs/applications/virtualization/rvvm/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl3 /* or */ mpl20 ];
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ ];
+    mainProgram = "rvvm";
   };
 }
diff --git a/pkgs/applications/virtualization/stratovirt/default.nix b/pkgs/applications/virtualization/stratovirt/default.nix
index 75641547ad2e2..d927c8430a1ec 100644
--- a/pkgs/applications/virtualization/stratovirt/default.nix
+++ b/pkgs/applications/virtualization/stratovirt/default.nix
@@ -41,5 +41,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mulan-psl2;
     maintainers = with maintainers; [ astro ];
     platforms = [ "aarch64-linux" "x86_64-linux" ];
+    mainProgram = "stratovirt";
   };
 }
diff --git a/pkgs/applications/virtualization/tini/default.nix b/pkgs/applications/virtualization/tini/default.nix
index 2df0978b0d0aa..9eeb8134f5958 100644
--- a/pkgs/applications/virtualization/tini/default.nix
+++ b/pkgs/applications/virtualization/tini/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/krallin/tini";
     license = licenses.mit;
     platforms = platforms.linux;
+    mainProgram = "tini";
   };
 }
diff --git a/pkgs/applications/virtualization/toolbox/default.nix b/pkgs/applications/virtualization/toolbox/default.nix
index 94928ff357339..75b7f41c7e78b 100644
--- a/pkgs/applications/virtualization/toolbox/default.nix
+++ b/pkgs/applications/virtualization/toolbox/default.nix
@@ -47,5 +47,6 @@ buildGoModule rec {
     description = "Tool for containerized command line environments on Linux";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
+    mainProgram = "toolbox";
   };
 }
diff --git a/pkgs/applications/virtualization/umoci/default.nix b/pkgs/applications/virtualization/umoci/default.nix
index 627817139c8c4..5dc9ae5028e80 100644
--- a/pkgs/applications/virtualization/umoci/default.nix
+++ b/pkgs/applications/virtualization/umoci/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://umo.ci";
     license = licenses.asl20;
     maintainers = with maintainers; [ zokrezyl ];
+    mainProgram = "umoci";
   };
 }
diff --git a/pkgs/applications/virtualization/virt-top/default.nix b/pkgs/applications/virtualization/virt-top/default.nix
index dc6f79d6a7e55..5ad60bf7d080f 100644
--- a/pkgs/applications/virtualization/virt-top/default.nix
+++ b/pkgs/applications/virtualization/virt-top/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = [ ];
     platforms = platforms.linux;
+    mainProgram = "virt-top";
   };
 }
diff --git a/pkgs/applications/virtualization/virt-what/default.nix b/pkgs/applications/virtualization/virt-what/default.nix
index 18d65480138c2..e11b265a9e3c0 100644
--- a/pkgs/applications/virtualization/virt-what/default.nix
+++ b/pkgs/applications/virtualization/virt-what/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ fpletz ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "virt-what";
   };
 }
diff --git a/pkgs/applications/virtualization/virter/default.nix b/pkgs/applications/virtualization/virter/default.nix
index 6a0b94999000f..01cfe07da8ab6 100644
--- a/pkgs/applications/virtualization/virter/default.nix
+++ b/pkgs/applications/virtualization/virter/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     homepage = "https://github.com/LINBIT/virter";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ dit7ya ];
+    mainProgram = "virter";
   };
 }
diff --git a/pkgs/applications/virtualization/x11docker/default.nix b/pkgs/applications/virtualization/x11docker/default.nix
index f6612f3d9aea3..840c9d648b941 100644
--- a/pkgs/applications/virtualization/x11docker/default.nix
+++ b/pkgs/applications/virtualization/x11docker/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
+    mainProgram = "x11docker";
   };
 }
diff --git a/pkgs/applications/virtualization/youki/default.nix b/pkgs/applications/virtualization/youki/default.nix
index a179b4568a7f6..93355b74b4726 100644
--- a/pkgs/applications/virtualization/youki/default.nix
+++ b/pkgs/applications/virtualization/youki/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.asl20;
     maintainers = [];
     platforms = platforms.linux;
+    mainProgram = "youki";
   };
 }
diff --git a/pkgs/applications/window-managers/cagebreak/default.nix b/pkgs/applications/window-managers/cagebreak/default.nix
index 1f07da0a7bc4c..f070b1fd062c7 100644
--- a/pkgs/applications/window-managers/cagebreak/default.nix
+++ b/pkgs/applications/window-managers/cagebreak/default.nix
@@ -87,6 +87,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ berbiche ];
     platforms = platforms.linux;
     changelog = "https://github.com/project-repo/cagebreak/blob/${version}/Changelog.md";
+    mainProgram = "cagebreak";
   };
 
   passthru.tests.basic = nixosTests.cagebreak;
diff --git a/pkgs/applications/window-managers/cwm/default.nix b/pkgs/applications/window-managers/cwm/default.nix
index ac5353daeb23d..5560a04dcd61f 100644
--- a/pkgs/applications/window-managers/cwm/default.nix
+++ b/pkgs/applications/window-managers/cwm/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ _0x4A6F mkf ];
     license     = licenses.isc;
     platforms   = platforms.linux;
+    mainProgram = "cwm";
   };
 }
diff --git a/pkgs/applications/window-managers/dwl/default.nix b/pkgs/applications/window-managers/dwl/default.nix
index e4578319ee077..dc2f58b1d3a8f 100644
--- a/pkgs/applications/window-managers/dwl/default.nix
+++ b/pkgs/applications/window-managers/dwl/default.nix
@@ -92,6 +92,7 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl3Only;
     maintainers = [ lib.maintainers.AndersonTorres ];
     inherit (wayland.meta) platforms;
+    mainProgram = "dwl";
   };
 })
 # TODO: custom patches from upstream website
diff --git a/pkgs/applications/window-managers/dwm/default.nix b/pkgs/applications/window-managers/dwm/default.nix
index a097900707727..24b011040ae4e 100644
--- a/pkgs/applications/window-managers/dwm/default.nix
+++ b/pkgs/applications/window-managers/dwm/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ viric neonfuz ];
     platforms = platforms.all;
+    mainProgram = "dwm";
   };
 }
diff --git a/pkgs/applications/window-managers/evilwm/default.nix b/pkgs/applications/window-managers/evilwm/default.nix
index 0855e512fd8ee..0578be8ed6c78 100644
--- a/pkgs/applications/window-managers/evilwm/default.nix
+++ b/pkgs/applications/window-managers/evilwm/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     }; # like BSD/MIT, but Share-Alike'y; See README.
     maintainers = with maintainers; [ amiloradovsky ];
     platforms = platforms.all;
+    mainProgram = "evilwm";
   };
 }
diff --git a/pkgs/applications/window-managers/fbpanel/default.nix b/pkgs/applications/window-managers/fbpanel/default.nix
index d056005e8f523..addebf13ec653 100644
--- a/pkgs/applications/window-managers/fbpanel/default.nix
+++ b/pkgs/applications/window-managers/fbpanel/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     license = licenses.mit;
+    mainProgram = "fbpanel";
   };
 
   passthru = {
diff --git a/pkgs/applications/window-managers/gamescope/default.nix b/pkgs/applications/window-managers/gamescope/default.nix
index e9edd10b25394..99ecf86e20a1b 100644
--- a/pkgs/applications/window-managers/gamescope/default.nix
+++ b/pkgs/applications/window-managers/gamescope/default.nix
@@ -130,5 +130,6 @@ stdenv.mkDerivation {
     license = licenses.bsd2;
     maintainers = with maintainers; [ nrdxp pedrohlc Scrumplex zhaofengli ];
     platforms = platforms.linux;
+    mainProgram = "gamescope";
   };
 }
diff --git a/pkgs/applications/window-managers/jay/default.nix b/pkgs/applications/window-managers/jay/default.nix
index 1b58fa0f2c89b..6718caf1ada23 100644
--- a/pkgs/applications/window-managers/jay/default.nix
+++ b/pkgs/applications/window-managers/jay/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "jay";
   };
 }
diff --git a/pkgs/applications/window-managers/jwm/default.nix b/pkgs/applications/window-managers/jwm/default.nix
index 18df9da344d41..9456449405a85 100644
--- a/pkgs/applications/window-managers/jwm/default.nix
+++ b/pkgs/applications/window-managers/jwm/default.nix
@@ -79,5 +79,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.romildo ];
+    mainProgram = "jwm";
   };
 }
diff --git a/pkgs/applications/window-managers/kbdd/default.nix b/pkgs/applications/window-managers/kbdd/default.nix
index 2fbc37d8e7eb7..0692780a549d4 100644
--- a/pkgs/applications/window-managers/kbdd/default.nix
+++ b/pkgs/applications/window-managers/kbdd/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
     maintainers = [ ];
+    mainProgram = "kbdd";
   };
 }
diff --git a/pkgs/applications/window-managers/lemonbar/default.nix b/pkgs/applications/window-managers/lemonbar/default.nix
index 0d8436dcb3ed2..d5763a0489f1a 100644
--- a/pkgs/applications/window-managers/lemonbar/default.nix
+++ b/pkgs/applications/window-managers/lemonbar/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ meisternu moni ];
     license = licenses.mit;
     platforms = platforms.linux;
+    mainProgram = "lemonbar";
   };
 }
diff --git a/pkgs/applications/window-managers/lesbar/default.nix b/pkgs/applications/window-managers/lesbar/default.nix
index 791f61c4670aa..553e79f9e6dc7 100644
--- a/pkgs/applications/window-managers/lesbar/default.nix
+++ b/pkgs/applications/window-managers/lesbar/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.mit;
     maintainers = with maintainers; [ jpentland ];
     platforms = platforms.linux;
+    mainProgram = "lesbar";
   };
 })
diff --git a/pkgs/applications/window-managers/lwm/default.nix b/pkgs/applications/window-managers/lwm/default.nix
index cf1088c822311..1a2e388bdc349 100644
--- a/pkgs/applications/window-managers/lwm/default.nix
+++ b/pkgs/applications/window-managers/lwm/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
+    mainProgram = "lwm";
   };
 }
diff --git a/pkgs/applications/window-managers/mlvwm/default.nix b/pkgs/applications/window-managers/mlvwm/default.nix
index 49133ef5344ff..e2986159b20a7 100644
--- a/pkgs/applications/window-managers/mlvwm/default.nix
+++ b/pkgs/applications/window-managers/mlvwm/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     '';
     platforms = platforms.linux;
     maintainers = [ maintainers.j0hax ];
+    mainProgram = "mlvwm";
   };
 }
diff --git a/pkgs/applications/window-managers/neocomp/default.nix b/pkgs/applications/window-managers/neocomp/default.nix
index 36e6322462da1..bb6615b708609 100644
--- a/pkgs/applications/window-managers/neocomp/default.nix
+++ b/pkgs/applications/window-managers/neocomp/default.nix
@@ -84,5 +84,6 @@ stdenv.mkDerivation rec {
       for X11, focused on delivering frames from the window to the
       framebuffer as quickly as possible.
     '';
+    mainProgram = "neocomp";
   };
 }
diff --git a/pkgs/applications/window-managers/nimdow/default.nix b/pkgs/applications/window-managers/nimdow/default.nix
index 3d54d8f8de58e..47370d884cdcb 100644
--- a/pkgs/applications/window-managers/nimdow/default.nix
+++ b/pkgs/applications/window-managers/nimdow/default.nix
@@ -32,5 +32,6 @@ nimPackages.buildNimPackage rec {
       description = "Nim based tiling window manager";
       license = [ licenses.gpl2 ];
       maintainers = [ maintainers.marcusramberg ];
+      mainProgram = "nimdow";
     };
 }
diff --git a/pkgs/applications/window-managers/phosh/default.nix b/pkgs/applications/window-managers/phosh/default.nix
index 6f323b963e4c4..554132752c86c 100644
--- a/pkgs/applications/window-managers/phosh/default.nix
+++ b/pkgs/applications/window-managers/phosh/default.nix
@@ -138,5 +138,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ masipcat tomfitzhenry zhaofengli ];
     platforms = platforms.linux;
+    mainProgram = "phosh-session";
   };
 }
diff --git a/pkgs/applications/window-managers/sommelier/default.nix b/pkgs/applications/window-managers/sommelier/default.nix
index 4df306eec9c0a..12c2e5da1b984 100644
--- a/pkgs/applications/window-managers/sommelier/default.nix
+++ b/pkgs/applications/window-managers/sommelier/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ qyliss ];
     license = licenses.bsd3;
     platforms = platforms.linux;
+    mainProgram = "sommelier";
   };
 }
diff --git a/pkgs/applications/window-managers/stalonetray/default.nix b/pkgs/applications/window-managers/stalonetray/default.nix
index 5cd0f7569caa8..45160d65dbc65 100644
--- a/pkgs/applications/window-managers/stalonetray/default.nix
+++ b/pkgs/applications/window-managers/stalonetray/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ raskin ];
+    mainProgram = "stalonetray";
   };
 }
diff --git a/pkgs/applications/window-managers/stumpish/default.nix b/pkgs/applications/window-managers/stumpish/default.nix
index c5c3d9db783e9..c776e66da886e 100644
--- a/pkgs/applications/window-managers/stumpish/default.nix
+++ b/pkgs/applications/window-managers/stumpish/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
+    mainProgram = "stumpish";
   };
 }
diff --git a/pkgs/applications/window-managers/tinywl/default.nix b/pkgs/applications/window-managers/tinywl/default.nix
index 84defaa98bed4..c0b147e6ee585 100644
--- a/pkgs/applications/window-managers/tinywl/default.nix
+++ b/pkgs/applications/window-managers/tinywl/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ qyliss ] ++ wlroots.meta.maintainers;
     license = licenses.cc0;
     inherit (wlroots.meta) platforms;
+    mainProgram = "tinywl";
   };
 }
diff --git a/pkgs/applications/window-managers/trayer/default.nix b/pkgs/applications/window-managers/trayer/default.nix
index 57cf0fc93fac1..60984987ab62e 100644
--- a/pkgs/applications/window-managers/trayer/default.nix
+++ b/pkgs/applications/window-managers/trayer/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
     description = "A lightweight GTK2-based systray for UNIX desktop";
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "trayer";
   };
 }
 
diff --git a/pkgs/applications/window-managers/vwm/default.nix b/pkgs/applications/window-managers/vwm/default.nix
index b0b40afc9e4cb..7cba387369c7a 100644
--- a/pkgs/applications/window-managers/vwm/default.nix
+++ b/pkgs/applications/window-managers/vwm/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "vwm";
   };
 }
diff --git a/pkgs/applications/window-managers/windowlab/default.nix b/pkgs/applications/window-managers/windowlab/default.nix
index f4fea3f434c3c..80900d0639b1a 100644
--- a/pkgs/applications/window-managers/windowlab/default.nix
+++ b/pkgs/applications/window-managers/windowlab/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation {
       license     = licenses.gpl2;
       maintainers = with maintainers; [ ehmry ];
       platforms   = platforms.linux;
+      mainProgram = "windowlab";
     };
 }
diff --git a/pkgs/applications/window-managers/wmderland/default.nix b/pkgs/applications/window-managers/wmderland/default.nix
index c0fcdd859b21f..322906d5657fa 100644
--- a/pkgs/applications/window-managers/wmderland/default.nix
+++ b/pkgs/applications/window-managers/wmderland/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = libX11.meta.platforms;
     maintainers = with maintainers; [ takagiy ];
+    mainProgram = "wmderland";
   };
 }
diff --git a/pkgs/applications/window-managers/wmderlandc/default.nix b/pkgs/applications/window-managers/wmderlandc/default.nix
index f439833e547af..45170ab0d15a2 100644
--- a/pkgs/applications/window-managers/wmderlandc/default.nix
+++ b/pkgs/applications/window-managers/wmderlandc/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ takagiy ];
+    mainProgram = "wmderlandc";
   };
 })
diff --git a/pkgs/applications/window-managers/wmfs/default.nix b/pkgs/applications/window-managers/wmfs/default.nix
index eaafac71b6c18..6c850278b337f 100644
--- a/pkgs/applications/window-managers/wmfs/default.nix
+++ b/pkgs/applications/window-managers/wmfs/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation {
     license = licenses.bsd2;
     maintainers = [ maintainers.balsoft ];
     platforms = platforms.linux;
+    mainProgram = "wmfs";
   };
 }
diff --git a/pkgs/applications/window-managers/x-create-mouse-void/default.nix b/pkgs/applications/window-managers/x-create-mouse-void/default.nix
index d0241a296ad65..86ae59a6152ca 100644
--- a/pkgs/applications/window-managers/x-create-mouse-void/default.nix
+++ b/pkgs/applications/window-managers/x-create-mouse-void/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ eigengrau ];
+    mainProgram = "x-create-mouse-void";
   };
 }
diff --git a/pkgs/applications/window-managers/yabar/build.nix b/pkgs/applications/window-managers/yabar/build.nix
index 207e3a83ab2b3..d66c905fea90b 100644
--- a/pkgs/applications/window-managers/yabar/build.nix
+++ b/pkgs/applications/window-managers/yabar/build.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation {
     license     = licenses.mit;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "yabar";
   };
 }
diff --git a/pkgs/servers/adguardhome/default.nix b/pkgs/servers/adguardhome/default.nix
index 1c2a450b92706..44940468dc81f 100644
--- a/pkgs/servers/adguardhome/default.nix
+++ b/pkgs/servers/adguardhome/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ numkem iagoq rhoriguchi ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
+    mainProgram = "adguardhome";
   };
 }
diff --git a/pkgs/servers/alps/default.nix b/pkgs/servers/alps/default.nix
index 5a296f9054519..70659f0c3c5e2 100644
--- a/pkgs/servers/alps/default.nix
+++ b/pkgs/servers/alps/default.nix
@@ -46,5 +46,6 @@ buildGoModule rec {
     homepage = "https://git.sr.ht/~migadu/alps";
     license = licenses.mit;
     maintainers = with maintainers; [ booklearner madonius hmenke ];
+    mainProgram = "alps";
   };
 }
diff --git a/pkgs/servers/althttpd/default.nix b/pkgs/servers/althttpd/default.nix
index 49d552f48dcf4..670a228a1e944 100644
--- a/pkgs/servers/althttpd/default.nix
+++ b/pkgs/servers/althttpd/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ siraben ];
     platforms = platforms.all;
+    mainProgram = "althttpd";
   };
 }
diff --git a/pkgs/servers/ankisyncd/default.nix b/pkgs/servers/ankisyncd/default.nix
index cc3ae1c6ad72d..4a3c16c4b4ada 100644
--- a/pkgs/servers/ankisyncd/default.nix
+++ b/pkgs/servers/ankisyncd/default.nix
@@ -48,5 +48,6 @@ in rustPlatform.buildRustPackage {
     homepage = "https://github.com/ankicommunity/anki-sync-server-rs";
     license = with licenses; [ agpl3Only ];
     maintainers = with maintainers; [ martinetd ];
+    mainProgram = "ankisyncd";
   };
 }
diff --git a/pkgs/servers/beanstalkd/default.nix b/pkgs/servers/beanstalkd/default.nix
index af372102f76fd..a12f6146fdc01 100644
--- a/pkgs/servers/beanstalkd/default.nix
+++ b/pkgs/servers/beanstalkd/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.zimbatm ];
     platforms = platforms.all;
+    mainProgram = "beanstalkd";
   };
 }
diff --git a/pkgs/servers/bloat/default.nix b/pkgs/servers/bloat/default.nix
index bd4ae38efaa87..4f9e5feb915b7 100644
--- a/pkgs/servers/bloat/default.nix
+++ b/pkgs/servers/bloat/default.nix
@@ -38,5 +38,6 @@ buildGoModule {
     downloadPage = "https://git.freesoftwareextremist.com/bloat/";
     license = licenses.cc0;
     maintainers = with maintainers; [ fgaz ];
+    mainProgram = "bloat";
   };
 }
diff --git a/pkgs/servers/blockbook/default.nix b/pkgs/servers/blockbook/default.nix
index 147115b550ef1..1116c5a36d6f1 100644
--- a/pkgs/servers/blockbook/default.nix
+++ b/pkgs/servers/blockbook/default.nix
@@ -67,5 +67,6 @@ buildGoModule rec {
     license = licenses.agpl3;
     maintainers = with maintainers; [ mmahut _1000101 ];
     platforms = platforms.unix;
+    mainProgram = "blockbook";
   };
 }
diff --git a/pkgs/servers/brickd/default.nix b/pkgs/servers/brickd/default.nix
index d3cf54114c3be..590f6f315fe81 100644
--- a/pkgs/servers/brickd/default.nix
+++ b/pkgs/servers/brickd/default.nix
@@ -59,5 +59,6 @@ stdenv.mkDerivation {
     maintainers = [ lib.maintainers.qknight ];
     license = lib.licenses.gpl2;
     platforms = lib.platforms.all;
+    mainProgram = "brickd";
   };
 }
diff --git a/pkgs/servers/calibre-web/default.nix b/pkgs/servers/calibre-web/default.nix
index 160435802957c..eb5f9bae9297d 100644
--- a/pkgs/servers/calibre-web/default.nix
+++ b/pkgs/servers/calibre-web/default.nix
@@ -103,5 +103,6 @@ python.pkgs.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ pborzenkov ];
     platforms = platforms.all;
+    mainProgram = "calibre-web";
   };
 }
diff --git a/pkgs/servers/cayley/default.nix b/pkgs/servers/cayley/default.nix
index df5760fb2b2a6..b5222f41b3b1d 100644
--- a/pkgs/servers/cayley/default.nix
+++ b/pkgs/servers/cayley/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://cayley.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ sigma ];
+    mainProgram = "cayley";
   };
 }
diff --git a/pkgs/servers/dcnnt/default.nix b/pkgs/servers/dcnnt/default.nix
index 1140325b05f38..dff64f4f568ab 100644
--- a/pkgs/servers/dcnnt/default.nix
+++ b/pkgs/servers/dcnnt/default.nix
@@ -22,5 +22,6 @@ buildPythonApplication rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ arnoutkroeze ];
+    mainProgram = "dcnnt";
   };
 }
diff --git a/pkgs/servers/demoit/default.nix b/pkgs/servers/demoit/default.nix
index 3a587230eef86..253642bbdddd1 100644
--- a/pkgs/servers/demoit/default.nix
+++ b/pkgs/servers/demoit/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/dgageot/demoit";
     license = licenses.asl20;
     maintainers = [ maintainers.freezeboy ];
+    mainProgram = "demoit";
   };
 }
diff --git a/pkgs/servers/dex/default.nix b/pkgs/servers/dex/default.nix
index 4ab3545184866..65bbf51ba9d0b 100644
--- a/pkgs/servers/dex/default.nix
+++ b/pkgs/servers/dex/default.nix
@@ -33,5 +33,6 @@ buildGoModule rec {
     homepage = "https://github.com/dexidp/dex";
     license = licenses.asl20;
     maintainers = with maintainers; [ benley techknowlogick ];
+    mainProgram = "dex";
   };
 }
diff --git a/pkgs/servers/dgraph/default.nix b/pkgs/servers/dgraph/default.nix
index b800b0b77804d..321a37ec521d6 100644
--- a/pkgs/servers/dgraph/default.nix
+++ b/pkgs/servers/dgraph/default.nix
@@ -44,5 +44,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ sigma ];
     # Apache 2.0 because we use only build "oss"
     license = licenses.asl20;
+    mainProgram = "dgraph";
   };
 }
diff --git a/pkgs/servers/domoticz/default.nix b/pkgs/servers/domoticz/default.nix
index 6e50b4754438d..65c7debfd4d9d 100644
--- a/pkgs/servers/domoticz/default.nix
+++ b/pkgs/servers/domoticz/default.nix
@@ -86,5 +86,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/domoticz.x86_64-darwin
+    mainProgram = "domoticz";
   };
 }
diff --git a/pkgs/servers/duckling-proxy/default.nix b/pkgs/servers/duckling-proxy/default.nix
index b314a6b59bd40..057d4f03f3b5e 100644
--- a/pkgs/servers/duckling-proxy/default.nix
+++ b/pkgs/servers/duckling-proxy/default.nix
@@ -18,5 +18,6 @@ buildGoModule {
     homepage = "https://github.com/LukeEmmet/duckling-proxy";
     license = licenses.mit;
     maintainers = with maintainers; [ kaction ];
+    mainProgram = "duckling-proxy";
   };
 }
diff --git a/pkgs/servers/echoip/default.nix b/pkgs/servers/echoip/default.nix
index b34b6f1c34f5b..ae450ddae833e 100644
--- a/pkgs/servers/echoip/default.nix
+++ b/pkgs/servers/echoip/default.nix
@@ -32,5 +32,6 @@ buildGoModule {
     homepage = "https://github.com/mpolden/echoip";
     license = licenses.bsd3;
     maintainers = with maintainers; [ rvolosatovs SuperSandro2000 ];
+    mainProgram = "echoip";
   };
 }
diff --git a/pkgs/servers/elasticmq-server-bin/default.nix b/pkgs/servers/elasticmq-server-bin/default.nix
index 7b33435a9dbe6..6066fb718ef7d 100644
--- a/pkgs/servers/elasticmq-server-bin/default.nix
+++ b/pkgs/servers/elasticmq-server-bin/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ peterromfeldhk ];
+    mainProgram = "elasticmq-server";
   };
 })
diff --git a/pkgs/servers/endlessh-go/default.nix b/pkgs/servers/endlessh-go/default.nix
index 4012038a1e057..44c574a316f2b 100644
--- a/pkgs/servers/endlessh-go/default.nix
+++ b/pkgs/servers/endlessh-go/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     changelog = "https://github.com/shizunge/endlessh-go/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ azahi ];
+    mainProgram = "endlessh-go";
   };
 }
diff --git a/pkgs/servers/endlessh/default.nix b/pkgs/servers/endlessh/default.nix
index e408c764939f1..4c99251cfa90f 100644
--- a/pkgs/servers/endlessh/default.nix
+++ b/pkgs/servers/endlessh/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.unlicense;
     maintainers = with maintainers; [ azahi marsam ];
     platforms = platforms.unix;
+    mainProgram = "endlessh";
   };
 }
diff --git a/pkgs/servers/fcgiwrap/default.nix b/pkgs/servers/fcgiwrap/default.nix
index c778ed72328e9..0df4bc5a3833e 100644
--- a/pkgs/servers/fcgiwrap/default.nix
+++ b/pkgs/servers/fcgiwrap/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     platforms = with platforms; linux;
     license = licenses.mit;
+    mainProgram = "fcgiwrap";
   };
 }
diff --git a/pkgs/servers/fedigroups/default.nix b/pkgs/servers/fedigroups/default.nix
index 0b9fa4c2a0588..b94620e67afd7 100644
--- a/pkgs/servers/fedigroups/default.nix
+++ b/pkgs/servers/fedigroups/default.nix
@@ -50,5 +50,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
+    mainProgram = "fedigroups";
   };
 }
diff --git a/pkgs/servers/felix/default.nix b/pkgs/servers/felix/default.nix
index a9796f922d3a0..66fec2ce4a483 100644
--- a/pkgs/servers/felix/default.nix
+++ b/pkgs/servers/felix/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     maintainers = [ maintainers.sander ];
+    mainProgram = "felix.jar";
   };
 }
diff --git a/pkgs/servers/fiche/default.nix b/pkgs/servers/fiche/default.nix
index 2875f274dc0df..375733d272ccb 100644
--- a/pkgs/servers/fiche/default.nix
+++ b/pkgs/servers/fiche/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.pinpox ];
     platforms = platforms.all;
+    mainProgram = "fiche";
   };
 }
diff --git a/pkgs/servers/fileshare/default.nix b/pkgs/servers/fileshare/default.nix
index 7141efef305a4..1572e994e7c89 100644
--- a/pkgs/servers/fileshare/default.nix
+++ b/pkgs/servers/fileshare/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.esclear ];
     platforms = platforms.linux;
+    mainProgram = "fileshare";
   };
 }
diff --git a/pkgs/servers/filtron/default.nix b/pkgs/servers/filtron/default.nix
index f50e3b19583ca..768f3b204f2ce 100644
--- a/pkgs/servers/filtron/default.nix
+++ b/pkgs/servers/filtron/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     license = licenses.agpl3;
     maintainers = [ maintainers.dasj19 ];
     platforms = platforms.linux;
+    mainProgram = "filtron";
   };
 }
diff --git a/pkgs/servers/fishnet/default.nix b/pkgs/servers/fishnet/default.nix
index 6a808080517b4..0d068aa1d8320 100644
--- a/pkgs/servers/fishnet/default.nix
+++ b/pkgs/servers/fishnet/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ tu-maurice ];
     platforms = [ "aarch64-linux" "x86_64-linux" ];
+    mainProgram = "fishnet";
   };
 }
diff --git a/pkgs/servers/gerbera/default.nix b/pkgs/servers/gerbera/default.nix
index 9cd7cadc09eec..d83022930ad04 100644
--- a/pkgs/servers/gerbera/default.nix
+++ b/pkgs/servers/gerbera/default.nix
@@ -121,5 +121,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ardumont ];
     platforms = platforms.linux;
+    mainProgram = "gerbera";
   };
 }
diff --git a/pkgs/servers/gonic/default.nix b/pkgs/servers/gonic/default.nix
index 706e529879fba..ee5bfef3b9afc 100644
--- a/pkgs/servers/gonic/default.nix
+++ b/pkgs/servers/gonic/default.nix
@@ -51,5 +51,6 @@ buildGoModule rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
+    mainProgram = "gonic";
   };
 }
diff --git a/pkgs/servers/hashi-ui/default.nix b/pkgs/servers/hashi-ui/default.nix
index 0fad3eb2648b5..ab3d869be9b9d 100644
--- a/pkgs/servers/hashi-ui/default.nix
+++ b/pkgs/servers/hashi-ui/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ numkem ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
+    mainProgram = "hashi-ui";
   };
 }
diff --git a/pkgs/servers/headphones/default.nix b/pkgs/servers/headphones/default.nix
index 824c853695eab..704268c24257e 100644
--- a/pkgs/servers/headphones/default.nix
+++ b/pkgs/servers/headphones/default.nix
@@ -35,5 +35,6 @@ python3.pkgs.buildPythonApplication rec {
     license     = licenses.gpl3Plus;
     homepage    = "https://github.com/rembo10/headphones";
     maintainers = with lib.maintainers; [ rembo10 ];
+    mainProgram = "headphones";
   };
 }
diff --git a/pkgs/servers/heisenbridge/default.nix b/pkgs/servers/heisenbridge/default.nix
index afb2520a6b883..da643564a3fb7 100644
--- a/pkgs/servers/heisenbridge/default.nix
+++ b/pkgs/servers/heisenbridge/default.nix
@@ -31,5 +31,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/hifi/heisenbridge";
     license = licenses.mit;
     maintainers = [ maintainers.sumnerevans ];
+    mainProgram = "heisenbridge";
   };
 }
diff --git a/pkgs/servers/hitch/default.nix b/pkgs/servers/hitch/default.nix
index b142cd0cd8ac5..bed9f77908a1f 100644
--- a/pkgs/servers/hitch/default.nix
+++ b/pkgs/servers/hitch/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = [ maintainers.jflanglois ];
     platforms = platforms.linux;
+    mainProgram = "hitch";
   };
 }
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 8f5768fbd2c13..1c5f52588e460 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -541,5 +541,6 @@ in python.pkgs.buildPythonApplication rec {
     license = licenses.asl20;
     maintainers = teams.home-assistant.members;
     platforms = platforms.linux;
+    mainProgram = "hass";
   };
 }
diff --git a/pkgs/servers/jitsi-videobridge/default.nix b/pkgs/servers/jitsi-videobridge/default.nix
index 2cd029501aaf8..855aaa05d1251 100644
--- a/pkgs/servers/jitsi-videobridge/default.nix
+++ b/pkgs/servers/jitsi-videobridge/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation {
     license = licenses.asl20;
     maintainers = teams.jitsi.members;
     platforms = platforms.linux;
+    mainProgram = "jitsi-videobridge";
   };
 }
diff --git a/pkgs/servers/livepeer/default.nix b/pkgs/servers/livepeer/default.nix
index b68705e34e160..695ceeb2b9a0b 100644
--- a/pkgs/servers/livepeer/default.nix
+++ b/pkgs/servers/livepeer/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     homepage = "https://livepeer.org";
     license = licenses.mit;
     maintainers = with maintainers; [ elitak ];
+    mainProgram = "livepeer";
   };
 }
diff --git a/pkgs/servers/ma1sd/default.nix b/pkgs/servers/ma1sd/default.nix
index 1725b1ab88e6c..1e16cc516e0a8 100644
--- a/pkgs/servers/ma1sd/default.nix
+++ b/pkgs/servers/ma1sd/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation {
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ mguentner ];
     platforms = platforms.all;
+    mainProgram = "ma1sd";
   };
 
 }
diff --git a/pkgs/servers/matterbridge/default.nix b/pkgs/servers/matterbridge/default.nix
index 0d175f026c298..023bbe9ddc1e6 100644
--- a/pkgs/servers/matterbridge/default.nix
+++ b/pkgs/servers/matterbridge/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/42wim/matterbridge";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ ryantm ];
+    mainProgram = "matterbridge";
   };
 }
diff --git a/pkgs/servers/mattermost/default.nix b/pkgs/servers/mattermost/default.nix
index c1dfec34f766e..693d3348a1f1c 100644
--- a/pkgs/servers/mattermost/default.nix
+++ b/pkgs/servers/mattermost/default.nix
@@ -52,5 +52,6 @@ buildGoModule rec {
     homepage = "https://www.mattermost.org";
     license = with licenses; [ agpl3 asl20 ];
     maintainers = with maintainers; [ ryantm numinit kranzes ];
+    mainProgram = "mattermost";
   };
 }
diff --git a/pkgs/servers/mautrix-facebook/default.nix b/pkgs/servers/mautrix-facebook/default.nix
index f667d61511e44..b66ebaa47b539 100644
--- a/pkgs/servers/mautrix-facebook/default.nix
+++ b/pkgs/servers/mautrix-facebook/default.nix
@@ -59,5 +59,6 @@ python3.pkgs.buildPythonPackage rec {
     description = "A Matrix-Facebook Messenger puppeting bridge";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ kevincox ];
+    mainProgram = "mautrix-facebook";
   };
 }
diff --git a/pkgs/servers/mautrix-signal/default.nix b/pkgs/servers/mautrix-signal/default.nix
index fb18bfff3585d..eb886482c2ff1 100644
--- a/pkgs/servers/mautrix-signal/default.nix
+++ b/pkgs/servers/mautrix-signal/default.nix
@@ -67,5 +67,6 @@ python3.pkgs.buildPythonPackage rec {
     license = licenses.agpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ expipiplus1 ];
+    mainProgram = "mautrix-signal";
   };
 }
diff --git a/pkgs/servers/mautrix-whatsapp/default.nix b/pkgs/servers/mautrix-whatsapp/default.nix
index 566f7d1cabfab..f8e94264858ba 100644
--- a/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/pkgs/servers/mautrix-whatsapp/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     description = "Matrix <-> Whatsapp hybrid puppeting/relaybot bridge";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ vskilet ma27 chvp ];
+    mainProgram = "mautrix-whatsapp";
   };
 }
diff --git a/pkgs/servers/memcached/default.nix b/pkgs/servers/memcached/default.nix
index 95f95cda68e70..a8beb4d4bed55 100644
--- a/pkgs/servers/memcached/default.nix
+++ b/pkgs/servers/memcached/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.coconnor ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "memcached";
   };
   passthru.tests = {
     smoke-tests = nixosTests.memcached;
diff --git a/pkgs/servers/metabase/default.nix b/pkgs/servers/metabase/default.nix
index 2eca107566a1a..fa801a6aab984 100644
--- a/pkgs/servers/metabase/default.nix
+++ b/pkgs/servers/metabase/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     license     = licenses.agpl3Only;
     platforms   = platforms.all;
     maintainers = with maintainers; [ schneefux thoughtpolice mmahut ];
+    mainProgram = "metabase";
   };
   passthru.tests = {
     inherit (nixosTests) metabase;
diff --git a/pkgs/servers/meteor/default.nix b/pkgs/servers/meteor/default.nix
index 868c420d49ae2..0ce2189568cb6 100644
--- a/pkgs/servers/meteor/default.nix
+++ b/pkgs/servers/meteor/default.nix
@@ -98,5 +98,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = builtins.attrNames srcs;
     maintainers = with maintainers; [ ];
+    mainProgram = "meteor";
   };
 }
diff --git a/pkgs/servers/microserver/default.nix b/pkgs/servers/microserver/default.nix
index 21f1fe43d27c7..c6ca5edd70c78 100644
--- a/pkgs/servers/microserver/default.nix
+++ b/pkgs/servers/microserver/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     description = "Simple ad-hoc server with SPA support";
     maintainers = with maintainers; [ flosse ];
     license = licenses.mit;
+    mainProgram = "microserver";
   };
 }
diff --git a/pkgs/servers/plik/programs.nix b/pkgs/servers/plik/programs.nix
index 1ad89b1fb9b9c..1ab4342f6c31e 100644
--- a/pkgs/servers/plik/programs.nix
+++ b/pkgs/servers/plik/programs.nix
@@ -17,6 +17,7 @@ let
     description = "Scalable & friendly temporary file upload system";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.mit;
+    mainProgram = "plik";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/rtrtr/default.nix b/pkgs/servers/rtrtr/default.nix
index 228985f1cab56..fe6ce6f3a5b44 100644
--- a/pkgs/servers/rtrtr/default.nix
+++ b/pkgs/servers/rtrtr/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/NLnetLabs/rtrtr/blob/v${version}/Changelog.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ steamwalker ];
+    mainProgram = "rtrtr";
   };
 }
diff --git a/pkgs/servers/simple-http-server/default.nix b/pkgs/servers/simple-http-server/default.nix
index f2d8309d09019..002d456ef026d 100644
--- a/pkgs/servers/simple-http-server/default.nix
+++ b/pkgs/servers/simple-http-server/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/TheWaWaR/simple-http-server/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda mephistophiles ];
+    mainProgram = "simple-http-server";
   };
 }
diff --git a/pkgs/tools/archivers/afio/default.nix b/pkgs/tools/archivers/afio/default.nix
index 7ef374b5bfe66..d321bd44985d8 100644
--- a/pkgs/tools/archivers/afio/default.nix
+++ b/pkgs/tools/archivers/afio/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
      * a comprehensive discussion.
      */
     license = lib.licenses.free;
+    mainProgram = "afio";
   };
 }
diff --git a/pkgs/tools/archivers/arc_unpacker/default.nix b/pkgs/tools/archivers/arc_unpacker/default.nix
index ee40a7a5ab4ac..f293ae49626f9 100644
--- a/pkgs/tools/archivers/arc_unpacker/default.nix
+++ b/pkgs/tools/archivers/arc_unpacker/default.nix
@@ -85,5 +85,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ midchildan ];
     platforms = platforms.all;
+    mainProgram = "arc_unpacker";
   };
 }
diff --git a/pkgs/tools/archivers/cabextract/default.nix b/pkgs/tools/archivers/cabextract/default.nix
index 6268a7826e594..6860b52267717 100644
--- a/pkgs/tools/archivers/cabextract/default.nix
+++ b/pkgs/tools/archivers/cabextract/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     license = licenses.gpl3;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "cabextract";
   };
 }
diff --git a/pkgs/tools/archivers/cpio/default.nix b/pkgs/tools/archivers/cpio/default.nix
index 0fe726f09977f..1b766fed14924 100644
--- a/pkgs/tools/archivers/cpio/default.nix
+++ b/pkgs/tools/archivers/cpio/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.all;
     priority = 6; # resolves collision with gnutar's "libexec/rmt"
+    mainProgram = "cpio";
   };
 }
diff --git a/pkgs/tools/archivers/ctrtool/default.nix b/pkgs/tools/archivers/ctrtool/default.nix
index 2408f3cf6d6ac..74b95a116575e 100644
--- a/pkgs/tools/archivers/ctrtool/default.nix
+++ b/pkgs/tools/archivers/ctrtool/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     description = "A tool to extract data from a 3ds rom";
     platforms = platforms.linux;
     maintainers = [ maintainers.marius851000 ];
+    mainProgram = "ctrtool";
   };
 
 }
diff --git a/pkgs/tools/archivers/dumpnar/default.nix b/pkgs/tools/archivers/dumpnar/default.nix
index e2285574a9a6f..e63c799388647 100644
--- a/pkgs/tools/archivers/dumpnar/default.nix
+++ b/pkgs/tools/archivers/dumpnar/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.stephank ];
+    mainProgram = "dumpnar";
   };
 }
diff --git a/pkgs/tools/archivers/fsarchiver/default.nix b/pkgs/tools/archivers/fsarchiver/default.nix
index e9265108bb959..40a16f21ab599 100644
--- a/pkgs/tools/archivers/fsarchiver/default.nix
+++ b/pkgs/tools/archivers/fsarchiver/default.nix
@@ -40,5 +40,6 @@ in stdenv.mkDerivation {
     license = licenses.lgpl2;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "fsarchiver";
   };
 }
diff --git a/pkgs/tools/archivers/gbl/default.nix b/pkgs/tools/archivers/gbl/default.nix
index 90c66e8ac7c53..02dbfc683edb3 100644
--- a/pkgs/tools/archivers/gbl/default.nix
+++ b/pkgs/tools/archivers/gbl/default.nix
@@ -52,5 +52,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jonas-schievink/gbl";
     license = licenses.mit;
     maintainers = [ maintainers.raboof ];
+    mainProgram = "gbl";
   };
 }
diff --git a/pkgs/tools/archivers/innoextract/default.nix b/pkgs/tools/archivers/innoextract/default.nix
index d2e1bebb36764..7c66dcb84d00d 100644
--- a/pkgs/tools/archivers/innoextract/default.nix
+++ b/pkgs/tools/archivers/innoextract/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.zlib;
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.linux;
+    mainProgram = "innoextract";
   };
 }
diff --git a/pkgs/tools/archivers/lha/default.nix b/pkgs/tools/archivers/lha/default.nix
index f6b5c2bd13505..b7d0ac9302903 100644
--- a/pkgs/tools/archivers/lha/default.nix
+++ b/pkgs/tools/archivers/lha/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     # not a free software license (it has additional requirements on commercial
     # use).
     license = licenses.unfree;
+    mainProgram = "lha";
   };
 }
diff --git a/pkgs/tools/archivers/maxcso/default.nix b/pkgs/tools/archivers/maxcso/default.nix
index 1e7fe73728dee..e16d557965dd0 100644
--- a/pkgs/tools/archivers/maxcso/default.nix
+++ b/pkgs/tools/archivers/maxcso/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ david-sawatzke ];
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.isc;
+    mainProgram = "maxcso";
   };
 }
diff --git a/pkgs/tools/archivers/ndstool/default.nix b/pkgs/tools/archivers/ndstool/default.nix
index de7f02ce846a7..e612d83d066d1 100644
--- a/pkgs/tools/archivers/ndstool/default.nix
+++ b/pkgs/tools/archivers/ndstool/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     description = "A tool to unpack and repack nds rom";
     maintainers = [ lib.maintainers.marius851000 ];
     license = lib.licenses.gpl3;
+    mainProgram = "ndstool";
   };
 }
diff --git a/pkgs/tools/archivers/payload_dumper/default.nix b/pkgs/tools/archivers/payload_dumper/default.nix
index 138f62739f41d..ebb717a9e4ceb 100644
--- a/pkgs/tools/archivers/payload_dumper/default.nix
+++ b/pkgs/tools/archivers/payload_dumper/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Android OTA payload dumper";
     license = licenses.gpl3;
     maintainers = with maintainers; [ DamienCassou ];
+    mainProgram = "payload_dumper";
   };
 })
diff --git a/pkgs/tools/archivers/pxattr/default.nix b/pkgs/tools/archivers/pxattr/default.nix
index 57eb7e6f87a13..de4fc45b26118 100644
--- a/pkgs/tools/archivers/pxattr/default.nix
+++ b/pkgs/tools/archivers/pxattr/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     maintainers = [ lib.maintainers.vrthra ];
     license = [ lib.licenses.mit ];
     platforms = lib.platforms.unix;
+    mainProgram = "pxattr";
   };
 }
diff --git a/pkgs/tools/archivers/quickbms/default.nix b/pkgs/tools/archivers/quickbms/default.nix
index b8e1e9fc6f1c7..8915dda1e27e9 100644
--- a/pkgs/tools/archivers/quickbms/default.nix
+++ b/pkgs/tools/archivers/quickbms/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "quickbms";
   };
 }
diff --git a/pkgs/tools/archivers/rpmextract/default.nix b/pkgs/tools/archivers/rpmextract/default.nix
index db768a5d14a22..ed81a23ba7e5b 100644
--- a/pkgs/tools/archivers/rpmextract/default.nix
+++ b/pkgs/tools/archivers/rpmextract/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation {
     platforms = platforms.all;
     license = licenses.gpl2;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "rpmextract";
   };
 }
diff --git a/pkgs/tools/archivers/runzip/default.nix b/pkgs/tools/archivers/runzip/default.nix
index fddf90a5d23c5..02b6bd45d8e1d 100644
--- a/pkgs/tools/archivers/runzip/default.nix
+++ b/pkgs/tools/archivers/runzip/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.unix;
+    mainProgram = "runzip";
   };
 }
diff --git a/pkgs/tools/archivers/tarlz/default.nix b/pkgs/tools/archivers/tarlz/default.nix
index 250b0e05c6cd3..0f031338cf6c0 100644
--- a/pkgs/tools/archivers/tarlz/default.nix
+++ b/pkgs/tools/archivers/tarlz/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ ehmry ];
+    mainProgram = "tarlz";
   };
 }
diff --git a/pkgs/tools/archivers/undmg/default.nix b/pkgs/tools/archivers/undmg/default.nix
index 0bbf725d191b4..9fe61d5944165 100644
--- a/pkgs/tools/archivers/undmg/default.nix
+++ b/pkgs/tools/archivers/undmg/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = with maintainers; [ matthewbauer lnl7 ];
+    mainProgram = "undmg";
   };
 }
diff --git a/pkgs/tools/archivers/unshield/default.nix b/pkgs/tools/archivers/unshield/default.nix
index b3d023df59b78..50d93fea99ff2 100644
--- a/pkgs/tools/archivers/unshield/default.nix
+++ b/pkgs/tools/archivers/unshield/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/twogood/unshield";
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "unshield";
   };
 }
diff --git a/pkgs/tools/archivers/unzoo/default.nix b/pkgs/tools/archivers/unzoo/default.nix
index c8fd4364ea33f..b02d010ac0c9a 100644
--- a/pkgs/tools/archivers/unzoo/default.nix
+++ b/pkgs/tools/archivers/unzoo/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.all;
+    mainProgram = "unzoo";
   };
 }
diff --git a/pkgs/tools/archivers/xarchive/default.nix b/pkgs/tools/archivers/xarchive/default.nix
index d28e9f31b1ab7..d26fdabc1d5d6 100644
--- a/pkgs/tools/archivers/xarchive/default.nix
+++ b/pkgs/tools/archivers/xarchive/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     maintainers = [ lib.maintainers.domenkozar ];
     license = lib.licenses.gpl2;
     platforms = lib.platforms.all;
+    mainProgram = "xarchive";
   };
 }
diff --git a/pkgs/tools/archivers/xarchiver/default.nix b/pkgs/tools/archivers/xarchiver/default.nix
index 84052c475e92f..1de4e91ead733 100644
--- a/pkgs/tools/archivers/xarchiver/default.nix
+++ b/pkgs/tools/archivers/xarchiver/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     maintainers = [ lib.maintainers.domenkozar ];
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
+    mainProgram = "xarchiver";
   };
 }
diff --git a/pkgs/tools/archivers/zarchive/default.nix b/pkgs/tools/archivers/zarchive/default.nix
index 442257779c89f..3ef68ae8b71eb 100644
--- a/pkgs/tools/archivers/zarchive/default.nix
+++ b/pkgs/tools/archivers/zarchive/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Exzap/ZArchive";
     license = licenses.mit0;
     maintainers = with maintainers; [ zhaofengli ];
+    mainProgram = "zarchive";
   };
 }
diff --git a/pkgs/tools/archivers/zpaq/default.nix b/pkgs/tools/archivers/zpaq/default.nix
index 6d0f00f514903..7c394e27d178f 100644
--- a/pkgs/tools/archivers/zpaq/default.nix
+++ b/pkgs/tools/archivers/zpaq/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus ;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
+    mainProgram = "zpaq";
   };
 }
diff --git a/pkgs/tools/misc/aaa/default.nix b/pkgs/tools/misc/aaa/default.nix
index 2f5751bd85584..0988bbca7acb2 100644
--- a/pkgs/tools/misc/aaa/default.nix
+++ b/pkgs/tools/misc/aaa/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/DomesticMoth/aaa";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ asciimoth ];
+    mainProgram = "aaa";
   };
 }
diff --git a/pkgs/tools/misc/abduco/default.nix b/pkgs/tools/misc/abduco/default.nix
index 9493df1c66c49..097cfd9170a9c 100644
--- a/pkgs/tools/misc/abduco/default.nix
+++ b/pkgs/tools/misc/abduco/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     description = "Allows programs to be run independently from its controlling terminal";
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.unix;
+    mainProgram = "abduco";
   };
 }
diff --git a/pkgs/tools/misc/adafruit-ampy/default.nix b/pkgs/tools/misc/adafruit-ampy/default.nix
index 21f137e1a832b..4a87c9692ca9a 100644
--- a/pkgs/tools/misc/adafruit-ampy/default.nix
+++ b/pkgs/tools/misc/adafruit-ampy/default.nix
@@ -22,5 +22,6 @@ buildPythonApplication rec {
     license = licenses.mit;
     description = "Utility to interact with a MicroPython board over a serial connection";
     maintainers = with maintainers; [ ];
+    mainProgram = "ampy";
   };
 }
diff --git a/pkgs/tools/misc/addic7ed-cli/default.nix b/pkgs/tools/misc/addic7ed-cli/default.nix
index 4648e123c635c..d335cfb1d737b 100644
--- a/pkgs/tools/misc/addic7ed-cli/default.nix
+++ b/pkgs/tools/misc/addic7ed-cli/default.nix
@@ -27,5 +27,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ aethelz ];
     platforms = platforms.unix;
+    mainProgram = "addic7ed";
   };
 }
diff --git a/pkgs/tools/misc/addlicense/default.nix b/pkgs/tools/misc/addlicense/default.nix
index 0ea6beadea80f..9b0dc691054a9 100644
--- a/pkgs/tools/misc/addlicense/default.nix
+++ b/pkgs/tools/misc/addlicense/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/google/addlicense";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "addlicense";
   };
 }
diff --git a/pkgs/tools/misc/adrgen/default.nix b/pkgs/tools/misc/adrgen/default.nix
index 6f8c50bd19d09..4a367062cafa9 100644
--- a/pkgs/tools/misc/adrgen/default.nix
+++ b/pkgs/tools/misc/adrgen/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     description = "A command-line tool for generating and managing Architecture Decision Records";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "adrgen";
   };
 }
diff --git a/pkgs/tools/misc/afetch/default.nix b/pkgs/tools/misc/afetch/default.nix
index aea2ff1ff2b92..9b8fe7e4e0916 100644
--- a/pkgs/tools/misc/afetch/default.nix
+++ b/pkgs/tools/misc/afetch/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 jk ];
     platforms = platforms.linux;
+    mainProgram = "afetch";
   };
 }
diff --git a/pkgs/tools/misc/agedu/default.nix b/pkgs/tools/misc/agedu/default.nix
index deee88a7303f4..d8b2c1a2c5ca7 100644
--- a/pkgs/tools/misc/agedu/default.nix
+++ b/pkgs/tools/misc/agedu/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = with maintainers; [ symphorien ];
     platforms = platforms.unix;
+    mainProgram = "agedu";
   };
 }
diff --git a/pkgs/tools/misc/aichat/default.nix b/pkgs/tools/misc/aichat/default.nix
index 6ec48a78fcf96..2fd1f885bfb30 100644
--- a/pkgs/tools/misc/aichat/default.nix
+++ b/pkgs/tools/misc/aichat/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/sigoden/aichat";
     license = licenses.mit;
     maintainers = with maintainers; [ mwdomino ];
+    mainProgram = "aichat";
   };
 }
diff --git a/pkgs/tools/misc/alarm-clock-applet/default.nix b/pkgs/tools/misc/alarm-clock-applet/default.nix
index bcd8988622708..525d65dd7e08a 100644
--- a/pkgs/tools/misc/alarm-clock-applet/default.nix
+++ b/pkgs/tools/misc/alarm-clock-applet/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ aleksana ];
     platforms = platforms.linux;
+    mainProgram = "alarm-clock-applet";
   };
 }
diff --git a/pkgs/tools/misc/antimicrox/default.nix b/pkgs/tools/misc/antimicrox/default.nix
index f989ae912edd8..85e9af7bb67e1 100644
--- a/pkgs/tools/misc/antimicrox/default.nix
+++ b/pkgs/tools/misc/antimicrox/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     maintainers = with maintainers; [ sbruder ];
     license = licenses.gpl3Plus;
     platforms = with platforms; linux;
+    mainProgram = "antimicrox";
   };
 }
diff --git a/pkgs/tools/misc/aoc-cli/default.nix b/pkgs/tools/misc/aoc-cli/default.nix
index f33ffa073d474..4fec5647e04d7 100644
--- a/pkgs/tools/misc/aoc-cli/default.nix
+++ b/pkgs/tools/misc/aoc-cli/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/scarvalhojr/aoc-cli/";
     license = licenses.mit;
     maintainers = with maintainers; [ jordanisaacs ];
+    mainProgram = "aoc";
   };
 }
diff --git a/pkgs/tools/misc/apkeep/default.nix b/pkgs/tools/misc/apkeep/default.nix
index 6cce77d1d849b..2da292b815b6c 100644
--- a/pkgs/tools/misc/apkeep/default.nix
+++ b/pkgs/tools/misc/apkeep/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/EFForg/apkeep/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ joelkoen ];
+    mainProgram = "apkeep";
   };
 }
diff --git a/pkgs/tools/misc/apparix/default.nix b/pkgs/tools/misc/apparix/default.nix
index 1c78a78542564..a75a9f03f3007 100644
--- a/pkgs/tools/misc/apparix/default.nix
+++ b/pkgs/tools/misc/apparix/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
     platforms = platforms.all;
+    mainProgram = "apparix";
   };
 }
diff --git a/pkgs/tools/misc/aptly/default.nix b/pkgs/tools/misc/aptly/default.nix
index f6dcd8e80aa12..6da10fe9b7fce 100644
--- a/pkgs/tools/misc/aptly/default.nix
+++ b/pkgs/tools/misc/aptly/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ montag451 ] ++ teams.bitnomial.members;
     changelog =
       "https://github.com/aptly-dev/aptly/releases/tag/v${version}";
+    mainProgram = "aptly";
   };
 }
diff --git a/pkgs/tools/misc/aquosctl/default.nix b/pkgs/tools/misc/aquosctl/default.nix
index d67005053b151..f8eba27e0fe47 100644
--- a/pkgs/tools/misc/aquosctl/default.nix
+++ b/pkgs/tools/misc/aquosctl/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
     platforms = platforms.linux;
+    mainProgram = "aquosctl";
   };
 }
 
diff --git a/pkgs/tools/misc/archi/default.nix b/pkgs/tools/misc/archi/default.nix
index 793e06fb3d056..d0f1a39a397e3 100644
--- a/pkgs/tools/misc/archi/default.nix
+++ b/pkgs/tools/misc/archi/default.nix
@@ -78,5 +78,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ earldouglas paumr ];
+    mainProgram = "Archi";
   };
 }
diff --git a/pkgs/tools/misc/as-tree/default.nix b/pkgs/tools/misc/as-tree/default.nix
index 3b0c7c270dba3..f4c5eb1354de8 100644
--- a/pkgs/tools/misc/as-tree/default.nix
+++ b/pkgs/tools/misc/as-tree/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jez/as-tree";
     license = with licenses; [ blueOak100 ];
     maintainers = with maintainers; [ jshholland ];
+    mainProgram = "as-tree";
   };
 }
diff --git a/pkgs/tools/misc/asciinema-agg/default.nix b/pkgs/tools/misc/asciinema-agg/default.nix
index 516051e11920d..3b530eb28f6f9 100644
--- a/pkgs/tools/misc/asciinema-agg/default.nix
+++ b/pkgs/tools/misc/asciinema-agg/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/asciinema/agg/releases/tag/${src.rev}";
     license = licenses.asl20;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "agg";
   };
 }
diff --git a/pkgs/tools/misc/asciinema-scenario/default.nix b/pkgs/tools/misc/asciinema-scenario/default.nix
index 45d1ba4a79eca..91102ab46eae7 100644
--- a/pkgs/tools/misc/asciinema-scenario/default.nix
+++ b/pkgs/tools/misc/asciinema-scenario/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/garbas/asciinema-scenario/";
     maintainers = with maintainers; [ garbas ];
     license = with licenses; [ mit ];
+    mainProgram = "asciinema-scenario";
   };
 }
diff --git a/pkgs/tools/misc/askalono/default.nix b/pkgs/tools/misc/askalono/default.nix
index 35d0bf5ff22a5..3b9a0c9633e9f 100644
--- a/pkgs/tools/misc/askalono/default.nix
+++ b/pkgs/tools/misc/askalono/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/jpeddicord/askalono/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "askalono";
   };
 }
diff --git a/pkgs/tools/misc/atuin/default.nix b/pkgs/tools/misc/atuin/default.nix
index 61da92e88d84e..2722512992d57 100644
--- a/pkgs/tools/misc/atuin/default.nix
+++ b/pkgs/tools/misc/atuin/default.nix
@@ -54,5 +54,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/atuinsh/atuin";
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 sciencentistguy _0x4A6F ];
+    mainProgram = "atuin";
   };
 }
diff --git a/pkgs/tools/misc/automirror/default.nix b/pkgs/tools/misc/automirror/default.nix
index cc10c93b3f654..457303c6bc268 100644
--- a/pkgs/tools/misc/automirror/default.nix
+++ b/pkgs/tools/misc/automirror/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     description = "Automatic Display Mirror";
     license = licenses.gpl3;
     platforms = platforms.all;
+    mainProgram = "automirror";
   };
 }
diff --git a/pkgs/tools/misc/autorevision/default.nix b/pkgs/tools/misc/autorevision/default.nix
index ab7add1261a9a..f0d9797693809 100644
--- a/pkgs/tools/misc/autorevision/default.nix
+++ b/pkgs/tools/misc/autorevision/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "autorevision";
   };
 }
diff --git a/pkgs/tools/misc/bandwidth/default.nix b/pkgs/tools/misc/bandwidth/default.nix
index 25a7e0647ef73..9a34442b22101 100644
--- a/pkgs/tools/misc/bandwidth/default.nix
+++ b/pkgs/tools/misc/bandwidth/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.x86 ++ platforms.arm ++ platforms.aarch64;
     maintainers = with maintainers; [ r-burns ];
+    mainProgram = "bandwidth";
   };
 }
diff --git a/pkgs/tools/misc/bartib/default.nix b/pkgs/tools/misc/bartib/default.nix
index feea3e21954a5..893fbe7b58a3f 100644
--- a/pkgs/tools/misc/bartib/default.nix
+++ b/pkgs/tools/misc/bartib/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/nikolassv/bartib";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "bartib";
   };
 }
diff --git a/pkgs/tools/misc/bash_unit/default.nix b/pkgs/tools/misc/bash_unit/default.nix
index 5857bea6251d2..ffedb168f1b40 100644
--- a/pkgs/tools/misc/bash_unit/default.nix
+++ b/pkgs/tools/misc/bash_unit/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ pamplemousse ];
     platforms = platforms.all;
     license = licenses.gpl3Plus;
+    mainProgram = "bash_unit";
   };
 }
diff --git a/pkgs/tools/misc/bashcards/default.nix b/pkgs/tools/misc/bashcards/default.nix
index 30a442ef56233..bce5ab40e2dd6 100644
--- a/pkgs/tools/misc/bashcards/default.nix
+++ b/pkgs/tools/misc/bashcards/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ rpearce ];
     platforms = platforms.all;
+    mainProgram = "bashcards";
   };
 }
diff --git a/pkgs/tools/misc/bbe/default.nix b/pkgs/tools/misc/bbe/default.nix
index 1b734a83d3d3d..58d099da4b06d 100644
--- a/pkgs/tools/misc/bbe/default.nix
+++ b/pkgs/tools/misc/bbe/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.hhm ];
+    mainProgram = "bbe";
   };
 }
diff --git a/pkgs/tools/misc/bdf2psf/default.nix b/pkgs/tools/misc/bdf2psf/default.nix
index 516e35a082ce1..268b877629d8b 100644
--- a/pkgs/tools/misc/bdf2psf/default.nix
+++ b/pkgs/tools/misc/bdf2psf/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ rnhmjoj vrthra ];
     platforms = platforms.all;
+    mainProgram = "bdf2psf";
   };
 }
diff --git a/pkgs/tools/misc/bdf2sfd/default.nix b/pkgs/tools/misc/bdf2sfd/default.nix
index f18e5e2d96277..73a72ffeb61aa 100644
--- a/pkgs/tools/misc/bdf2sfd/default.nix
+++ b/pkgs/tools/misc/bdf2sfd/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "bdf2sfd";
   };
 }
diff --git a/pkgs/tools/misc/bdfresize/default.nix b/pkgs/tools/misc/bdfresize/default.nix
index ef3ffc873aa95..077b524302752 100644
--- a/pkgs/tools/misc/bdfresize/default.nix
+++ b/pkgs/tools/misc/bdfresize/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "http://openlab.ring.gr.jp/efont/dist/tools/bdfresize/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ malte-v ];
+    mainProgram = "bdfresize";
   };
 }
diff --git a/pkgs/tools/misc/beats/default.nix b/pkgs/tools/misc/beats/default.nix
index 9b387a3939d5a..a8ad2436f08ce 100644
--- a/pkgs/tools/misc/beats/default.nix
+++ b/pkgs/tools/misc/beats/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     description = "Swatch Internet Time implemented as a C program";
     platforms = platforms.all;
     maintainers = [ maintainers.j0hax ];
+    mainProgram = "beats";
   };
 }
diff --git a/pkgs/tools/misc/betterdiscord-installer/default.nix b/pkgs/tools/misc/betterdiscord-installer/default.nix
index 1de5b7c4cf69f..f064f5227bf9f 100644
--- a/pkgs/tools/misc/betterdiscord-installer/default.nix
+++ b/pkgs/tools/misc/betterdiscord-installer/default.nix
@@ -28,5 +28,6 @@ in appimageTools.wrapType2 {
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "betterdiscord-installer";
   };
 }
diff --git a/pkgs/tools/misc/bfetch/default.nix b/pkgs/tools/misc/bfetch/default.nix
index 675a8cb11f382..2d678da532332 100644
--- a/pkgs/tools/misc/bfetch/default.nix
+++ b/pkgs/tools/misc/bfetch/default.nix
@@ -25,5 +25,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ moni ];
+    mainProgram = "bfetch";
   };
 }
diff --git a/pkgs/tools/misc/bibtool/default.nix b/pkgs/tools/misc/bibtool/default.nix
index df27f244fca8c..f9de299c87b2f 100644
--- a/pkgs/tools/misc/bibtool/default.nix
+++ b/pkgs/tools/misc/bibtool/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
+    mainProgram = "bibtool";
   };
 }
diff --git a/pkgs/tools/misc/bitwise/default.nix b/pkgs/tools/misc/bitwise/default.nix
index e9443f25c0a9a..a01fa83b3c79e 100644
--- a/pkgs/tools/misc/bitwise/default.nix
+++ b/pkgs/tools/misc/bitwise/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = [ maintainers.whonore ];
     platforms = platforms.unix;
+    mainProgram = "bitwise";
   };
 }
diff --git a/pkgs/tools/misc/blacken-docs/default.nix b/pkgs/tools/misc/blacken-docs/default.nix
index 186f1d393ac38..434f684b78d29 100644
--- a/pkgs/tools/misc/blacken-docs/default.nix
+++ b/pkgs/tools/misc/blacken-docs/default.nix
@@ -34,5 +34,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Run Black on Python code blocks in documentation files";
     license = licenses.mit;
     maintainers = with maintainers; [ l0b0 ];
+    mainProgram = "blacken-docs";
   };
 }
diff --git a/pkgs/tools/misc/blahaj/default.nix b/pkgs/tools/misc/blahaj/default.nix
index 1b0e5ff839ead..01a1de06a870e 100644
--- a/pkgs/tools/misc/blahaj/default.nix
+++ b/pkgs/tools/misc/blahaj/default.nix
@@ -19,5 +19,6 @@ crystal.buildCrystalPackage rec {
     homepage = "https://blahaj.queer.software";
     license = licenses.bsd2;
     maintainers = with maintainers; [ aleksana cafkafk ];
+    mainProgram = "blahaj";
   };
 }
diff --git a/pkgs/tools/misc/blflash/default.nix b/pkgs/tools/misc/blflash/default.nix
index db243a185f97f..36c1712a6e579 100644
--- a/pkgs/tools/misc/blflash/default.nix
+++ b/pkgs/tools/misc/blflash/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/spacemeowx2/blflash";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ _0x4A6F ];
+    mainProgram = "blflash";
   };
 }
diff --git a/pkgs/tools/misc/blink1-tool/default.nix b/pkgs/tools/misc/blink1-tool/default.nix
index 44cfa2fbfe72b..df994593d99b4 100644
--- a/pkgs/tools/misc/blink1-tool/default.nix
+++ b/pkgs/tools/misc/blink1-tool/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ cc-by-sa-40 ];
     maintainers = with maintainers; [ cransom ];
     platforms = platforms.linux;
+    mainProgram = "blink1-tool";
   };
 }
diff --git a/pkgs/tools/misc/bmap-tools/default.nix b/pkgs/tools/misc/bmap-tools/default.nix
index c78c0121ed0c7..4bf170ccbc7d5 100644
--- a/pkgs/tools/misc/bmap-tools/default.nix
+++ b/pkgs/tools/misc/bmap-tools/default.nix
@@ -22,5 +22,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "bmaptool";
   };
 }
diff --git a/pkgs/tools/misc/bmon/default.nix b/pkgs/tools/misc/bmon/default.nix
index e85c2b96bd347..237eb7476da56 100644
--- a/pkgs/tools/misc/bmon/default.nix
+++ b/pkgs/tools/misc/bmon/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ bjornfor pSub ];
+    mainProgram = "bmon";
   };
 }
diff --git a/pkgs/tools/misc/boltbrowser/default.nix b/pkgs/tools/misc/boltbrowser/default.nix
index 855d9f21f2b2f..f4603ab3b4adb 100644
--- a/pkgs/tools/misc/boltbrowser/default.nix
+++ b/pkgs/tools/misc/boltbrowser/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/br0xen/boltbrowser";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "boltbrowser";
   };
 }
diff --git a/pkgs/tools/misc/boxxy/default.nix b/pkgs/tools/misc/boxxy/default.nix
index 4a0a4fe0a99de..52a0b94abeda5 100644
--- a/pkgs/tools/misc/boxxy/default.nix
+++ b/pkgs/tools/misc/boxxy/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ dit7ya figsoda ];
     platforms = platforms.linux;
     broken = stdenv.isAarch64;
+    mainProgram = "boxxy";
   };
 }
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index 4541d41299d17..c12e93f94da30 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -88,5 +88,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Canop/broot/releases/tag/v${version}";
     maintainers = with maintainers; [ dywedir ];
     license = with licenses; [ mit ];
+    mainProgram = "broot";
   };
 }
diff --git a/pkgs/tools/misc/bsp-layout/default.nix b/pkgs/tools/misc/bsp-layout/default.nix
index e5a78adcadfc9..e0348fb9207ef 100644
--- a/pkgs/tools/misc/bsp-layout/default.nix
+++ b/pkgs/tools/misc/bsp-layout/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ totoroot ];
     platforms = platforms.linux;
+    mainProgram = "bsp-layout";
   };
 }
diff --git a/pkgs/tools/misc/btdu/default.nix b/pkgs/tools/misc/btdu/default.nix
index 8031b5ea165d9..631c542a9f8ad 100644
--- a/pkgs/tools/misc/btdu/default.nix
+++ b/pkgs/tools/misc/btdu/default.nix
@@ -88,5 +88,6 @@ stdenv.mkDerivation rec {
       license = licenses.gpl2Only;
       platforms = platforms.linux;
       maintainers = with maintainers; [ atila ];
+      mainProgram = "btdu";
     };
 }
diff --git a/pkgs/tools/misc/buildtorrent/default.nix b/pkgs/tools/misc/buildtorrent/default.nix
index ce357a1d491e1..d9fc90768a984 100644
--- a/pkgs/tools/misc/buildtorrent/default.nix
+++ b/pkgs/tools/misc/buildtorrent/default.nix
@@ -14,5 +14,6 @@ stdenv.mkDerivation rec {
     homepage = "https://mathr.co.uk/blog/torrent.html";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
+    mainProgram = "buildtorrent";
   };
 }
diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix
index a82d62aed0df7..6b9b50144708c 100644
--- a/pkgs/tools/misc/calamares/default.nix
+++ b/pkgs/tools/misc/calamares/default.nix
@@ -93,5 +93,6 @@ mkDerivation rec {
     license = with licenses; [ gpl3Plus bsd2 cc0 ];
     maintainers = with maintainers; [ manveru vlinkz ];
     platforms = platforms.linux;
+    mainProgram = "calamares";
   };
 }
diff --git a/pkgs/tools/misc/capture/default.nix b/pkgs/tools/misc/capture/default.nix
index d8b2fe6765184..be08be4f1436a 100644
--- a/pkgs/tools/misc/capture/default.nix
+++ b/pkgs/tools/misc/capture/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/buhman/capture";
     maintainers = [ maintainers.ar1a ];
     license = licenses.gpl3Plus;
+    mainProgram = "capture";
   };
 }
diff --git a/pkgs/tools/misc/castty/default.nix b/pkgs/tools/misc/castty/default.nix
index 075c6d739b3f8..86dae729790b8 100644
--- a/pkgs/tools/misc/castty/default.nix
+++ b/pkgs/tools/misc/castty/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     license = licenses.bsd3;
     maintainers = with maintainers; [ iblech ];
     platforms = platforms.unix;
+    mainProgram = "castty";
   };
 }
diff --git a/pkgs/tools/misc/cc2538-bsl/default.nix b/pkgs/tools/misc/cc2538-bsl/default.nix
index c90fc3914d418..602327ab79b17 100644
--- a/pkgs/tools/misc/cc2538-bsl/default.nix
+++ b/pkgs/tools/misc/cc2538-bsl/default.nix
@@ -51,6 +51,7 @@ python3Packages.buildPythonPackage rec {
     description = "Flash TI SimpleLink chips (CC2538, CC13xx, CC26xx) over serial";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lorenz ];
+    mainProgram = "cc2538-bsl";
   };
 }
 
diff --git a/pkgs/tools/misc/cf-terraforming/default.nix b/pkgs/tools/misc/cf-terraforming/default.nix
index 8ac51a4821d46..916f349dc5088 100644
--- a/pkgs/tools/misc/cf-terraforming/default.nix
+++ b/pkgs/tools/misc/cf-terraforming/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     homepage = "https://github.com/cloudflare/cf-terraforming/";
     license = licenses.mpl20;
     maintainers = with maintainers; [ benley ];
+    mainProgram = "cf-terraforming";
   };
 }
diff --git a/pkgs/tools/misc/cfonts/default.nix b/pkgs/tools/misc/cfonts/default.nix
index cbee66e68f4a6..244360c99d8bf 100644
--- a/pkgs/tools/misc/cfonts/default.nix
+++ b/pkgs/tools/misc/cfonts/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
       "A silly little command line tool for sexy ANSI fonts in the console";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ leifhelm ];
+    mainProgram = "cfonts";
   };
 }
diff --git a/pkgs/tools/misc/chafa/default.nix b/pkgs/tools/misc/chafa/default.nix
index a03a55387d6b0..828877acbdae2 100644
--- a/pkgs/tools/misc/chafa/default.nix
+++ b/pkgs/tools/misc/chafa/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl3Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.mog ];
+    mainProgram = "chafa";
   };
 }
diff --git a/pkgs/tools/misc/changelogger/default.nix b/pkgs/tools/misc/changelogger/default.nix
index ce7a37c7cc1ae..165f63c468ad6 100644
--- a/pkgs/tools/misc/changelogger/default.nix
+++ b/pkgs/tools/misc/changelogger/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     changelog = "https://github.com/MarkusFreitag/changelogger/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ tomsiewert ];
+    mainProgram = "changelogger";
   };
 }
diff --git a/pkgs/tools/misc/charasay/default.nix b/pkgs/tools/misc/charasay/default.nix
index c66605cc826c9..9051638a8c2c9 100644
--- a/pkgs/tools/misc/charasay/default.nix
+++ b/pkgs/tools/misc/charasay/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/latipun7/charasay";
     license = licenses.mit;
     maintainers = with maintainers; [ hmajid2301 ];
+    mainProgram = "chara";
   };
 }
diff --git a/pkgs/tools/misc/checkpwn/default.nix b/pkgs/tools/misc/checkpwn/default.nix
index 413dbef68fbe8..994fecc6c4db1 100644
--- a/pkgs/tools/misc/checkpwn/default.nix
+++ b/pkgs/tools/misc/checkpwn/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/brycx/checkpwn/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "checkpwn";
   };
 }
diff --git a/pkgs/tools/misc/chef-cli/default.nix b/pkgs/tools/misc/chef-cli/default.nix
index bc43592d4f28b..af3a60103ca35 100644
--- a/pkgs/tools/misc/chef-cli/default.nix
+++ b/pkgs/tools/misc/chef-cli/default.nix
@@ -14,5 +14,6 @@ bundlerApp {
     homepage = "https://chef.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ dylanmtaylor ];
+    mainProgram = "chef-cli";
   };
 }
diff --git a/pkgs/tools/misc/chelf/default.nix b/pkgs/tools/misc/chelf/default.nix
index 25344d8658e82..7dd84eba1e441 100644
--- a/pkgs/tools/misc/chelf/default.nix
+++ b/pkgs/tools/misc/chelf/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Gottox/chelf";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "chelf";
   };
 }
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index 5e2bd00dd30ac..66c94a14c5277 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     changelog = "https://github.com/twpayne/chezmoi/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ jhillyerd ];
+    mainProgram = "chezmoi";
   };
 }
diff --git a/pkgs/tools/misc/cicero-tui/default.nix b/pkgs/tools/misc/cicero-tui/default.nix
index 8578b1a6f1395..0ab33112a6e3b 100644
--- a/pkgs/tools/misc/cicero-tui/default.nix
+++ b/pkgs/tools/misc/cicero-tui/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "cicero";
   };
 }
diff --git a/pkgs/tools/misc/citron/default.nix b/pkgs/tools/misc/citron/default.nix
index 17fa3c5e5a210..d40c8c9369283 100644
--- a/pkgs/tools/misc/citron/default.nix
+++ b/pkgs/tools/misc/citron/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ vuimuich ];
     platforms = lib.platforms.linux;
+    mainProgram = "citron";
   };
 }
diff --git a/pkgs/tools/misc/clac/default.nix b/pkgs/tools/misc/clac/default.nix
index 0c4676323003f..e87fc0bb97ae5 100644
--- a/pkgs/tools/misc/clac/default.nix
+++ b/pkgs/tools/misc/clac/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
+    mainProgram = "clac";
   };
 }
diff --git a/pkgs/tools/misc/claws/default.nix b/pkgs/tools/misc/claws/default.nix
index 5690ec74d0a25..05231d2b16e67 100644
--- a/pkgs/tools/misc/claws/default.nix
+++ b/pkgs/tools/misc/claws/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "Interactive command line client for testing websocket servers";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "claws";
   };
 }
diff --git a/pkgs/tools/misc/clematis/default.nix b/pkgs/tools/misc/clematis/default.nix
index ea3c209600add..76851bbd0fd03 100644
--- a/pkgs/tools/misc/clematis/default.nix
+++ b/pkgs/tools/misc/clematis/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ misterio77 ];
+    mainProgram = "clematis";
   };
 }
diff --git a/pkgs/tools/misc/clickclack/default.nix b/pkgs/tools/misc/clickclack/default.nix
index da351dbbc69ce..884c2ac84bc18 100644
--- a/pkgs/tools/misc/clickclack/default.nix
+++ b/pkgs/tools/misc/clickclack/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "clickclack";
   };
 }
diff --git a/pkgs/tools/misc/clini/default.nix b/pkgs/tools/misc/clini/default.nix
index 751cb31470262..95d86e6fd46d1 100644
--- a/pkgs/tools/misc/clini/default.nix
+++ b/pkgs/tools/misc/clini/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/domgreen/clini";
     license = licenses.mit;
     maintainers = with maintainers; [ Flakebi ];
+    mainProgram = "clini";
   };
 }
diff --git a/pkgs/tools/misc/clipbuzz/default.nix b/pkgs/tools/misc/clipbuzz/default.nix
index 7bece66a786de..9e1e3724b8993 100644
--- a/pkgs/tools/misc/clipbuzz/default.nix
+++ b/pkgs/tools/misc/clipbuzz/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://trong.loang.net/~cnx/clipbuzz";
     license = lib.licenses.unlicense;
     maintainers = [ lib.maintainers.McSinyx ];
+    mainProgram = "clipbuzz";
   };
 })
diff --git a/pkgs/tools/misc/clipnotify/default.nix b/pkgs/tools/misc/clipnotify/default.nix
index 51a67f6983f81..8f94f974b058d 100644
--- a/pkgs/tools/misc/clipnotify/default.nix
+++ b/pkgs/tools/misc/clipnotify/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     inherit (src.meta) homepage;
     maintainers = with maintainers; [ jb55 ];
     license = licenses.publicDomain;
+    mainProgram = "clipnotify";
   };
 }
diff --git a/pkgs/tools/misc/clipster/default.nix b/pkgs/tools/misc/clipster/default.nix
index e6efabb5b33a3..26170d148943a 100644
--- a/pkgs/tools/misc/clipster/default.nix
+++ b/pkgs/tools/misc/clipster/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation  rec {
     homepage = "https://github.com/mrichar1/clipster";
     platforms = platforms.linux;
     maintainers = [ maintainers.magnetophon ];
+    mainProgram = "clipster";
   };
 }
diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix
index a8fc4a4f01b88..fdd932634c5e2 100644
--- a/pkgs/tools/misc/cloc/default.nix
+++ b/pkgs/tools/misc/cloc/default.nix
@@ -56,5 +56,6 @@ in stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     platforms = lib.platforms.all;
     maintainers = with lib.maintainers; [ rycee ];
+    mainProgram = "cloc";
   };
 }
diff --git a/pkgs/tools/misc/clolcat/default.nix b/pkgs/tools/misc/clolcat/default.nix
index 25c7ade5cd623..5ba22c69b41b3 100644
--- a/pkgs/tools/misc/clolcat/default.nix
+++ b/pkgs/tools/misc/clolcat/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = [ maintainers.felipeqq2 ];
     license = licenses.wtfpl;
+    mainProgram = "clolcat";
   };
 }
diff --git a/pkgs/tools/misc/clpeak/default.nix b/pkgs/tools/misc/clpeak/default.nix
index c87729d81ae0f..4539602320f3f 100644
--- a/pkgs/tools/misc/clpeak/default.nix
+++ b/pkgs/tools/misc/clpeak/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/krrishnarraj/clpeak/";
     license = licenses.unlicense;
     maintainers = with maintainers; [ ];
+    mainProgram = "clpeak";
   };
 }
diff --git a/pkgs/tools/misc/cod/default.nix b/pkgs/tools/misc/cod/default.nix
index c681930032fcb..eba78d6c2263a 100644
--- a/pkgs/tools/misc/cod/default.nix
+++ b/pkgs/tools/misc/cod/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
     broken = stdenv.isDarwin;
+    mainProgram = "cod";
   };
 }
diff --git a/pkgs/tools/misc/code-minimap/default.nix b/pkgs/tools/misc/code-minimap/default.nix
index dc264307e7d88..33e6ee825b0b5 100644
--- a/pkgs/tools/misc/code-minimap/default.nix
+++ b/pkgs/tools/misc/code-minimap/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/wfxr/code-minimap";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ bsima ];
+    mainProgram = "code-minimap";
   };
 }
diff --git a/pkgs/tools/misc/codebraid/default.nix b/pkgs/tools/misc/codebraid/default.nix
index f4d8fa4940f00..516dd66cf01b0 100644
--- a/pkgs/tools/misc/codebraid/default.nix
+++ b/pkgs/tools/misc/codebraid/default.nix
@@ -37,5 +37,6 @@ python3Packages.buildPythonApplication rec {
     '';
     license = licenses.bsd3;
     maintainers = with maintainers; [ synthetica ];
+    mainProgram = "codebraid";
   };
 }
diff --git a/pkgs/tools/misc/codemov/default.nix b/pkgs/tools/misc/codemov/default.nix
index fe248c24edcdd..d8cc40e3d8617 100644
--- a/pkgs/tools/misc/codemov/default.nix
+++ b/pkgs/tools/misc/codemov/default.nix
@@ -44,5 +44,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/sloganking/codemov";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "codemov";
   };
 }
diff --git a/pkgs/tools/misc/codevis/default.nix b/pkgs/tools/misc/codevis/default.nix
index 464702432aa6f..c41351f95983f 100644
--- a/pkgs/tools/misc/codevis/default.nix
+++ b/pkgs/tools/misc/codevis/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sloganking/codevis/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "codevis";
   };
 }
diff --git a/pkgs/tools/misc/coinlive/default.nix b/pkgs/tools/misc/coinlive/default.nix
index 2d81a940dd57b..2d5faff98a027 100644
--- a/pkgs/tools/misc/coinlive/default.nix
+++ b/pkgs/tools/misc/coinlive/default.nix
@@ -40,5 +40,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mayeranalytics/coinlive";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "coinlive";
   };
 }
diff --git a/pkgs/tools/misc/colord-gtk/default.nix b/pkgs/tools/misc/colord-gtk/default.nix
index 35076a283270f..1e66ab3ba00d8 100644
--- a/pkgs/tools/misc/colord-gtk/default.nix
+++ b/pkgs/tools/misc/colord-gtk/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
+    mainProgram = "cd-convert";
   };
 }
diff --git a/pkgs/tools/misc/colorless/default.nix b/pkgs/tools/misc/colorless/default.nix
index 46e4745172ff9..d7613d30d0977 100644
--- a/pkgs/tools/misc/colorless/default.nix
+++ b/pkgs/tools/misc/colorless/default.nix
@@ -43,5 +43,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ suominen ];
     platforms = platforms.unix;
+    mainProgram = "colorless";
   };
 }
diff --git a/pkgs/tools/misc/colorz/default.nix b/pkgs/tools/misc/colorz/default.nix
index d259f482942db..f60843afcfb05 100644
--- a/pkgs/tools/misc/colorz/default.nix
+++ b/pkgs/tools/misc/colorz/default.nix
@@ -20,5 +20,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/metakirby5/colorz";
     license = licenses.mit;
     maintainers = with maintainers; [ skykanin ];
+    mainProgram = "colorz";
   };
 }
diff --git a/pkgs/tools/misc/compdb/default.nix b/pkgs/tools/misc/compdb/default.nix
index c6d6d75283d91..0a5e689bb4b8f 100644
--- a/pkgs/tools/misc/compdb/default.nix
+++ b/pkgs/tools/misc/compdb/default.nix
@@ -19,5 +19,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.mit;
     homepage = "https://github.com/Sarcasm/compdb";
     maintainers = [ maintainers.detegr ];
+    mainProgram = "compdb";
   };
 }
diff --git a/pkgs/tools/misc/complete-alias/default.nix b/pkgs/tools/misc/complete-alias/default.nix
index c23ed9771f23a..fdf0c1ae0ab26 100644
--- a/pkgs/tools/misc/complete-alias/default.nix
+++ b/pkgs/tools/misc/complete-alias/default.nix
@@ -39,5 +39,6 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/cykerway/complete-alias";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ tuxinaut ];
+    mainProgram = "complete_alias";
   };
 }
diff --git a/pkgs/tools/misc/completely/default.nix b/pkgs/tools/misc/completely/default.nix
index 7e0129f6d1b3f..326887299c0c2 100644
--- a/pkgs/tools/misc/completely/default.nix
+++ b/pkgs/tools/misc/completely/default.nix
@@ -17,5 +17,6 @@ bundlerApp {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ zendo ];
+    mainProgram = "completely";
   };
 }
diff --git a/pkgs/tools/misc/convbin/default.nix b/pkgs/tools/misc/convbin/default.nix
index 90b403adeb603..96164902dc2c5 100644
--- a/pkgs/tools/misc/convbin/default.nix
+++ b/pkgs/tools/misc/convbin/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ luc65r ];
     platforms = platforms.all;
+    mainProgram = "convbin";
   };
 }
diff --git a/pkgs/tools/misc/convfont/default.nix b/pkgs/tools/misc/convfont/default.nix
index 501c4e29a416a..d58f7ecc2bea4 100644
--- a/pkgs/tools/misc/convfont/default.nix
+++ b/pkgs/tools/misc/convfont/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.wtfpl;
     maintainers = with maintainers; [ luc65r ];
     platforms = platforms.all;
+    mainProgram = "convfont";
   };
 }
diff --git a/pkgs/tools/misc/convimg/default.nix b/pkgs/tools/misc/convimg/default.nix
index 8492527f30373..93b01723bf624 100644
--- a/pkgs/tools/misc/convimg/default.nix
+++ b/pkgs/tools/misc/convimg/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ luc65r ];
     platforms = platforms.linux;
+    mainProgram = "convimg";
   };
 }
diff --git a/pkgs/tools/misc/convmv/default.nix b/pkgs/tools/misc/convmv/default.nix
index 6ed8c78361ec9..8d392f78f47ff 100644
--- a/pkgs/tools/misc/convmv/default.nix
+++ b/pkgs/tools/misc/convmv/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux ++ platforms.freebsd ++ platforms.cygwin;
     maintainers = [ ];
     license = licenses.gpl2Plus;
+    mainProgram = "convmv";
   };
 }
diff --git a/pkgs/tools/misc/copier/default.nix b/pkgs/tools/misc/copier/default.nix
index ea8417f6da22a..c1e8568dfd50d 100644
--- a/pkgs/tools/misc/copier/default.nix
+++ b/pkgs/tools/misc/copier/default.nix
@@ -53,5 +53,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://copier.readthedocs.io";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
+    mainProgram = "copier";
   };
 }
diff --git a/pkgs/tools/misc/coreboot-configurator/default.nix b/pkgs/tools/misc/coreboot-configurator/default.nix
index 9d61b795ce541..2c51fd61fc110 100644
--- a/pkgs/tools/misc/coreboot-configurator/default.nix
+++ b/pkgs/tools/misc/coreboot-configurator/default.nix
@@ -56,5 +56,6 @@ mkDerivation {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ danth ];
+    mainProgram = "coreboot-configurator";
   };
 }
diff --git a/pkgs/tools/misc/cp437/default.nix b/pkgs/tools/misc/cp437/default.nix
index c08214ff548ba..cb4b1b8508cb9 100644
--- a/pkgs/tools/misc/cp437/default.nix
+++ b/pkgs/tools/misc/cp437/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/keaston/cp437";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jb55 ];
+    mainProgram = "cp437";
   };
 }
diff --git a/pkgs/tools/misc/cpufetch/default.nix b/pkgs/tools/misc/cpufetch/default.nix
index 074a76e32e812..ac7384642e819 100644
--- a/pkgs/tools/misc/cpufetch/default.nix
+++ b/pkgs/tools/misc/cpufetch/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Dr-Noob/cpufetch";
     changelog = "https://github.com/Dr-Noob/cpufetch/releases/tag/v${version}";
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "cpufetch";
   };
 }
diff --git a/pkgs/tools/misc/cpuminer/default.nix b/pkgs/tools/misc/cpuminer/default.nix
index 28335ccb4481d..4b7c5fc7f4867 100644
--- a/pkgs/tools/misc/cpuminer/default.nix
+++ b/pkgs/tools/misc/cpuminer/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "minerd";
   };
 }
diff --git a/pkgs/tools/misc/crex/default.nix b/pkgs/tools/misc/crex/default.nix
index 14d462e8e6e42..d173457d71901 100644
--- a/pkgs/tools/misc/crex/default.nix
+++ b/pkgs/tools/misc/crex/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill ];
     platforms = platforms.all;
+    mainProgram = "crex";
   };
 }
diff --git a/pkgs/tools/misc/crypto-tracker/default.nix b/pkgs/tools/misc/crypto-tracker/default.nix
index cbab28f9cd336..273a0aa63e4c0 100644
--- a/pkgs/tools/misc/crypto-tracker/default.nix
+++ b/pkgs/tools/misc/crypto-tracker/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/Nox04/crypto-tracker";
     license = licenses.mit;
     maintainers = with maintainers; [ tiredofit ];
+    mainProgram = "crypto-tracker";
   };
 }
diff --git a/pkgs/tools/misc/csv2latex/default.nix b/pkgs/tools/misc/csv2latex/default.nix
index e297bc532dc12..cc286c54e9adc 100644
--- a/pkgs/tools/misc/csv2latex/default.nix
+++ b/pkgs/tools/misc/csv2latex/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "http://brouits.free.fr/csv2latex/";
     license = licenses.gpl2;
     maintainers = [ maintainers.catern ];
+    mainProgram = "csv2latex";
   };
 }
diff --git a/pkgs/tools/misc/csv2parquet/default.nix b/pkgs/tools/misc/csv2parquet/default.nix
index 2be9f1c3c6447..0d6050d703a7c 100644
--- a/pkgs/tools/misc/csv2parquet/default.nix
+++ b/pkgs/tools/misc/csv2parquet/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/domoritz/csv2parquet";
     license = licenses.mit;
     maintainers = with maintainers; [ john-shaffer ];
+    mainProgram = "csv2parquet";
   };
 }
diff --git a/pkgs/tools/misc/csvs-to-sqlite/default.nix b/pkgs/tools/misc/csvs-to-sqlite/default.nix
index dc140c1c0c01c..28537e9631ea3 100644
--- a/pkgs/tools/misc/csvs-to-sqlite/default.nix
+++ b/pkgs/tools/misc/csvs-to-sqlite/default.nix
@@ -57,5 +57,6 @@ with python3.pkgs; buildPythonApplication rec {
     homepage = "https://github.com/simonw/csvs-to-sqlite";
     license = licenses.asl20;
     maintainers = [ maintainers.costrouc ];
+    mainProgram = "csvs-to-sqlite";
   };
 }
diff --git a/pkgs/tools/misc/cutecom/default.nix b/pkgs/tools/misc/cutecom/default.nix
index 1d264926fd7ca..490d33b123d84 100644
--- a/pkgs/tools/misc/cutecom/default.nix
+++ b/pkgs/tools/misc/cutecom/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bennofs ];
     platforms = platforms.unix;
+    mainProgram = "cutecom";
   };
 }
diff --git a/pkgs/tools/misc/cyclonedx-python/default.nix b/pkgs/tools/misc/cyclonedx-python/default.nix
index 03b5ba031112c..8284035c99e14 100644
--- a/pkgs/tools/misc/cyclonedx-python/default.nix
+++ b/pkgs/tools/misc/cyclonedx-python/default.nix
@@ -43,5 +43,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/CycloneDX/cyclonedx-python";
     license = licenses.asl20;
     maintainers = [ ];
+    mainProgram = "cyclonedx-py";
   };
 }
diff --git a/pkgs/tools/misc/dabet/default.nix b/pkgs/tools/misc/dabet/default.nix
index da7cbce191c2c..acdc66cbad8fe 100644
--- a/pkgs/tools/misc/dabet/default.nix
+++ b/pkgs/tools/misc/dabet/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://codeberg.org/annaaurora/dabet";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "dabet";
   };
 }
 
diff --git a/pkgs/tools/misc/dashing/default.nix b/pkgs/tools/misc/dashing/default.nix
index 7a1541b7e9403..c7ec598fe309e 100644
--- a/pkgs/tools/misc/dashing/default.nix
+++ b/pkgs/tools/misc/dashing/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/technosophos/dashing";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "dashing";
   };
 }
diff --git a/pkgs/tools/misc/datefmt/default.nix b/pkgs/tools/misc/datefmt/default.nix
index cffa589e38785..0b2dd7fae270e 100644
--- a/pkgs/tools/misc/datefmt/default.nix
+++ b/pkgs/tools/misc/datefmt/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jb55 ];
+    mainProgram = "datefmt";
   };
 }
diff --git a/pkgs/tools/misc/dbus-map/default.nix b/pkgs/tools/misc/dbus-map/default.nix
index 56f89b2f05311..955a248be7bbf 100644
--- a/pkgs/tools/misc/dbus-map/default.nix
+++ b/pkgs/tools/misc/dbus-map/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "dbus-map";
   };
 }
diff --git a/pkgs/tools/misc/ddate/default.nix b/pkgs/tools/misc/ddate/default.nix
index 4de50693b744a..012e00c8f9724 100644
--- a/pkgs/tools/misc/ddate/default.nix
+++ b/pkgs/tools/misc/ddate/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ kovirobi ];
     platforms = platforms.all;
+    mainProgram = "ddate";
   };
 }
diff --git a/pkgs/tools/misc/ddcutil/default.nix b/pkgs/tools/misc/ddcutil/default.nix
index 903f923b5d8a0..285fd3799711e 100644
--- a/pkgs/tools/misc/ddcutil/default.nix
+++ b/pkgs/tools/misc/ddcutil/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ rnhmjoj ];
     changelog = "https://github.com/rockowitz/ddcutil/blob/v${version}/CHANGELOG.md";
+    mainProgram = "ddcutil";
   };
 }
 
diff --git a/pkgs/tools/misc/debootstrap/default.nix b/pkgs/tools/misc/debootstrap/default.nix
index 04c19d93af99a..96e003fe7204f 100644
--- a/pkgs/tools/misc/debootstrap/default.nix
+++ b/pkgs/tools/misc/debootstrap/default.nix
@@ -97,5 +97,6 @@ in stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ marcweber ];
     platforms = platforms.linux;
+    mainProgram = "debootstrap";
   };
 }
diff --git a/pkgs/tools/misc/dgoss/default.nix b/pkgs/tools/misc/dgoss/default.nix
index 0ca97c9f63f19..8201a8805be1d 100644
--- a/pkgs/tools/misc/dgoss/default.nix
+++ b/pkgs/tools/misc/dgoss/default.nix
@@ -44,5 +44,6 @@ resholve.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ hyzual anthonyroussel ];
+    mainProgram = "dgoss";
   };
 }
diff --git a/pkgs/tools/misc/dialogbox/default.nix b/pkgs/tools/misc/dialogbox/default.nix
index 02fb122d44657..7012f9d69ad58 100644
--- a/pkgs/tools/misc/dialogbox/default.nix
+++ b/pkgs/tools/misc/dialogbox/default.nix
@@ -43,5 +43,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "dialogbox";
   };
 }
diff --git a/pkgs/tools/misc/didu/default.nix b/pkgs/tools/misc/didu/default.nix
index 8a29cdb2d346b..a5a8a790e4ffe 100644
--- a/pkgs/tools/misc/didu/default.nix
+++ b/pkgs/tools/misc/didu/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://codeberg.org/annaaurora/didu";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "didu";
   };
 }
diff --git a/pkgs/tools/misc/diffoci/default.nix b/pkgs/tools/misc/diffoci/default.nix
index fe50ac5e5e66f..df7cc71140aab 100644
--- a/pkgs/tools/misc/diffoci/default.nix
+++ b/pkgs/tools/misc/diffoci/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/reproducible-containers/diffoci/";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
+    mainProgram = "diffoci";
   };
 }
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 09a4ef57c69f6..61617044792b9 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -288,5 +288,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dezgeg danielfullmer raitobezarius ];
     platforms = platforms.unix;
+    mainProgram = "diffoscope";
   };
 }
diff --git a/pkgs/tools/misc/dijo/default.nix b/pkgs/tools/misc/dijo/default.nix
index 606bba0dff926..45da82571bd46 100644
--- a/pkgs/tools/misc/dijo/default.nix
+++ b/pkgs/tools/misc/dijo/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/NerdyPepper/dijo";
     license = licenses.mit;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "dijo";
   };
 }
diff --git a/pkgs/tools/misc/discocss/default.nix b/pkgs/tools/misc/discocss/default.nix
index a9e3d124c8556..b930338c29f4d 100644
--- a/pkgs/tools/misc/discocss/default.nix
+++ b/pkgs/tools/misc/discocss/default.nix
@@ -38,5 +38,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mpl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ mlvzk ];
+    mainProgram = "discocss";
   };
 }
diff --git a/pkgs/tools/misc/disfetch/default.nix b/pkgs/tools/misc/disfetch/default.nix
index 90c2c06626cdd..6cd7a2683d604 100644
--- a/pkgs/tools/misc/disfetch/default.nix
+++ b/pkgs/tools/misc/disfetch/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ vel ];
+    mainProgram = "disfetch";
   };
 }
diff --git a/pkgs/tools/misc/diskonaut/default.nix b/pkgs/tools/misc/diskonaut/default.nix
index 0ea4106ab0343..6193e0a5e8166 100644
--- a/pkgs/tools/misc/diskonaut/default.nix
+++ b/pkgs/tools/misc/diskonaut/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/imsnif/diskonaut";
     license = licenses.mit;
     maintainers = with maintainers; [ evanjs figsoda ];
+    mainProgram = "diskonaut";
   };
 }
diff --git a/pkgs/tools/misc/diskscan/default.nix b/pkgs/tools/misc/diskscan/default.nix
index 265218dfcfd50..141822d22ddbb 100644
--- a/pkgs/tools/misc/diskscan/default.nix
+++ b/pkgs/tools/misc/diskscan/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux;
     maintainers = with maintainers; [ peterhoeg ];
     license = licenses.gpl3;
+    mainProgram = "diskscan";
   };
 }
diff --git a/pkgs/tools/misc/diskus/default.nix b/pkgs/tools/misc/diskus/default.nix
index c664de7c5dc66..cfbcfdcca6ebb 100644
--- a/pkgs/tools/misc/diskus/default.nix
+++ b/pkgs/tools/misc/diskus/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
       diskus is a very simple program that computes the total size of the
       current directory. It is a parallelized version of du -sh.
     '';
+    mainProgram = "diskus";
   };
 }
diff --git a/pkgs/tools/misc/djenrandom/default.nix b/pkgs/tools/misc/djenrandom/default.nix
index f55329a66180e..51f892a5a4530 100644
--- a/pkgs/tools/misc/djenrandom/default.nix
+++ b/pkgs/tools/misc/djenrandom/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     # djenrandom uses x86 specific instructions, therefore we can only compile for the x86 architechture
     platforms = lib.platforms.x86;
     maintainers = with lib.maintainers; [ orichter thillux ];
+    mainProgram = "djenrandom";
   };
 }
diff --git a/pkgs/tools/misc/docbook2mdoc/default.nix b/pkgs/tools/misc/docbook2mdoc/default.nix
index 9a4352d32679d..f64a73a338bac 100644
--- a/pkgs/tools/misc/docbook2mdoc/default.nix
+++ b/pkgs/tools/misc/docbook2mdoc/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "docbook2mdoc";
   };
 }
diff --git a/pkgs/tools/misc/docker-sync/default.nix b/pkgs/tools/misc/docker-sync/default.nix
index 48fbaa1e9de04..aa129c0a36dbd 100644
--- a/pkgs/tools/misc/docker-sync/default.nix
+++ b/pkgs/tools/misc/docker-sync/default.nix
@@ -16,5 +16,6 @@ bundlerApp {
     license = licenses.gpl3;
     maintainers = with maintainers; [ manveru nicknovitski ];
     platforms = platforms.unix;
+    mainProgram = "docker-sync";
   };
 }
diff --git a/pkgs/tools/misc/docui/default.nix b/pkgs/tools/misc/docui/default.nix
index 122bc20279ba1..d226c2fc8f00b 100644
--- a/pkgs/tools/misc/docui/default.nix
+++ b/pkgs/tools/misc/docui/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ aethelz ];
     broken = stdenv.isDarwin;
+    mainProgram = "docui";
   };
 }
diff --git a/pkgs/tools/misc/doitlive/default.nix b/pkgs/tools/misc/doitlive/default.nix
index 6eef5fab1d1c1..483b36d98d319 100644
--- a/pkgs/tools/misc/doitlive/default.nix
+++ b/pkgs/tools/misc/doitlive/default.nix
@@ -19,5 +19,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://pypi.python.org/pypi/doitlive";
     license = licenses.mit;
     maintainers = with maintainers; [ mbode ];
+    mainProgram = "doitlive";
   };
 }
diff --git a/pkgs/tools/misc/dooit/default.nix b/pkgs/tools/misc/dooit/default.nix
index b8aa6c8809ff7..79e968a5458b5 100644
--- a/pkgs/tools/misc/dooit/default.nix
+++ b/pkgs/tools/misc/dooit/default.nix
@@ -50,5 +50,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/kraanzu/dooit/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ khaneliman wesleyjrz ];
+    mainProgram = "dooit";
   };
 }
diff --git a/pkgs/tools/misc/dotacat/default.nix b/pkgs/tools/misc/dotacat/default.nix
index 07dc66b116740..2512ff20d8d57 100644
--- a/pkgs/tools/misc/dotacat/default.nix
+++ b/pkgs/tools/misc/dotacat/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://gitlab.scd31.com/stephen/dotacat";
     license = licenses.mit;
     maintainers = with maintainers; [ traxys ];
+    mainProgram = "dotacat";
   };
 }
diff --git a/pkgs/tools/misc/dotter/default.nix b/pkgs/tools/misc/dotter/default.nix
index 1356a3908d60c..2abe844531b50 100644
--- a/pkgs/tools/misc/dotter/default.nix
+++ b/pkgs/tools/misc/dotter/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/SuperCuber/dotter";
     license = licenses.unlicense;
     maintainers = with maintainers; [ linsui ];
+    mainProgram = "dotter";
   };
 }
diff --git a/pkgs/tools/misc/dtach/default.nix b/pkgs/tools/misc/dtach/default.nix
index 0e0d4ddd077c9..226c7335f2645 100644
--- a/pkgs/tools/misc/dtach/default.nix
+++ b/pkgs/tools/misc/dtach/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
 
     platforms = lib.platforms.unix;
     maintainers = [ ];
+    mainProgram = "dtach";
   };
 }
diff --git a/pkgs/tools/misc/dtool/default.nix b/pkgs/tools/misc/dtool/default.nix
index 26eb0ab9ed83d..9cf22a9da39f3 100644
--- a/pkgs/tools/misc/dtool/default.nix
+++ b/pkgs/tools/misc/dtool/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/guoxbin/dtool";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ linuxissuper ];
+    mainProgram = "dtool";
   };
 }
diff --git a/pkgs/tools/misc/dua/default.nix b/pkgs/tools/misc/dua/default.nix
index e197c0f90ad88..6ed80c30b740b 100644
--- a/pkgs/tools/misc/dua/default.nix
+++ b/pkgs/tools/misc/dua/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Byron/dua-cli/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ figsoda killercup ];
+    mainProgram = "dua";
   };
 }
diff --git a/pkgs/tools/misc/duc/default.nix b/pkgs/tools/misc/duc/default.nix
index d630c94127387..0501b681aa3aa 100644
--- a/pkgs/tools/misc/duc/default.nix
+++ b/pkgs/tools/misc/duc/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
 
     platforms = platforms.all;
     maintainers = [ ];
+    mainProgram = "duc";
   };
 }
diff --git a/pkgs/tools/misc/duf/default.nix b/pkgs/tools/misc/duf/default.nix
index dbc50346ca55a..5c2ccb5717fc0 100644
--- a/pkgs/tools/misc/duf/default.nix
+++ b/pkgs/tools/misc/duf/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     description = "Disk Usage/Free Utility";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda penguwin ];
+    mainProgram = "duf";
   };
 }
diff --git a/pkgs/tools/misc/dumptorrent/default.nix b/pkgs/tools/misc/dumptorrent/default.nix
index 3199bae9987e3..194d40e1c1cc2 100644
--- a/pkgs/tools/misc/dumptorrent/default.nix
+++ b/pkgs/tools/misc/dumptorrent/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
       license = licenses.gpl2;
       maintainers = [ maintainers.zohl ];
       platforms = platforms.all;
+      mainProgram = "dumptorrent";
     };
 }
diff --git a/pkgs/tools/misc/dupd/default.nix b/pkgs/tools/misc/dupd/default.nix
index 903a9f9e5fd4d..cf5ab77e7d470 100644
--- a/pkgs/tools/misc/dupd/default.nix
+++ b/pkgs/tools/misc/dupd/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.virkki.com/dupd";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "dupd";
   };
 }
diff --git a/pkgs/tools/misc/dutree/default.nix b/pkgs/tools/misc/dutree/default.nix
index c40385c387bab..fe47997296e87 100644
--- a/pkgs/tools/misc/dutree/default.nix
+++ b/pkgs/tools/misc/dutree/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/nachoparker/dutree";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "dutree";
   };
 }
diff --git a/pkgs/tools/misc/dwarf2json/default.nix b/pkgs/tools/misc/dwarf2json/default.nix
index 813c1fb368383..3bd0fa4b94a87 100644
--- a/pkgs/tools/misc/dwarf2json/default.nix
+++ b/pkgs/tools/misc/dwarf2json/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     description = "Convert ELF/DWARF symbol and type information into vol3's intermediate JSON";
     license = licenses.vol-sl;
     maintainers = with maintainers; [ arkivm ];
+    mainProgram = "dwarf2json";
   };
 }
diff --git a/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix b/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
index 39a9187b3babd..e7c7287b5311a 100644
--- a/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
+++ b/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
@@ -48,5 +48,6 @@ stdenvNoCC.mkDerivation {
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.all;
+    mainProgram = "colorscript";
   };
 }
diff --git a/pkgs/tools/misc/easeprobe/default.nix b/pkgs/tools/misc/easeprobe/default.nix
index 9745364fb7ec6..70181956339c0 100644
--- a/pkgs/tools/misc/easeprobe/default.nix
+++ b/pkgs/tools/misc/easeprobe/default.nix
@@ -33,5 +33,6 @@ buildGoModule rec {
     homepage = "https://github.com/megaease/easeprobe";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "easeprobe";
   };
 }
diff --git a/pkgs/tools/misc/edid-decode/default.nix b/pkgs/tools/misc/edid-decode/default.nix
index f12d5a09f2367..eb72d0a815702 100644
--- a/pkgs/tools/misc/edid-decode/default.nix
+++ b/pkgs/tools/misc/edid-decode/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ Madouura ];
     platforms = platforms.all;
+    mainProgram = "edid-decode";
   };
 }
diff --git a/pkgs/tools/misc/edir/default.nix b/pkgs/tools/misc/edir/default.nix
index f6934bae49956..9fd1c70ba7eb4 100644
--- a/pkgs/tools/misc/edir/default.nix
+++ b/pkgs/tools/misc/edir/default.nix
@@ -24,5 +24,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ guyonvarch ];
     platforms = platforms.all;
+    mainProgram = "edir";
   };
 }
diff --git a/pkgs/tools/misc/elfcat/default.nix b/pkgs/tools/misc/elfcat/default.nix
index 222470299739e..53d2516e40917 100644
--- a/pkgs/tools/misc/elfcat/default.nix
+++ b/pkgs/tools/misc/elfcat/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ruslashev/elfcat";
     license = licenses.zlib;
     maintainers = with maintainers; [ moni ];
+    mainProgram = "elfcat";
   };
 }
diff --git a/pkgs/tools/misc/empty/default.nix b/pkgs/tools/misc/empty/default.nix
index 296cd7c52583c..29dfa606dd44e 100644
--- a/pkgs/tools/misc/empty/default.nix
+++ b/pkgs/tools/misc/empty/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
       - can easily be ported to almost all UNIX-like systems
     '';
     maintainers = [ maintainers.djwf ];
+    mainProgram = "empty";
   };
 }
diff --git a/pkgs/tools/misc/emv/default.nix b/pkgs/tools/misc/emv/default.nix
index 3e5a348c58232..a317805e463ce 100644
--- a/pkgs/tools/misc/emv/default.nix
+++ b/pkgs/tools/misc/emv/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation {
     description = "Editor Move: Rename files with your favourite text editor";
     license = lib.licenses.publicDomain;
     platforms = lib.platforms.unix;
+    mainProgram = "emv";
   };
 }
diff --git a/pkgs/tools/misc/encpipe/default.nix b/pkgs/tools/misc/encpipe/default.nix
index d8eea00c3107d..f3ab870b0f05e 100644
--- a/pkgs/tools/misc/encpipe/default.nix
+++ b/pkgs/tools/misc/encpipe/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jedisct1/encpipe";
     license = licenses.isc;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "encpipe";
   };
 }
diff --git a/pkgs/tools/misc/enjarify/default.nix b/pkgs/tools/misc/enjarify/default.nix
index 1828ddce7aacd..0a146dc02f321 100644
--- a/pkgs/tools/misc/enjarify/default.nix
+++ b/pkgs/tools/misc/enjarify/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/google/enjarify/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "enjarify";
   };
 }
diff --git a/pkgs/tools/misc/ent/default.nix b/pkgs/tools/misc/ent/default.nix
index bd9dfeafea6bd..3152e00503bb3 100644
--- a/pkgs/tools/misc/ent/default.nix
+++ b/pkgs/tools/misc/ent/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation {
     homepage = "https://www.fourmilab.ch/random/";
     platforms = platforms.all;
     license = licenses.publicDomain;
+    mainProgram = "ent";
   };
 }
diff --git a/pkgs/tools/misc/entr/default.nix b/pkgs/tools/misc/entr/default.nix
index efee9f7043e5e..6d00d4128a51e 100644
--- a/pkgs/tools/misc/entr/default.nix
+++ b/pkgs/tools/misc/entr/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ pSub synthetica ];
+    mainProgram = "entr";
   };
 }
diff --git a/pkgs/tools/misc/enumer/default.nix b/pkgs/tools/misc/enumer/default.nix
index 67b49b299f71d..c10cfdccd91f7 100644
--- a/pkgs/tools/misc/enumer/default.nix
+++ b/pkgs/tools/misc/enumer/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/dmarkham/enumer";
     license = licenses.bsd2;
     maintainers = with maintainers; [ hexa ];
+    mainProgram = "enumer";
   };
 }
diff --git a/pkgs/tools/misc/envchain/default.nix b/pkgs/tools/misc/envchain/default.nix
index 4446400c2f75f..a204f31a7484e 100644
--- a/pkgs/tools/misc/envchain/default.nix
+++ b/pkgs/tools/misc/envchain/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
+    mainProgram = "envchain";
   };
 }
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index 176557ca3536b..6ac1f24a20108 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -107,5 +107,6 @@ python.pkgs.buildPythonApplication rec {
       gpl3Only # The python codebase and all other parts of this codebase
     ];
     maintainers = with maintainers; [ globin hexa ];
+    mainProgram = "esphome";
   };
 }
diff --git a/pkgs/tools/misc/esptool-ck/default.nix b/pkgs/tools/misc/esptool-ck/default.nix
index 0b4e8cecaf642..2dd6415324e48 100644
--- a/pkgs/tools/misc/esptool-ck/default.nix
+++ b/pkgs/tools/misc/esptool-ck/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "esptool";
   };
 }
diff --git a/pkgs/tools/misc/ethtool/default.nix b/pkgs/tools/misc/ethtool/default.nix
index 5850fada2a70f..eb1911170beb6 100644
--- a/pkgs/tools/misc/ethtool/default.nix
+++ b/pkgs/tools/misc/ethtool/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "ethtool";
   };
 }
diff --git a/pkgs/tools/misc/ets/default.nix b/pkgs/tools/misc/ets/default.nix
index 43d26e2693921..7d9103e7b3508 100644
--- a/pkgs/tools/misc/ets/default.nix
+++ b/pkgs/tools/misc/ets/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/zmwangx/ets/";
     license = licenses.mit;
     maintainers = with maintainers; [ cameronfyfe ];
+    mainProgram = "ets";
   };
 }
diff --git a/pkgs/tools/misc/eva/default.nix b/pkgs/tools/misc/eva/default.nix
index 934a19209d0e0..b15957a909a88 100644
--- a/pkgs/tools/misc/eva/default.nix
+++ b/pkgs/tools/misc/eva/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/NerdyPepper/eva";
     license = licenses.mit;
     maintainers = with maintainers; [ nrdxp ma27 figsoda ];
+    mainProgram = "eva";
   };
 }
diff --git a/pkgs/tools/misc/evhz/default.nix b/pkgs/tools/misc/evhz/default.nix
index 703dcae083a35..712606c6913a1 100644
--- a/pkgs/tools/misc/evhz/default.nix
+++ b/pkgs/tools/misc/evhz/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     maintainers = with maintainers; [ Tungsten842 ];
     platforms = platforms.linux;
+    mainProgram = "evhz";
   };
 }
diff --git a/pkgs/tools/misc/f2/default.nix b/pkgs/tools/misc/f2/default.nix
index 43c9d52a3dd19..f97c2b8e80c6b 100644
--- a/pkgs/tools/misc/f2/default.nix
+++ b/pkgs/tools/misc/f2/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/ayoisaiah/f2";
     license = licenses.mit;
     maintainers = with maintainers; [ zendo ];
+    mainProgram = "f2";
   };
 }
diff --git a/pkgs/tools/misc/faketty/default.nix b/pkgs/tools/misc/faketty/default.nix
index 6ec144d5d693f..4515f83d1f83c 100644
--- a/pkgs/tools/misc/faketty/default.nix
+++ b/pkgs/tools/misc/faketty/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/dtolnay/faketty/releases/tag/${version}";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "faketty";
   };
 }
diff --git a/pkgs/tools/misc/fclones/default.nix b/pkgs/tools/misc/fclones/default.nix
index 01f35bd8c65b3..6db73d081a24b 100644
--- a/pkgs/tools/misc/fclones/default.nix
+++ b/pkgs/tools/misc/fclones/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/pkolaczk/fclones/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ cyounkins figsoda msfjarvis ];
+    mainProgram = "fclones";
   };
 }
diff --git a/pkgs/tools/misc/fcp/default.nix b/pkgs/tools/misc/fcp/default.nix
index 7124e90784573..61db506bc1aed 100644
--- a/pkgs/tools/misc/fcp/default.nix
+++ b/pkgs/tools/misc/fcp/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "fcp";
   };
 }
diff --git a/pkgs/tools/misc/fdupes/default.nix b/pkgs/tools/misc/fdupes/default.nix
index f92a6a69fe287..e4e52115c3563 100644
--- a/pkgs/tools/misc/fdupes/default.nix
+++ b/pkgs/tools/misc/fdupes/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.maggesi ];
+    mainProgram = "fdupes";
   };
 }
diff --git a/pkgs/tools/misc/fedifetcher/default.nix b/pkgs/tools/misc/fedifetcher/default.nix
index e3070ab6e5a94..3a1192d698c16 100644
--- a/pkgs/tools/misc/fedifetcher/default.nix
+++ b/pkgs/tools/misc/fedifetcher/default.nix
@@ -36,5 +36,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://blog.thms.uk/fedifetcher";
     license = licenses.mit;
     maintainers = with maintainers; [ delroth ];
+    mainProgram = "fedifetcher";
   };
 }
diff --git a/pkgs/tools/misc/fetch-scm/default.nix b/pkgs/tools/misc/fetch-scm/default.nix
index 3e8a3e63e80a7..a5bc1f65a9041 100644
--- a/pkgs/tools/misc/fetch-scm/default.nix
+++ b/pkgs/tools/misc/fetch-scm/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ vel ];
+    mainProgram = "fetch-scm";
   };
 }
diff --git a/pkgs/tools/misc/ffsend/default.nix b/pkgs/tools/misc/ffsend/default.nix
index 309abb973d310..18f5a0ee0a16c 100644
--- a/pkgs/tools/misc/ffsend/default.nix
+++ b/pkgs/tools/misc/ffsend/default.nix
@@ -88,5 +88,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lilyball equirosa marsam ];
     platforms = platforms.unix;
+    mainProgram = "ffsend";
   };
 }
diff --git a/pkgs/tools/misc/filebench/default.nix b/pkgs/tools/misc/filebench/default.nix
index ca62c8c4a1a8f..b8d4c6fa7a89e 100644
--- a/pkgs/tools/misc/filebench/default.nix
+++ b/pkgs/tools/misc/filebench/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.cddl;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "filebench";
   };
 }
diff --git a/pkgs/tools/misc/fileschanged/default.nix b/pkgs/tools/misc/fileschanged/default.nix
index f44011a98a71a..5644a01fa75a0 100644
--- a/pkgs/tools/misc/fileschanged/default.nix
+++ b/pkgs/tools/misc/fileschanged/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     '';
 
     platforms = lib.platforms.linux;
+    mainProgram = "fileschanged";
   };
 }
diff --git a/pkgs/tools/misc/findup/default.nix b/pkgs/tools/misc/findup/default.nix
index d196192447d81..9cffd61f20116 100644
--- a/pkgs/tools/misc/findup/default.nix
+++ b/pkgs/tools/misc/findup/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Search parent directories for sentinel files";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ booniepepper ];
+    mainProgram = "findup";
   };
 })
diff --git a/pkgs/tools/misc/flashrom-stable/default.nix b/pkgs/tools/misc/flashrom-stable/default.nix
index 0ad2c533fd964..053605b5aaf16 100644
--- a/pkgs/tools/misc/flashrom-stable/default.nix
+++ b/pkgs/tools/misc/flashrom-stable/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl2 gpl2Plus ];
     maintainers = with maintainers; [ felixsinger ];
     platforms = platforms.all;
+    mainProgram = "flashrom";
   };
 }
diff --git a/pkgs/tools/misc/flashrom/default.nix b/pkgs/tools/misc/flashrom/default.nix
index 6463595c28c8e..b2b9583db2328 100644
--- a/pkgs/tools/misc/flashrom/default.nix
+++ b/pkgs/tools/misc/flashrom/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ fpletz felixsinger ];
     platforms = platforms.all;
+    mainProgram = "flashrom";
   };
 }
diff --git a/pkgs/tools/misc/flitter/default.nix b/pkgs/tools/misc/flitter/default.nix
index 5df3d168a9b0a..958c5ebc32097 100644
--- a/pkgs/tools/misc/flitter/default.nix
+++ b/pkgs/tools/misc/flitter/default.nix
@@ -56,5 +56,6 @@ ocamlPackages.buildDunePackage {
     maintainers = with maintainers; [ fgaz ];
     homepage = "https://github.com/alexozer/flitter";
     platforms = platforms.unix;
+    mainProgram = "flitter";
   };
 }
diff --git a/pkgs/tools/misc/flowgger/default.nix b/pkgs/tools/misc/flowgger/default.nix
index 44908d67bb9ef..c9517043adc96 100644
--- a/pkgs/tools/misc/flowgger/default.nix
+++ b/pkgs/tools/misc/flowgger/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     description = "A fast, simple and lightweight data collector written in Rust";
     license = licenses.bsd2;
     maintainers = with maintainers; [];
+    mainProgram = "flowgger";
   };
 }
diff --git a/pkgs/tools/misc/fltrdr/default.nix b/pkgs/tools/misc/fltrdr/default.nix
index 3e51a4c8bbc22..25cbf80593357 100644
--- a/pkgs/tools/misc/fltrdr/default.nix
+++ b/pkgs/tools/misc/fltrdr/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     platforms   = platforms.linux; # can only test linux
     license     = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
+    mainProgram = "fltrdr";
   };
 }
diff --git a/pkgs/tools/misc/font-config-info/default.nix b/pkgs/tools/misc/font-config-info/default.nix
index 89f0d9060386b..20133eb0df775 100644
--- a/pkgs/tools/misc/font-config-info/default.nix
+++ b/pkgs/tools/misc/font-config-info/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ bsd3 ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "font-config-info";
   };
 }
diff --git a/pkgs/tools/misc/fontfor/default.nix b/pkgs/tools/misc/fontfor/default.nix
index 73d1085450e8c..f870e01077016 100644
--- a/pkgs/tools/misc/fontfor/default.nix
+++ b/pkgs/tools/misc/fontfor/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "fontfor";
   };
 }
diff --git a/pkgs/tools/misc/fpp/default.nix b/pkgs/tools/misc/fpp/default.nix
index ff514ceafb20f..d8f575b1363b1 100644
--- a/pkgs/tools/misc/fpp/default.nix
+++ b/pkgs/tools/misc/fpp/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://facebook.github.io/PathPicker/";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.all;
+    mainProgram = "fpp";
   };
 }
diff --git a/pkgs/tools/misc/fre/default.nix b/pkgs/tools/misc/fre/default.nix
index 92393eb4fc27a..b3bc0eadae0df 100644
--- a/pkgs/tools/misc/fre/default.nix
+++ b/pkgs/tools/misc/fre/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/camdencheek/fre/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gaykitty ];
+    mainProgram = "fre";
   };
 }
diff --git a/pkgs/tools/misc/freshfetch/default.nix b/pkgs/tools/misc/freshfetch/default.nix
index 89ec74b20258e..0723c18048b97 100644
--- a/pkgs/tools/misc/freshfetch/default.nix
+++ b/pkgs/tools/misc/freshfetch/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/k4rakara/freshfetch";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "freshfetch";
   };
 }
diff --git a/pkgs/tools/misc/fselect/default.nix b/pkgs/tools/misc/fselect/default.nix
index fbad5f05ad3a3..401de87d64fd1 100644
--- a/pkgs/tools/misc/fselect/default.nix
+++ b/pkgs/tools/misc/fselect/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jhspetersson/fselect";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "fselect";
   };
 }
diff --git a/pkgs/tools/misc/fsmark/default.nix b/pkgs/tools/misc/fsmark/default.nix
index 1a21156e64033..2c2aa2c6fef82 100644
--- a/pkgs/tools/misc/fsmark/default.nix
+++ b/pkgs/tools/misc/fsmark/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "fs_mark";
   };
 }
diff --git a/pkgs/tools/misc/fsmon/default.nix b/pkgs/tools/misc/fsmon/default.nix
index 6cde8a2150bee..f704de4f65157 100644
--- a/pkgs/tools/misc/fsmon/default.nix
+++ b/pkgs/tools/misc/fsmon/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "fsmon";
   };
 }
diff --git a/pkgs/tools/misc/fsql/default.nix b/pkgs/tools/misc/fsql/default.nix
index 4b92e885b6961..d9f3b3ae8f90e 100644
--- a/pkgs/tools/misc/fsql/default.nix
+++ b/pkgs/tools/misc/fsql/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/kshvmdn/fsql";
     license = licenses.mit;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "fsql";
   };
 }
diff --git a/pkgs/tools/misc/fsrx/default.nix b/pkgs/tools/misc/fsrx/default.nix
index ad1ad389f1be6..63f3b9728f1e0 100644
--- a/pkgs/tools/misc/fsrx/default.nix
+++ b/pkgs/tools/misc/fsrx/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/thatvegandev/fsrx";
     license = licenses.mit;
     maintainers = with maintainers; [ MoritzBoehme ];
+    mainProgram = "fsrx";
   };
 }
diff --git a/pkgs/tools/misc/fw/default.nix b/pkgs/tools/misc/fw/default.nix
index dc000a11295aa..99df87700747c 100644
--- a/pkgs/tools/misc/fw/default.nix
+++ b/pkgs/tools/misc/fw/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/brocode/fw";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "fw";
   };
 }
diff --git a/pkgs/tools/misc/fx-cast-bridge/default.nix b/pkgs/tools/misc/fx-cast-bridge/default.nix
index 5f2274101e56d..d2b8f27899f01 100644
--- a/pkgs/tools/misc/fx-cast-bridge/default.nix
+++ b/pkgs/tools/misc/fx-cast-bridge/default.nix
@@ -51,5 +51,6 @@ buildNpmPackage rec {
     homepage = "https://hensm.github.io/fx_cast/";
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill pedrohlc ];
+    mainProgram = "fx_cast_bridge";
   };
 }
diff --git a/pkgs/tools/misc/fzy/default.nix b/pkgs/tools/misc/fzy/default.nix
index f726adb0d4629..b7186e08d3dbb 100644
--- a/pkgs/tools/misc/fzy/default.nix
+++ b/pkgs/tools/misc/fzy/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
     platforms = platforms.all;
+    mainProgram = "fzy";
   };
 }
diff --git a/pkgs/tools/misc/g203-led/default.nix b/pkgs/tools/misc/g203-led/default.nix
index 7290b57a32368..f2db4f58d5918 100644
--- a/pkgs/tools/misc/g203-led/default.nix
+++ b/pkgs/tools/misc/g203-led/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ r-burns ];
     homepage = "https://github.com/smasty/g203-led";
     platforms = platforms.linux;
+    mainProgram = "g203-led";
   };
 }
diff --git a/pkgs/tools/misc/g933-utils/default.nix b/pkgs/tools/misc/g933-utils/default.nix
index a2671f946b05d..de084fb74bf44 100644
--- a/pkgs/tools/misc/g933-utils/default.nix
+++ b/pkgs/tools/misc/g933-utils/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
     platforms = platforms.linux;
+    mainProgram = "g933-utils";
   };
 }
diff --git a/pkgs/tools/misc/gay/default.nix b/pkgs/tools/misc/gay/default.nix
index 42887f85c6c06..d1129702f867a 100644
--- a/pkgs/tools/misc/gay/default.nix
+++ b/pkgs/tools/misc/gay/default.nix
@@ -17,5 +17,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Colour your text / terminal to be more gay";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres CodeLongAndProsper90 ];
+    mainProgram = "gay";
   };
 }
diff --git a/pkgs/tools/misc/gazelle-origin/default.nix b/pkgs/tools/misc/gazelle-origin/default.nix
index 19955c56d02c9..924c0ba8df7b3 100644
--- a/pkgs/tools/misc/gazelle-origin/default.nix
+++ b/pkgs/tools/misc/gazelle-origin/default.nix
@@ -33,5 +33,6 @@ buildPythonApplication rec {
     # TODO license is unspecified in the upstream, as well as the fork
     license = licenses.unfree;
     maintainers = with maintainers; [ somasis ];
+    mainProgram = "gazelle-origin";
   };
 }
diff --git a/pkgs/tools/misc/gbdfed/default.nix b/pkgs/tools/misc/gbdfed/default.nix
index ded2864dbc644..0d709117b9247 100644
--- a/pkgs/tools/misc/gbdfed/default.nix
+++ b/pkgs/tools/misc/gbdfed/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.linquize ];
     platforms = lib.platforms.all;
+    mainProgram = "gbdfed";
   };
 }
diff --git a/pkgs/tools/misc/geteltorito/default.nix b/pkgs/tools/misc/geteltorito/default.nix
index be2de1167e3c7..5fb2209ee8c17 100644
--- a/pkgs/tools/misc/geteltorito/default.nix
+++ b/pkgs/tools/misc/geteltorito/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
     homepage = "https://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/";
     maintainers = [ maintainers.Profpatsch ];
     license = licenses.gpl2;
+    mainProgram = "geteltorito";
   };
 
 }
diff --git a/pkgs/tools/misc/getopt/default.nix b/pkgs/tools/misc/getopt/default.nix
index 2090fcbd7aacf..6b6cbf66b13fb 100644
--- a/pkgs/tools/misc/getopt/default.nix
+++ b/pkgs/tools/misc/getopt/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.unix;
     homepage = "http://frodo.looijaard.name/project/getopt";
     description = "Parses command-line arguments from shell scripts";
+    mainProgram = "getopt";
   };
 }
diff --git a/pkgs/tools/misc/gh-actions-cache/default.nix b/pkgs/tools/misc/gh-actions-cache/default.nix
index 46fe8cb704d13..2575beabf82a2 100644
--- a/pkgs/tools/misc/gh-actions-cache/default.nix
+++ b/pkgs/tools/misc/gh-actions-cache/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     changelog = "https://github.com/actions/gh-actions-cache/releases/tag/${src.rev}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ amesgen ];
+    mainProgram = "gh-actions-cache";
   };
 }
diff --git a/pkgs/tools/misc/gh-cal/default.nix b/pkgs/tools/misc/gh-cal/default.nix
index 3e38cdf9d752a..98334e0afd55e 100644
--- a/pkgs/tools/misc/gh-cal/default.nix
+++ b/pkgs/tools/misc/gh-cal/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mrshmllow/gh-cal";
     license = licenses.mit;
     maintainers = with maintainers; [ loicreynier ];
+    mainProgram = "gh-cal";
   };
 }
diff --git a/pkgs/tools/misc/gh-dash/default.nix b/pkgs/tools/misc/gh-dash/default.nix
index 1fc865feef822..f2d7195bd3c13 100644
--- a/pkgs/tools/misc/gh-dash/default.nix
+++ b/pkgs/tools/misc/gh-dash/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     homepage = "https://github.com/dlvhdr/gh-dash";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ amesgen ];
+    mainProgram = "gh-dash";
   };
 }
diff --git a/pkgs/tools/misc/gh-eco/default.nix b/pkgs/tools/misc/gh-eco/default.nix
index 98f84659a40e7..329ef60c1b4e1 100644
--- a/pkgs/tools/misc/gh-eco/default.nix
+++ b/pkgs/tools/misc/gh-eco/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
     description = "gh extension to explore the ecosystem";
     license = licenses.mit;
     maintainers = with maintainers; [ helium ];
+    mainProgram = "gh-eco";
   };
 }
 
diff --git a/pkgs/tools/misc/gh-markdown-preview/default.nix b/pkgs/tools/misc/gh-markdown-preview/default.nix
index e4fe21fc09184..68f041dbbf2d4 100644
--- a/pkgs/tools/misc/gh-markdown-preview/default.nix
+++ b/pkgs/tools/misc/gh-markdown-preview/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     changelog = "https://github.com/yusukebe/gh-markdown-preview/releases/tag/${src.rev}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ amesgen ];
+    mainProgram = "gh-markdown-preview";
   };
 }
diff --git a/pkgs/tools/misc/gh-ost/default.nix b/pkgs/tools/misc/gh-ost/default.nix
index a43c6bb80f0b9..91798cfae8c9c 100644
--- a/pkgs/tools/misc/gh-ost/default.nix
+++ b/pkgs/tools/misc/gh-ost/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     description = "Triggerless online schema migration solution for MySQL";
     homepage = "https://github.com/github/gh-ost";
     license = licenses.mit;
+    mainProgram = "gh-ost";
   };
 }
diff --git a/pkgs/tools/misc/ghostie/default.nix b/pkgs/tools/misc/ghostie/default.nix
index 2bda5af2af306..0a4e1cb695e0d 100644
--- a/pkgs/tools/misc/ghostie/default.nix
+++ b/pkgs/tools/misc/ghostie/default.nix
@@ -51,5 +51,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer ];
     broken = stdenv.isx86_64 && stdenv.isDarwin;
+    mainProgram = "ghostie";
   };
 }
diff --git a/pkgs/tools/misc/gibo/default.nix b/pkgs/tools/misc/gibo/default.nix
index 6ee4698d750c4..edd166f00f565 100644
--- a/pkgs/tools/misc/gibo/default.nix
+++ b/pkgs/tools/misc/gibo/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.publicDomain;
     description = "A shell script for easily accessing gitignore boilerplates";
     platforms = lib.platforms.unix;
+    mainProgram = "gibo";
   };
 }
diff --git a/pkgs/tools/misc/gif-for-cli/default.nix b/pkgs/tools/misc/gif-for-cli/default.nix
index 61690b5f41a90..3a2ad84a44300 100644
--- a/pkgs/tools/misc/gif-for-cli/default.nix
+++ b/pkgs/tools/misc/gif-for-cli/default.nix
@@ -51,5 +51,6 @@ python3Packages.buildPythonApplication {
     homepage = "https://github.com/google/gif-for-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ Scriptkiddi ];
+    mainProgram = "gif-for-cli";
   };
 }
diff --git a/pkgs/tools/misc/gigalixir/default.nix b/pkgs/tools/misc/gigalixir/default.nix
index 916193f61ec00..0ba75bbc82b9a 100644
--- a/pkgs/tools/misc/gigalixir/default.nix
+++ b/pkgs/tools/misc/gigalixir/default.nix
@@ -60,5 +60,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/gigalixir/gigalixir-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "gigalixir";
   };
 }
diff --git a/pkgs/tools/misc/github-backup/default.nix b/pkgs/tools/misc/github-backup/default.nix
index a753eaf937425..ce16e2b788c13 100644
--- a/pkgs/tools/misc/github-backup/default.nix
+++ b/pkgs/tools/misc/github-backup/default.nix
@@ -28,5 +28,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/josegonzalez/python-github-backup/blob/${version}/CHANGES.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "github-backup";
   };
 }
diff --git a/pkgs/tools/misc/github-copilot-cli/default.nix b/pkgs/tools/misc/github-copilot-cli/default.nix
index a6c5e7477d496..445b288190583 100644
--- a/pkgs/tools/misc/github-copilot-cli/default.nix
+++ b/pkgs/tools/misc/github-copilot-cli/default.nix
@@ -23,6 +23,7 @@ buildNpmPackage rec {
     license = licenses.unfree; # upstream has no license
     maintainers = [ maintainers.malo ];
     platforms = platforms.all;
+    mainProgram = "github-copilot-cli";
   };
 }
 
diff --git a/pkgs/tools/misc/glasgow/default.nix b/pkgs/tools/misc/glasgow/default.nix
index 470f4016e5dd4..77f3eb01d96ad 100644
--- a/pkgs/tools/misc/glasgow/default.nix
+++ b/pkgs/tools/misc/glasgow/default.nix
@@ -77,5 +77,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/GlasgowEmbedded/Glasgow";
     license = licenses.bsd0;
     maintainers = with maintainers; [ emily thoughtpolice ];
+    mainProgram = "glasgow";
   };
 }
diff --git a/pkgs/tools/misc/go-ios/default.nix b/pkgs/tools/misc/go-ios/default.nix
index 3c8c3fe65b4a6..84b24e75e4787 100644
--- a/pkgs/tools/misc/go-ios/default.nix
+++ b/pkgs/tools/misc/go-ios/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://github.com/danielpaulus/go-ios";
     license = licenses.mit;
     maintainers = with maintainers; [ eyjhb ];
+    mainProgram = "ios";
   };
 }
diff --git a/pkgs/tools/misc/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix
index b147935c4483f..f355d30290677 100644
--- a/pkgs/tools/misc/goaccess/default.nix
+++ b/pkgs/tools/misc/goaccess/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ederoyd46 ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "goaccess";
   };
 }
diff --git a/pkgs/tools/misc/godu/default.nix b/pkgs/tools/misc/godu/default.nix
index f4e1fc1c4fbee..7bd29ed43661e 100644
--- a/pkgs/tools/misc/godu/default.nix
+++ b/pkgs/tools/misc/godu/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/viktomas/godu";
     license = licenses.mit;
     maintainers = with maintainers; [ rople380 ];
+    mainProgram = "godu";
   };
 }
diff --git a/pkgs/tools/misc/gomi/default.nix b/pkgs/tools/misc/gomi/default.nix
index 4f8a4875b3e5d..76ef724332e5f 100644
--- a/pkgs/tools/misc/gomi/default.nix
+++ b/pkgs/tools/misc/gomi/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/b4b4r07/gomi";
     license = licenses.mit;
     maintainers = with maintainers; [ ozkutuk ];
+    mainProgram = "gomi";
   };
 }
diff --git a/pkgs/tools/misc/goose/default.nix b/pkgs/tools/misc/goose/default.nix
index 8e163a3fb42b5..13de61b48e9d2 100644
--- a/pkgs/tools/misc/goose/default.nix
+++ b/pkgs/tools/misc/goose/default.nix
@@ -43,5 +43,6 @@ buildGoModule rec {
     homepage = "https://pressly.github.io/goose/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ yuka ];
+    mainProgram = "goose";
   };
 }
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index d5ab9a94b84bf..a3833e1a4f83d 100644
--- a/pkgs/tools/misc/goreleaser/default.nix
+++ b/pkgs/tools/misc/goreleaser/default.nix
@@ -57,5 +57,6 @@ buildGoModule rec {
       caarlos0
     ];
     license = licenses.mit;
+    mainProgram = "goreleaser";
   };
 }
diff --git a/pkgs/tools/misc/gotify-desktop/default.nix b/pkgs/tools/misc/gotify-desktop/default.nix
index c3c532ca85f7a..64d82def48a78 100644
--- a/pkgs/tools/misc/gotify-desktop/default.nix
+++ b/pkgs/tools/misc/gotify-desktop/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bryanasdev000 genofire ];
     broken = stdenv.isDarwin;
+    mainProgram = "gotify-desktop";
   };
 }
diff --git a/pkgs/tools/misc/gparted/default.nix b/pkgs/tools/misc/gparted/default.nix
index 278dced6b6440..1c16795d40bdd 100644
--- a/pkgs/tools/misc/gparted/default.nix
+++ b/pkgs/tools/misc/gparted/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation rec {
     homepage = "https://gparted.org";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "gparted";
   };
 }
diff --git a/pkgs/tools/misc/gpick/default.nix b/pkgs/tools/misc/gpick/default.nix
index c7579802008b1..0d421212a3d44 100644
--- a/pkgs/tools/misc/gpick/default.nix
+++ b/pkgs/tools/misc/gpick/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.vanilla ];
     platforms = platforms.linux;
+    mainProgram = "gpick";
   };
 }
diff --git a/pkgs/tools/misc/grafterm/default.nix b/pkgs/tools/misc/grafterm/default.nix
index f21a8ba76fc5d..a15ab6e5ed0ff 100644
--- a/pkgs/tools/misc/grafterm/default.nix
+++ b/pkgs/tools/misc/grafterm/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/slok/grafterm";
     license = licenses.asl20;
     maintainers = with maintainers; [ arikgrahl ];
+    mainProgram = "grafterm";
   };
 }
diff --git a/pkgs/tools/misc/grass-sass/default.nix b/pkgs/tools/misc/grass-sass/default.nix
index 5a9193873f1df..83cb03f90c1cf 100644
--- a/pkgs/tools/misc/grass-sass/default.nix
+++ b/pkgs/tools/misc/grass-sass/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/connorskees/grass/blob/master/CHANGELOG.md#${replaceStrings [ "." ] [ "" ] version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "grass";
   };
 }
diff --git a/pkgs/tools/misc/grit/default.nix b/pkgs/tools/misc/grit/default.nix
index 0b31627ece276..448224c9e9ad7 100644
--- a/pkgs/tools/misc/grit/default.nix
+++ b/pkgs/tools/misc/grit/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/climech/grit";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "grit";
   };
 }
diff --git a/pkgs/tools/misc/grizzly/default.nix b/pkgs/tools/misc/grizzly/default.nix
index a9b7bde2e7bd4..fa96cf1b1c059 100644
--- a/pkgs/tools/misc/grizzly/default.nix
+++ b/pkgs/tools/misc/grizzly/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with lib.maintainers; [ nrhtr ];
     platforms = platforms.unix;
+    mainProgram = "grr";
   };
 }
diff --git a/pkgs/tools/misc/gti/default.nix b/pkgs/tools/misc/gti/default.nix
index 0246421e7fdc7..b60abc97e92c7 100644
--- a/pkgs/tools/misc/gti/default.nix
+++ b/pkgs/tools/misc/gti/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     description = "Humorous typo-based git runner; drives a car over the terminal";
     maintainers = with maintainers; [ fadenb ];
     platforms = platforms.unix;
+    mainProgram = "gti";
   };
 }
diff --git a/pkgs/tools/misc/gwe/default.nix b/pkgs/tools/misc/gwe/default.nix
index 4a4b02b537061..e1576c3f9dc54 100644
--- a/pkgs/tools/misc/gwe/default.nix
+++ b/pkgs/tools/misc/gwe/default.nix
@@ -84,5 +84,6 @@ in stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.gpl3Only;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "gwe";
   };
 }
diff --git a/pkgs/tools/misc/hackertyper/default.nix b/pkgs/tools/misc/hackertyper/default.nix
index d72dd1798d5a1..da9af1eca922f 100644
--- a/pkgs/tools/misc/hackertyper/default.nix
+++ b/pkgs/tools/misc/hackertyper/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/Hurricane996/Hackertyper";
     license = licenses.gpl3;
     maintainers = [ maintainers.marius851000 ];
+    mainProgram = "hackertyper";
   };
 }
diff --git a/pkgs/tools/misc/hacksaw/default.nix b/pkgs/tools/misc/hacksaw/default.nix
index 6eecee46a380c..5532fa181f642 100644
--- a/pkgs/tools/misc/hacksaw/default.nix
+++ b/pkgs/tools/misc/hacksaw/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ TethysSvensson ];
     platforms = platforms.linux;
+    mainProgram = "hacksaw";
   };
 }
diff --git a/pkgs/tools/misc/hakuneko/default.nix b/pkgs/tools/misc/hakuneko/default.nix
index bb7bf24cb659d..0ad8c5907a700 100644
--- a/pkgs/tools/misc/hakuneko/default.nix
+++ b/pkgs/tools/misc/hakuneko/default.nix
@@ -93,5 +93,6 @@ stdenv.mkDerivation rec {
       "x86_64-linux"
       "i686-linux"
     ];
+    mainProgram = "hakuneko";
   };
 }
diff --git a/pkgs/tools/misc/halp/default.nix b/pkgs/tools/misc/halp/default.nix
index 89867fe7a9410..e88e23f7cfe7c 100644
--- a/pkgs/tools/misc/halp/default.nix
+++ b/pkgs/tools/misc/halp/default.nix
@@ -75,5 +75,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/orhun/halp/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "halp";
   };
 }
diff --git a/pkgs/tools/misc/handlr-regex/default.nix b/pkgs/tools/misc/handlr-regex/default.nix
index 15b993564ee42..7b6b886524cff 100644
--- a/pkgs/tools/misc/handlr-regex/default.nix
+++ b/pkgs/tools/misc/handlr-regex/default.nix
@@ -34,5 +34,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Anomalocaridid/handlr-regex";
     license = licenses.mit;
     maintainers = with maintainers; [ anomalocaris ];
+    mainProgram = "handlr";
   };
 }
diff --git a/pkgs/tools/misc/handlr/default.nix b/pkgs/tools/misc/handlr/default.nix
index 19f02cdd1b192..1022763b7540f 100644
--- a/pkgs/tools/misc/handlr/default.nix
+++ b/pkgs/tools/misc/handlr/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/chmln/handlr";
     license = licenses.mit;
     maintainers = with maintainers; [ mredaelli artturin ];
+    mainProgram = "handlr";
   };
 }
diff --git a/pkgs/tools/misc/hashpump/default.nix b/pkgs/tools/misc/hashpump/default.nix
index bc1f019ab72c2..11b0650d849d7 100644
--- a/pkgs/tools/misc/hashpump/default.nix
+++ b/pkgs/tools/misc/hashpump/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ t4ccer ];
     platforms = lib.platforms.linux;
+    mainProgram = "hashpump";
   };
 })
diff --git a/pkgs/tools/misc/haste-client/default.nix b/pkgs/tools/misc/haste-client/default.nix
index 905d4bedf5460..eb4b6f868294f 100644
--- a/pkgs/tools/misc/haste-client/default.nix
+++ b/pkgs/tools/misc/haste-client/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.mit;
     maintainers = with maintainers; [ shamilton ];
     platforms   = platforms.unix;
+    mainProgram = "haste";
   };
 }
diff --git a/pkgs/tools/misc/hdaps-gl/default.nix b/pkgs/tools/misc/hdaps-gl/default.nix
index 8ea863f464179..1999d9ad0d56f 100644
--- a/pkgs/tools/misc/hdaps-gl/default.nix
+++ b/pkgs/tools/misc/hdaps-gl/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.symphorien ];
+    mainProgram = "hdaps-gl";
   };
 }
diff --git a/pkgs/tools/misc/hddtemp/default.nix b/pkgs/tools/misc/hddtemp/default.nix
index 3939d60144d9e..3bdd7e84f3ab2 100644
--- a/pkgs/tools/misc/hddtemp/default.nix
+++ b/pkgs/tools/misc/hddtemp/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
+    mainProgram = "hddtemp";
   };
 }
diff --git a/pkgs/tools/misc/hdfview/default.nix b/pkgs/tools/misc/hdfview/default.nix
index 127d76ad560fa..b74e64386eb06 100644
--- a/pkgs/tools/misc/hdfview/default.nix
+++ b/pkgs/tools/misc/hdfview/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     homepage = "https://portal.hdfgroup.org/display/HDFVIEW/HDFView";
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
     maintainers = with lib.maintainers; [ jiegec ];
+    mainProgram = "HDFView";
   };
 }
diff --git a/pkgs/tools/misc/hebcal/default.nix b/pkgs/tools/misc/hebcal/default.nix
index 050cc63f6a5d5..80d52592c742a 100644
--- a/pkgs/tools/misc/hebcal/default.nix
+++ b/pkgs/tools/misc/hebcal/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.hhm ];
     platforms = platforms.all;
+    mainProgram = "hebcal";
   };
 }
diff --git a/pkgs/tools/misc/heimdall/default.nix b/pkgs/tools/misc/heimdall/default.nix
index 810413a7b09a2..422363ef418ab 100644
--- a/pkgs/tools/misc/heimdall/default.nix
+++ b/pkgs/tools/misc/heimdall/default.nix
@@ -50,5 +50,6 @@ mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
+    mainProgram = "heimdall";
   };
 }
diff --git a/pkgs/tools/misc/hexd/default.nix b/pkgs/tools/misc/hexd/default.nix
index 510de6a8ee361..140db34350837 100644
--- a/pkgs/tools/misc/hexd/default.nix
+++ b/pkgs/tools/misc/hexd/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.FireyFly ];
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "hexd";
   };
 }
diff --git a/pkgs/tools/misc/hexdiff/default.nix b/pkgs/tools/misc/hexdiff/default.nix
index 8205cfdd0ab4e..937a07bee78bc 100644
--- a/pkgs/tools/misc/hexdiff/default.nix
+++ b/pkgs/tools/misc/hexdiff/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ rogarb ];
     platforms = lib.platforms.linux;
+    mainProgram = "hexdiff";
   };
 }
diff --git a/pkgs/tools/misc/hexyl/default.nix b/pkgs/tools/misc/hexyl/default.nix
index 29a7b32ce3364..d502e84e56073 100644
--- a/pkgs/tools/misc/hexyl/default.nix
+++ b/pkgs/tools/misc/hexyl/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sharkdp/hexyl/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dywedir figsoda SuperSandro2000 ];
+    mainProgram = "hexyl";
   };
 }
diff --git a/pkgs/tools/misc/hhpc/default.nix b/pkgs/tools/misc/hhpc/default.nix
index 5f02121e59f54..71c39c68accec 100644
--- a/pkgs/tools/misc/hhpc/default.nix
+++ b/pkgs/tools/misc/hhpc/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ nico202 ];
     platforms = platforms.unix;
     license = lib.licenses.bsd3;
+    mainProgram = "hhpc";
   };
 }
diff --git a/pkgs/tools/misc/hid-listen/default.nix b/pkgs/tools/misc/hid-listen/default.nix
index 1f69a3fe749bf..62c2d7beb2ff5 100644
--- a/pkgs/tools/misc/hid-listen/default.nix
+++ b/pkgs/tools/misc/hid-listen/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ tomsmeets ];
     platforms = platforms.linux;
+    mainProgram = "hid_listen";
   };
 }
diff --git a/pkgs/tools/misc/hidrd/default.nix b/pkgs/tools/misc/hidrd/default.nix
index 0c58a5e42f982..5ce3e969f2764 100644
--- a/pkgs/tools/misc/hidrd/default.nix
+++ b/pkgs/tools/misc/hidrd/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ pacien ];
     platforms = platforms.all;
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/hidrd.x86_64-darwin
+    mainProgram = "hidrd-convert";
   };
 }
diff --git a/pkgs/tools/misc/homesick/default.nix b/pkgs/tools/misc/homesick/default.nix
index 5cd11bc48d1f4..663990ffac805 100644
--- a/pkgs/tools/misc/homesick/default.nix
+++ b/pkgs/tools/misc/homesick/default.nix
@@ -24,5 +24,6 @@ bundlerEnv {
     license = licenses.mit;
     maintainers = with maintainers; [ aaronschif nicknovitski ];
     platforms = platforms.unix;
+    mainProgram = "homesick";
   };
 }
diff --git a/pkgs/tools/misc/hpcg/default.nix b/pkgs/tools/misc/hpcg/default.nix
index d6896527ad2a9..77621bd6f158e 100644
--- a/pkgs/tools/misc/hpcg/default.nix
+++ b/pkgs/tools/misc/hpcg/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.bsd3;
     maintainers = [ maintainers.markuskowa ];
+    mainProgram = "xhpcg";
   };
 }
 
diff --git a/pkgs/tools/misc/hpl/default.nix b/pkgs/tools/misc/hpl/default.nix
index c9a81ebb8a1bc..0521afc4ef26d 100644
--- a/pkgs/tools/misc/hpl/default.nix
+++ b/pkgs/tools/misc/hpl/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.bsdOriginal;
     maintainers = [ maintainers.markuskowa ];
+    mainProgram = "xhpl";
   };
 }
diff --git a/pkgs/tools/misc/html-proofer/default.nix b/pkgs/tools/misc/html-proofer/default.nix
index 73025a212b2a3..cc4f6f69f2633 100644
--- a/pkgs/tools/misc/html-proofer/default.nix
+++ b/pkgs/tools/misc/html-proofer/default.nix
@@ -16,5 +16,6 @@ bundlerEnv rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms   = platforms.unix;
+    mainProgram = "htmlproofer";
   };
 }
diff --git a/pkgs/tools/misc/hueadm/default.nix b/pkgs/tools/misc/hueadm/default.nix
index 393f4baa955b7..7eeb7b2eb7900 100644
--- a/pkgs/tools/misc/hueadm/default.nix
+++ b/pkgs/tools/misc/hueadm/default.nix
@@ -23,5 +23,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/bahamas10/hueadm";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ infinisil ];
+    mainProgram = "hueadm";
   };
 }
diff --git a/pkgs/tools/misc/hunt/default.nix b/pkgs/tools/misc/hunt/default.nix
index da466e7b98a76..38fbf9bc828d9 100644
--- a/pkgs/tools/misc/hunt/default.nix
+++ b/pkgs/tools/misc/hunt/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/LyonSyonII/hunt";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "hunt";
   };
 }
diff --git a/pkgs/tools/misc/hwatch/default.nix b/pkgs/tools/misc/hwatch/default.nix
index 6e3ad36af1634..2eb8be5d2f93e 100644
--- a/pkgs/tools/misc/hwatch/default.nix
+++ b/pkgs/tools/misc/hwatch/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ hamburger1984 ];
+    mainProgram = "hwatch";
   };
 }
diff --git a/pkgs/tools/misc/hyperfine/default.nix b/pkgs/tools/misc/hyperfine/default.nix
index 420d1ae04edac..16de5fa76f3d2 100644
--- a/pkgs/tools/misc/hyperfine/default.nix
+++ b/pkgs/tools/misc/hyperfine/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sharkdp/hyperfine/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda thoughtpolice ];
+    mainProgram = "hyperfine";
   };
 }
diff --git a/pkgs/tools/misc/i3nator/default.nix b/pkgs/tools/misc/i3nator/default.nix
index 99f0edeeafd73..4c62e4ca80507 100644
--- a/pkgs/tools/misc/i3nator/default.nix
+++ b/pkgs/tools/misc/i3nator/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/pitkley/i3nator";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ mpoquet ];
+    mainProgram = "i3nator";
   };
 }
diff --git a/pkgs/tools/misc/iay/default.nix b/pkgs/tools/misc/iay/default.nix
index d48e48cc83b50..1ef3d332e75d2 100644
--- a/pkgs/tools/misc/iay/default.nix
+++ b/pkgs/tools/misc/iay/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/aaqaishtyaq/iay";
     license = licenses.mit;
     maintainers = with maintainers; [ aaqaishtyaq omasanori ];
+    mainProgram = "iay";
   };
 }
diff --git a/pkgs/tools/misc/ibus-theme-tools/default.nix b/pkgs/tools/misc/ibus-theme-tools/default.nix
index ee8a8719d1397..05c56edd36978 100644
--- a/pkgs/tools/misc/ibus-theme-tools/default.nix
+++ b/pkgs/tools/misc/ibus-theme-tools/default.nix
@@ -25,5 +25,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hollowman6 ];
     homepage = "https://github.com/openSUSE/IBus-Theme-Tools";
+    mainProgram = "ibus-theme-tools";
   };
 }
diff --git a/pkgs/tools/misc/ical2orgpy/default.nix b/pkgs/tools/misc/ical2orgpy/default.nix
index e9397e14430f7..ac5607b4a819f 100644
--- a/pkgs/tools/misc/ical2orgpy/default.nix
+++ b/pkgs/tools/misc/ical2orgpy/default.nix
@@ -37,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/ical2org-py/ical2org.py";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ StillerHarpo ];
+    mainProgram = "ical2orgpy";
   };
 
 }
diff --git a/pkgs/tools/misc/ictree/default.nix b/pkgs/tools/misc/ictree/default.nix
index 16093dbc4d55f..c8ffdc090c20c 100644
--- a/pkgs/tools/misc/ictree/default.nix
+++ b/pkgs/tools/misc/ictree/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/NikitaIvanovV/ictree";
     platforms = platforms.unix;
     maintainers = with maintainers; [ foo-dogsquared ];
+    mainProgram = "ictree";
   };
 }
diff --git a/pkgs/tools/misc/ideviceinstaller/default.nix b/pkgs/tools/misc/ideviceinstaller/default.nix
index 84f1d440c586e..63bb1e7cb0fc3 100644
--- a/pkgs/tools/misc/ideviceinstaller/default.nix
+++ b/pkgs/tools/misc/ideviceinstaller/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ aristid infinisil ];
+    mainProgram = "ideviceinstaller";
   };
 }
diff --git a/pkgs/tools/misc/idevicerestore/default.nix b/pkgs/tools/misc/idevicerestore/default.nix
index 55b2918aa9bac..55fa9fcda8ba6 100644
--- a/pkgs/tools/misc/idevicerestore/default.nix
+++ b/pkgs/tools/misc/idevicerestore/default.nix
@@ -61,5 +61,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ nh2 ];
+    mainProgram = "idevicerestore";
   };
 }
diff --git a/pkgs/tools/misc/ikill/default.nix b/pkgs/tools/misc/ikill/default.nix
index 8ca69f8b44109..b5c18e5dfd975 100644
--- a/pkgs/tools/misc/ikill/default.nix
+++ b/pkgs/tools/misc/ikill/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ zendo ];
     license = [ licenses.mit ];
     platforms = platforms.linux;
+    mainProgram = "ikill";
   };
 }
diff --git a/pkgs/tools/misc/ili2c/default.nix b/pkgs/tools/misc/ili2c/default.nix
index 8e748efe7b4eb..f34c73d3b0f7a 100644
--- a/pkgs/tools/misc/ili2c/default.nix
+++ b/pkgs/tools/misc/ili2c/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     maintainers = [ maintainers.das-g ];
     platforms = platforms.linux;
+    mainProgram = "ili2c";
   };
 }
diff --git a/pkgs/tools/misc/infracost/default.nix b/pkgs/tools/misc/infracost/default.nix
index 7fc02624db6a7..6b0f4edd5a778 100644
--- a/pkgs/tools/misc/infracost/default.nix
+++ b/pkgs/tools/misc/infracost/default.nix
@@ -63,5 +63,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ davegallant jk kashw2 ];
+    mainProgram = "infracost";
   };
 }
diff --git a/pkgs/tools/misc/ink/default.nix b/pkgs/tools/misc/ink/default.nix
index 87173c9537913..30df6e9691fad 100644
--- a/pkgs/tools/misc/ink/default.nix
+++ b/pkgs/tools/misc/ink/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux ++ platforms.freebsd;
     maintainers = with maintainers; [ samb96 ];
+    mainProgram = "ink";
   };
 }
diff --git a/pkgs/tools/misc/inklingreader/default.nix b/pkgs/tools/misc/inklingreader/default.nix
index 8710da482a655..efe1eeb34aebc 100644
--- a/pkgs/tools/misc/inklingreader/default.nix
+++ b/pkgs/tools/misc/inklingreader/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ totoroot ];
     platforms = lib.platforms.linux;
+    mainProgram = "inklingreader";
   };
 }
diff --git a/pkgs/tools/misc/inspec/default.nix b/pkgs/tools/misc/inspec/default.nix
index f9108c7af6bd2..759b1fcaed874 100644
--- a/pkgs/tools/misc/inspec/default.nix
+++ b/pkgs/tools/misc/inspec/default.nix
@@ -15,5 +15,6 @@ bundlerApp {
     homepage = "https://inspec.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ dylanmtaylor ];
+    mainProgram = "inspec";
   };
 }
diff --git a/pkgs/tools/misc/instaloader/default.nix b/pkgs/tools/misc/instaloader/default.nix
index 7f9a33927db95..634693f6144be 100644
--- a/pkgs/tools/misc/instaloader/default.nix
+++ b/pkgs/tools/misc/instaloader/default.nix
@@ -32,5 +32,6 @@ buildPythonPackage rec {
     description = "Download pictures (or videos) along with their captions and other metadata from Instagram";
     maintainers = with maintainers; [ creator54 ];
     license = licenses.mit;
+    mainProgram = "instaloader";
   };
 }
diff --git a/pkgs/tools/misc/invoice/default.nix b/pkgs/tools/misc/invoice/default.nix
index cffdec4063e38..ea7ce5c2205a7 100644
--- a/pkgs/tools/misc/invoice/default.nix
+++ b/pkgs/tools/misc/invoice/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/maaslalani/invoice";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "invoice";
   };
 }
diff --git a/pkgs/tools/misc/iotools/default.nix b/pkgs/tools/misc/iotools/default.nix
index 12411aac6c6f5..17330d9c19cb7 100644
--- a/pkgs/tools/misc/iotools/default.nix
+++ b/pkgs/tools/misc/iotools/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ felixsinger ];
     platforms = [ "x86_64-linux" "i686-linux" ];
+    mainProgram = "iotools";
   };
 }
diff --git a/pkgs/tools/misc/ipad_charge/default.nix b/pkgs/tools/misc/ipad_charge/default.nix
index d92961be9c5ad..fdbab82aabcdc 100644
--- a/pkgs/tools/misc/ipad_charge/default.nix
+++ b/pkgs/tools/misc/ipad_charge/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "ipad_charge";
   };
 }
diff --git a/pkgs/tools/misc/ipbt/default.nix b/pkgs/tools/misc/ipbt/default.nix
index 25dad59c9fef9..3b9b6d1496ee3 100644
--- a/pkgs/tools/misc/ipbt/default.nix
+++ b/pkgs/tools/misc/ipbt/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.tckmn ];
     platforms = platforms.unix;
+    mainProgram = "ipbt";
   };
 }
diff --git a/pkgs/tools/misc/ised/default.nix b/pkgs/tools/misc/ised/default.nix
index 9032a2d245146..9f6b716b42930 100644
--- a/pkgs/tools/misc/ised/default.nix
+++ b/pkgs/tools/misc/ised/default.nix
@@ -13,5 +13,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ raskin ];
     platforms = with lib.platforms; linux;
     license = lib.licenses.gpl3Plus;
+    mainProgram = "ised";
   };
 }
diff --git a/pkgs/tools/misc/isoimagewriter/default.nix b/pkgs/tools/misc/isoimagewriter/default.nix
index e7ce4fd79acec..28c0ddd5f889a 100644
--- a/pkgs/tools/misc/isoimagewriter/default.nix
+++ b/pkgs/tools/misc/isoimagewriter/default.nix
@@ -26,5 +26,6 @@ mkDerivation rec {
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ k900 ];
+    mainProgram = "isoimagewriter";
   };
 }
diff --git a/pkgs/tools/misc/ix/default.nix b/pkgs/tools/misc/ix/default.nix
index e3fc85406e8ea..52781f8a08bb3 100644
--- a/pkgs/tools/misc/ix/default.nix
+++ b/pkgs/tools/misc/ix/default.nix
@@ -32,5 +32,6 @@ resholve.mkDerivation {
     description = "Command line pastebin";
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.all;
+    mainProgram = "ix";
   };
 }
diff --git a/pkgs/tools/misc/jdiskreport/default.nix b/pkgs/tools/misc/jdiskreport/default.nix
index 57441e645df26..6490d68ce0b77 100644
--- a/pkgs/tools/misc/jdiskreport/default.nix
+++ b/pkgs/tools/misc/jdiskreport/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfreeRedistributable; #TODO freedist, libs under BSD-3
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ kylesferrazza ];
+    mainProgram = "jdiskreport";
   };
 }
diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix
index 72970d2dc9b45..cb81ef9a9983f 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -62,5 +62,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jbruchon/jdupes";
     license = licenses.mit;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "jdupes";
   };
 }
diff --git a/pkgs/tools/misc/journaldriver/default.nix b/pkgs/tools/misc/journaldriver/default.nix
index bf835e8bcff66..a5174c4b309e2 100644
--- a/pkgs/tools/misc/journaldriver/default.nix
+++ b/pkgs/tools/misc/journaldriver/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.tazjin ];
     platforms = platforms.linux;
+    mainProgram = "journaldriver";
   };
 }
diff --git a/pkgs/tools/misc/jsonwatch/default.nix b/pkgs/tools/misc/jsonwatch/default.nix
index 11e2e2d0e8d10..2f0e3b89149cc 100644
--- a/pkgs/tools/misc/jsonwatch/default.nix
+++ b/pkgs/tools/misc/jsonwatch/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ fab ];
     # never built on aarch64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin && stdenv.isAarch64;
+    mainProgram = "jsonwatch";
   };
 }
diff --git a/pkgs/tools/misc/jstest-gtk/default.nix b/pkgs/tools/misc/jstest-gtk/default.nix
index 6824753c73ce5..1b201396b7ad7 100644
--- a/pkgs/tools/misc/jstest-gtk/default.nix
+++ b/pkgs/tools/misc/jstest-gtk/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ wucke13 ];
     platforms = platforms.linux;
+    mainProgram = "jstest-gtk";
   };
 }
diff --git a/pkgs/tools/misc/jugglinglab/default.nix b/pkgs/tools/misc/jugglinglab/default.nix
index ccacd89a85b0b..9d552072f7dff 100644
--- a/pkgs/tools/misc/jugglinglab/default.nix
+++ b/pkgs/tools/misc/jugglinglab/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
       license = licenses.gpl2;
       maintainers = with maintainers; [ wnklmnn ];
       platforms = platforms.all;
+      mainProgram = "jugglinglab";
   };
 }
diff --git a/pkgs/tools/misc/kak-lsp/default.nix b/pkgs/tools/misc/kak-lsp/default.nix
index baa2bb81791b3..f99789dfc1c10 100644
--- a/pkgs/tools/misc/kak-lsp/default.nix
+++ b/pkgs/tools/misc/kak-lsp/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/kak-lsp/kak-lsp";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = [ maintainers.spacekookie ];
+    mainProgram = "kak-lsp";
   };
 }
diff --git a/pkgs/tools/misc/kalker/default.nix b/pkgs/tools/misc/kalker/default.nix
index b076ab351d733..2df69dd8f252e 100644
--- a/pkgs/tools/misc/kalker/default.nix
+++ b/pkgs/tools/misc/kalker/default.nix
@@ -44,5 +44,6 @@ rustPlatform.buildRustPackage rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda lovesegfault ];
+    mainProgram = "kalker";
   };
 }
diff --git a/pkgs/tools/misc/kargo/default.nix b/pkgs/tools/misc/kargo/default.nix
index 91fcbf43ed886..2097d47aa1ba2 100644
--- a/pkgs/tools/misc/kargo/default.nix
+++ b/pkgs/tools/misc/kargo/default.nix
@@ -34,5 +34,6 @@ buildPythonApplication rec {
     platforms = platforms.all;
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
+    mainProgram = "kargo";
   };
 }
diff --git a/pkgs/tools/misc/kb/default.nix b/pkgs/tools/misc/kb/default.nix
index 76db4d7deca4d..85a72adebcddc 100644
--- a/pkgs/tools/misc/kb/default.nix
+++ b/pkgs/tools/misc/kb/default.nix
@@ -54,5 +54,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/gnebbia/kb/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ wesleyjrz ];
+    mainProgram = "kb";
   };
 }
diff --git a/pkgs/tools/misc/kcollectd/default.nix b/pkgs/tools/misc/kcollectd/default.nix
index e38cb6f5a7911..a5c1039274a4d 100644
--- a/pkgs/tools/misc/kcollectd/default.nix
+++ b/pkgs/tools/misc/kcollectd/default.nix
@@ -52,5 +52,6 @@ mkDerivation rec {
     maintainers = [ maintainers.symphorien ];
     license = [ lib.licenses.gpl3Plus ];
     platforms = lib.platforms.linux;
+    mainProgram = "kcollectd";
   };
 }
diff --git a/pkgs/tools/misc/keychain/default.nix b/pkgs/tools/misc/keychain/default.nix
index dacffc30a2d4b..edb0bc34e776b 100644
--- a/pkgs/tools/misc/keychain/default.nix
+++ b/pkgs/tools/misc/keychain/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sigma ];
+    mainProgram = "keychain";
   };
 }
diff --git a/pkgs/tools/misc/keymapviz/default.nix b/pkgs/tools/misc/keymapviz/default.nix
index b02bb0a00fefb..6ed68a43b31f2 100644
--- a/pkgs/tools/misc/keymapviz/default.nix
+++ b/pkgs/tools/misc/keymapviz/default.nix
@@ -18,5 +18,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/yskoht/keymapviz";
     license = licenses.mit;
     maintainers = with maintainers; [ lom ];
+    mainProgram = "keymapviz";
   };
 }
diff --git a/pkgs/tools/misc/kicli/default.nix b/pkgs/tools/misc/kicli/default.nix
index 76516f4e4ac31..61eb8fe28ae60 100644
--- a/pkgs/tools/misc/kicli/default.nix
+++ b/pkgs/tools/misc/kicli/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ poelzi ];
     platforms = platforms.all;
+    mainProgram = "kicli";
   };
 }
diff --git a/pkgs/tools/misc/killport/default.nix b/pkgs/tools/misc/killport/default.nix
index 714beb78dccd4..fa906506fff1e 100644
--- a/pkgs/tools/misc/killport/default.nix
+++ b/pkgs/tools/misc/killport/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jkfran/killport";
     license = licenses.mit;
     maintainers = with maintainers; [ sno2wman ];
+    mainProgram = "killport";
   };
 }
diff --git a/pkgs/tools/misc/kitty-img/default.nix b/pkgs/tools/misc/kitty-img/default.nix
index 75a2b81d7d752..c47c4e6fc80de 100644
--- a/pkgs/tools/misc/kitty-img/default.nix
+++ b/pkgs/tools/misc/kitty-img/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://git.sr.ht/~zethra/kitty-img/refs/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gaykitty ];
+    mainProgram = "kitty-img";
   };
 }
diff --git a/pkgs/tools/misc/krapslog/default.nix b/pkgs/tools/misc/krapslog/default.nix
index 6ac7233d9d1f6..909d047f834af 100644
--- a/pkgs/tools/misc/krapslog/default.nix
+++ b/pkgs/tools/misc/krapslog/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/acj/krapslog-rs";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ yanganto ];
+    mainProgram = "krapslog";
   };
 }
diff --git a/pkgs/tools/misc/kronometer/default.nix b/pkgs/tools/misc/kronometer/default.nix
index 828f0d80c11c4..06fafedf42ef4 100644
--- a/pkgs/tools/misc/kronometer/default.nix
+++ b/pkgs/tools/misc/kronometer/default.nix
@@ -18,6 +18,7 @@ mkDerivation rec {
     description = "A stopwatch application";
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "kronometer";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [ kconfig kcrash kinit ];
diff --git a/pkgs/tools/misc/ksnip/default.nix b/pkgs/tools/misc/ksnip/default.nix
index bae675b49599a..60ba06a299305 100644
--- a/pkgs/tools/misc/ksnip/default.nix
+++ b/pkgs/tools/misc/ksnip/default.nix
@@ -73,5 +73,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ x3ro ];
     platforms = platforms.linux;
+    mainProgram = "ksnip";
   };
 }
diff --git a/pkgs/tools/misc/kt/default.nix b/pkgs/tools/misc/kt/default.nix
index af837ee3cebb0..2e0bfbc1b1021 100644
--- a/pkgs/tools/misc/kt/default.nix
+++ b/pkgs/tools/misc/kt/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ utdemir ];
     platforms = with platforms; unix;
     license = licenses.mit;
+    mainProgram = "kt";
   };
 }
diff --git a/pkgs/tools/misc/lavat/default.nix b/pkgs/tools/misc/lavat/default.nix
index f63bfdffa3357..f582157777b7c 100644
--- a/pkgs/tools/misc/lavat/default.nix
+++ b/pkgs/tools/misc/lavat/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     homepage = "https://github.com/AngelJumbo/lavat";
     platforms = platforms.all;
+    mainProgram = "lavat";
   };
 }
diff --git a/pkgs/tools/misc/lazycli/default.nix b/pkgs/tools/misc/lazycli/default.nix
index d3ef8192b38b5..70b5f345690ee 100644
--- a/pkgs/tools/misc/lazycli/default.nix
+++ b/pkgs/tools/misc/lazycli/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jesseduffield/lazycli";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lazycli";
   };
 }
diff --git a/pkgs/tools/misc/lazydocker/default.nix b/pkgs/tools/misc/lazydocker/default.nix
index 353402658db92..59a6ad16ce9d5 100644
--- a/pkgs/tools/misc/lazydocker/default.nix
+++ b/pkgs/tools/misc/lazydocker/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     homepage = "https://github.com/jesseduffield/lazydocker";
     license = licenses.mit;
     maintainers = with maintainers; [ das-g Br1ght0ne ];
+    mainProgram = "lazydocker";
   };
 }
diff --git a/pkgs/tools/misc/ldapvi/default.nix b/pkgs/tools/misc/ldapvi/default.nix
index 2b9ba694d3f62..4be3b9e9024c3 100644
--- a/pkgs/tools/misc/ldapvi/default.nix
+++ b/pkgs/tools/misc/ldapvi/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
     platforms = lib.platforms.linux;
+    mainProgram = "ldapvi";
   };
 }
diff --git a/pkgs/tools/misc/ldmtool/default.nix b/pkgs/tools/misc/ldmtool/default.nix
index 51e3a77d8d68d..6a1527ea8fe2e 100644
--- a/pkgs/tools/misc/ldmtool/default.nix
+++ b/pkgs/tools/misc/ldmtool/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ jensbin ];
     license = licenses.gpl3;
     platforms = platforms.linux;
+    mainProgram = "ldmtool";
   };
 }
diff --git a/pkgs/tools/misc/leanify/default.nix b/pkgs/tools/misc/leanify/default.nix
index bcb936694fd74..8a6cfbe338272 100644
--- a/pkgs/tools/misc/leanify/default.nix
+++ b/pkgs/tools/misc/leanify/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.mynacol ];
     platforms = platforms.all;
+    mainProgram = "leanify";
   };
 }
diff --git a/pkgs/tools/misc/ledit/default.nix b/pkgs/tools/misc/ledit/default.nix
index 01810ceaf2f4c..e6470ea3fb8c2 100644
--- a/pkgs/tools/misc/ledit/default.nix
+++ b/pkgs/tools/misc/ledit/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation {
     description = "A line editor, allowing to use shell commands with control characters like in emacs";
     license = licenses.bsd3;
     maintainers = [ maintainers.delta ];
+    mainProgram = "ledit";
   };
 }
diff --git a/pkgs/tools/misc/lemmeknow/default.nix b/pkgs/tools/misc/lemmeknow/default.nix
index f18b741d11497..aa5c3786831a8 100644
--- a/pkgs/tools/misc/lemmeknow/default.nix
+++ b/pkgs/tools/misc/lemmeknow/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/swanandx/lemmeknow/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda Br1ght0ne ];
+    mainProgram = "lemmeknow";
   };
 }
diff --git a/pkgs/tools/misc/lemmy-help/default.nix b/pkgs/tools/misc/lemmy-help/default.nix
index 7cb5e2ddfd234..8c0f7110226e5 100644
--- a/pkgs/tools/misc/lemmy-help/default.nix
+++ b/pkgs/tools/misc/lemmy-help/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/numToStr/lemmy-help/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lemmy-help";
   };
 }
diff --git a/pkgs/tools/misc/lerpn/default.nix b/pkgs/tools/misc/lerpn/default.nix
index 24ada72baa555..8e35a5b0b1079 100644
--- a/pkgs/tools/misc/lerpn/default.nix
+++ b/pkgs/tools/misc/lerpn/default.nix
@@ -29,5 +29,6 @@ python3.pkgs.buildPythonApplication {
     description = "Curses RPN calculator written in straight Python";
     maintainers = with maintainers; [ ckie ];
     license = licenses.gpl3Plus;
+    mainProgram = "lerpn";
   };
 }
diff --git a/pkgs/tools/misc/libgen-cli/default.nix b/pkgs/tools/misc/libgen-cli/default.nix
index eb01d43344752..5ef65e1370361 100644
--- a/pkgs/tools/misc/libgen-cli/default.nix
+++ b/pkgs/tools/misc/libgen-cli/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ zaninime ];
+    mainProgram = "libgen-cli";
   };
 }
diff --git a/pkgs/tools/misc/librespeed-cli/default.nix b/pkgs/tools/misc/librespeed-cli/default.nix
index 175deef985e30..8751d9ab43d4d 100644
--- a/pkgs/tools/misc/librespeed-cli/default.nix
+++ b/pkgs/tools/misc/librespeed-cli/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/librespeed/speedtest-cli";
     license = with licenses; [ lgpl3Only ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "speedtest-cli";
   };
 }
diff --git a/pkgs/tools/misc/lice/default.nix b/pkgs/tools/misc/lice/default.nix
index 59b2cef38ad0e..f873907c51efd 100644
--- a/pkgs/tools/misc/lice/default.nix
+++ b/pkgs/tools/misc/lice/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ swflint ];
     platforms = platforms.unix;
+    mainProgram = "lice";
   };
 
 }
diff --git a/pkgs/tools/misc/license-generator/default.nix b/pkgs/tools/misc/license-generator/default.nix
index 5662b356f34eb..2aa2235e7c3cc 100644
--- a/pkgs/tools/misc/license-generator/default.nix
+++ b/pkgs/tools/misc/license-generator/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/azu/license-generator";
     license = licenses.mit;
     maintainers = with maintainers; [ loicreynier ];
+    mainProgram = "license-generator";
   };
 }
diff --git a/pkgs/tools/misc/lighthouse-steamvr/default.nix b/pkgs/tools/misc/lighthouse-steamvr/default.nix
index 5328c14cdbfe5..4ddd33ff18722 100644
--- a/pkgs/tools/misc/lighthouse-steamvr/default.nix
+++ b/pkgs/tools/misc/lighthouse-steamvr/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ShayBox/Lighthouse";
     license = licenses.mit;
     maintainers = with maintainers; [ expipiplus1 bddvlpr ];
+    mainProgram = "lighthouse";
   };
 }
diff --git a/pkgs/tools/misc/limitcpu/default.nix b/pkgs/tools/misc/limitcpu/default.nix
index e9649b4be6594..830eed9d94ae3 100644
--- a/pkgs/tools/misc/limitcpu/default.nix
+++ b/pkgs/tools/misc/limitcpu/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux ++ freebsd;
     license = licenses.gpl2;
     maintainers = [maintainers.rycee];
+    mainProgram = "cpulimit";
   };
 }
diff --git a/pkgs/tools/misc/lineselect/default.nix b/pkgs/tools/misc/lineselect/default.nix
index ff3aeedcf93d9..a99908b2e70ef 100644
--- a/pkgs/tools/misc/lineselect/default.nix
+++ b/pkgs/tools/misc/lineselect/default.nix
@@ -33,5 +33,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/chfritz/lineselect";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lineselect";
   };
 }
diff --git a/pkgs/tools/misc/lipl/default.nix b/pkgs/tools/misc/lipl/default.nix
index 2ce54451bb8db..1f6b8437af301 100644
--- a/pkgs/tools/misc/lipl/default.nix
+++ b/pkgs/tools/misc/lipl/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/yxdunc/lipl";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lipl";
   };
 }
diff --git a/pkgs/tools/misc/livedl/default.nix b/pkgs/tools/misc/livedl/default.nix
index f5c68be68d604..6db5006959339 100644
--- a/pkgs/tools/misc/livedl/default.nix
+++ b/pkgs/tools/misc/livedl/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ wakira ];
     platforms = platforms.linux ++ platforms.darwin;
     broken = stdenv.isDarwin; # build fails with go > 1.17
+    mainProgram = "livedl";
   };
 }
diff --git a/pkgs/tools/misc/lnav/default.nix b/pkgs/tools/misc/lnav/default.nix
index 5f116711aa800..ffaea930b5d33 100644
--- a/pkgs/tools/misc/lnav/default.nix
+++ b/pkgs/tools/misc/lnav/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ dochang ];
     platforms = platforms.unix;
+    mainProgram = "lnav";
   };
 
 }
diff --git a/pkgs/tools/misc/lnch/default.nix b/pkgs/tools/misc/lnch/default.nix
index 70d52d2ea8bd5..30759303efbd6 100644
--- a/pkgs/tools/misc/lnch/default.nix
+++ b/pkgs/tools/misc/lnch/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/oem/lnch";
     description = "Launches a process and moves it out of the process group";
     license = licenses.mit;
+    mainProgram = "lnch";
   };
 }
diff --git a/pkgs/tools/misc/loadlibrary/default.nix b/pkgs/tools/misc/loadlibrary/default.nix
index a299a85b6b822..f919facf21b42 100644
--- a/pkgs/tools/misc/loadlibrary/default.nix
+++ b/pkgs/tools/misc/loadlibrary/default.nix
@@ -27,5 +27,6 @@ stdenv_32bit.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = [ maintainers.eleanor ];
     license = licenses.gpl2;
+    mainProgram = "mpclient";
   };
 }
diff --git a/pkgs/tools/misc/locate-dominating-file/default.nix b/pkgs/tools/misc/locate-dominating-file/default.nix
index 7e0d0664b563e..6d599440a8e3a 100644
--- a/pkgs/tools/misc/locate-dominating-file/default.nix
+++ b/pkgs/tools/misc/locate-dominating-file/default.nix
@@ -63,5 +63,6 @@ resholve.mkDerivation {
     license = licenses.mit;
     maintainers = [ maintainers.roman ];
     platforms = platforms.all;
+    mainProgram = "locate-dominating-file";
   };
 }
diff --git a/pkgs/tools/misc/logtop/default.nix b/pkgs/tools/misc/logtop/default.nix
index 0aa99fd18aa75..ff0b3cdac0003 100644
--- a/pkgs/tools/misc/logtop/default.nix
+++ b/pkgs/tools/misc/logtop/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/JulienPalard/logtop";
     platforms = platforms.unix;
     maintainers = [ maintainers.starcraft66 ];
+    mainProgram = "logtop";
   };
 }
diff --git a/pkgs/tools/misc/lolcat/default.nix b/pkgs/tools/misc/lolcat/default.nix
index f62be23108eb6..a10c81416053d 100644
--- a/pkgs/tools/misc/lolcat/default.nix
+++ b/pkgs/tools/misc/lolcat/default.nix
@@ -12,5 +12,6 @@ bundlerApp {
     homepage    = "https://github.com/busyloop/lolcat";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ StillerHarpo manveru nicknovitski ];
+    mainProgram = "lolcat";
   };
 }
diff --git a/pkgs/tools/misc/lorri/default.nix b/pkgs/tools/misc/lorri/default.nix
index aabc9d0e773fa..a2cd0ef600d15 100644
--- a/pkgs/tools/misc/lorri/default.nix
+++ b/pkgs/tools/misc/lorri/default.nix
@@ -68,5 +68,6 @@ in (rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/target/lorri";
     license = licenses.asl20;
     maintainers = with maintainers; [ grahamc Profpatsch ];
+    mainProgram = "lorri";
   };
 })
diff --git a/pkgs/tools/misc/lottieconverter/default.nix b/pkgs/tools/misc/lottieconverter/default.nix
index e7ee6e9b74f2e..557ac293aaa26 100644
--- a/pkgs/tools/misc/lottieconverter/default.nix
+++ b/pkgs/tools/misc/lottieconverter/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = with maintainers; [ CRTified nickcao ];
+    mainProgram = "lottieconverter";
   };
 })
diff --git a/pkgs/tools/misc/lsd/default.nix b/pkgs/tools/misc/lsd/default.nix
index 83d7580a7eed7..99dee32424fa9 100644
--- a/pkgs/tools/misc/lsd/default.nix
+++ b/pkgs/tools/misc/lsd/default.nix
@@ -48,5 +48,6 @@ rustPlatform.buildRustPackage rec {
     description = "The next gen ls command";
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam zowoq SuperSandro2000 ];
+    mainProgram = "lsd";
   };
 }
diff --git a/pkgs/tools/misc/ltunify/default.nix b/pkgs/tools/misc/ltunify/default.nix
index df425162d8479..b85e3da4a5c0d 100644
--- a/pkgs/tools/misc/ltunify/default.nix
+++ b/pkgs/tools/misc/ltunify/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.linux;
+    mainProgram = "ltunify";
   };
 }
diff --git a/pkgs/tools/misc/lwc/default.nix b/pkgs/tools/misc/lwc/default.nix
index f4c2e57eef488..77e6d5033f31e 100644
--- a/pkgs/tools/misc/lwc/default.nix
+++ b/pkgs/tools/misc/lwc/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/timdp/lwc";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lwc";
   };
 }
diff --git a/pkgs/tools/misc/macchina/default.nix b/pkgs/tools/misc/macchina/default.nix
index 0bde6b5baf547..3da4d9b07fbb3 100644
--- a/pkgs/tools/misc/macchina/default.nix
+++ b/pkgs/tools/misc/macchina/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Macchina-CLI/macchina/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ _414owen figsoda ];
+    mainProgram = "macchina";
   };
 }
diff --git a/pkgs/tools/misc/mailman-rss/default.nix b/pkgs/tools/misc/mailman-rss/default.nix
index 93a3d1e16ac20..d71ee8795528c 100644
--- a/pkgs/tools/misc/mailman-rss/default.nix
+++ b/pkgs/tools/misc/mailman-rss/default.nix
@@ -21,5 +21,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/kyamagu/mailman-rss";
     license = licenses.mit;
     maintainers = with maintainers; [ samueldr ];
+    mainProgram = "mailman-rss";
   };
 }
diff --git a/pkgs/tools/misc/makebootfat/default.nix b/pkgs/tools/misc/makebootfat/default.nix
index d55b5727d00cb..b2e93bb140ad6 100644
--- a/pkgs/tools/misc/makebootfat/default.nix
+++ b/pkgs/tools/misc/makebootfat/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.ehmry ];
     platforms = platforms.linux;
+    mainProgram = "makebootfat";
   };
 }
diff --git a/pkgs/tools/misc/mandown/default.nix b/pkgs/tools/misc/mandown/default.nix
index 4851c764d0eb0..308605e1172fe 100644
--- a/pkgs/tools/misc/mandown/default.nix
+++ b/pkgs/tools/misc/mandown/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/kornelski/mandown";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ ];
+    mainProgram = "mandown";
   };
 }
diff --git a/pkgs/tools/misc/manga-cli/default.nix b/pkgs/tools/misc/manga-cli/default.nix
index 3f57b529e51ad..65d45cf60e3c0 100644
--- a/pkgs/tools/misc/manga-cli/default.nix
+++ b/pkgs/tools/misc/manga-cli/default.nix
@@ -35,5 +35,6 @@ stdenvNoCC.mkDerivation {
     description = "Bash script for reading mangas via the terminal by scraping manganato";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ baitinq ];
+    mainProgram = "manga-cli";
   };
 }
diff --git a/pkgs/tools/misc/mapcidr/default.nix b/pkgs/tools/misc/mapcidr/default.nix
index b998684d2a51f..6bb2f43677b66 100644
--- a/pkgs/tools/misc/mapcidr/default.nix
+++ b/pkgs/tools/misc/mapcidr/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     changelog = "https://github.com/projectdiscovery/mapcidr/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ hanemile ];
+    mainProgram = "mapcidr";
   };
 }
diff --git a/pkgs/tools/misc/markdown-anki-decks/default.nix b/pkgs/tools/misc/markdown-anki-decks/default.nix
index 17e3bf860fcab..082bdf5a5f98a 100644
--- a/pkgs/tools/misc/markdown-anki-decks/default.nix
+++ b/pkgs/tools/misc/markdown-anki-decks/default.nix
@@ -43,5 +43,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "mdankideck";
   };
 }
diff --git a/pkgs/tools/misc/marlin-calc/default.nix b/pkgs/tools/misc/marlin-calc/default.nix
index 38a4f4ffb3589..dc8ff42210099 100644
--- a/pkgs/tools/misc/marlin-calc/default.nix
+++ b/pkgs/tools/misc/marlin-calc/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ gebner ];
     platforms = platforms.unix;
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/marlin-calc.x86_64-darwin
+    mainProgram = "marlin-calc";
   };
 }
diff --git a/pkgs/tools/misc/massren/default.nix b/pkgs/tools/misc/massren/default.nix
index 885ab1b0176a5..4ca386c1374a7 100644
--- a/pkgs/tools/misc/massren/default.nix
+++ b/pkgs/tools/misc/massren/default.nix
@@ -40,5 +40,6 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://github.com/laurent22/massren";
     maintainers = with maintainers; [ andrew-d ];
+    mainProgram = "massren";
   };
 }
diff --git a/pkgs/tools/misc/mastotool/default.nix b/pkgs/tools/misc/mastotool/default.nix
index 3fb0c0034c351..a75f97c4a6ece 100644
--- a/pkgs/tools/misc/mastotool/default.nix
+++ b/pkgs/tools/misc/mastotool/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     changelog = "https://github.com/muesli/mastotool/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "mastotool";
   };
 }
diff --git a/pkgs/tools/misc/mathpix-snipping-tool/default.nix b/pkgs/tools/misc/mathpix-snipping-tool/default.nix
index f6015f3928d6c..c5b5745ceb33b 100644
--- a/pkgs/tools/misc/mathpix-snipping-tool/default.nix
+++ b/pkgs/tools/misc/mathpix-snipping-tool/default.nix
@@ -27,5 +27,6 @@ in appimageTools.wrapType2 {
     license = licenses.unfree;
     maintainers = [ maintainers.hiro98 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "mathpix-snipping-tool";
   };
 }
diff --git a/pkgs/tools/misc/mbuffer/default.nix b/pkgs/tools/misc/mbuffer/default.nix
index 3e23d042f916a..ec4157fb37cad 100644
--- a/pkgs/tools/misc/mbuffer/default.nix
+++ b/pkgs/tools/misc/mbuffer/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ tokudan ];
     platforms = platforms.linux; # Maybe other non-darwin Unix
+    mainProgram = "mbuffer";
   };
 }
diff --git a/pkgs/tools/misc/mcfly/default.nix b/pkgs/tools/misc/mcfly/default.nix
index 179dbe1dec3c6..127dd142a9f1a 100644
--- a/pkgs/tools/misc/mcfly/default.nix
+++ b/pkgs/tools/misc/mcfly/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/cantino/mcfly/raw/v${version}/CHANGELOG.txt";
     license = licenses.mit;
     maintainers = [ maintainers.melkor333 ];
+    mainProgram = "mcfly";
   };
 }
diff --git a/pkgs/tools/misc/mdr/default.nix b/pkgs/tools/misc/mdr/default.nix
index 13af7192cf502..b33c51c99ca04 100644
--- a/pkgs/tools/misc/mdr/default.nix
+++ b/pkgs/tools/misc/mdr/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/MichaelMure/mdr";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "mdr";
   };
 }
diff --git a/pkgs/tools/misc/mdslides/default.nix b/pkgs/tools/misc/mdslides/default.nix
index d9265cd7863bf..f329d02237a0f 100644
--- a/pkgs/tools/misc/mdslides/default.nix
+++ b/pkgs/tools/misc/mdslides/default.nix
@@ -18,5 +18,6 @@ python3Packages.buildPythonApplication rec {
     homepage    = "https://github.com/dadoomer/markdown-slides";
     license     = licenses.mit;
     maintainers = [ maintainers.qjoly ];
+    mainProgram = "mdslides";
   };
 }
diff --git a/pkgs/tools/misc/me_cleaner/default.nix b/pkgs/tools/misc/me_cleaner/default.nix
index 4872c349b20da..ec742b11c98ef 100644
--- a/pkgs/tools/misc/me_cleaner/default.nix
+++ b/pkgs/tools/misc/me_cleaner/default.nix
@@ -20,5 +20,6 @@ python3.pkgs.buildPythonPackage rec {
     '';
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
+    mainProgram = "me_cleaner.py";
   };
 }
diff --git a/pkgs/tools/misc/megacli/default.nix b/pkgs/tools/misc/megacli/default.nix
index e2eef587f27c5..b198b030f3ea3 100644
--- a/pkgs/tools/misc/megacli/default.nix
+++ b/pkgs/tools/misc/megacli/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
+    mainProgram = "MegaCli64";
   };
 }
diff --git a/pkgs/tools/misc/melody/default.nix b/pkgs/tools/misc/melody/default.nix
index 7f3f7f29f2145..b4284a63eec15 100644
--- a/pkgs/tools/misc/melody/default.nix
+++ b/pkgs/tools/misc/melody/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/yoav-lavi/melody";
     license = licenses.mit;
     maintainers = with maintainers; [ joelkoen ];
+    mainProgram = "melody";
   };
 }
diff --git a/pkgs/tools/misc/mermaid-filter/default.nix b/pkgs/tools/misc/mermaid-filter/default.nix
index fd9d537dec4eb..60d013deb5d64 100644
--- a/pkgs/tools/misc/mermaid-filter/default.nix
+++ b/pkgs/tools/misc/mermaid-filter/default.nix
@@ -35,5 +35,6 @@ buildNpmPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ ners ];
     platforms = chromium.meta.platforms;
+    mainProgram = "mermaid-filter";
   };
 }
diff --git a/pkgs/tools/misc/mimeo/default.nix b/pkgs/tools/misc/mimeo/default.nix
index 6c221ac75798b..49a86807017f2 100644
--- a/pkgs/tools/misc/mimeo/default.nix
+++ b/pkgs/tools/misc/mimeo/default.nix
@@ -35,5 +35,6 @@ in python3Packages.buildPythonApplication {
     license = [ licenses.gpl2Only ];
     maintainers = [ maintainers.rycee ];
     platforms = platforms.unix;
+    mainProgram = "mimeo";
   };
 }
diff --git a/pkgs/tools/misc/minipro/default.nix b/pkgs/tools/misc/minipro/default.nix
index 305f2a8857908..870c4706f8820 100644
--- a/pkgs/tools/misc/minipro/default.nix
+++ b/pkgs/tools/misc/minipro/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     description = "An open source program for controlling the MiniPRO TL866xx series of chip programmers";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.bmwalters ];
+    mainProgram = "minipro";
   };
 }
diff --git a/pkgs/tools/misc/miniserve/default.nix b/pkgs/tools/misc/miniserve/default.nix
index 141d32ec80ab9..6d0d918b01990 100644
--- a/pkgs/tools/misc/miniserve/default.nix
+++ b/pkgs/tools/misc/miniserve/default.nix
@@ -56,5 +56,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/svenstaro/miniserve/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "miniserve";
   };
 }
diff --git a/pkgs/tools/misc/ministat/default.nix b/pkgs/tools/misc/ministat/default.nix
index 0cd3ff3a5c1f9..d0f88e5d1b1cb 100644
--- a/pkgs/tools/misc/ministat/default.nix
+++ b/pkgs/tools/misc/ministat/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.beerware;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.all;
+    mainProgram = "ministat";
   };
 }
diff --git a/pkgs/tools/misc/mktorrent/default.nix b/pkgs/tools/misc/mktorrent/default.nix
index 36aee2034c87b..74f449969a661 100644
--- a/pkgs/tools/misc/mktorrent/default.nix
+++ b/pkgs/tools/misc/mktorrent/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ Profpatsch winter ];
     platforms = platforms.all;
+    mainProgram = "mktorrent";
   };
 }
diff --git a/pkgs/tools/misc/mloader/default.nix b/pkgs/tools/misc/mloader/default.nix
index 9021724f8e0a0..9790b169651d7 100644
--- a/pkgs/tools/misc/mloader/default.nix
+++ b/pkgs/tools/misc/mloader/default.nix
@@ -31,5 +31,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/hurlenko/mloader";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "mloader";
   };
 }
diff --git a/pkgs/tools/misc/mmake/default.nix b/pkgs/tools/misc/mmake/default.nix
index acf571f7c5ace..32f089f1a7714 100644
--- a/pkgs/tools/misc/mmake/default.nix
+++ b/pkgs/tools/misc/mmake/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     '';
     license = licenses.mit;
     maintainers = [ maintainers.gabesoft ];
+    mainProgram = "mmake";
   };
 }
diff --git a/pkgs/tools/misc/mmctl/default.nix b/pkgs/tools/misc/mmctl/default.nix
index 7084ef0acb118..61e6712a112fc 100644
--- a/pkgs/tools/misc/mmctl/default.nix
+++ b/pkgs/tools/misc/mmctl/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://github.com/mattermost/mmctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ ppom ];
+    mainProgram = "mmctl";
   };
 }
diff --git a/pkgs/tools/misc/mnc/default.nix b/pkgs/tools/misc/mnc/default.nix
index d84ff6643aec5..b4b033c94f65f 100644
--- a/pkgs/tools/misc/mnc/default.nix
+++ b/pkgs/tools/misc/mnc/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     license = licenses.unlicense;
     platforms = platforms.linux;
     maintainers = with maintainers; [ wentam ];
+    mainProgram = "mnc";
   };
 }
diff --git a/pkgs/tools/misc/mods/default.nix b/pkgs/tools/misc/mods/default.nix
index c2700e33b8596..fda8944c330f7 100644
--- a/pkgs/tools/misc/mods/default.nix
+++ b/pkgs/tools/misc/mods/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/charmbracelet/mods";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "mods";
   };
 }
diff --git a/pkgs/tools/misc/mongodb-compass/default.nix b/pkgs/tools/misc/mongodb-compass/default.nix
index da800e0a836b5..cc5858c16fb78 100644
--- a/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/pkgs/tools/misc/mongodb-compass/default.nix
@@ -134,5 +134,6 @@ in stdenv.mkDerivation {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.sspl;
     platforms = [ "x86_64-linux" ];
+    mainProgram = "mongodb-compass";
   };
 }
diff --git a/pkgs/tools/misc/mons/default.nix b/pkgs/tools/misc/mons/default.nix
index e9bd96b41b5e8..d386c901e7c07 100644
--- a/pkgs/tools/misc/mons/default.nix
+++ b/pkgs/tools/misc/mons/default.nix
@@ -91,5 +91,6 @@ resholve.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ thiagokokada ];
     platforms = platforms.unix;
+    mainProgram = "mons";
   };
 }
diff --git a/pkgs/tools/misc/moon-phases/default.nix b/pkgs/tools/misc/moon-phases/default.nix
index c1b58c7cce1ae..f4d5a850efc9c 100644
--- a/pkgs/tools/misc/moon-phases/default.nix
+++ b/pkgs/tools/misc/moon-phases/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mirrorwitch/moon-phases";
     license = licenses.acsl14;
     maintainers = with maintainers; [ mirrorwitch ];
+    mainProgram = "moon-phases";
   };
 }
diff --git a/pkgs/tools/misc/moserial/default.nix b/pkgs/tools/misc/moserial/default.nix
index 278182ae5f06e..8ac7091e003c2 100644
--- a/pkgs/tools/misc/moserial/default.nix
+++ b/pkgs/tools/misc/moserial/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ linsui ];
     platforms = platforms.linux;
+    mainProgram = "moserial";
   };
 }
diff --git a/pkgs/tools/misc/most/default.nix b/pkgs/tools/misc/most/default.nix
index 2073e066ae73e..2ec394cd250d1 100644
--- a/pkgs/tools/misc/most/default.nix
+++ b/pkgs/tools/misc/most/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.jedsoft.org/most/index.html";
     license = licenses.gpl2;
     platforms = platforms.unix;
+    mainProgram = "most";
   };
 }
diff --git a/pkgs/tools/misc/mpdscribble/default.nix b/pkgs/tools/misc/mpdscribble/default.nix
index 46bf31ed667ed..335dedf12fe21 100644
--- a/pkgs/tools/misc/mpdscribble/default.nix
+++ b/pkgs/tools/misc/mpdscribble/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.sohalt ];
     platforms = platforms.unix;
+    mainProgram = "mpdscribble";
   };
 }
diff --git a/pkgs/tools/misc/mpremote/default.nix b/pkgs/tools/misc/mpremote/default.nix
index aa7b847dfb5a9..04b7abb353a2f 100644
--- a/pkgs/tools/misc/mpremote/default.nix
+++ b/pkgs/tools/misc/mpremote/default.nix
@@ -39,5 +39,6 @@ buildPythonApplication rec {
     platforms = platforms.unix;
     license = licenses.mit;
     maintainers = with maintainers; [ _999eagle ];
+    mainProgram = "mpremote";
   };
 }
diff --git a/pkgs/tools/misc/mprime/default.nix b/pkgs/tools/misc/mprime/default.nix
index 159159ce902aa..e55f8ca50fe0b 100644
--- a/pkgs/tools/misc/mprime/default.nix
+++ b/pkgs/tools/misc/mprime/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     # Untested on linux-32 and osx. Works in theory.
     platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
+    mainProgram = "mprime";
   };
 }
diff --git a/pkgs/tools/misc/mprocs/default.nix b/pkgs/tools/misc/mprocs/default.nix
index 4f47476f5f51c..c42c17bd53c9a 100644
--- a/pkgs/tools/misc/mprocs/default.nix
+++ b/pkgs/tools/misc/mprocs/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/pvolok/mprocs";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage thehedgeh0g ];
+    mainProgram = "mprocs";
   };
 }
diff --git a/pkgs/tools/misc/ms-sys/default.nix b/pkgs/tools/misc/ms-sys/default.nix
index c0f807318bbb0..5d736952d2328 100644
--- a/pkgs/tools/misc/ms-sys/default.nix
+++ b/pkgs/tools/misc/ms-sys/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     homepage = "https://ms-sys.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = with platforms; linux;
+    mainProgram = "ms-sys";
   };
 }
diff --git a/pkgs/tools/misc/mslink/default.nix b/pkgs/tools/misc/mslink/default.nix
index 6db1ae3275c57..82c60ab926f0c 100644
--- a/pkgs/tools/misc/mslink/default.nix
+++ b/pkgs/tools/misc/mslink/default.nix
@@ -29,5 +29,6 @@ gccStdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mkg20001 ];
     platforms = platforms.unix;
+    mainProgram = "mslink";
   };
 }
diff --git a/pkgs/tools/misc/mtm/default.nix b/pkgs/tools/misc/mtm/default.nix
index c142c1f290369..ffd7eefce8ae7 100644
--- a/pkgs/tools/misc/mtm/default.nix
+++ b/pkgs/tools/misc/mtm/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "mtm";
   };
 }
diff --git a/pkgs/tools/misc/multitail/default.nix b/pkgs/tools/misc/multitail/default.nix
index 647991b412a23..3732d64dd9290 100644
--- a/pkgs/tools/misc/multitail/default.nix
+++ b/pkgs/tools/misc/multitail/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ matthiasbeyer ];
     platforms = lib.platforms.unix;
     license = lib.licenses.asl20;
+    mainProgram = "multitail";
   };
 }
diff --git a/pkgs/tools/misc/multitime/default.nix b/pkgs/tools/misc/multitime/default.nix
index 015f50fa57fa7..e6f6280abab1a 100644
--- a/pkgs/tools/misc/multitime/default.nix
+++ b/pkgs/tools/misc/multitime/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     homepage = "https://tratt.net/laurie/src/multitime/";
     platforms = lib.platforms.unix;
+    mainProgram = "multitime";
   };
 }
diff --git a/pkgs/tools/misc/mutagen-compose/default.nix b/pkgs/tools/misc/mutagen-compose/default.nix
index 5b379b2773f42..a98f8c770bb14 100644
--- a/pkgs/tools/misc/mutagen-compose/default.nix
+++ b/pkgs/tools/misc/mutagen-compose/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     changelog = "https://github.com/mutagen-io/mutagen-compose/releases/tag/v${version}";
     maintainers = [ maintainers.matthewpi ];
     license = licenses.mit;
+    mainProgram = "mutagen-compose";
   };
 }
diff --git a/pkgs/tools/misc/mvebu64boot/default.nix b/pkgs/tools/misc/mvebu64boot/default.nix
index c2bb63186c3f0..0c682cebd5e66 100644
--- a/pkgs/tools/misc/mvebu64boot/default.nix
+++ b/pkgs/tools/misc/mvebu64boot/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lukegb ];
     platforms = platforms.all;
+    mainProgram = "mvebu64boot";
   };
 }
diff --git a/pkgs/tools/misc/mysqltuner/default.nix b/pkgs/tools/misc/mysqltuner/default.nix
index 61dba7569867d..f13b455e523bf 100644
--- a/pkgs/tools/misc/mysqltuner/default.nix
+++ b/pkgs/tools/misc/mysqltuner/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/major/MySQLTuner-perl";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ peterhoeg shamilton ];
+    mainProgram = "mysqltuner";
   };
 }
diff --git a/pkgs/tools/misc/natls/default.nix b/pkgs/tools/misc/natls/default.nix
index 368291f60d9a7..205905224f838 100644
--- a/pkgs/tools/misc/natls/default.nix
+++ b/pkgs/tools/misc/natls/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/willdoescode/nat";
     license = licenses.mit;
     maintainers = with maintainers; [ msfjarvis ];
+    mainProgram = "natls";
   };
 }
diff --git a/pkgs/tools/misc/nb/default.nix b/pkgs/tools/misc/nb/default.nix
index 79796255a8431..56513d35c7791 100644
--- a/pkgs/tools/misc/nb/default.nix
+++ b/pkgs/tools/misc/nb/default.nix
@@ -63,5 +63,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Plus;
     maintainers = [ maintainers.toonn ];
     platforms = platforms.all;
+    mainProgram = "nb";
   };
 }
diff --git a/pkgs/tools/misc/nbench/default.nix b/pkgs/tools/misc/nbench/default.nix
index 0ce1d66cf2142..f1af32cc0e3f5 100644
--- a/pkgs/tools/misc/nbench/default.nix
+++ b/pkgs/tools/misc/nbench/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     description = "A synthetic computing benchmark program";
     platforms = platforms.unix;
     maintainers = with lib.maintainers; [ bennofs ];
+    mainProgram = "nbench";
   };
 }
diff --git a/pkgs/tools/misc/nbqa/default.nix b/pkgs/tools/misc/nbqa/default.nix
index cc988a02bc060..dec7eb1aa1136 100644
--- a/pkgs/tools/misc/nbqa/default.nix
+++ b/pkgs/tools/misc/nbqa/default.nix
@@ -92,5 +92,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Run ruff, isort, pyupgrade, mypy, pylint, flake8, black, blacken-docs, and more on Jupyter Notebooks";
     license = licenses.mit;
     maintainers = with maintainers; [ l0b0 ];
+    mainProgram = "nbqa";
   };
 }
diff --git a/pkgs/tools/misc/nginx-config-formatter/default.nix b/pkgs/tools/misc/nginx-config-formatter/default.nix
index 9d5f9c445b49d..edfe912f39835 100644
--- a/pkgs/tools/misc/nginx-config-formatter/default.nix
+++ b/pkgs/tools/misc/nginx-config-formatter/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ Baughn ];
     license = licenses.asl20;
     homepage = "https://github.com/slomkowski/nginx-config-formatter";
+    mainProgram = "nginxfmt";
   };
 }
diff --git a/pkgs/tools/misc/nitch/default.nix b/pkgs/tools/misc/nitch/default.nix
index a050b4133e306..a15542b5ade1a 100644
--- a/pkgs/tools/misc/nitch/default.nix
+++ b/pkgs/tools/misc/nitch/default.nix
@@ -27,5 +27,6 @@ nimPackages.buildNimPackage rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ michaelBelsanti ];
+    mainProgram = "nitch";
   };
 }
diff --git a/pkgs/tools/misc/nomino/default.nix b/pkgs/tools/misc/nomino/default.nix
index 2ff9aac62fb59..e4b7acfa8883e 100644
--- a/pkgs/tools/misc/nomino/default.nix
+++ b/pkgs/tools/misc/nomino/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/yaa110/nomino/releases/tag/${src.rev}";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "nomino";
   };
 }
diff --git a/pkgs/tools/misc/noteshrink/default.nix b/pkgs/tools/misc/noteshrink/default.nix
index 67c49c3ad0d5c..4c76c332645fa 100644
--- a/pkgs/tools/misc/noteshrink/default.nix
+++ b/pkgs/tools/misc/noteshrink/default.nix
@@ -20,5 +20,6 @@ buildPythonApplication rec {
     homepage    = "https://mzucker.github.io/2016/09/20/noteshrink.html";
     license     = licenses.mit;
     maintainers = with maintainers; [ rnhmjoj ];
+    mainProgram = "noteshrink";
   };
 }
diff --git a/pkgs/tools/misc/noti/default.nix b/pkgs/tools/misc/noti/default.nix
index 40c060b631551..82d3dd4c2ef42 100644
--- a/pkgs/tools/misc/noti/default.nix
+++ b/pkgs/tools/misc/noti/default.nix
@@ -48,5 +48,6 @@ buildGoModule rec {
     homepage = "https://github.com/variadico/noti";
     license = licenses.mit;
     maintainers = with maintainers; [ stites marsam ];
+    mainProgram = "noti";
   };
 }
diff --git a/pkgs/tools/misc/notify/default.nix b/pkgs/tools/misc/notify/default.nix
index 09f1d238fbb1b..be7c6daf8e471 100644
--- a/pkgs/tools/misc/notify/default.nix
+++ b/pkgs/tools/misc/notify/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/projectdiscovery/notify";
     license = licenses.mit;
     maintainers = with maintainers; [ hanemile ];
+    mainProgram = "notify";
   };
 }
diff --git a/pkgs/tools/misc/ntfy/default.nix b/pkgs/tools/misc/ntfy/default.nix
index 8e00ef627691e..cb81d49e29d13 100644
--- a/pkgs/tools/misc/ntfy/default.nix
+++ b/pkgs/tools/misc/ntfy/default.nix
@@ -98,5 +98,6 @@ in python.pkgs.buildPythonApplication rec {
     homepage = "http://ntfy.rtfd.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ kamilchm ];
+    mainProgram = "ntfy";
   };
 }
diff --git a/pkgs/tools/misc/nux/default.nix b/pkgs/tools/misc/nux/default.nix
index a852f830937ba..89aea5e9dd9d9 100644
--- a/pkgs/tools/misc/nux/default.nix
+++ b/pkgs/tools/misc/nux/default.nix
@@ -34,5 +34,6 @@ rustPlatform.buildRustPackage {
     description = "A wrapper over the nix cli";
     license = with lib.licenses; [ gpl3Plus ];
     maintainers = with lib.maintainers; [ ];
+    mainProgram = "nux";
   };
 }
diff --git a/pkgs/tools/misc/nvfancontrol/default.nix b/pkgs/tools/misc/nvfancontrol/default.nix
index 2bfdb9896e4a9..1b2bebfce8955 100644
--- a/pkgs/tools/misc/nvfancontrol/default.nix
+++ b/pkgs/tools/misc/nvfancontrol/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ gpl3Only ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ devins2518 ];
+    mainProgram = "nvfancontrol";
   };
 }
diff --git a/pkgs/tools/misc/nvimpager/default.nix b/pkgs/tools/misc/nvimpager/default.nix
index 1aee06ddf5646..f2679259fa1f6 100644
--- a/pkgs/tools/misc/nvimpager/default.nix
+++ b/pkgs/tools/misc/nvimpager/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = [ maintainers.lucc ];
+    mainProgram = "nvimpager";
   };
 }
diff --git a/pkgs/tools/misc/nyancat/default.nix b/pkgs/tools/misc/nyancat/default.nix
index 3aca7cc1729cc..89acccd66fc1b 100644
--- a/pkgs/tools/misc/nyancat/default.nix
+++ b/pkgs/tools/misc/nyancat/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.ncsa;
     maintainers = with maintainers; [ midchildan ];
     platforms = platforms.unix;
+    mainProgram = "nyancat";
   };
 }
diff --git a/pkgs/tools/misc/ocs-url/default.nix b/pkgs/tools/misc/ocs-url/default.nix
index 564c7b81c742f..52c65d4b5b26a 100644
--- a/pkgs/tools/misc/ocs-url/default.nix
+++ b/pkgs/tools/misc/ocs-url/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ SohamG ];
     platforms = platforms.linux;
+    mainProgram = "ocs-url";
   };
 }
diff --git a/pkgs/tools/misc/octofetch/default.nix b/pkgs/tools/misc/octofetch/default.nix
index 634120d539cc7..4c4083d9555d1 100644
--- a/pkgs/tools/misc/octofetch/default.nix
+++ b/pkgs/tools/misc/octofetch/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     description = "Github user information on terminal";
     license = licenses.mit;
     maintainers = with maintainers; [ joelkoen ];
+    mainProgram = "octofetch";
   };
 }
diff --git a/pkgs/tools/misc/octosql/default.nix b/pkgs/tools/misc/octosql/default.nix
index 6f928fd61f34a..a42f80d95ff95 100644
--- a/pkgs/tools/misc/octosql/default.nix
+++ b/pkgs/tools/misc/octosql/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/cube2222/octosql";
     license = licenses.mpl20;
     maintainers = with maintainers; [ arikgrahl ];
+    mainProgram = "octosql";
   };
 }
diff --git a/pkgs/tools/misc/odyssey/default.nix b/pkgs/tools/misc/odyssey/default.nix
index 086c1eea58a85..2f3ccb0e154b7 100644
--- a/pkgs/tools/misc/odyssey/default.nix
+++ b/pkgs/tools/misc/odyssey/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "odyssey";
   };
 }
diff --git a/pkgs/tools/misc/ondir/default.nix b/pkgs/tools/misc/ondir/default.nix
index 2e8605c33abc3..1b32f474fc04e 100644
--- a/pkgs/tools/misc/ondir/default.nix
+++ b/pkgs/tools/misc/ondir/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/alecthomas/ondir/";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.michaelCTS ];
+    mainProgram = "ondir";
   };
 }
diff --git a/pkgs/tools/misc/onefetch/default.nix b/pkgs/tools/misc/onefetch/default.nix
index 9a1391b4614c7..3dbd384884e07 100644
--- a/pkgs/tools/misc/onefetch/default.nix
+++ b/pkgs/tools/misc/onefetch/default.nix
@@ -60,5 +60,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/o2sh/onefetch/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne figsoda kloenk ];
+    mainProgram = "onefetch";
   };
 }
diff --git a/pkgs/tools/misc/open-pdf-sign/default.nix b/pkgs/tools/misc/open-pdf-sign/default.nix
index 4a70bc2131ddd..282ad778db5f5 100644
--- a/pkgs/tools/misc/open-pdf-sign/default.nix
+++ b/pkgs/tools/misc/open-pdf-sign/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with lib.maintainers; [ drupol ];
     platforms = lib.platforms.unix;
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+    mainProgram = "open-pdf-sign";
   };
 })
diff --git a/pkgs/tools/misc/opencorsairlink/default.nix b/pkgs/tools/misc/opencorsairlink/default.nix
index ed11232065e9c..40b747f203052 100644
--- a/pkgs/tools/misc/opencorsairlink/default.nix
+++ b/pkgs/tools/misc/opencorsairlink/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ lib.maintainers.expipiplus1 ];
+    mainProgram = "OpenCorsairLink.elf";
   };
 }
diff --git a/pkgs/tools/misc/opentsdb/default.nix b/pkgs/tools/misc/opentsdb/default.nix
index 3662c9793c430..abce03cae02fa 100644
--- a/pkgs/tools/misc/opentsdb/default.nix
+++ b/pkgs/tools/misc/opentsdb/default.nix
@@ -347,5 +347,6 @@ in stdenv.mkDerivation rec {
       binaryBytecode  # maven dependencies
     ];
     maintainers = [ ];
+    mainProgram = "tsdb";
   };
 }
diff --git a/pkgs/tools/misc/org-stats/default.nix b/pkgs/tools/misc/org-stats/default.nix
index 7c79f526fb8a6..ead4f9e18d333 100644
--- a/pkgs/tools/misc/org-stats/default.nix
+++ b/pkgs/tools/misc/org-stats/default.nix
@@ -58,5 +58,6 @@ buildGoModule rec {
     changelog = "https://github.com/caarlos0/org-stats/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "org-stats";
   };
 }
diff --git a/pkgs/tools/misc/otel-cli/default.nix b/pkgs/tools/misc/otel-cli/default.nix
index 635e8ee10185f..de35952f184a1 100644
--- a/pkgs/tools/misc/otel-cli/default.nix
+++ b/pkgs/tools/misc/otel-cli/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/equinix-labs/otel-cli/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with lib.maintainers; [ emattiza urandom ];
+    mainProgram = "otel-cli";
   };
 }
diff --git a/pkgs/tools/misc/owofetch/default.nix b/pkgs/tools/misc/owofetch/default.nix
index 4b312f0cea45b..b623721ec9b2f 100644
--- a/pkgs/tools/misc/owofetch/default.nix
+++ b/pkgs/tools/misc/owofetch/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     platforms = platforms.x86_64;
     maintainers = with maintainers; [ nullishamy ];
+    mainProgram = "owofetch";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-acro/default.nix b/pkgs/tools/misc/pandoc-acro/default.nix
index d60bd10bcf69e..36bd518f5b2b9 100644
--- a/pkgs/tools/misc/pandoc-acro/default.nix
+++ b/pkgs/tools/misc/pandoc-acro/default.nix
@@ -59,5 +59,6 @@ buildPythonApplication {
     description = "Pandoc filter which manages acronyms in Pandoc flavored Markdown sources";
     license = licenses.bsd2;
     maintainers = with maintainers; [ tfc ];
+    mainProgram = "pandoc-acro";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-drawio-filter/default.nix b/pkgs/tools/misc/pandoc-drawio-filter/default.nix
index a5e8c919ce7b0..9a5ff8949ba64 100644
--- a/pkgs/tools/misc/pandoc-drawio-filter/default.nix
+++ b/pkgs/tools/misc/pandoc-drawio-filter/default.nix
@@ -48,6 +48,7 @@ let
       description = "Pandoc filter which converts draw.io diagrams to PDF";
       license = licenses.mit;
       maintainers = with maintainers; [ tfc ];
+      mainProgram = "pandoc-drawio";
     };
   };
 
diff --git a/pkgs/tools/misc/pandoc-eqnos/default.nix b/pkgs/tools/misc/pandoc-eqnos/default.nix
index d808060fc23a6..5ee4e9587d61a 100644
--- a/pkgs/tools/misc/pandoc-eqnos/default.nix
+++ b/pkgs/tools/misc/pandoc-eqnos/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-eqnos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-eqnos";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-fignos/default.nix b/pkgs/tools/misc/pandoc-fignos/default.nix
index 7ed7a8e710a70..eb8d0154ffcec 100644
--- a/pkgs/tools/misc/pandoc-fignos/default.nix
+++ b/pkgs/tools/misc/pandoc-fignos/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-fignos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-fignos";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-imagine/default.nix b/pkgs/tools/misc/pandoc-imagine/default.nix
index 67e27da960fc5..ae94c31153661 100644
--- a/pkgs/tools/misc/pandoc-imagine/default.nix
+++ b/pkgs/tools/misc/pandoc-imagine/default.nix
@@ -24,5 +24,6 @@ buildPythonApplication rec {
     '';
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ synthetica ];
+    mainProgram = "pandoc-imagine";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-include/default.nix b/pkgs/tools/misc/pandoc-include/default.nix
index 684af986b017c..a5c9ea00bfdf7 100644
--- a/pkgs/tools/misc/pandoc-include/default.nix
+++ b/pkgs/tools/misc/pandoc-include/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/DCsunset/pandoc-include";
     license = licenses.mit;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-include";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-katex/default.nix b/pkgs/tools/misc/pandoc-katex/default.nix
index fdcfef878449e..d2b9f03e51a47 100644
--- a/pkgs/tools/misc/pandoc-katex/default.nix
+++ b/pkgs/tools/misc/pandoc-katex/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/xu-cheng/pandoc-katex";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ minijackson pacien ];
+    mainProgram = "pandoc-katex";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-plantuml-filter/default.nix b/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
index cdf0ab862df49..d8c1bb2ea8a38 100644
--- a/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
+++ b/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
@@ -22,5 +22,6 @@ buildPythonApplication rec {
     description = "Pandoc filter which converts PlantUML code blocks to PlantUML images";
     license = licenses.mit;
     maintainers = with maintainers; [ cmcdragonkai ];
+    mainProgram = "pandoc-plantuml";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-secnos/default.nix b/pkgs/tools/misc/pandoc-secnos/default.nix
index 507d7df400e3f..0880214e218e3 100644
--- a/pkgs/tools/misc/pandoc-secnos/default.nix
+++ b/pkgs/tools/misc/pandoc-secnos/default.nix
@@ -35,5 +35,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-secnos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-secnos";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-tablenos/default.nix b/pkgs/tools/misc/pandoc-tablenos/default.nix
index e1fb785a7a9fc..6ee5ef65861e8 100644
--- a/pkgs/tools/misc/pandoc-tablenos/default.nix
+++ b/pkgs/tools/misc/pandoc-tablenos/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-tablenos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-tablenos";
   };
 }
diff --git a/pkgs/tools/misc/panicparse/default.nix b/pkgs/tools/misc/panicparse/default.nix
index 2736758343631..6cf97eca5a971 100644
--- a/pkgs/tools/misc/panicparse/default.nix
+++ b/pkgs/tools/misc/panicparse/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/maruel/panicparse";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "panicparse";
   };
 }
diff --git a/pkgs/tools/misc/panoply/default.nix b/pkgs/tools/misc/panoply/default.nix
index 801b3737f9b9a..5a333a38a4bcb 100644
--- a/pkgs/tools/misc/panoply/default.nix
+++ b/pkgs/tools/misc/panoply/default.nix
@@ -33,5 +33,6 @@ stdenvNoCC.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = [ maintainers.markuskowa ];
     license = licenses.unfree;  # Package does not state a license
+    mainProgram = "panoply";
   };
 }
diff --git a/pkgs/tools/misc/paperlike-go/default.nix b/pkgs/tools/misc/paperlike-go/default.nix
index 63390f427d403..6ed29433a35d6 100644
--- a/pkgs/tools/misc/paperlike-go/default.nix
+++ b/pkgs/tools/misc/paperlike-go/default.nix
@@ -24,5 +24,6 @@ buildGoModule {
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.adisbladis ];
     platforms = lib.platforms.linux;
+    mainProgram = "paperlike-cli";
   };
 }
diff --git a/pkgs/tools/misc/paps/default.nix b/pkgs/tools/misc/paps/default.nix
index 75cd8f3535cb2..ab9c9e433c68f 100644
--- a/pkgs/tools/misc/paps/default.nix
+++ b/pkgs/tools/misc/paps/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "paps";
   };
 }
diff --git a/pkgs/tools/misc/parcellite/default.nix b/pkgs/tools/misc/parcellite/default.nix
index 04fe534984ed4..d39115fcecc9a 100644
--- a/pkgs/tools/misc/parcellite/default.nix
+++ b/pkgs/tools/misc/parcellite/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/rickyrockrat/parcellite";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "parcellite";
   };
 }
diff --git a/pkgs/tools/misc/parquet-tools/default.nix b/pkgs/tools/misc/parquet-tools/default.nix
index 36a80202447f5..bd35304f3cf1d 100644
--- a/pkgs/tools/misc/parquet-tools/default.nix
+++ b/pkgs/tools/misc/parquet-tools/default.nix
@@ -70,5 +70,6 @@ buildPythonApplication rec {
     changelog = "https://github.com/ktrueda/parquet-tools/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
+    mainProgram = "parquet-tools";
   };
 }
diff --git a/pkgs/tools/misc/partition-manager/default.nix b/pkgs/tools/misc/partition-manager/default.nix
index 6fdc0e32bea61..8dde1e68bd297 100644
--- a/pkgs/tools/misc/partition-manager/default.nix
+++ b/pkgs/tools/misc/partition-manager/default.nix
@@ -99,5 +99,6 @@ mkDerivation rec {
     license = with licenses; [ cc-by-40 cc0 gpl3Plus lgpl3Plus mit ];
     homepage = "https://www.kde.org/applications/system/kdepartitionmanager/";
     maintainers = with maintainers; [ peterhoeg oxalica ];
+    mainProgram = "partitionmanager";
   };
 }
diff --git a/pkgs/tools/misc/past-time/default.nix b/pkgs/tools/misc/past-time/default.nix
index 4e551a041bdd8..cb36808ea3662 100644
--- a/pkgs/tools/misc/past-time/default.nix
+++ b/pkgs/tools/misc/past-time/default.nix
@@ -35,5 +35,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/fabaff/past-time/releases/tag/${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "past-time";
   };
 }
diff --git a/pkgs/tools/misc/pastebinit/default.nix b/pkgs/tools/misc/pastebinit/default.nix
index 079e6704c6875..461e9c9c87fce 100644
--- a/pkgs/tools/misc/pastebinit/default.nix
+++ b/pkgs/tools/misc/pastebinit/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raboof ];
     license = licenses.gpl2;
     platforms = platforms.linux ++ lib.platforms.darwin;
+    mainProgram = "pastebinit";
   };
 }
diff --git a/pkgs/tools/misc/pazi/default.nix b/pkgs/tools/misc/pazi/default.nix
index 661029cb61c45..c4c1ea18b549b 100644
--- a/pkgs/tools/misc/pazi/default.nix
+++ b/pkgs/tools/misc/pazi/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/euank/pazi";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
+    mainProgram = "pazi";
   };
 }
diff --git a/pkgs/tools/misc/pb_cli/default.nix b/pkgs/tools/misc/pb_cli/default.nix
index 48b819d5bfdd6..b884b28658385 100644
--- a/pkgs/tools/misc/pb_cli/default.nix
+++ b/pkgs/tools/misc/pb_cli/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/ptpb/pb_cli";
     maintainers = [ maintainers.ar1a ];
     license = licenses.gpl3Plus;
+    mainProgram = "pb";
   };
 }
diff --git a/pkgs/tools/misc/pcp/default.nix b/pkgs/tools/misc/pcp/default.nix
index eb73e128533e8..e9d245c8129d8 100644
--- a/pkgs/tools/misc/pcp/default.nix
+++ b/pkgs/tools/misc/pcp/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ matthewcroughan ];
     platforms = platforms.linux;
+    mainProgram = "pcp";
   };
 }
diff --git a/pkgs/tools/misc/pdd/default.nix b/pkgs/tools/misc/pdd/default.nix
index db80139098bf1..2e34e94ad0139 100644
--- a/pkgs/tools/misc/pdd/default.nix
+++ b/pkgs/tools/misc/pdd/default.nix
@@ -30,5 +30,6 @@ buildPythonApplication rec {
     '';
     maintainers = [ maintainers.infinisil ];
     license = licenses.gpl3;
+    mainProgram = "pdd";
   };
 }
diff --git a/pkgs/tools/misc/pdf-parser/default.nix b/pkgs/tools/misc/pdf-parser/default.nix
index 90c128f8ac35e..593960c4d2cf8 100644
--- a/pkgs/tools/misc/pdf-parser/default.nix
+++ b/pkgs/tools/misc/pdf-parser/default.nix
@@ -30,5 +30,6 @@ python3Packages.buildPythonApplication {
     license = licenses.publicDomain;
     maintainers = [ maintainers.lightdiscord ];
     platforms = platforms.all;
+    mainProgram = "pdf-parser.py";
   };
 }
diff --git a/pkgs/tools/misc/peep/default.nix b/pkgs/tools/misc/peep/default.nix
index 1ecad087ccfbe..301b04cbb816f 100644
--- a/pkgs/tools/misc/peep/default.nix
+++ b/pkgs/tools/misc/peep/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/ryochack/peep/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "peep";
   };
 }
diff --git a/pkgs/tools/misc/pferd/default.nix b/pkgs/tools/misc/pferd/default.nix
index 46b525cd578bc..af343a19d9697 100644
--- a/pkgs/tools/misc/pferd/default.nix
+++ b/pkgs/tools/misc/pferd/default.nix
@@ -32,5 +32,6 @@ python3Packages.buildPythonApplication rec {
     description = "Tool for downloading course-related files from ILIAS";
     license = licenses.mit;
     maintainers = with maintainers; [ _0xbe7a ];
+    mainProgram = "pferd";
   };
 }
diff --git a/pkgs/tools/misc/pfetch-rs/default.nix b/pkgs/tools/misc/pfetch-rs/default.nix
index 6291d24e23364..88f832db82a9b 100644
--- a/pkgs/tools/misc/pfetch-rs/default.nix
+++ b/pkgs/tools/misc/pfetch-rs/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Gobidev/pfetch-rs/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ gobidev ];
+    mainProgram = "pfetch";
   };
 }
diff --git a/pkgs/tools/misc/pfetch/default.nix b/pkgs/tools/misc/pfetch/default.nix
index bbecf4656e749..5f9e8bf7676a6 100644
--- a/pkgs/tools/misc/pfetch/default.nix
+++ b/pkgs/tools/misc/pfetch/default.nix
@@ -23,5 +23,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ equirosa ];
+    mainProgram = "pfetch";
   };
 }
diff --git a/pkgs/tools/misc/pfsshell/default.nix b/pkgs/tools/misc/pfsshell/default.nix
index 10cde1385bb21..24eb379adf5cd 100644
--- a/pkgs/tools/misc/pfsshell/default.nix
+++ b/pkgs/tools/misc/pfsshell/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
       afl20    # APA, PFS, and iomanX libraries which are compiled together with this package
     ];
     maintainers = with maintainers; [ makefu ];
+    mainProgram = "pfsshell";
   };
 }
diff --git a/pkgs/tools/misc/pg_flame/default.nix b/pkgs/tools/misc/pg_flame/default.nix
index f35706bfc674d..da9cc6c77d591 100644
--- a/pkgs/tools/misc/pg_flame/default.nix
+++ b/pkgs/tools/misc/pg_flame/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/mgartner/pg_flame";
     license = licenses.asl20;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "pg_flame";
   };
 }
diff --git a/pkgs/tools/misc/pg_top/default.nix b/pkgs/tools/misc/pg_top/default.nix
index 9521136977f31..0999c9456d536 100644
--- a/pkgs/tools/misc/pg_top/default.nix
+++ b/pkgs/tools/misc/pg_top/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "http://ptop.projects.postgresql.org/";
     platforms = platforms.linux;
     license = licenses.free; # see commands.c
+    mainProgram = "pg_top";
   };
 }
diff --git a/pkgs/tools/misc/pgbadger/default.nix b/pkgs/tools/misc/pgbadger/default.nix
index b335f644312ab..4054e6b20e94d 100644
--- a/pkgs/tools/misc/pgbadger/default.nix
+++ b/pkgs/tools/misc/pgbadger/default.nix
@@ -36,5 +36,6 @@ buildPerlPackage rec {
     changelog = "https://github.com/darold/pgbadger/raw/v${version}/ChangeLog";
     license = lib.licenses.postgresql;
     maintainers = lib.teams.determinatesystems.members;
+    mainProgram = "pgbadger";
   };
 }
diff --git a/pkgs/tools/misc/pgcenter/default.nix b/pkgs/tools/misc/pgcenter/default.nix
index 507beb4989523..ba962a3936656 100644
--- a/pkgs/tools/misc/pgcenter/default.nix
+++ b/pkgs/tools/misc/pgcenter/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     description = "Command-line admin tool for observing and troubleshooting PostgreSQL";
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "pgcenter";
   };
 }
diff --git a/pkgs/tools/misc/pgmetrics/default.nix b/pkgs/tools/misc/pgmetrics/default.nix
index 7a24a87ca767c..0df0070e18b97 100644
--- a/pkgs/tools/misc/pgmetrics/default.nix
+++ b/pkgs/tools/misc/pgmetrics/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     description = "Collect and display information and stats from a running PostgreSQL server";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "pgmetrics";
   };
 }
diff --git a/pkgs/tools/misc/phoronix-test-suite/default.nix b/pkgs/tools/misc/phoronix-test-suite/default.nix
index 1456cb4b142f2..cb4762c412f18 100644
--- a/pkgs/tools/misc/phoronix-test-suite/default.nix
+++ b/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ davidak ];
     license = licenses.gpl3;
     platforms = with platforms; unix;
+    mainProgram = "phoronix-test-suite";
   };
 }
diff --git a/pkgs/tools/misc/pick/default.nix b/pkgs/tools/misc/pick/default.nix
index 9a6c6881f7df5..cee77d3a15880 100644
--- a/pkgs/tools/misc/pick/default.nix
+++ b/pkgs/tools/misc/pick/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.womfoo ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "pick";
   };
 
 }
diff --git a/pkgs/tools/misc/picocom/default.nix b/pkgs/tools/misc/picocom/default.nix
index 9685c80f06e55..d8422e3679fd2 100644
--- a/pkgs/tools/misc/picocom/default.nix
+++ b/pkgs/tools/misc/picocom/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/npat-efault/picocom/";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
+    mainProgram = "picocom";
   };
 }
diff --git a/pkgs/tools/misc/pipectl/default.nix b/pkgs/tools/misc/pipectl/default.nix
index 9ce250bef78e6..f3e80655279f7 100644
--- a/pkgs/tools/misc/pipectl/default.nix
+++ b/pkgs/tools/misc/pipectl/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     description = "a simple named pipe management utility";
     maintainers = with maintainers; [ synthetica ];
+    mainProgram = "pipectl";
   };
 }
diff --git a/pkgs/tools/misc/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix
index e6ec23266d2c1..90c1e8d1e86aa 100644
--- a/pkgs/tools/misc/pipelight/default.nix
+++ b/pkgs/tools/misc/pipelight/default.nix
@@ -63,5 +63,6 @@ in stdenv.mkDerivation rec {
     description = "A wrapper for using Windows plugins in Linux browsers";
     maintainers = with lib.maintainers; [ ];
     platforms = [ "x86_64-linux" "i686-linux" ];
+    mainProgram = "pipelight-plugin";
   };
 }
diff --git a/pkgs/tools/misc/pipreqs/default.nix b/pkgs/tools/misc/pipreqs/default.nix
index 2689581b6c062..49062b3a5cb85 100644
--- a/pkgs/tools/misc/pipreqs/default.nix
+++ b/pkgs/tools/misc/pipreqs/default.nix
@@ -21,5 +21,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/bndr/pipreqs";
     license = licenses.asl20;
     maintainers = with maintainers; [ psyanticy ];
+    mainProgram = "pipreqs";
   };
 }
diff --git a/pkgs/tools/misc/pistol/default.nix b/pkgs/tools/misc/pistol/default.nix
index 22ddde837612c..79826e6f79249 100644
--- a/pkgs/tools/misc/pistol/default.nix
+++ b/pkgs/tools/misc/pistol/default.nix
@@ -42,5 +42,6 @@ buildGoModule rec {
     homepage = "https://github.com/doronbehar/pistol";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "pistol";
   };
 }
diff --git a/pkgs/tools/misc/piston-cli/default.nix b/pkgs/tools/misc/piston-cli/default.nix
index 8c78f3f7b30bc..44ec8eabc149b 100644
--- a/pkgs/tools/misc/piston-cli/default.nix
+++ b/pkgs/tools/misc/piston-cli/default.nix
@@ -33,5 +33,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/Shivansh-007/piston-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ ethancedwards8 ];
+    mainProgram = "piston";
   };
 }
diff --git a/pkgs/tools/misc/pixd/default.nix b/pkgs/tools/misc/pixd/default.nix
index 2e8f552e1a818..84ad2c92e2074 100644
--- a/pkgs/tools/misc/pixd/default.nix
+++ b/pkgs/tools/misc/pixd/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.FireyFly ];
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "pixd";
   };
 }
diff --git a/pkgs/tools/misc/pk2cmd/default.nix b/pkgs/tools/misc/pk2cmd/default.nix
index b6678f52d7482..9b04a668dadbe 100644
--- a/pkgs/tools/misc/pk2cmd/default.nix
+++ b/pkgs/tools/misc/pk2cmd/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.microchip.com/pickit2";
     license = lib.licenses.unfree; #MicroChip-PK2
     description = "Microchip PIC programming software for the PICKit2 programmer";
+    mainProgram = "pk2cmd";
   };
 }
diff --git a/pkgs/tools/misc/pkgdiff/default.nix b/pkgs/tools/misc/pkgdiff/default.nix
index 2f68e9505edb2..45ec2df2beaf5 100644
--- a/pkgs/tools/misc/pkgdiff/default.nix
+++ b/pkgs/tools/misc/pkgdiff/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ sweber ];
     platforms = platforms.unix;
+    mainProgram = "pkgdiff";
   };
 }
diff --git a/pkgs/tools/misc/pkgtop/default.nix b/pkgs/tools/misc/pkgtop/default.nix
index 464e22724c771..acb56dd47d4b0 100644
--- a/pkgs/tools/misc/pkgtop/default.nix
+++ b/pkgs/tools/misc/pkgtop/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     changelog = "https://github.com/orhun/pkgtop/releases/tag/${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "pkgtop";
   };
 }
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index eb6cfb7ebcbe1..411b76d0205ae 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bjornfor Mogria ];
     platforms = platforms.unix;
+    mainProgram = "plantuml";
   };
 }
diff --git a/pkgs/tools/misc/pmbootstrap/default.nix b/pkgs/tools/misc/pmbootstrap/default.nix
index 763485d75585f..43a803dfa3e5f 100644
--- a/pkgs/tools/misc/pmbootstrap/default.nix
+++ b/pkgs/tools/misc/pmbootstrap/default.nix
@@ -102,5 +102,6 @@ buildPythonApplication rec {
     homepage = "https://gitlab.com/postmarketOS/pmbootstrap";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ onny ];
+    mainProgram = "pmbootstrap";
   };
 }
diff --git a/pkgs/tools/misc/pod2mdoc/default.nix b/pkgs/tools/misc/pod2mdoc/default.nix
index 4e919e2848926..eba487a57fb7d 100644
--- a/pkgs/tools/misc/pod2mdoc/default.nix
+++ b/pkgs/tools/misc/pod2mdoc/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "pod2mdoc";
   };
 }
diff --git a/pkgs/tools/misc/poop/default.nix b/pkgs/tools/misc/poop/default.nix
index fe595f76ffaa4..d3b444d9472f9 100644
--- a/pkgs/tools/misc/poop/default.nix
+++ b/pkgs/tools/misc/poop/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
     platforms = platforms.linux;
+    mainProgram = "poop";
   };
 }
diff --git a/pkgs/tools/misc/portal/default.nix b/pkgs/tools/misc/portal/default.nix
index 978d3632da1f7..3577f0f0b31a5 100644
--- a/pkgs/tools/misc/portal/default.nix
+++ b/pkgs/tools/misc/portal/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/SpatiumPortae/portal/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ tennox ];
+    mainProgram = "portal";
   };
 }
diff --git a/pkgs/tools/misc/pouf/default.nix b/pkgs/tools/misc/pouf/default.nix
index 9206e16463edf..8029d77fcbc8e 100644
--- a/pkgs/tools/misc/pouf/default.nix
+++ b/pkgs/tools/misc/pouf/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/mothsart/pouf/releases/tag/${version}";
     maintainers = with maintainers; [ mothsart ];
     license = with licenses; [ mit ];
+    mainProgram = "pouf";
   };
 }
diff --git a/pkgs/tools/misc/poweralertd/default.nix b/pkgs/tools/misc/poweralertd/default.nix
index 58d54f5707bad..677d85e18f090 100644
--- a/pkgs/tools/misc/poweralertd/default.nix
+++ b/pkgs/tools/misc/poweralertd/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ thibautmarty ];
+    mainProgram = "poweralertd";
   };
 }
diff --git a/pkgs/tools/misc/powerline-rs/default.nix b/pkgs/tools/misc/powerline-rs/default.nix
index 7222ac9be7d8c..5edde7b3653f9 100644
--- a/pkgs/tools/misc/powerline-rs/default.nix
+++ b/pkgs/tools/misc/powerline-rs/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "powerline-rs";
   };
 }
diff --git a/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix b/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix
index ebe41abb8e333..3b0fcacd4892e 100644
--- a/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix
+++ b/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix
@@ -46,5 +46,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/yuvipanda/pre-commit-hook-ensure-sops";
     maintainers = with maintainers; [ nialov ];
     license = licenses.bsd3;
+    mainProgram = "pre-commit-hook-ensure-sops";
   };
 }
diff --git a/pkgs/tools/misc/pre-commit/default.nix b/pkgs/tools/misc/pre-commit/default.nix
index ded7b3290d3c4..78042489ff9d4 100644
--- a/pkgs/tools/misc/pre-commit/default.nix
+++ b/pkgs/tools/misc/pre-commit/default.nix
@@ -181,5 +181,6 @@ buildPythonApplication rec {
     homepage = "https://pre-commit.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ borisbabic ];
+    mainProgram = "pre-commit";
   };
 }
diff --git a/pkgs/tools/misc/precice-config-visualizer/default.nix b/pkgs/tools/misc/precice-config-visualizer/default.nix
index be6e7f0a9bb61..9b6d40a0c7338 100644
--- a/pkgs/tools/misc/precice-config-visualizer/default.nix
+++ b/pkgs/tools/misc/precice-config-visualizer/default.nix
@@ -23,5 +23,6 @@ python3Packages.buildPythonApplication rec {
     description = "Small python tool for visualizing the preCICE xml configuration ";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Scriptkiddi ];
+    mainProgram = "precice-config-visualizer";
   };
 }
diff --git a/pkgs/tools/misc/present-cli/default.nix b/pkgs/tools/misc/present-cli/default.nix
index 99427833ddff3..7c1c87647a190 100644
--- a/pkgs/tools/misc/present-cli/default.nix
+++ b/pkgs/tools/misc/present-cli/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/terror/present/";
     license = licenses.cc0;
     maintainers = with maintainers; [ cameronfyfe ];
+    mainProgram = "present";
   };
 }
diff --git a/pkgs/tools/misc/pridecat/default.nix b/pkgs/tools/misc/pridecat/default.nix
index d7bf2b86d6da6..4d4ed57fc2352 100644
--- a/pkgs/tools/misc/pridecat/default.nix
+++ b/pkgs/tools/misc/pridecat/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/lunasorcery/pridecat";
     license = licenses.cc-by-nc-sa-40;
     maintainers = with maintainers; [ lunarequest ];
+    mainProgram = "pridecat";
   };
 }
diff --git a/pkgs/tools/misc/pridefetch/default.nix b/pkgs/tools/misc/pridefetch/default.nix
index 22e5c7a0afb20..dedd3b336d78a 100644
--- a/pkgs/tools/misc/pridefetch/default.nix
+++ b/pkgs/tools/misc/pridefetch/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation {
       maintainers.minion3665
     ];
     platforms = platforms.all;
+    mainProgram = "pridefetch";
   };
 }
diff --git a/pkgs/tools/misc/procyon/default.nix b/pkgs/tools/misc/procyon/default.nix
index e5ef58e3a3e19..7026ce6febfbb 100644
--- a/pkgs/tools/misc/procyon/default.nix
+++ b/pkgs/tools/misc/procyon/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mstrobel/procyon/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "procyon";
   };
 }
diff --git a/pkgs/tools/misc/profetch/default.nix b/pkgs/tools/misc/profetch/default.nix
index c113f48fd13dd..fc5f3cea4a0f6 100644
--- a/pkgs/tools/misc/profetch/default.nix
+++ b/pkgs/tools/misc/profetch/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = [ maintainers.vel ];
+    mainProgram = "profetch";
   };
 }
diff --git a/pkgs/tools/misc/progress/default.nix b/pkgs/tools/misc/progress/default.nix
index 2a8dc99260179..063d4d122acb4 100644
--- a/pkgs/tools/misc/progress/default.nix
+++ b/pkgs/tools/misc/progress/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "progress";
   };
 }
diff --git a/pkgs/tools/misc/promexplorer/default.nix b/pkgs/tools/misc/promexplorer/default.nix
index efdbbe4e6da58..3f02597bbcfff 100644
--- a/pkgs/tools/misc/promexplorer/default.nix
+++ b/pkgs/tools/misc/promexplorer/default.nix
@@ -18,5 +18,6 @@ nimPackages.buildNimPackage rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ marcusramberg ];
+    mainProgram = "promexplorer";
   };
 }
diff --git a/pkgs/tools/misc/promql-cli/default.nix b/pkgs/tools/misc/promql-cli/default.nix
index a65dfb87ea0a8..d5188e83f2935 100644
--- a/pkgs/tools/misc/promql-cli/default.nix
+++ b/pkgs/tools/misc/promql-cli/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/nalbury/promql-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ arikgrahl ];
+    mainProgram = "promql";
   };
 }
diff --git a/pkgs/tools/misc/proximity-sort/default.nix b/pkgs/tools/misc/proximity-sort/default.nix
index 8ad6e5c1c176e..3b0f1ca5be3d5 100644
--- a/pkgs/tools/misc/proximity-sort/default.nix
+++ b/pkgs/tools/misc/proximity-sort/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jonhoo/proximity-sort";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "proximity-sort";
   };
 }
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index e0da056c48c7b..2449fd30171d8 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = [ maintainers.jlesquembre ];
+    mainProgram = "pspg";
   };
 }
diff --git a/pkgs/tools/misc/psql2csv/default.nix b/pkgs/tools/misc/psql2csv/default.nix
index 21b58583bcca4..729582f2e404a 100644
--- a/pkgs/tools/misc/psql2csv/default.nix
+++ b/pkgs/tools/misc/psql2csv/default.nix
@@ -39,5 +39,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
     inherit (postgresql.meta) platforms;
+    mainProgram = "psql2csv";
   };
 }
diff --git a/pkgs/tools/misc/psrecord/default.nix b/pkgs/tools/misc/psrecord/default.nix
index 2f2b14e4875a3..04b1970fe02b0 100644
--- a/pkgs/tools/misc/psrecord/default.nix
+++ b/pkgs/tools/misc/psrecord/default.nix
@@ -27,5 +27,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/astrofrog/psrecord";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ johnazoidberg ];
+    mainProgram = "psrecord";
   };
 }
diff --git a/pkgs/tools/misc/pv/default.nix b/pkgs/tools/misc/pv/default.nix
index 6fa9c477af09b..2c8f0d5521ba3 100644
--- a/pkgs/tools/misc/pv/default.nix
+++ b/pkgs/tools/misc/pv/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.artistic2;
     maintainers = with lib.maintainers; [ matthiasbeyer ];
     platforms = lib.platforms.all;
+    mainProgram = "pv";
   };
 }
diff --git a/pkgs/tools/misc/pws/default.nix b/pkgs/tools/misc/pws/default.nix
index 783bb9b5a384f..97f4585686778 100644
--- a/pkgs/tools/misc/pws/default.nix
+++ b/pkgs/tools/misc/pws/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ swistak35 nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "pws";
   };
 }
diff --git a/pkgs/tools/misc/q-text-as-data/default.nix b/pkgs/tools/misc/q-text-as-data/default.nix
index 69d11ab34589f..5a63752b82383 100644
--- a/pkgs/tools/misc/q-text-as-data/default.nix
+++ b/pkgs/tools/misc/q-text-as-data/default.nix
@@ -37,5 +37,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.taneb ];
     platforms = platforms.all;
+    mainProgram = "q";
   };
 }
diff --git a/pkgs/tools/misc/qdl/default.nix b/pkgs/tools/misc/qdl/default.nix
index 5fdf78acefcde..02435272535fd 100644
--- a/pkgs/tools/misc/qdl/default.nix
+++ b/pkgs/tools/misc/qdl/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation {
     license = licenses.bsd3;
     maintainers = with maintainers; [ muscaln ];
     platforms = platforms.linux;
+    mainProgram = "qdl";
   };
 }
diff --git a/pkgs/tools/misc/qjoypad/default.nix b/pkgs/tools/misc/qjoypad/default.nix
index 6770ec133d3ca..a602e7b7fad62 100644
--- a/pkgs/tools/misc/qjoypad/default.nix
+++ b/pkgs/tools/misc/qjoypad/default.nix
@@ -35,5 +35,6 @@ mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with maintainers; [ astsmtl ];
     platforms = with platforms; linux;
+    mainProgram = "qjoypad";
   };
 }
diff --git a/pkgs/tools/misc/qmk/default.nix b/pkgs/tools/misc/qmk/default.nix
index ce0a11c10c83a..42361d5e63cc4 100644
--- a/pkgs/tools/misc/qmk/default.nix
+++ b/pkgs/tools/misc/qmk/default.nix
@@ -71,5 +71,6 @@ python3.pkgs.buildPythonApplication rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ bhipple babariviere ekleog ];
+    mainProgram = "qmk";
   };
 }
diff --git a/pkgs/tools/misc/qmk_hid/default.nix b/pkgs/tools/misc/qmk_hid/default.nix
index 54f4f15f8e66b..f5d1b61868a3a 100644
--- a/pkgs/tools/misc/qmk_hid/default.nix
+++ b/pkgs/tools/misc/qmk_hid/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/FrameworkComputer/qmk_hid";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ janik ];
+    mainProgram = "qmk_hid";
   };
 }
diff --git a/pkgs/tools/misc/qt5ct/default.nix b/pkgs/tools/misc/qt5ct/default.nix
index d031168a6935f..d9ee0358a76aa 100644
--- a/pkgs/tools/misc/qt5ct/default.nix
+++ b/pkgs/tools/misc/qt5ct/default.nix
@@ -27,5 +27,6 @@ mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.bsd2;
     maintainers = with maintainers; [ ralith ];
+    mainProgram = "qt5ct";
   };
 }
diff --git a/pkgs/tools/misc/qt6ct/default.nix b/pkgs/tools/misc/qt6ct/default.nix
index c011ae1b78aa0..248bc3a48e4cc 100644
--- a/pkgs/tools/misc/qt6ct/default.nix
+++ b/pkgs/tools/misc/qt6ct/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
     platforms = platforms.linux;
     license = licenses.bsd2;
     maintainers = with maintainers; [ Flakebi Scrumplex ];
+    mainProgram = "qt6ct";
   };
 })
diff --git a/pkgs/tools/misc/quich/default.nix b/pkgs/tools/misc/quich/default.nix
index 1b54eb01112c0..effd7993b8037 100644
--- a/pkgs/tools/misc/quich/default.nix
+++ b/pkgs/tools/misc/quich/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.xdhampus ];
     platforms = platforms.all;
+    mainProgram = "quich";
   };
 }
diff --git a/pkgs/tools/misc/radeon-profile/default.nix b/pkgs/tools/misc/radeon-profile/default.nix
index acadda5c549b3..8c42cccfcdf0d 100644
--- a/pkgs/tools/misc/radeon-profile/default.nix
+++ b/pkgs/tools/misc/radeon-profile/default.nix
@@ -27,6 +27,7 @@ mkDerivation rec {
     homepage    = "https://github.com/marazmista/radeon-profile";
     license     = licenses.gpl2Plus;
     platforms   = platforms.linux;
+    mainProgram = "radeon-profile";
   };
 
 }
diff --git a/pkgs/tools/misc/ramfetch/default.nix b/pkgs/tools/misc/ramfetch/default.nix
index a60315eaa58c1..136c335982771 100644
--- a/pkgs/tools/misc/ramfetch/default.nix
+++ b/pkgs/tools/misc/ramfetch/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.markbeep ];
+    mainProgram = "ramfetch";
   };
 }
diff --git a/pkgs/tools/misc/rargs/default.nix b/pkgs/tools/misc/rargs/default.nix
index ed15e81709d9b..54c7e393d2d26 100644
--- a/pkgs/tools/misc/rargs/default.nix
+++ b/pkgs/tools/misc/rargs/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://github.com/lolabout/rargs";
     license     = with licenses; [ mit ];
     maintainers = with maintainers; [ pblkt ];
+    mainProgram = "rargs";
   };
 }
diff --git a/pkgs/tools/misc/rates/default.nix b/pkgs/tools/misc/rates/default.nix
index 5d8b648469100..3989074d2461c 100644
--- a/pkgs/tools/misc/rates/default.nix
+++ b/pkgs/tools/misc/rates/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lunush/rates";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "rates";
   };
 }
diff --git a/pkgs/tools/misc/rauc/default.nix b/pkgs/tools/misc/rauc/default.nix
index 2bd41d21a5220..2fe8160bf718a 100644
--- a/pkgs/tools/misc/rauc/default.nix
+++ b/pkgs/tools/misc/rauc/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ emantor ];
     platforms = with platforms; linux;
+    mainProgram = "rauc";
   };
 }
diff --git a/pkgs/tools/misc/rename/default.nix b/pkgs/tools/misc/rename/default.nix
index a8b5f4a54ace9..d7eed90d06397 100644
--- a/pkgs/tools/misc/rename/default.nix
+++ b/pkgs/tools/misc/rename/default.nix
@@ -15,5 +15,6 @@ perlPackages.buildPerlPackage rec {
     homepage = "https://github.com/pstray/rename";
     maintainers = with maintainers; [ mkg cyplo ];
     license = with licenses; [ gpl1Plus ];
+    mainProgram = "rename";
   };
 }
diff --git a/pkgs/tools/misc/rfc/default.nix b/pkgs/tools/misc/rfc/default.nix
index e58c35fef3bdc..60d77bfbaca21 100644
--- a/pkgs/tools/misc/rfc/default.nix
+++ b/pkgs/tools/misc/rfc/default.nix
@@ -44,5 +44,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
     platforms = platforms.all;
+    mainProgram = "rfc";
   };
 }
diff --git a/pkgs/tools/misc/rig/default.nix b/pkgs/tools/misc/rig/default.nix
index f21873df15e10..b9a3e0951e3c7 100644
--- a/pkgs/tools/misc/rig/default.nix
+++ b/pkgs/tools/misc/rig/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ tomberek ];
     platforms = with lib.platforms; all;
+    mainProgram = "rig";
   };
 }
diff --git a/pkgs/tools/misc/ripdrag/default.nix b/pkgs/tools/misc/ripdrag/default.nix
index b2288810d30e1..a3c27a48e9814 100644
--- a/pkgs/tools/misc/ripdrag/default.nix
+++ b/pkgs/tools/misc/ripdrag/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/nik012003/ripdrag/releases/tag/${src.rev}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "ripdrag";
   };
 }
diff --git a/pkgs/tools/misc/ristate/default.nix b/pkgs/tools/misc/ristate/default.nix
index 7c8dbb52181df..3c4baea4d3c1e 100644
--- a/pkgs/tools/misc/ristate/default.nix
+++ b/pkgs/tools/misc/ristate/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/snakedye/ristate";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
+    mainProgram = "ristate";
   };
 }
diff --git a/pkgs/tools/misc/rlwrap/default.nix b/pkgs/tools/misc/rlwrap/default.nix
index 2d48edf2dfd24..f1c2d6a58971e 100644
--- a/pkgs/tools/misc/rlwrap/default.nix
+++ b/pkgs/tools/misc/rlwrap/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ jlesquembre ];
+    mainProgram = "rlwrap";
   };
 }
diff --git a/pkgs/tools/misc/rmate-sh/default.nix b/pkgs/tools/misc/rmate-sh/default.nix
index 7fb51344edd1b..bc93c6e437fe2 100644
--- a/pkgs/tools/misc/rmate-sh/default.nix
+++ b/pkgs/tools/misc/rmate-sh/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.gpl3;
     maintainers = with maintainers; [ pbsds ];
+    mainProgram = "rmate";
   };
 }
diff --git a/pkgs/tools/misc/rmlint/default.nix b/pkgs/tools/misc/rmlint/default.nix
index ec59a661ffcf0..502761dc94261 100644
--- a/pkgs/tools/misc/rmlint/default.nix
+++ b/pkgs/tools/misc/rmlint/default.nix
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.gpl3;
     maintainers = with maintainers; [ aaschmid koral ];
+    mainProgram = "rmlint";
   };
 }
diff --git a/pkgs/tools/misc/rmw/default.nix b/pkgs/tools/misc/rmw/default.nix
index 46f5d9ae50ce9..a6bbb40840297 100644
--- a/pkgs/tools/misc/rmw/default.nix
+++ b/pkgs/tools/misc/rmw/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/theimpossibleastronaut/rmw/blob/${src.rev}/ChangeLog";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "rmw";
   };
 }
diff --git a/pkgs/tools/misc/roundup/default.nix b/pkgs/tools/misc/roundup/default.nix
index fd2272e6cd560..efe220fd5f9b5 100644
--- a/pkgs/tools/misc/roundup/default.nix
+++ b/pkgs/tools/misc/roundup/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
     platforms = platforms.all;
+    mainProgram = "roundup";
   };
 }
diff --git a/pkgs/tools/misc/rpcsvc-proto/default.nix b/pkgs/tools/misc/rpcsvc-proto/default.nix
index b84bbb7d9d511..2de8bdefc880d 100644
--- a/pkgs/tools/misc/rpcsvc-proto/default.nix
+++ b/pkgs/tools/misc/rpcsvc-proto/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
+    mainProgram = "rpcgen";
   };
 }
diff --git a/pkgs/tools/misc/rpm-ostree/default.nix b/pkgs/tools/misc/rpm-ostree/default.nix
index b84bc955c46af..de0fcdbe6142f 100644
--- a/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/pkgs/tools/misc/rpm-ostree/default.nix
@@ -120,5 +120,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ copumpkin ];
     platforms = platforms.linux;
+    mainProgram = "rpm-ostree";
   };
 }
diff --git a/pkgs/tools/misc/rtz/default.nix b/pkgs/tools/misc/rtz/default.nix
index 7ae6525e5b649..ba66935d0a951 100644
--- a/pkgs/tools/misc/rtz/default.nix
+++ b/pkgs/tools/misc/rtz/default.nix
@@ -52,5 +52,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/twitchax/rtz/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "rtz";
   };
 }
diff --git a/pkgs/tools/misc/rust-motd/default.nix b/pkgs/tools/misc/rust-motd/default.nix
index 7d2125a1e1ee5..26b582e5e9448 100644
--- a/pkgs/tools/misc/rust-motd/default.nix
+++ b/pkgs/tools/misc/rust-motd/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/rust-motd/rust-motd/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "rust-motd";
   };
 }
diff --git a/pkgs/tools/misc/rw/default.nix b/pkgs/tools/misc/rw/default.nix
index 5299d2491465b..e77009f7969f0 100644
--- a/pkgs/tools/misc/rw/default.nix
+++ b/pkgs/tools/misc/rw/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.isc;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "rw";
   };
 }
diff --git a/pkgs/tools/misc/sagoin/default.nix b/pkgs/tools/misc/sagoin/default.nix
index 7e6d3e26bd039..b3fdd6e99405d 100644
--- a/pkgs/tools/misc/sagoin/default.nix
+++ b/pkgs/tools/misc/sagoin/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/figsoda/sagoin/blob/v${version}/CHANGELOG.md";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "sagoin";
   };
 }
diff --git a/pkgs/tools/misc/sanctity/default.nix b/pkgs/tools/misc/sanctity/default.nix
index cdfc1b89e634e..7c892bb16894b 100644
--- a/pkgs/tools/misc/sanctity/default.nix
+++ b/pkgs/tools/misc/sanctity/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://codeberg.org/annaaurora/sanctity";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "sanctity";
   };
 }
diff --git a/pkgs/tools/misc/savepagenow/default.nix b/pkgs/tools/misc/savepagenow/default.nix
index d9166d07b74c7..da29fa3b05a9c 100644
--- a/pkgs/tools/misc/savepagenow/default.nix
+++ b/pkgs/tools/misc/savepagenow/default.nix
@@ -21,5 +21,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/pastpages/savepagenow";
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "savepagenow";
   };
 }
diff --git a/pkgs/tools/misc/scdl/default.nix b/pkgs/tools/misc/scdl/default.nix
index c49e819d91bf2..611326d554030 100644
--- a/pkgs/tools/misc/scdl/default.nix
+++ b/pkgs/tools/misc/scdl/default.nix
@@ -30,5 +30,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/flyingrub/scdl";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "scdl";
   };
 }
diff --git a/pkgs/tools/misc/scfbuild/default.nix b/pkgs/tools/misc/scfbuild/default.nix
index 78434414b1a4d..e881a288f9599 100644
--- a/pkgs/tools/misc/scfbuild/default.nix
+++ b/pkgs/tools/misc/scfbuild/default.nix
@@ -30,5 +30,6 @@ buildPythonApplication {
     homepage = "https://github.com/13rac1/scfbuild";
     license = licenses.gpl3;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "scfbuild";
   };
 }
diff --git a/pkgs/tools/misc/screenfetch/default.nix b/pkgs/tools/misc/screenfetch/default.nix
index 83edfec258123..e3ad0e5c51c80 100644
--- a/pkgs/tools/misc/screenfetch/default.nix
+++ b/pkgs/tools/misc/screenfetch/default.nix
@@ -58,5 +58,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://github.com/KittyKatt/screenFetch";
     maintainers = with maintainers; [ relrod ];
     platforms = platforms.all;
+    mainProgram = "screenfetch";
   };
 }
diff --git a/pkgs/tools/misc/scrub/default.nix b/pkgs/tools/misc/scrub/default.nix
index f3a1ae619305c..2fc2b43ea29c2 100644
--- a/pkgs/tools/misc/scrub/default.nix
+++ b/pkgs/tools/misc/scrub/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ j0hax ];
     platforms = platforms.unix;
+    mainProgram = "scrub";
   };
 }
diff --git a/pkgs/tools/misc/sd-mux-ctrl/default.nix b/pkgs/tools/misc/sd-mux-ctrl/default.nix
index d42909a5c7777..4f832a35eb30e 100644
--- a/pkgs/tools/misc/sd-mux-ctrl/default.nix
+++ b/pkgs/tools/misc/sd-mux-ctrl/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers =  with maintainers; [ sarcasticadmin ];
     platforms = platforms.unix;
+    mainProgram = "sd-mux-ctrl";
   };
 }
diff --git a/pkgs/tools/misc/sdate/default.nix b/pkgs/tools/misc/sdate/default.nix
index abc046bb6d024..71ab04c807d8a 100644
--- a/pkgs/tools/misc/sdate/default.nix
+++ b/pkgs/tools/misc/sdate/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ edef ];
     platforms = platforms.all;
+    mainProgram = "sdate";
   };
 }
diff --git a/pkgs/tools/misc/see/default.nix b/pkgs/tools/misc/see/default.nix
index 60f55e8144c5e..025d22facd2ac 100644
--- a/pkgs/tools/misc/see/default.nix
+++ b/pkgs/tools/misc/see/default.nix
@@ -27,5 +27,6 @@ python3.pkgs.buildPythonApplication {
     homepage = "https://github.com/Textualize/textualize-see";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ anselmschueler ];
+    mainProgram = "see";
   };
 }
diff --git a/pkgs/tools/misc/semiphemeral/default.nix b/pkgs/tools/misc/semiphemeral/default.nix
index 67a5fb0149b69..7ccdd663082f2 100644
--- a/pkgs/tools/misc/semiphemeral/default.nix
+++ b/pkgs/tools/misc/semiphemeral/default.nix
@@ -23,5 +23,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/micahflee/semiphemeral";
     license = licenses.mit;
     maintainers = with maintainers; [ amanjeev ];
+    mainProgram = "semiphemeral";
   };
 }
diff --git a/pkgs/tools/misc/serverspec/default.nix b/pkgs/tools/misc/serverspec/default.nix
index 162b9d90cc03b..28196efc18a34 100644
--- a/pkgs/tools/misc/serverspec/default.nix
+++ b/pkgs/tools/misc/serverspec/default.nix
@@ -15,5 +15,6 @@ bundlerApp {
     homepage = "https://serverspec.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ dylanmtaylor ];
+    mainProgram = "serverspec-init";
   };
 }
diff --git a/pkgs/tools/misc/setconf/default.nix b/pkgs/tools/misc/setconf/default.nix
index fdb80bfb25ba8..8384617e5e5d0 100644
--- a/pkgs/tools/misc/setconf/default.nix
+++ b/pkgs/tools/misc/setconf/default.nix
@@ -20,5 +20,6 @@ buildPythonApplication rec {
     description = "A small utility for changing settings in configuration textfiles";
     changelog = "https://github.com/xyproto/setconf/releases/tag/${version}";
     maintainers = [ lib.maintainers.AndersonTorres ];
+    mainProgram = "setconf";
   };
 }
diff --git a/pkgs/tools/misc/sfz/default.nix b/pkgs/tools/misc/sfz/default.nix
index 0114858c99d91..41841d2ef2b92 100644
--- a/pkgs/tools/misc/sfz/default.nix
+++ b/pkgs/tools/misc/sfz/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/weihanglo/sfz";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "sfz";
   };
 }
diff --git a/pkgs/tools/misc/shadowenv/default.nix b/pkgs/tools/misc/shadowenv/default.nix
index 12723000cef78..06b7cb4e82c29 100644
--- a/pkgs/tools/misc/shadowenv/default.nix
+++ b/pkgs/tools/misc/shadowenv/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     description = "reversible directory-local environment variable manipulations";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "shadowenv";
   };
 }
diff --git a/pkgs/tools/misc/shallot/default.nix b/pkgs/tools/misc/shallot/default.nix
index 46c5714ce9667..4fbd07f38e329 100644
--- a/pkgs/tools/misc/shallot/default.nix
+++ b/pkgs/tools/misc/shallot/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     homepage = "https://github.com/katmagic/Shallot";
     platforms = lib.platforms.linux;
+    mainProgram = "shallot";
   };
 }
diff --git a/pkgs/tools/misc/sharedown/default.nix b/pkgs/tools/misc/sharedown/default.nix
index 0f93551965e23..5d1d31b35ac18 100644
--- a/pkgs/tools/misc/sharedown/default.nix
+++ b/pkgs/tools/misc/sharedown/default.nix
@@ -114,5 +114,6 @@ stdenvNoCC.mkDerivation rec {
     maintainers = with maintainers; [
     ];
     platforms = platforms.unix;
+    mainProgram = "Sharedown";
   };
 }
diff --git a/pkgs/tools/misc/sheldon/default.nix b/pkgs/tools/misc/sheldon/default.nix
index 73e9cb57d366e..ddff13c9bcfd4 100644
--- a/pkgs/tools/misc/sheldon/default.nix
+++ b/pkgs/tools/misc/sheldon/default.nix
@@ -62,5 +62,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ seqizz ];
     platforms = platforms.linux;
+    mainProgram = "sheldon";
   };
 }
diff --git a/pkgs/tools/misc/shell-hist/default.nix b/pkgs/tools/misc/shell-hist/default.nix
index 48e8667cc7e87..438b687c73f1b 100644
--- a/pkgs/tools/misc/shell-hist/default.nix
+++ b/pkgs/tools/misc/shell-hist/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/jamesmunns/shell-hist";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = [ maintainers.spacekookie ];
+    mainProgram = "shell-hist";
   };
 }
diff --git a/pkgs/tools/misc/shelldap/default.nix b/pkgs/tools/misc/shelldap/default.nix
index b383c9692a9ca..045c5732c3e09 100644
--- a/pkgs/tools/misc/shelldap/default.nix
+++ b/pkgs/tools/misc/shelldap/default.nix
@@ -48,5 +48,6 @@ perlPackages.buildPerlPackage rec {
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ clerie tobiasBora ];
     platforms = platforms.unix;
+    mainProgram = "shelldap";
   };
 }
diff --git a/pkgs/tools/misc/shellspec/default.nix b/pkgs/tools/misc/shellspec/default.nix
index 480ada8d57166..b355f0fc02328 100644
--- a/pkgs/tools/misc/shellspec/default.nix
+++ b/pkgs/tools/misc/shellspec/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
     platforms = platforms.unix;
+    mainProgram = "shellspec";
   };
 }
diff --git a/pkgs/tools/misc/shunit2/default.nix b/pkgs/tools/misc/shunit2/default.nix
index 1120c756895b3..017d19264798e 100644
--- a/pkgs/tools/misc/shunit2/default.nix
+++ b/pkgs/tools/misc/shunit2/default.nix
@@ -86,5 +86,6 @@ resholve.mkDerivation rec {
     maintainers = with maintainers; [ abathur utdemir ];
     license = licenses.asl20;
     platforms = platforms.unix;
+    mainProgram = "shunit2";
   };
 }
diff --git a/pkgs/tools/misc/silicon/default.nix b/pkgs/tools/misc/silicon/default.nix
index ddc1ad6d639af..1da4d20c673fa 100644
--- a/pkgs/tools/misc/silicon/default.nix
+++ b/pkgs/tools/misc/silicon/default.nix
@@ -60,5 +60,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Aloxaf/silicon";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ evanjs _0x4A6F ];
+    mainProgram = "silicon";
   };
 }
diff --git a/pkgs/tools/misc/sixpair/default.nix b/pkgs/tools/misc/sixpair/default.nix
index 71a0af158246d..fa444a86a0ace 100644
--- a/pkgs/tools/misc/sixpair/default.nix
+++ b/pkgs/tools/misc/sixpair/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.tomsmeets ];
     platforms = lib.platforms.linux;
+    mainProgram = "sixpair";
   };
 }
diff --git a/pkgs/tools/misc/sl/default.nix b/pkgs/tools/misc/sl/default.nix
index dc55a8e783b94..bcb8de78c6130 100644
--- a/pkgs/tools/misc/sl/default.nix
+++ b/pkgs/tools/misc/sl/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     };
     maintainers = with maintainers; [ eyjhb ];
     platforms = platforms.unix;
+    mainProgram = "sl";
   };
 }
diff --git a/pkgs/tools/misc/slop/default.nix b/pkgs/tools/misc/slop/default.nix
index 05b008997b7fd..b3903bd951536 100644
--- a/pkgs/tools/misc/slop/default.nix
+++ b/pkgs/tools/misc/slop/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
+    mainProgram = "slop";
   };
 }
diff --git a/pkgs/tools/misc/sloth/default.nix b/pkgs/tools/misc/sloth/default.nix
index c0621419fd37f..2386b5a54a86e 100644
--- a/pkgs/tools/misc/sloth/default.nix
+++ b/pkgs/tools/misc/sloth/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ nrhtr ];
     platforms = lib.platforms.unix;
+    mainProgram = "sloth";
   };
 }
diff --git a/pkgs/tools/misc/slsnif/default.nix b/pkgs/tools/misc/slsnif/default.nix
index fd2b4c53d60a8..04bc462350f15 100644
--- a/pkgs/tools/misc/slsnif/default.nix
+++ b/pkgs/tools/misc/slsnif/default.nix
@@ -14,5 +14,6 @@ stdenv.mkDerivation rec {
     homepage = "http://slsnif.sourceforge.net/";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
+    mainProgram = "slsnif";
   };
 }
diff --git a/pkgs/tools/misc/smc/default.nix b/pkgs/tools/misc/smc/default.nix
index f3db213c84fe3..99ed8de45e451 100644
--- a/pkgs/tools/misc/smc/default.nix
+++ b/pkgs/tools/misc/smc/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl11;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "smc";
   };
 }
diff --git a/pkgs/tools/misc/smenu/default.nix b/pkgs/tools/misc/smenu/default.nix
index 9768b33c5ce9f..d2d893936f50c 100644
--- a/pkgs/tools/misc/smenu/default.nix
+++ b/pkgs/tools/misc/smenu/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ matthiasbeyer ];
     platforms = platforms.unix;
+    mainProgram = "smenu";
   };
 }
diff --git a/pkgs/tools/misc/smug/default.nix b/pkgs/tools/misc/smug/default.nix
index c620ba67b0cff..e528b21287593 100644
--- a/pkgs/tools/misc/smug/default.nix
+++ b/pkgs/tools/misc/smug/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     description = "Smug - tmux session manager";
     license = licenses.mit;
     maintainers = with maintainers; [ juboba ];
+    mainProgram = "smug";
   };
 }
diff --git a/pkgs/tools/misc/snore/default.nix b/pkgs/tools/misc/snore/default.nix
index a5351794acf7c..a3b9d67bba461 100644
--- a/pkgs/tools/misc/snore/default.nix
+++ b/pkgs/tools/misc/snore/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.unix;
+    mainProgram = "snore";
   };
 }
diff --git a/pkgs/tools/misc/sonota/default.nix b/pkgs/tools/misc/sonota/default.nix
index d111e0b2b7176..5f341bbc98ee9 100644
--- a/pkgs/tools/misc/sonota/default.nix
+++ b/pkgs/tools/misc/sonota/default.nix
@@ -50,5 +50,6 @@ in buildPythonApplication rec {
     homepage = src.meta.homepage;
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "sonota";
   };
 }
diff --git a/pkgs/tools/misc/spacer/default.nix b/pkgs/tools/misc/spacer/default.nix
index 0101b581f6a7c..5bf584c07a144 100644
--- a/pkgs/tools/misc/spacer/default.nix
+++ b/pkgs/tools/misc/spacer/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/samwho/spacer/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "spacer";
   };
 }
diff --git a/pkgs/tools/misc/sqlite3-to-mysql/default.nix b/pkgs/tools/misc/sqlite3-to-mysql/default.nix
index 412d29c3307c6..68ee19e6c6820 100644
--- a/pkgs/tools/misc/sqlite3-to-mysql/default.nix
+++ b/pkgs/tools/misc/sqlite3-to-mysql/default.nix
@@ -59,5 +59,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/techouse/sqlite3-to-mysql";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
+    mainProgram = "sqlite3mysql";
   };
 }
diff --git a/pkgs/tools/misc/srisum/default.nix b/pkgs/tools/misc/srisum/default.nix
index 04fe962f97ade..8412e48d7907c 100644
--- a/pkgs/tools/misc/srisum/default.nix
+++ b/pkgs/tools/misc/srisum/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ pjjw ];
     platforms = platforms.all;
+    mainProgram = "srisum";
   };
 }
diff --git a/pkgs/tools/misc/star-history/default.nix b/pkgs/tools/misc/star-history/default.nix
index caa584a020645..113280617cb01 100644
--- a/pkgs/tools/misc/star-history/default.nix
+++ b/pkgs/tools/misc/star-history/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dtolnay/star-history";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "star-history";
   };
 }
diff --git a/pkgs/tools/misc/starfetch/default.nix b/pkgs/tools/misc/starfetch/default.nix
index ba6309c97ecbd..962409d21763e 100644
--- a/pkgs/tools/misc/starfetch/default.nix
+++ b/pkgs/tools/misc/starfetch/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "starfetch";
   };
 }
diff --git a/pkgs/tools/misc/staruml/default.nix b/pkgs/tools/misc/staruml/default.nix
index 388a407a52b75..058c2118db54a 100644
--- a/pkgs/tools/misc/staruml/default.nix
+++ b/pkgs/tools/misc/staruml/default.nix
@@ -75,5 +75,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.unfree;
     maintainers = with maintainers; [ kashw2 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "staruml";
   };
 })
diff --git a/pkgs/tools/misc/statserial/default.nix b/pkgs/tools/misc/statserial/default.nix
index 8b5ae4cdc86e9..526729dcd31cf 100644
--- a/pkgs/tools/misc/statserial/default.nix
+++ b/pkgs/tools/misc/statserial/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
 
     platforms = platforms.unix;
     maintainers = with maintainers; [ rps ];
+    mainProgram = "statserial";
   };
 }
diff --git a/pkgs/tools/misc/subberthehut/default.nix b/pkgs/tools/misc/subberthehut/default.nix
index b9698e1e53642..913bc49a5116d 100644
--- a/pkgs/tools/misc/subberthehut/default.nix
+++ b/pkgs/tools/misc/subberthehut/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jqueiroz ];
+    mainProgram = "subberthehut";
   };
 }
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index 5f7b29ded042a..c9e4664c63719 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation rec {
     description = "Command-line tool to download videos from svtplay.se and other sites";
     license = licenses.mit;
     platforms = lib.platforms.unix;
+    mainProgram = "svtplay-dl";
   };
 }
diff --git a/pkgs/tools/misc/svu/default.nix b/pkgs/tools/misc/svu/default.nix
index a3dddeba0e691..352f4d0ab721e 100644
--- a/pkgs/tools/misc/svu/default.nix
+++ b/pkgs/tools/misc/svu/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/caarlos0/svu";
     maintainers = with maintainers; [ caarlos0 ];
     license = licenses.mit;
+    mainProgram = "svu";
   };
 }
diff --git a/pkgs/tools/misc/swaglyrics/default.nix b/pkgs/tools/misc/swaglyrics/default.nix
index 730290f8cf389..4b9095ff59d74 100644
--- a/pkgs/tools/misc/swaglyrics/default.nix
+++ b/pkgs/tools/misc/swaglyrics/default.nix
@@ -62,5 +62,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/SwagLyrics/SwagLyrics-For-Spotify";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "swaglyrics";
   };
 }
diff --git a/pkgs/tools/misc/systrayhelper/default.nix b/pkgs/tools/misc/systrayhelper/default.nix
index cc000d62d08af..1635054b56c66 100644
--- a/pkgs/tools/misc/systrayhelper/default.nix
+++ b/pkgs/tools/misc/systrayhelper/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     license = licenses.mit;
     # It depends on the inputs, i guess? not sure about solaris, for instance. go supports it though
     # I hope nix can figure this out?! ¯\\_(ツ)_/¯
+    mainProgram = "systrayhelper";
   };
 }
diff --git a/pkgs/tools/misc/sysz/default.nix b/pkgs/tools/misc/sysz/default.nix
index bf45983c106a8..37b34aec2d273 100644
--- a/pkgs/tools/misc/sysz/default.nix
+++ b/pkgs/tools/misc/sysz/default.nix
@@ -29,5 +29,6 @@ stdenvNoCC.mkDerivation rec {
     maintainers = with maintainers; [ hleboulanger ];
     platforms = platforms.unix;
     changelog = "https://github.com/joehillen/sysz/blob/${version}/CHANGELOG.md";
+    mainProgram = "sysz";
   };
 }
diff --git a/pkgs/tools/misc/szyszka/default.nix b/pkgs/tools/misc/szyszka/default.nix
index 58d839acf0785..335bc81febe0c 100644
--- a/pkgs/tools/misc/szyszka/default.nix
+++ b/pkgs/tools/misc/szyszka/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/qarmin/szyszka";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
+    mainProgram = "szyszka";
   };
 }
diff --git a/pkgs/tools/misc/t/default.nix b/pkgs/tools/misc/t/default.nix
index dd0eda67ce55a..4d0c961847cee 100644
--- a/pkgs/tools/misc/t/default.nix
+++ b/pkgs/tools/misc/t/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.asl20;
     maintainers = with maintainers; [ offline manveru nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "t";
   };
 }
diff --git a/pkgs/tools/misc/tagref/default.nix b/pkgs/tools/misc/tagref/default.nix
index 67745de84f2aa..df393571d3807 100644
--- a/pkgs/tools/misc/tagref/default.nix
+++ b/pkgs/tools/misc/tagref/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = [ maintainers.yusdacra ];
     platforms = platforms.unix;
+    mainProgram = "tagref";
   };
 }
diff --git a/pkgs/tools/misc/tailer/default.nix b/pkgs/tools/misc/tailer/default.nix
index f3c4d3545252c..96631875f5a49 100644
--- a/pkgs/tools/misc/tailer/default.nix
+++ b/pkgs/tools/misc/tailer/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://github.com/hionay/tailer";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "tailer";
   };
 }
diff --git a/pkgs/tools/misc/tbls/default.nix b/pkgs/tools/misc/tbls/default.nix
index 8072b0cb7fe7a..9a3c993595485 100644
--- a/pkgs/tools/misc/tbls/default.nix
+++ b/pkgs/tools/misc/tbls/default.nix
@@ -52,5 +52,6 @@ buildGoModule rec {
     changelog = "https://github.com/k1LoW/tbls/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
+    mainProgram = "tbls";
   };
 }
diff --git a/pkgs/tools/misc/tcat/default.nix b/pkgs/tools/misc/tcat/default.nix
index 1f6c45f32dc1c..5afa7e83affaa 100644
--- a/pkgs/tools/misc/tcat/default.nix
+++ b/pkgs/tools/misc/tcat/default.nix
@@ -17,5 +17,6 @@ buildGoModule rec {
     homepage = "https://github.com/rsc/tcat";
     maintainers = with maintainers; [ mmlb ];
     license = licenses.bsd3;
+    mainProgram = "tcat";
   };
 }
diff --git a/pkgs/tools/misc/td/default.nix b/pkgs/tools/misc/td/default.nix
index bca5bd601d416..ebfe642a27d27 100644
--- a/pkgs/tools/misc/td/default.nix
+++ b/pkgs/tools/misc/td/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.asl20;
     maintainers =  with maintainers; [ groodt nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "td";
   };
 }
diff --git a/pkgs/tools/misc/tdfgo/default.nix b/pkgs/tools/misc/tdfgo/default.nix
index 91a0345c99f80..bd9603b5fa98f 100644
--- a/pkgs/tools/misc/tdfgo/default.nix
+++ b/pkgs/tools/misc/tdfgo/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     license = licenses.cc0;
     platforms = platforms.linux;
     maintainers = with maintainers; [ crinklywrappr ];
+    mainProgram = "tdfgo";
   };
 }
diff --git a/pkgs/tools/misc/tea/default.nix b/pkgs/tools/misc/tea/default.nix
index 13bd0f8f2b3f8..8e985c9ec13dc 100644
--- a/pkgs/tools/misc/tea/default.nix
+++ b/pkgs/tools/misc/tea/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage    = "https://gitea.com/gitea/tea";
     license     = licenses.mit;
     maintainers = with maintainers; [ j4m3s techknowlogick ];
+    mainProgram = "tea";
   };
 }
diff --git a/pkgs/tools/misc/teamocil/default.nix b/pkgs/tools/misc/teamocil/default.nix
index 5218453d15e3b..4344668809cef 100644
--- a/pkgs/tools/misc/teamocil/default.nix
+++ b/pkgs/tools/misc/teamocil/default.nix
@@ -16,5 +16,6 @@ bundlerEnv {
       zachcoyle
       nicknovitski
     ];
+    mainProgram = "teamocil";
   };
 }
diff --git a/pkgs/tools/misc/tensorman/default.nix b/pkgs/tools/misc/tensorman/default.nix
index c5742b21afa40..b6f11d190c105 100644
--- a/pkgs/tools/misc/tensorman/default.nix
+++ b/pkgs/tools/misc/tensorman/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/pop-os/tensorman";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ thefenriswolf ];
+    mainProgram = "tensorman";
   };
 }
diff --git a/pkgs/tools/misc/tere/default.nix b/pkgs/tools/misc/tere/default.nix
index a2a4a506bc0d0..70bd03ccaa49b 100644
--- a/pkgs/tools/misc/tere/default.nix
+++ b/pkgs/tools/misc/tere/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mgunyho/tere";
     license = licenses.eupl12;
     maintainers = with maintainers; [ ProducerMatt ];
+    mainProgram = "tere";
   };
 }
diff --git a/pkgs/tools/misc/termplay/default.nix b/pkgs/tools/misc/termplay/default.nix
index 2d493b857fc1c..aa35e24da0172 100644
--- a/pkgs/tools/misc/termplay/default.nix
+++ b/pkgs/tools/misc/termplay/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "termplay";
   };
 }
diff --git a/pkgs/tools/misc/termtosvg/default.nix b/pkgs/tools/misc/termtosvg/default.nix
index 0f9816fe10e5b..86217693a58fd 100644
--- a/pkgs/tools/misc/termtosvg/default.nix
+++ b/pkgs/tools/misc/termtosvg/default.nix
@@ -16,5 +16,6 @@ python3Packages.buildPythonApplication rec {
     description = "Record terminal sessions as SVG animations";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
+    mainProgram = "termtosvg";
   };
 }
diff --git a/pkgs/tools/misc/tewisay/default.nix b/pkgs/tools/misc/tewisay/default.nix
index 35b66a0936839..f4ae05711285f 100644
--- a/pkgs/tools/misc/tewisay/default.nix
+++ b/pkgs/tools/misc/tewisay/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     description = "Cowsay replacement with unicode and partial ansi escape support";
     license = with licenses; [ cc0 ];
     maintainers = with maintainers; [ Madouura ];
+    mainProgram = "tewisay";
   };
 }
diff --git a/pkgs/tools/misc/texi2mdoc/default.nix b/pkgs/tools/misc/texi2mdoc/default.nix
index 2b73c4f34dbbc..94219a0042509 100644
--- a/pkgs/tools/misc/texi2mdoc/default.nix
+++ b/pkgs/tools/misc/texi2mdoc/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "texi2mdoc";
   };
 }
diff --git a/pkgs/tools/misc/tfk8s/default.nix b/pkgs/tools/misc/tfk8s/default.nix
index a694360db373f..52795b7540025 100644
--- a/pkgs/tools/misc/tfk8s/default.nix
+++ b/pkgs/tools/misc/tfk8s/default.nix
@@ -44,5 +44,6 @@ buildGoModule rec {
     '';
     homepage = "https://github.com/jrhouston/tfk8s/";
     maintainers = with maintainers; [ bryanasdev000 ];
+    mainProgram = "tfk8s";
   };
 }
diff --git a/pkgs/tools/misc/tgpt/default.nix b/pkgs/tools/misc/tgpt/default.nix
index 6436e0be2050e..cf100e5d33fda 100644
--- a/pkgs/tools/misc/tgpt/default.nix
+++ b/pkgs/tools/misc/tgpt/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     changelog = "https://github.com/aandrew-me/tgpt/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "tgpt";
   };
 }
diff --git a/pkgs/tools/misc/time-decode/default.nix b/pkgs/tools/misc/time-decode/default.nix
index 5d6f3ed8a958a..edd0eba43a246 100644
--- a/pkgs/tools/misc/time-decode/default.nix
+++ b/pkgs/tools/misc/time-decode/default.nix
@@ -33,5 +33,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/digitalsleuth/time_decode/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "time-decode";
   };
 }
diff --git a/pkgs/tools/misc/timelimit/default.nix b/pkgs/tools/misc/timelimit/default.nix
index 01de2c01c8782..534cd320bf1a3 100644
--- a/pkgs/tools/misc/timelimit/default.nix
+++ b/pkgs/tools/misc/timelimit/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "timelimit";
   };
 }
diff --git a/pkgs/tools/misc/timer/default.nix b/pkgs/tools/misc/timer/default.nix
index 962ad1a6dd695..908127575e7a4 100644
--- a/pkgs/tools/misc/timer/default.nix
+++ b/pkgs/tools/misc/timer/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/caarlos0/timer";
     license = licenses.mit;
     maintainers = with maintainers; [ zowoq caarlos0 ];
+    mainProgram = "timer";
   };
 }
diff --git a/pkgs/tools/misc/timetagger_cli/default.nix b/pkgs/tools/misc/timetagger_cli/default.nix
index 38b0cc88bb1ee..f6204e2d8fe12 100644
--- a/pkgs/tools/misc/timetagger_cli/default.nix
+++ b/pkgs/tools/misc/timetagger_cli/default.nix
@@ -28,6 +28,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/almarklein/timetagger_cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ matthiasbeyer ];
+    mainProgram = "timetagger";
   };
 }
 
diff --git a/pkgs/tools/misc/timidity/default.nix b/pkgs/tools/misc/timidity/default.nix
index a8ccd27a89da0..65d154476f02c 100644
--- a/pkgs/tools/misc/timidity/default.nix
+++ b/pkgs/tools/misc/timidity/default.nix
@@ -92,5 +92,6 @@ stdenv.mkDerivation rec {
     description = "A software MIDI renderer";
     maintainers = [ maintainers.marcweber ];
     platforms = platforms.unix;
+    mainProgram = "timidity";
   };
 }
diff --git a/pkgs/tools/misc/tio/default.nix b/pkgs/tools/misc/tio/default.nix
index c179614cfae50..88e121368e669 100644
--- a/pkgs/tools/misc/tio/default.nix
+++ b/pkgs/tools/misc/tio/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ yana ];
     platforms = platforms.unix;
+    mainProgram = "tio";
   };
 }
diff --git a/pkgs/tools/misc/tldr/default.nix b/pkgs/tools/misc/tldr/default.nix
index 01d50e5f7cf87..3d9655f114dcb 100644
--- a/pkgs/tools/misc/tldr/default.nix
+++ b/pkgs/tools/misc/tldr/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ taeer carlosdagos kbdharun];
     platforms = platforms.all;
+    mainProgram = "tldr";
   };
 }
diff --git a/pkgs/tools/misc/tmate/default.nix b/pkgs/tools/misc/tmate/default.nix
index 1956f25fb97f7..9e1cbdee12774 100644
--- a/pkgs/tools/misc/tmate/default.nix
+++ b/pkgs/tools/misc/tmate/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation {
     license     = licenses.mit;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ ck3d ];
+    mainProgram = "tmate";
   };
 }
diff --git a/pkgs/tools/misc/tmpwatch/default.nix b/pkgs/tools/misc/tmpwatch/default.nix
index 9d9bb853f2f99..873b7c0f6f0a2 100644
--- a/pkgs/tools/misc/tmpwatch/default.nix
+++ b/pkgs/tools/misc/tmpwatch/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ vlstill ];
     platforms = platforms.unix;
+    mainProgram = "tmpwatch";
   };
 }
diff --git a/pkgs/tools/misc/tmux-cssh/default.nix b/pkgs/tools/misc/tmux-cssh/default.nix
index c69853635e909..7da4293dc0c81 100644
--- a/pkgs/tools/misc/tmux-cssh/default.nix
+++ b/pkgs/tools/misc/tmux-cssh/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation {
 
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ zimbatm ];
+    mainProgram = "tmux-cssh";
   };
 }
diff --git a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
index e384f0f72d7bb..1e197ef162eab 100644
--- a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
+++ b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ thomasjm ];
     platforms = platforms.all;
+    mainProgram = "tmux-mem-cpu-load";
   };
 }
diff --git a/pkgs/tools/misc/tmux-sessionizer/default.nix b/pkgs/tools/misc/tmux-sessionizer/default.nix
index 0c0075b2a6b5f..e0e8dd9efb4b2 100644
--- a/pkgs/tools/misc/tmux-sessionizer/default.nix
+++ b/pkgs/tools/misc/tmux-sessionizer/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jrmoulton/tmux-sessionizer";
     license = licenses.mit;
     maintainers = with maintainers; [ vinnymeller ];
+    mainProgram = "tms";
   };
 }
diff --git a/pkgs/tools/misc/tmuxinator/default.nix b/pkgs/tools/misc/tmuxinator/default.nix
index 239f3cc2e7eb4..379430761399f 100644
--- a/pkgs/tools/misc/tmuxinator/default.nix
+++ b/pkgs/tools/misc/tmuxinator/default.nix
@@ -49,5 +49,6 @@ buildRubyGem rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ auntie ericsagnes ];
     platforms   = platforms.unix;
+    mainProgram = "tmuxinator";
   };
 }
diff --git a/pkgs/tools/misc/tmuxp/default.nix b/pkgs/tools/misc/tmuxp/default.nix
index cd80aa3495cbe..8babec3122680 100644
--- a/pkgs/tools/misc/tmuxp/default.nix
+++ b/pkgs/tools/misc/tmuxp/default.nix
@@ -38,5 +38,6 @@ python3Packages.buildPythonApplication rec {
     changelog = "https://github.com/tmux-python/tmuxp/raw/v${version}/CHANGES";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "tmuxp";
   };
 }
diff --git a/pkgs/tools/misc/toastify/default.nix b/pkgs/tools/misc/toastify/default.nix
index 6b853bc0b2991..2de5877c0f057 100644
--- a/pkgs/tools/misc/toastify/default.nix
+++ b/pkgs/tools/misc/toastify/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/hoodie/toastify/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ colemickens ];
+    mainProgram = "toastify";
   };
 }
diff --git a/pkgs/tools/misc/toilet/default.nix b/pkgs/tools/misc/toilet/default.nix
index d67383e4d5212..8fdeb8b40739c 100644
--- a/pkgs/tools/misc/toilet/default.nix
+++ b/pkgs/tools/misc/toilet/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.wtfpl;
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.all;
+    mainProgram = "toilet";
   };
 }
diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix
index 757cb69cbb0bd..24ed027b841ae 100644
--- a/pkgs/tools/misc/topgrade/default.nix
+++ b/pkgs/tools/misc/topgrade/default.nix
@@ -52,5 +52,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/topgrade-rs/topgrade/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ SuperSandro2000 xyenon ];
+    mainProgram = "topgrade";
   };
 }
diff --git a/pkgs/tools/misc/topicctl/default.nix b/pkgs/tools/misc/topicctl/default.nix
index b0496914b354e..ca5f4fa89d889 100644
--- a/pkgs/tools/misc/topicctl/default.nix
+++ b/pkgs/tools/misc/topicctl/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     inherit (src.meta) homepage;
     license = licenses.mit;
     maintainers = with maintainers; [ eskytthe srhb ];
+    mainProgram = "topicctl";
   };
 }
diff --git a/pkgs/tools/misc/torrenttools/default.nix b/pkgs/tools/misc/torrenttools/default.nix
index f8da452c52f7d..0fa5dbffafbbb 100644
--- a/pkgs/tools/misc/torrenttools/default.nix
+++ b/pkgs/tools/misc/torrenttools/default.nix
@@ -95,5 +95,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
     platforms = platforms.unix;
+    mainProgram = "torrenttools";
   };
 }
diff --git a/pkgs/tools/misc/traefik-certs-dumper/default.nix b/pkgs/tools/misc/traefik-certs-dumper/default.nix
index 410f85de4d12b..18ed06c630ede 100644
--- a/pkgs/tools/misc/traefik-certs-dumper/default.nix
+++ b/pkgs/tools/misc/traefik-certs-dumper/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/ldez/traefik-certs-dumper";
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
+    mainProgram = "traefik-certs-dumper";
   };
 }
diff --git a/pkgs/tools/misc/triehash/default.nix b/pkgs/tools/misc/triehash/default.nix
index b916214fab520..9e70db4114a55 100644
--- a/pkgs/tools/misc/triehash/default.nix
+++ b/pkgs/tools/misc/triehash/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = with licenses; mit;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = perlPackages.perl.meta.platforms;
+    mainProgram = "triehash";
   };
 }
diff --git a/pkgs/tools/misc/ttchat/default.nix b/pkgs/tools/misc/ttchat/default.nix
index 46d366dee379d..5aad1527df42d 100644
--- a/pkgs/tools/misc/ttchat/default.nix
+++ b/pkgs/tools/misc/ttchat/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/atye/ttchat";
     license = licenses.asl20;
     maintainers = with maintainers; [ wolfangaukang ];
+    mainProgram = "ttchat";
   };
 }
diff --git a/pkgs/tools/misc/ttmkfdir/default.nix b/pkgs/tools/misc/ttmkfdir/default.nix
index 47ff95c14f5f7..6edf9cc4ef986 100644
--- a/pkgs/tools/misc/ttmkfdir/default.nix
+++ b/pkgs/tools/misc/ttmkfdir/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation {
   meta = {
     description = "Create fonts.dir for TTF font directory";
     platforms = lib.platforms.linux;
+    mainProgram = "ttmkfdir";
   };
 }
diff --git a/pkgs/tools/misc/tty-clock/default.nix b/pkgs/tools/misc/tty-clock/default.nix
index 03be10bf10b63..32701caa64de4 100644
--- a/pkgs/tools/misc/tty-clock/default.nix
+++ b/pkgs/tools/misc/tty-clock/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     description = "Digital clock in ncurses";
     platforms = platforms.all;
     maintainers = [ maintainers.koral ];
+    mainProgram = "tty-clock";
   };
 }
diff --git a/pkgs/tools/misc/ttygif/default.nix b/pkgs/tools/misc/ttygif/default.nix
index d9a97f6c23509..689138186cb6b 100644
--- a/pkgs/tools/misc/ttygif/default.nix
+++ b/pkgs/tools/misc/ttygif/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.mit;
     maintainers = with maintainers; [ moaxcp ];
+    mainProgram = "ttygif";
   };
 }
diff --git a/pkgs/tools/misc/ttylog/default.nix b/pkgs/tools/misc/ttylog/default.nix
index ae521167431d7..ca90481ba9e63 100644
--- a/pkgs/tools/misc/ttylog/default.nix
+++ b/pkgs/tools/misc/ttylog/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "ttylog";
   };
 }
diff --git a/pkgs/tools/misc/ttyplot/default.nix b/pkgs/tools/misc/ttyplot/default.nix
index 3778048143be3..594c6de654afc 100644
--- a/pkgs/tools/misc/ttyplot/default.nix
+++ b/pkgs/tools/misc/ttyplot/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/tenox7/ttyplot";
     license = licenses.unlicense;
     maintainers = with maintainers; [ lassulus ];
+    mainProgram = "ttyplot";
   };
 }
diff --git a/pkgs/tools/misc/tvnamer/default.nix b/pkgs/tools/misc/tvnamer/default.nix
index a2d5c9e87a4a6..ba3a91bcde16b 100644
--- a/pkgs/tools/misc/tvnamer/default.nix
+++ b/pkgs/tools/misc/tvnamer/default.nix
@@ -48,5 +48,6 @@ pypkgs.buildPythonApplication rec {
     homepage = "https://github.com/dbr/tvnamer";
     license = licenses.unlicense;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "tvnamer";
   };
 }
diff --git a/pkgs/tools/misc/twitch-dl/default.nix b/pkgs/tools/misc/twitch-dl/default.nix
index e42e26a989aa7..8364acb20eb81 100644
--- a/pkgs/tools/misc/twitch-dl/default.nix
+++ b/pkgs/tools/misc/twitch-dl/default.nix
@@ -49,5 +49,6 @@ python3Packages.buildPythonApplication rec {
     changelog = "https://github.com/ihabunek/twitch-dl/blob/${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "twitch-dl";
   };
 }
diff --git a/pkgs/tools/misc/twm/default.nix b/pkgs/tools/misc/twm/default.nix
index 3f08d53fd4548..79c3584ca9ca8 100644
--- a/pkgs/tools/misc/twm/default.nix
+++ b/pkgs/tools/misc/twm/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/vinnymeller/twm/releases/tag/v${version}";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ vinnymeller ];
+    mainProgram = "twm";
   };
 }
diff --git a/pkgs/tools/misc/twspace-crawler/default.nix b/pkgs/tools/misc/twspace-crawler/default.nix
index df1ef6e6e2c24..34a1c72e20486 100644
--- a/pkgs/tools/misc/twspace-crawler/default.nix
+++ b/pkgs/tools/misc/twspace-crawler/default.nix
@@ -19,5 +19,6 @@ buildNpmPackage rec {
     changelog = "https://github.com/HitomaruKonpaku/twspace-crawler/blob/${src.rev}/CHANGELOG.md";
     license = licenses.isc;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "twspace-crawler";
   };
 }
diff --git a/pkgs/tools/misc/twurl/default.nix b/pkgs/tools/misc/twurl/default.nix
index dccb67fbaf6c2..ff332e88de917 100644
--- a/pkgs/tools/misc/twurl/default.nix
+++ b/pkgs/tools/misc/twurl/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = "MIT";
     maintainers = with maintainers; [ brecht ];
     platforms   = platforms.unix;
+    mainProgram = "twurl";
   };
 }
diff --git a/pkgs/tools/misc/txtw/default.nix b/pkgs/tools/misc/txtw/default.nix
index e8a14b57634a7..9f8783491b11a 100644
--- a/pkgs/tools/misc/txtw/default.nix
+++ b/pkgs/tools/misc/txtw/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ lihop ];
     license = licenses.unlicense;
     platforms = platforms.linux;
+    mainProgram = "txtw";
   };
 }
diff --git a/pkgs/tools/misc/tydra/default.nix b/pkgs/tools/misc/tydra/default.nix
index fd8e8e6ee5a84..551519695c432 100644
--- a/pkgs/tools/misc/tydra/default.nix
+++ b/pkgs/tools/misc/tydra/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Mange/tydra";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "tydra";
   };
 }
diff --git a/pkgs/tools/misc/tz/default.nix b/pkgs/tools/misc/tz/default.nix
index c86d8a48c4eec..58cf17384ee3d 100644
--- a/pkgs/tools/misc/tz/default.nix
+++ b/pkgs/tools/misc/tz/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/oz/tz";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "tz";
   };
 }
diff --git a/pkgs/tools/misc/ugs/default.nix b/pkgs/tools/misc/ugs/default.nix
index aae9daddae9e8..395a9e42009c6 100644
--- a/pkgs/tools/misc/ugs/default.nix
+++ b/pkgs/tools/misc/ugs/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3;
     platforms = platforms.all;
+    mainProgram = "ugs";
   };
 }
diff --git a/pkgs/tools/misc/uhubctl/default.nix b/pkgs/tools/misc/uhubctl/default.nix
index 39db9c09785f5..e148e03f820e0 100644
--- a/pkgs/tools/misc/uhubctl/default.nix
+++ b/pkgs/tools/misc/uhubctl/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ prusnak ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "uhubctl";
   };
 }
diff --git a/pkgs/tools/misc/umlet/default.nix b/pkgs/tools/misc/umlet/default.nix
index 67cf61ebe5a12..b9d3e5d315380 100644
--- a/pkgs/tools/misc/umlet/default.nix
+++ b/pkgs/tools/misc/umlet/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     maintainers = with maintainers; [ oxzi ];
     platforms = platforms.all;
+    mainProgram = "umlet";
   };
 }
diff --git a/pkgs/tools/misc/unclutter/default.nix b/pkgs/tools/misc/unclutter/default.nix
index b11df6655bf35..5d711c5fd03d0 100644
--- a/pkgs/tools/misc/unclutter/default.nix
+++ b/pkgs/tools/misc/unclutter/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ domenkozar ];
     platforms = platforms.unix;
     license = lib.licenses.publicDomain;
+    mainProgram = "unclutter";
   };
 }
diff --git a/pkgs/tools/misc/undocker/default.nix b/pkgs/tools/misc/undocker/default.nix
index f80642f1e8129..a2ce7dfb7aa16 100644
--- a/pkgs/tools/misc/undocker/default.nix
+++ b/pkgs/tools/misc/undocker/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "A CLI tool to convert a Docker image to a flattened rootfs tarball";
     license = licenses.asl20;
     maintainers = with maintainers; [ jordanisaacs ];
+    mainProgram = "undocker";
   };
 }
diff --git a/pkgs/tools/misc/unparam/default.nix b/pkgs/tools/misc/unparam/default.nix
index 3f87e0edd64be..6578f08c59aec 100644
--- a/pkgs/tools/misc/unparam/default.nix
+++ b/pkgs/tools/misc/unparam/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/mvdan/unparam";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "unparam";
   };
 }
diff --git a/pkgs/tools/misc/up/default.nix b/pkgs/tools/misc/up/default.nix
index d9ce59f965724..9fa0c700b8c37 100644
--- a/pkgs/tools/misc/up/default.nix
+++ b/pkgs/tools/misc/up/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/akavel/up";
     maintainers = with maintainers; [ ma27 ];
     license = licenses.asl20;
+    mainProgram = "up";
   };
 }
diff --git a/pkgs/tools/misc/url-parser/default.nix b/pkgs/tools/misc/url-parser/default.nix
index 418e35b03a9d0..ae74dc7396f2b 100644
--- a/pkgs/tools/misc/url-parser/default.nix
+++ b/pkgs/tools/misc/url-parser/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     changelog = "https://github.com/thegeeklab/url-parser/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "url-parser";
   };
 }
diff --git a/pkgs/tools/misc/urlencode/default.nix b/pkgs/tools/misc/urlencode/default.nix
index 896f77398bd11..6b8097a6b5278 100644
--- a/pkgs/tools/misc/urlencode/default.nix
+++ b/pkgs/tools/misc/urlencode/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dead10ck/urlencode";
     license = licenses.mit;
     maintainers = with maintainers; [ l0b0 ];
+    mainProgram = "urlencode";
   };
 }
diff --git a/pkgs/tools/misc/usbimager/default.nix b/pkgs/tools/misc/usbimager/default.nix
index ff4dea4a8c9e4..b845062c1783e 100644
--- a/pkgs/tools/misc/usbimager/default.nix
+++ b/pkgs/tools/misc/usbimager/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux;
     # never built on aarch64-linux since first introduction in nixpkgs
     broken = stdenv.isLinux && stdenv.isAarch64;
+    mainProgram = "usbimager";
   };
 }
diff --git a/pkgs/tools/misc/usbmuxd/default.nix b/pkgs/tools/misc/usbmuxd/default.nix
index 2e9c2318081e8..5a391762cd082 100644
--- a/pkgs/tools/misc/usbmuxd/default.nix
+++ b/pkgs/tools/misc/usbmuxd/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "usbmuxd";
   };
 }
diff --git a/pkgs/tools/misc/usbmuxd2/default.nix b/pkgs/tools/misc/usbmuxd2/default.nix
index 18014b60371fd..fae54b4ec18ce 100644
--- a/pkgs/tools/misc/usbmuxd2/default.nix
+++ b/pkgs/tools/misc/usbmuxd2/default.nix
@@ -90,5 +90,6 @@ clangStdenv.mkDerivation rec {
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ onny ];
+    mainProgram = "usbmuxd";
   };
 }
diff --git a/pkgs/tools/misc/usbview/default.nix b/pkgs/tools/misc/usbview/default.nix
index 2f417ea86de55..71a4ddeefd8d8 100644
--- a/pkgs/tools/misc/usbview/default.nix
+++ b/pkgs/tools/misc/usbview/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.kroah.com/linux-usb/";
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "usbview";
   };
 }
diff --git a/pkgs/tools/misc/uwufetch/default.nix b/pkgs/tools/misc/uwufetch/default.nix
index f86320a59b32c..a7241e6488be4 100644
--- a/pkgs/tools/misc/uwufetch/default.nix
+++ b/pkgs/tools/misc/uwufetch/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ lourkeur ];
+    mainProgram = "uwufetch";
   };
 }
diff --git a/pkgs/tools/misc/uwuify/default.nix b/pkgs/tools/misc/uwuify/default.nix
index 2722610d0e3f8..abcf5e9b23da9 100644
--- a/pkgs/tools/misc/uwuify/default.nix
+++ b/pkgs/tools/misc/uwuify/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     platforms = lib.platforms.x86; # uses SSE instructions
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "uwuify";
   };
 }
diff --git a/pkgs/tools/misc/valeronoi/default.nix b/pkgs/tools/misc/valeronoi/default.nix
index 8fda179b3042b..c7321b3015203 100644
--- a/pkgs/tools/misc/valeronoi/default.nix
+++ b/pkgs/tools/misc/valeronoi/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ nova-madeline maeve ];
+    mainProgram = "valeronoi";
   };
 }
diff --git a/pkgs/tools/misc/vcs_query/default.nix b/pkgs/tools/misc/vcs_query/default.nix
index 7e1387df1f826..ccfdc62b12968 100644
--- a/pkgs/tools/misc/vcs_query/default.nix
+++ b/pkgs/tools/misc/vcs_query/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     description = "eMail query-command to use vCards in mutt and Vim";
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
+    mainProgram = "vcs_query";
   };
 }
diff --git a/pkgs/tools/misc/veikk-linux-driver-gui/default.nix b/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
index a018604a84fce..28e3194f56ec0 100644
--- a/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
+++ b/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
@@ -28,5 +28,6 @@ mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ nicbk ];
+    mainProgram = "veikk-linux-driver-gui";
   };
 }
diff --git a/pkgs/tools/misc/via/default.nix b/pkgs/tools/misc/via/default.nix
index 5fd808cd1d810..47f3df7743780 100644
--- a/pkgs/tools/misc/via/default.nix
+++ b/pkgs/tools/misc/via/default.nix
@@ -37,5 +37,6 @@ appimageTools.wrapType2 {
     license = licenses.gpl3;
     maintainers = with maintainers; [ emilytrau ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "via";
   };
 }
diff --git a/pkgs/tools/misc/viddy/default.nix b/pkgs/tools/misc/viddy/default.nix
index 37aa2acff0361..280cf82c4b414 100644
--- a/pkgs/tools/misc/viddy/default.nix
+++ b/pkgs/tools/misc/viddy/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/sachaos/viddy";
     license = licenses.mit;
     maintainers = with maintainers; [ j-hui ];
+    mainProgram = "viddy";
   };
 }
diff --git a/pkgs/tools/misc/vimer/default.nix b/pkgs/tools/misc/vimer/default.nix
index bbab2d64bb008..684ecfc5fe387 100644
--- a/pkgs/tools/misc/vimer/default.nix
+++ b/pkgs/tools/misc/vimer/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.all;
+    mainProgram = "vimer";
   };
 
 }
diff --git a/pkgs/tools/misc/vimwiki-markdown/default.nix b/pkgs/tools/misc/vimwiki-markdown/default.nix
index 3375b86df0fc9..b4200bede49c1 100644
--- a/pkgs/tools/misc/vimwiki-markdown/default.nix
+++ b/pkgs/tools/misc/vimwiki-markdown/default.nix
@@ -24,5 +24,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/WnP/vimwiki_markdown";
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
+    mainProgram = "vimwiki_markdown";
   };
 }
diff --git a/pkgs/tools/misc/vivid/default.nix b/pkgs/tools/misc/vivid/default.nix
index 01c432cd6a250..3115735ed9be8 100644
--- a/pkgs/tools/misc/vivid/default.nix
+++ b/pkgs/tools/misc/vivid/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.dtzWill ];
     platforms = platforms.unix;
+    mainProgram = "vivid";
   };
 }
diff --git a/pkgs/tools/misc/vix/default.nix b/pkgs/tools/misc/vix/default.nix
index cf060218889a7..9e759536d74ce 100644
--- a/pkgs/tools/misc/vix/default.nix
+++ b/pkgs/tools/misc/vix/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation {
     homepage = "http://actinid.org/vix/";
     license = licenses.gpl3;
     maintainers = [ maintainers.ehmry ];
+    mainProgram = "vix";
   };
 }
diff --git a/pkgs/tools/misc/vmtouch/default.nix b/pkgs/tools/misc/vmtouch/default.nix
index 276389205f053..120012019a72a 100644
--- a/pkgs/tools/misc/vmtouch/default.nix
+++ b/pkgs/tools/misc/vmtouch/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.garrison ];
     platforms = lib.platforms.all;
+    mainProgram = "vmtouch";
   };
 }
diff --git a/pkgs/tools/misc/void/default.nix b/pkgs/tools/misc/void/default.nix
index 7057fed8ca13e..1204206d34b6a 100644
--- a/pkgs/tools/misc/void/default.nix
+++ b/pkgs/tools/misc/void/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/spacejam/void";
     license = licenses.gpl3;
     maintainers = with maintainers; [ spacekookie ];
+    mainProgram = "void";
   };
 }
diff --git a/pkgs/tools/misc/vorbisgain/default.nix b/pkgs/tools/misc/vorbisgain/default.nix
index b0b4e5e34e12e..e5a85049df0af 100644
--- a/pkgs/tools/misc/vorbisgain/default.nix
+++ b/pkgs/tools/misc/vorbisgain/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "vorbisgain";
   };
 }
diff --git a/pkgs/tools/misc/vrc-get/default.nix b/pkgs/tools/misc/vrc-get/default.nix
index c0099d822e401..6026f9d6f7341 100644
--- a/pkgs/tools/misc/vrc-get/default.nix
+++ b/pkgs/tools/misc/vrc-get/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/anatawa12/vrc-get";
     license = licenses.mit;
     maintainers = with maintainers; [ bddvlpr ];
+    mainProgram = "vrc-get";
   };
 }
diff --git a/pkgs/tools/misc/vsh/default.nix b/pkgs/tools/misc/vsh/default.nix
index cfe014d3f9aa5..c061a14f2e30c 100644
--- a/pkgs/tools/misc/vsh/default.nix
+++ b/pkgs/tools/misc/vsh/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/fishi0x01/vsh";
     license = licenses.mit;
     maintainers = with maintainers; [ fishi0x01 ];
+    mainProgram = "vsh";
   };
 }
diff --git a/pkgs/tools/misc/vtm/default.nix b/pkgs/tools/misc/vtm/default.nix
index a0acfcf7f7d6f..ee7b301df8615 100644
--- a/pkgs/tools/misc/vtm/default.nix
+++ b/pkgs/tools/misc/vtm/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ ahuzik ];
+    mainProgram = "vtm";
   };
 }
diff --git a/pkgs/tools/misc/vttest/default.nix b/pkgs/tools/misc/vttest/default.nix
index 6b649cbb71d2a..2eafd745263c5 100644
--- a/pkgs/tools/misc/vttest/default.nix
+++ b/pkgs/tools/misc/vttest/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     homepage = "https://invisible-island.net/vttest/";
     license = licenses.mit;
     platforms = platforms.all;
+    mainProgram = "vttest";
   };
 }
 
diff --git a/pkgs/tools/misc/wagyu/default.nix b/pkgs/tools/misc/wagyu/default.nix
index dfcefa56b6ff5..39e1085d4c965 100644
--- a/pkgs/tools/misc/wagyu/default.nix
+++ b/pkgs/tools/misc/wagyu/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/AleoHQ/wagyu";
     license = with licenses; [ mit asl20 ];
     maintainers = [ maintainers.offline ];
+    mainProgram = "wagyu";
   };
 }
diff --git a/pkgs/tools/misc/wakapi/default.nix b/pkgs/tools/misc/wakapi/default.nix
index 66e4ca5125c1d..9cf4efb0df339 100644
--- a/pkgs/tools/misc/wakapi/default.nix
+++ b/pkgs/tools/misc/wakapi/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     description = "A minimalist self-hosted WakaTime-compatible backend for coding statistics";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ t4ccer ];
+    mainProgram = "wakapi";
   };
 }
diff --git a/pkgs/tools/misc/wasm-tools/default.nix b/pkgs/tools/misc/wasm-tools/default.nix
index 2249ea83d1ab6..26d3d34e58c45 100644
--- a/pkgs/tools/misc/wasm-tools/default.nix
+++ b/pkgs/tools/misc/wasm-tools/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/bytecodealliance/wasm-tools";
     license = licenses.asl20;
     maintainers = with maintainers; [ ereslibre ];
+    mainProgram = "wasm-tools";
   };
 }
diff --git a/pkgs/tools/misc/watchexec/default.nix b/pkgs/tools/misc/watchexec/default.nix
index a4d87973a2428..41ed61408a206 100644
--- a/pkgs/tools/misc/watchexec/default.nix
+++ b/pkgs/tools/misc/watchexec/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://watchexec.github.io/";
     license = with licenses; [ asl20 ];
     maintainers = [ maintainers.michalrus ];
+    mainProgram = "watchexec";
   };
 }
diff --git a/pkgs/tools/misc/wayback-machine-archiver/default.nix b/pkgs/tools/misc/wayback-machine-archiver/default.nix
index 71c0b63ad8e9e..c3ebc937eb353 100644
--- a/pkgs/tools/misc/wayback-machine-archiver/default.nix
+++ b/pkgs/tools/misc/wayback-machine-archiver/default.nix
@@ -27,5 +27,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/agude/wayback-machine-archiver";
     license = licenses.mit;
     maintainers = with maintainers; [ dandellion ];
+    mainProgram = "archiver";
   };
 }
diff --git a/pkgs/tools/misc/waylevel/default.nix b/pkgs/tools/misc/waylevel/default.nix
index 78ebcf6c5a6e8..b3b1ddfeeebfd 100644
--- a/pkgs/tools/misc/waylevel/default.nix
+++ b/pkgs/tools/misc/waylevel/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ dit7ya ];
     platforms = platforms.linux;
+    mainProgram = "waylevel";
   };
 }
diff --git a/pkgs/tools/misc/webcat/default.nix b/pkgs/tools/misc/webcat/default.nix
index 52b9e78bccaaa..7c8c56dc86c16 100644
--- a/pkgs/tools/misc/webcat/default.nix
+++ b/pkgs/tools/misc/webcat/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     description = "The lightweight swiss army knife for websockets";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ montag451 ];
+    mainProgram = "webcat";
   };
 }
diff --git a/pkgs/tools/misc/websocat/default.nix b/pkgs/tools/misc/websocat/default.nix
index cfc225ea75f84..baef5b2645023 100644
--- a/pkgs/tools/misc/websocat/default.nix
+++ b/pkgs/tools/misc/websocat/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/vi/websocat/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ thoughtpolice Br1ght0ne ];
+    mainProgram = "websocat";
   };
 }
diff --git a/pkgs/tools/misc/wemux/default.nix b/pkgs/tools/misc/wemux/default.nix
index 0eee60187f20a..99adf8bb0823d 100644
--- a/pkgs/tools/misc/wemux/default.nix
+++ b/pkgs/tools/misc/wemux/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ bsima ];
+    mainProgram = "wemux";
   };
 }
diff --git a/pkgs/tools/misc/wlc/default.nix b/pkgs/tools/misc/wlc/default.nix
index 73ae91c2e9855..acd6eb5f37240 100644
--- a/pkgs/tools/misc/wlc/default.nix
+++ b/pkgs/tools/misc/wlc/default.nix
@@ -32,5 +32,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/WeblateOrg/wlc";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ paperdigits ];
+    mainProgram = "wlc";
   };
 }
diff --git a/pkgs/tools/misc/woeusb/default.nix b/pkgs/tools/misc/woeusb/default.nix
index a1d371eafd499..9add255896f75 100644
--- a/pkgs/tools/misc/woeusb/default.nix
+++ b/pkgs/tools/misc/woeusb/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bjornfor ];
     platforms = platforms.linux;
+    mainProgram = "woeusb";
   };
 }
diff --git a/pkgs/tools/misc/woof/default.nix b/pkgs/tools/misc/woof/default.nix
index c958d9f65a678..b73ad5615dd09 100644
--- a/pkgs/tools/misc/woof/default.nix
+++ b/pkgs/tools/misc/woof/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
     maintainers = with maintainers; [ matthiasbeyer ];
+    mainProgram = "woof";
   };
 }
diff --git a/pkgs/tools/misc/wootility/default.nix b/pkgs/tools/misc/wootility/default.nix
index ddb3c770e6413..a4f3cb2f92d85 100644
--- a/pkgs/tools/misc/wootility/default.nix
+++ b/pkgs/tools/misc/wootility/default.nix
@@ -34,5 +34,6 @@ appimageTools.wrapType2 rec {
     platforms = [ "x86_64-linux" ];
     license = "unknown";
     maintainers = with maintainers; [ davidtwco ];
+    mainProgram = "wootility";
   };
 }
diff --git a/pkgs/tools/misc/wsl-open/default.nix b/pkgs/tools/misc/wsl-open/default.nix
index e89ef91b4f9ef..e4698ccbabd04 100644
--- a/pkgs/tools/misc/wsl-open/default.nix
+++ b/pkgs/tools/misc/wsl-open/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "wsl-open";
   };
 }
diff --git a/pkgs/tools/misc/wwcd/default.nix b/pkgs/tools/misc/wwcd/default.nix
index 41c66d945f40a..0e83ada195b0b 100644
--- a/pkgs/tools/misc/wwcd/default.nix
+++ b/pkgs/tools/misc/wwcd/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "https://git.sr.ht/~bitfehler/wwcd";
     license = licenses.mit;
     maintainers = with maintainers; [ laalsaas ];
+    mainProgram = "wwcd";
   };
 }
diff --git a/pkgs/tools/misc/wyrd/default.nix b/pkgs/tools/misc/wyrd/default.nix
index df8b4933aa696..4010a0b42d0fd 100644
--- a/pkgs/tools/misc/wyrd/default.nix
+++ b/pkgs/tools/misc/wyrd/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.prikhi ];
     platforms = platforms.linux;
+    mainProgram = "wyrd";
   };
 }
diff --git a/pkgs/tools/misc/x11idle/default.nix b/pkgs/tools/misc/x11idle/default.nix
index ee64f69897d2f..e349b54eecae5 100644
--- a/pkgs/tools/misc/x11idle/default.nix
+++ b/pkgs/tools/misc/x11idle/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.swflint ];
+    mainProgram = "x11idle";
   };
 }
diff --git a/pkgs/tools/misc/xcd/default.nix b/pkgs/tools/misc/xcd/default.nix
index 7e34021041923..350da6c93925b 100644
--- a/pkgs/tools/misc/xcd/default.nix
+++ b/pkgs/tools/misc/xcd/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.xfnw ];
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "xcd";
   };
 }
diff --git a/pkgs/tools/misc/xcp/default.nix b/pkgs/tools/misc/xcp/default.nix
index 9b06c11890dc7..91edb954d53b8 100644
--- a/pkgs/tools/misc/xcp/default.nix
+++ b/pkgs/tools/misc/xcp/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/tarka/xcp";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lom ];
+    mainProgram = "xcp";
   };
 }
diff --git a/pkgs/tools/misc/xdaliclock/default.nix b/pkgs/tools/misc/xdaliclock/default.nix
index 73e648cf83c55..7201ffcbbe998 100644
--- a/pkgs/tools/misc/xdaliclock/default.nix
+++ b/pkgs/tools/misc/xdaliclock/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux ++ freebsd;
     license = licenses.free; #TODO BSD on Gentoo, looks like MIT
     downloadPage = "http://www.jwz.org/xdaliclock/";
+    mainProgram = "xdaliclock";
   };
 }
diff --git a/pkgs/tools/misc/xdg-ninja/default.nix b/pkgs/tools/misc/xdg-ninja/default.nix
index a92a279a141fd..351a7c0e8c0cb 100644
--- a/pkgs/tools/misc/xdg-ninja/default.nix
+++ b/pkgs/tools/misc/xdg-ninja/default.nix
@@ -32,5 +32,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ arcuru ];
+    mainProgram = "xdg-ninja";
   };
 }
diff --git a/pkgs/tools/misc/xdiskusage/default.nix b/pkgs/tools/misc/xdiskusage/default.nix
index 28620f3bf6eff..9db3563ca247b 100644
--- a/pkgs/tools/misc/xdiskusage/default.nix
+++ b/pkgs/tools/misc/xdiskusage/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = with lib.licenses; [ gpl2Plus ];
     maintainers = with lib.maintainers; [ fuzzdk ];
     platforms = with lib.platforms; linux;
+    mainProgram = "xdiskusage";
   };
 })
diff --git a/pkgs/tools/misc/xdo/default.nix b/pkgs/tools/misc/xdo/default.nix
index 31df9552accd8..268dfcd66e041 100644
--- a/pkgs/tools/misc/xdo/default.nix
+++ b/pkgs/tools/misc/xdo/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
      maintainers = with maintainers; [ meisternu ];
      license = licenses.bsd2;
      platforms = platforms.linux;
+     mainProgram = "xdo";
    };
 }
diff --git a/pkgs/tools/misc/xdxf2slob/default.nix b/pkgs/tools/misc/xdxf2slob/default.nix
index a24f9196efb9d..e23d68f8fccb6 100644
--- a/pkgs/tools/misc/xdxf2slob/default.nix
+++ b/pkgs/tools/misc/xdxf2slob/default.nix
@@ -18,5 +18,6 @@ python3Packages.buildPythonApplication {
     homepage = "https://github.com/itkach/xdxf2slob/";
     license = licenses.gpl3;
     platforms = platforms.all;
+    mainProgram = "xdxf2slob";
   };
 }
diff --git a/pkgs/tools/misc/xflux/default.nix b/pkgs/tools/misc/xflux/default.nix
index 55a72dc4a7345..5cfda2df174f3 100644
--- a/pkgs/tools/misc/xflux/default.nix
+++ b/pkgs/tools/misc/xflux/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation {
     license = lib.licenses.unfree;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.paholg ];
+    mainProgram = "xflux";
   };
 }
diff --git a/pkgs/tools/misc/xfstests/default.nix b/pkgs/tools/misc/xfstests/default.nix
index e06aa0cc57259..c894f3b9f32e0 100644
--- a/pkgs/tools/misc/xfstests/default.nix
+++ b/pkgs/tools/misc/xfstests/default.nix
@@ -107,5 +107,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "xfstests-check";
   };
 }
diff --git a/pkgs/tools/misc/xiccd/default.nix b/pkgs/tools/misc/xiccd/default.nix
index 7569045fa4f1d..4ffb5b689e3ba 100644
--- a/pkgs/tools/misc/xiccd/default.nix
+++ b/pkgs/tools/misc/xiccd/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.linux;
+    mainProgram = "xiccd";
   };
 }
diff --git a/pkgs/tools/misc/xilinx-bootgen/default.nix b/pkgs/tools/misc/xilinx-bootgen/default.nix
index f6619e025d3e7..7f9fb0e2e175d 100644
--- a/pkgs/tools/misc/xilinx-bootgen/default.nix
+++ b/pkgs/tools/misc/xilinx-bootgen/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = [ maintainers.flokli ];
+    mainProgram = "bootgen";
   };
 }
diff --git a/pkgs/tools/misc/xjobs/default.nix b/pkgs/tools/misc/xjobs/default.nix
index 5edb365a33279..9dfa605fbc474 100644
--- a/pkgs/tools/misc/xjobs/default.nix
+++ b/pkgs/tools/misc/xjobs/default.nix
@@ -61,5 +61,6 @@ stdenv.mkDerivation rec {
       It works similar to xargs, but starts several processes simultaneously
       and gives only one line of arguments to each utility call.
     '';
+    mainProgram = "xjobs";
   };
 }
diff --git a/pkgs/tools/misc/xmonad-log/default.nix b/pkgs/tools/misc/xmonad-log/default.nix
index acd4a9e1d46de..9ba7941b45f79 100644
--- a/pkgs/tools/misc/xmonad-log/default.nix
+++ b/pkgs/tools/misc/xmonad-log/default.nix
@@ -21,5 +21,6 @@ buildGoPackage rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ joko ];
+    mainProgram = "xmonad-log";
   };
 }
diff --git a/pkgs/tools/misc/xq/default.nix b/pkgs/tools/misc/xq/default.nix
index c02321a6a7c39..129a572a40aa7 100644
--- a/pkgs/tools/misc/xq/default.nix
+++ b/pkgs/tools/misc/xq/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/MiSawa/xq";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
+    mainProgram = "xq";
   };
 }
diff --git a/pkgs/tools/misc/xtitle/default.nix b/pkgs/tools/misc/xtitle/default.nix
index e3454538bf84e..94e650144956a 100644
--- a/pkgs/tools/misc/xtitle/default.nix
+++ b/pkgs/tools/misc/xtitle/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ meisternu ];
     license = "Custom";
     platforms = platforms.linux;
+    mainProgram = "xtitle";
   };
 }
diff --git a/pkgs/tools/misc/xxv/default.nix b/pkgs/tools/misc/xxv/default.nix
index e5852e5f51b01..0068de3c92459 100644
--- a/pkgs/tools/misc/xxv/default.nix
+++ b/pkgs/tools/misc/xxv/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://chrisvest.github.io/xxv/";
     license     = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ lilyball ];
+    mainProgram = "xxv";
   };
 }
diff --git a/pkgs/tools/misc/yafetch/default.nix b/pkgs/tools/misc/yafetch/default.nix
index 4ebaea963c29e..49611df587af9 100644
--- a/pkgs/tools/misc/yafetch/default.nix
+++ b/pkgs/tools/misc/yafetch/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ivar ashley ];
     platforms = platforms.linux;
+    mainProgram = "yafetch";
   };
 }
diff --git a/pkgs/tools/misc/yai/default.nix b/pkgs/tools/misc/yai/default.nix
index 916328cdcde62..958b88bc22976 100644
--- a/pkgs/tools/misc/yai/default.nix
+++ b/pkgs/tools/misc/yai/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ georgesalkhouri ];
+    mainProgram = "yai";
   };
 }
diff --git a/pkgs/tools/misc/yajsv/default.nix b/pkgs/tools/misc/yajsv/default.nix
index aaeba02ae35e5..d6293c74399d2 100644
--- a/pkgs/tools/misc/yajsv/default.nix
+++ b/pkgs/tools/misc/yajsv/default.nix
@@ -29,5 +29,6 @@ buildGoModule {
     homepage = "https://github.com/neilpa/yajsv";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ rycee ];
+    mainProgram = "yajsv";
   };
 }
diff --git a/pkgs/tools/misc/yank/default.nix b/pkgs/tools/misc/yank/default.nix
index 9579b3fa3f50b..50d883759130f 100644
--- a/pkgs/tools/misc/yank/default.nix
+++ b/pkgs/tools/misc/yank/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.dochang ];
     platforms = platforms.unix;
+    mainProgram = "yank";
   };
 
 }
diff --git a/pkgs/tools/misc/yle-dl/default.nix b/pkgs/tools/misc/yle-dl/default.nix
index 8db40b7c0b2e0..75855109e2006 100644
--- a/pkgs/tools/misc/yle-dl/default.nix
+++ b/pkgs/tools/misc/yle-dl/default.nix
@@ -33,5 +33,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dezgeg ];
     platforms = platforms.unix;
+    mainProgram = "yle-dl";
   };
 }
diff --git a/pkgs/tools/misc/you-get/default.nix b/pkgs/tools/misc/you-get/default.nix
index 3bccdf28df3cd..225c37e4ba464 100644
--- a/pkgs/tools/misc/you-get/default.nix
+++ b/pkgs/tools/misc/you-get/default.nix
@@ -48,5 +48,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/soimort/you-get/raw/v${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ ryneeverett ];
+    mainProgram = "you-get";
   };
 }
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 4aee6bdeb5f51..77a6eceb8a2fa 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -91,5 +91,6 @@ buildPythonPackage rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ bluescreen303 fpletz ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "youtube-dl";
   };
 }
diff --git a/pkgs/tools/misc/ytarchive/default.nix b/pkgs/tools/misc/ytarchive/default.nix
index 8cd082746447e..d2c836402e50c 100644
--- a/pkgs/tools/misc/ytarchive/default.nix
+++ b/pkgs/tools/misc/ytarchive/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     description = "Garbage Youtube livestream downloader";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "ytarchive";
   };
 }
diff --git a/pkgs/tools/misc/ytcast/default.nix b/pkgs/tools/misc/ytcast/default.nix
index 163329a60da17..86a84e6c8d90b 100644
--- a/pkgs/tools/misc/ytcast/default.nix
+++ b/pkgs/tools/misc/ytcast/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/MarcoLucidi01/ytcast";
     license = licenses.mit;
     maintainers = with maintainers; [ waelwindows ];
+    mainProgram = "ytcast";
   };
 }
diff --git a/pkgs/tools/misc/ytfzf/default.nix b/pkgs/tools/misc/ytfzf/default.nix
index 92b9864c35896..905c7776f1c27 100644
--- a/pkgs/tools/misc/ytfzf/default.nix
+++ b/pkgs/tools/misc/ytfzf/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "ytfzf";
   };
 }
diff --git a/pkgs/tools/misc/ytmdl/default.nix b/pkgs/tools/misc/ytmdl/default.nix
index 9e20b1480e18a..73c7ce2aae7ac 100644
--- a/pkgs/tools/misc/ytmdl/default.nix
+++ b/pkgs/tools/misc/ytmdl/default.nix
@@ -54,5 +54,6 @@ python3Packages.buildPythonApplication rec {
     description = "YouTube Music Downloader";
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
+    mainProgram = "ytmdl";
   };
 }
diff --git a/pkgs/tools/misc/yubico-piv-tool/default.nix b/pkgs/tools/misc/yubico-piv-tool/default.nix
index a8a7dfd3ee687..eee35ea8c9d48 100644
--- a/pkgs/tools/misc/yubico-piv-tool/default.nix
+++ b/pkgs/tools/misc/yubico-piv-tool/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ viraptor anthonyroussel ];
+    mainProgram = "yubico-piv-tool";
   };
 }
diff --git a/pkgs/tools/misc/yubikey-personalization-gui/default.nix b/pkgs/tools/misc/yubikey-personalization-gui/default.nix
index 66f43ad9bfcac..a63ab7a7ce193 100644
--- a/pkgs/tools/misc/yubikey-personalization-gui/default.nix
+++ b/pkgs/tools/misc/yubikey-personalization-gui/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     description = "A QT based cross-platform utility designed to facilitate reconfiguration of the Yubikey";
     license = licenses.bsd2;
     platforms = platforms.unix;
+    mainProgram = "yubikey-personalization-gui";
   };
 }
diff --git a/pkgs/tools/misc/yutto/default.nix b/pkgs/tools/misc/yutto/default.nix
index bdc2ba94179fa..a9b5e224e07a2 100644
--- a/pkgs/tools/misc/yutto/default.nix
+++ b/pkgs/tools/misc/yutto/default.nix
@@ -44,5 +44,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/yutto-dev/yutto";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ linsui ];
+    mainProgram = "yutto";
   };
 }
diff --git a/pkgs/tools/misc/zabbixctl/default.nix b/pkgs/tools/misc/zabbixctl/default.nix
index e42ccb86c417d..ce45196fdba73 100644
--- a/pkgs/tools/misc/zabbixctl/default.nix
+++ b/pkgs/tools/misc/zabbixctl/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/kovetskiy/zabbixctl";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
+    mainProgram = "zabbixctl";
   };
 }
diff --git a/pkgs/tools/misc/zalgo/default.nix b/pkgs/tools/misc/zalgo/default.nix
index 71cc7f8b7ddbc..0ca9f3366ce40 100644
--- a/pkgs/tools/misc/zalgo/default.nix
+++ b/pkgs/tools/misc/zalgo/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     platforms = platforms.unix;
     maintainers = with maintainers; [ djanatyn ];
+    mainProgram = "zalgo";
   };
 }
diff --git a/pkgs/tools/misc/zf/default.nix b/pkgs/tools/misc/zf/default.nix
index 1b441687d3166..cf63e211d2612 100644
--- a/pkgs/tools/misc/zf/default.nix
+++ b/pkgs/tools/misc/zf/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ dit7ya figsoda mmlb ];
+    mainProgram = "zf";
   };
 })
diff --git a/pkgs/tools/misc/zitadel-tools/default.nix b/pkgs/tools/misc/zitadel-tools/default.nix
index 51defb87e9329..cd5ae370805bb 100644
--- a/pkgs/tools/misc/zitadel-tools/default.nix
+++ b/pkgs/tools/misc/zitadel-tools/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://github.com/zitadel/zitadel-tools";
     license = licenses.asl20;
     maintainers = with maintainers; [ janik ];
+    mainProgram = "zitadel-tools";
   };
 }
diff --git a/pkgs/tools/misc/zotero-translation-server/default.nix b/pkgs/tools/misc/zotero-translation-server/default.nix
index 21428cf124584..d44ec426fee5b 100644
--- a/pkgs/tools/misc/zotero-translation-server/default.nix
+++ b/pkgs/tools/misc/zotero-translation-server/default.nix
@@ -31,5 +31,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/zotero/translation-server";
     license = licenses.agpl3Only;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "translation-server";
   };
 }
diff --git a/pkgs/tools/misc/zsh-history-to-fish/default.nix b/pkgs/tools/misc/zsh-history-to-fish/default.nix
index ddb8098cdaafb..4e8da001f8350 100644
--- a/pkgs/tools/misc/zsh-history-to-fish/default.nix
+++ b/pkgs/tools/misc/zsh-history-to-fish/default.nix
@@ -29,5 +29,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/rsalmei/zsh-history-to-fish";
     license = licenses.mit;
     maintainers = with maintainers; [ alanpearce ];
+    mainProgram = "zsh-history-to-fish";
   };
 }
diff --git a/pkgs/tools/misc/zthrottle/default.nix b/pkgs/tools/misc/zthrottle/default.nix
index 2743dbf76bbbd..012ffbccd4ae4 100644
--- a/pkgs/tools/misc/zthrottle/default.nix
+++ b/pkgs/tools/misc/zthrottle/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.unlicense;
     maintainers = [ maintainers.ckie ];
     platforms = platforms.unix;
+    mainProgram = "zthrottle";
   };
 }
diff --git a/pkgs/tools/package-management/akku/default.nix b/pkgs/tools/package-management/akku/default.nix
index e1baf2e0b1eb7..68ee94d3f94e2 100644
--- a/pkgs/tools/package-management/akku/default.nix
+++ b/pkgs/tools/package-management/akku/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "akku";
   };
 }
diff --git a/pkgs/tools/package-management/apk-tools/default.nix b/pkgs/tools/package-management/apk-tools/default.nix
index 5b37982e83f5b..4a460adfd0ff3 100644
--- a/pkgs/tools/package-management/apk-tools/default.nix
+++ b/pkgs/tools/package-management/apk-tools/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ qyliss ];
     license = licenses.gpl2Only;
     platforms = platforms.linux;
+    mainProgram = "apk";
   };
 }
diff --git a/pkgs/tools/package-management/apkg/default.nix b/pkgs/tools/package-management/apkg/default.nix
index 901a7aeff2b4c..18b52f0bcdb89 100644
--- a/pkgs/tools/package-management/apkg/default.nix
+++ b/pkgs/tools/package-management/apkg/default.nix
@@ -47,5 +47,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://pkg.labs.nic.cz/pages/apkg";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.vcunat /* close to upstream */ ];
+    mainProgram = "apkg";
   };
 }
diff --git a/pkgs/tools/package-management/apx/default.nix b/pkgs/tools/package-management/apx/default.nix
index 8671cb611dc8e..aa46c772c2b34 100644
--- a/pkgs/tools/package-management/apx/default.nix
+++ b/pkgs/tools/package-management/apx/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     changelog = "https://github.com/Vanilla-OS/apx/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dit7ya jgarcia ];
+    mainProgram = "apx";
   };
 }
diff --git a/pkgs/tools/package-management/ciel/default.nix b/pkgs/tools/package-management/ciel/default.nix
index d6040c4a07632..87ea364aa4c46 100644
--- a/pkgs/tools/package-management/ciel/default.nix
+++ b/pkgs/tools/package-management/ciel/default.nix
@@ -67,5 +67,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ yisuidenghua ];
+    mainProgram = "ciel";
   };
 }
diff --git a/pkgs/tools/package-management/elm-github-install/default.nix b/pkgs/tools/package-management/elm-github-install/default.nix
index f86cdc55ecc1b..3c77af2b82bf5 100644
--- a/pkgs/tools/package-management/elm-github-install/default.nix
+++ b/pkgs/tools/package-management/elm-github-install/default.nix
@@ -17,5 +17,6 @@ bundlerEnv rec {
     license     = licenses.unfree;
     maintainers = with maintainers; [ roberth nicknovitski ];
     platforms   = platforms.all;
+    mainProgram = "elm-install";
   };
 }
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index 07f17343cb7b8..0a2656e12932f 100644
--- a/pkgs/tools/package-management/emplace/default.nix
+++ b/pkgs/tools/package-management/emplace/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/tversteeg/emplace";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "emplace";
   };
 }
diff --git a/pkgs/tools/package-management/fortran-fpm/default.nix b/pkgs/tools/package-management/fortran-fpm/default.nix
index 6e7c68aa17f12..d8adb92490066 100644
--- a/pkgs/tools/package-management/fortran-fpm/default.nix
+++ b/pkgs/tools/package-management/fortran-fpm/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.proofconstruction ];
     license = licenses.mit;
     platforms = platforms.all;
+    mainProgram = "fortran-fpm";
   };
 }
diff --git a/pkgs/tools/package-management/fpm/default.nix b/pkgs/tools/package-management/fpm/default.nix
index 4eab1556d9544..6be2687d67adc 100644
--- a/pkgs/tools/package-management/fpm/default.nix
+++ b/pkgs/tools/package-management/fpm/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.mit;
     maintainers = with maintainers; [ manveru nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "fpm";
   };
 }
diff --git a/pkgs/tools/package-management/fusesoc/default.nix b/pkgs/tools/package-management/fusesoc/default.nix
index 99926fd5c0471..680cbc0209459 100644
--- a/pkgs/tools/package-management/fusesoc/default.nix
+++ b/pkgs/tools/package-management/fusesoc/default.nix
@@ -34,5 +34,6 @@ buildPythonPackage rec {
     description = "A package manager and build tools for HDL code";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd3;
+    mainProgram = "fusesoc";
   };
 }
diff --git a/pkgs/tools/package-management/gx/default.nix b/pkgs/tools/package-management/gx/default.nix
index e53fdf48413f8..3f757dde448c1 100644
--- a/pkgs/tools/package-management/gx/default.nix
+++ b/pkgs/tools/package-management/gx/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/whyrusleeping/gx";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
+    mainProgram = "gx";
   };
 }
diff --git a/pkgs/tools/package-management/holo-build/default.nix b/pkgs/tools/package-management/holo-build/default.nix
index fca55807f516c..41444e8533d56 100644
--- a/pkgs/tools/package-management/holo-build/default.nix
+++ b/pkgs/tools/package-management/holo-build/default.nix
@@ -55,5 +55,6 @@ buildGoModule rec {
     homepage = "https://holocm.org/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
+    mainProgram = "holo-build";
   };
 }
diff --git a/pkgs/tools/package-management/home-manager/default.nix b/pkgs/tools/package-management/home-manager/default.nix
index fa642cff5dd55..51767ba4946fd 100644
--- a/pkgs/tools/package-management/home-manager/default.nix
+++ b/pkgs/tools/package-management/home-manager/default.nix
@@ -88,5 +88,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
+    mainProgram = "home-manager";
   };
 })
diff --git a/pkgs/tools/package-management/licensee/default.nix b/pkgs/tools/package-management/licensee/default.nix
index fb33f498bbc39..b72c218cd16aa 100644
--- a/pkgs/tools/package-management/licensee/default.nix
+++ b/pkgs/tools/package-management/licensee/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
     platforms   = platforms.unix;
+    mainProgram = "licensee";
   };
 }
diff --git a/pkgs/tools/package-management/microdnf/default.nix b/pkgs/tools/package-management/microdnf/default.nix
index be3041f253d84..79fcdf0300c22 100644
--- a/pkgs/tools/package-management/microdnf/default.nix
+++ b/pkgs/tools/package-management/microdnf/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ rb2k ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "microdnf";
   };
 }
diff --git a/pkgs/tools/package-management/morph/default.nix b/pkgs/tools/package-management/morph/default.nix
index dfb41df33708f..71c9c285f3084 100644
--- a/pkgs/tools/package-management/morph/default.nix
+++ b/pkgs/tools/package-management/morph/default.nix
@@ -33,5 +33,6 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://github.com/dbcdk/morph";
     maintainers = with maintainers; [adamt johanot];
+    mainProgram = "morph";
   };
 }
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index 9d04dd026404a..f61d49f493b6e 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -40,5 +40,6 @@ buildGoModule rec {
     changelog = "https://github.com/goreleaser/nfpm/releases/tag/v${version}";
     maintainers = with maintainers; [ marsam techknowlogick caarlos0 ];
     license = with licenses; [ mit ];
+    mainProgram = "nfpm";
   };
 }
diff --git a/pkgs/tools/package-management/niff/default.nix b/pkgs/tools/package-management/niff/default.nix
index 93406095df25e..827d4353f2835 100644
--- a/pkgs/tools/package-management/niff/default.nix
+++ b/pkgs/tools/package-management/niff/default.nix
@@ -30,5 +30,6 @@ in stdenv.mkDerivation {
     homepage = "https://github.com/FRidh/niff";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.fridh ];
+    mainProgram = "niff";
   };
 }
diff --git a/pkgs/tools/package-management/nix-doc/default.nix b/pkgs/tools/package-management/nix-doc/default.nix
index 2d0815e8af9be..b5cc15704c32d 100644
--- a/pkgs/tools/package-management/nix-doc/default.nix
+++ b/pkgs/tools/package-management/nix-doc/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.lgpl3Plus;
     maintainers = [ maintainers.lf- ];
     platforms = platforms.unix;
+    mainProgram = "nix-doc";
   };
 }
diff --git a/pkgs/tools/package-management/nix-du/default.nix b/pkgs/tools/package-management/nix-du/default.nix
index dcd1e24ff34a9..fcd7aca5714bd 100644
--- a/pkgs/tools/package-management/nix-du/default.nix
+++ b/pkgs/tools/package-management/nix-du/default.nix
@@ -40,5 +40,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.lgpl3Only;
     maintainers = [ maintainers.symphorien ];
     platforms = platforms.unix;
+    mainProgram = "nix-du";
   };
 }
diff --git a/pkgs/tools/package-management/nix-eval-jobs/default.nix b/pkgs/tools/package-management/nix-eval-jobs/default.nix
index 95cfa9a447d25..defc680968d41 100644
--- a/pkgs/tools/package-management/nix-eval-jobs/default.nix
+++ b/pkgs/tools/package-management/nix-eval-jobs/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ adisbladis mic92 ];
     platforms = lib.platforms.unix;
+    mainProgram = "nix-eval-jobs";
   };
 }
diff --git a/pkgs/tools/package-management/nix-pin/default.nix b/pkgs/tools/package-management/nix-pin/default.nix
index b924c8c07f4a5..59422ff22cc24 100644
--- a/pkgs/tools/package-management/nix-pin/default.nix
+++ b/pkgs/tools/package-management/nix-pin/default.nix
@@ -46,5 +46,6 @@ let self = stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.timbertson ];
     platforms = platforms.all;
+    mainProgram = "nix-pin";
   };
 }; in self
diff --git a/pkgs/tools/package-management/nix-prefetch/default.nix b/pkgs/tools/package-management/nix-prefetch/default.nix
index ee537733e7cb5..8ed71d078b78c 100644
--- a/pkgs/tools/package-management/nix-prefetch/default.nix
+++ b/pkgs/tools/package-management/nix-prefetch/default.nix
@@ -76,5 +76,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ msteen ];
     homepage = "https://github.com/msteen/nix-prefetch";
     platforms = platforms.all;
+    mainProgram = "nix-prefetch";
   };
 }
diff --git a/pkgs/tools/package-management/nix-serve/default.nix b/pkgs/tools/package-management/nix-serve/default.nix
index 20f374b8d108e..a149b490f5aac 100644
--- a/pkgs/tools/package-management/nix-serve/default.nix
+++ b/pkgs/tools/package-management/nix-serve/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation {
     maintainers = [ maintainers.eelco ];
     license = licenses.lgpl21;
     platforms = nix.meta.platforms;
+    mainProgram = "nix-serve";
   };
 }
diff --git a/pkgs/tools/package-management/nix-simple-deploy/default.nix b/pkgs/tools/package-management/nix-simple-deploy/default.nix
index 0077c6c018958..647a11b01fdc5 100644
--- a/pkgs/tools/package-management/nix-simple-deploy/default.nix
+++ b/pkgs/tools/package-management/nix-simple-deploy/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     platforms = platforms.unix;
     license = with licenses; [ asl20 /* OR */ mit ];
     maintainers = with maintainers; [ misuzu ];
+    mainProgram = "nix-simple-deploy";
   };
 }
diff --git a/pkgs/tools/package-management/nix-template/default.nix b/pkgs/tools/package-management/nix-template/default.nix
index 84afede50fe2d..e1431532f8577 100644
--- a/pkgs/tools/package-management/nix-template/default.nix
+++ b/pkgs/tools/package-management/nix-template/default.nix
@@ -47,5 +47,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/jonringer/nix-template/releases/tag/v${version}";
     license = licenses.cc0;
     maintainers = with maintainers; [ jonringer ];
+    mainProgram = "nix-template";
   };
 }
diff --git a/pkgs/tools/package-management/nix-top/default.nix b/pkgs/tools/package-management/nix-top/default.nix
index 523f15bd46628..dc49f2a739e94 100644
--- a/pkgs/tools/package-management/nix-top/default.nix
+++ b/pkgs/tools/package-management/nix-top/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ samueldr ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "nix-top";
   };
 }
diff --git a/pkgs/tools/package-management/nix-universal-prefetch/default.nix b/pkgs/tools/package-management/nix-universal-prefetch/default.nix
index 69ebf1c7cd004..be31ca34ad603 100644
--- a/pkgs/tools/package-management/nix-universal-prefetch/default.nix
+++ b/pkgs/tools/package-management/nix-universal-prefetch/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ samueldr ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "nix-universal-prefetch";
   };
 }
diff --git a/pkgs/tools/package-management/nix-update-source/default.nix b/pkgs/tools/package-management/nix-update-source/default.nix
index ebfd730544e12..533f487e39747 100644
--- a/pkgs/tools/package-management/nix-update-source/default.nix
+++ b/pkgs/tools/package-management/nix-update-source/default.nix
@@ -54,5 +54,6 @@ python3Packages.buildPythonApplication rec {
     description = "Utility to automate updating of nix derivation sources";
     maintainers = with lib.maintainers; [ timbertson ];
     license = lib.licenses.mit;
+    mainProgram = "nix-update-source";
   };
 }
diff --git a/pkgs/tools/package-management/pacup/default.nix b/pkgs/tools/package-management/pacup/default.nix
index 70c1fba6c6985..7afd4eb815d73 100644
--- a/pkgs/tools/package-management/pacup/default.nix
+++ b/pkgs/tools/package-management/pacup/default.nix
@@ -41,5 +41,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/pacstall/pacup/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ zahrun ];
+    mainProgram = "pacup";
   };
 }
diff --git a/pkgs/tools/package-management/pkg/default.nix b/pkgs/tools/package-management/pkg/default.nix
index 9ca25dd31c38b..b100b9984915f 100644
--- a/pkgs/tools/package-management/pkg/default.nix
+++ b/pkgs/tools/package-management/pkg/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with maintainers; [ qyliss ];
     platforms = with platforms; darwin ++ freebsd ++ linux ++ netbsd ++ openbsd;
     license = licenses.bsd2;
+    mainProgram = "pkg";
   };
 })
diff --git a/pkgs/tools/package-management/poetry/unwrapped.nix b/pkgs/tools/package-management/poetry/unwrapped.nix
index e384c96e1f8ed..924d6028abcb0 100644
--- a/pkgs/tools/package-management/poetry/unwrapped.nix
+++ b/pkgs/tools/package-management/poetry/unwrapped.nix
@@ -166,5 +166,6 @@ buildPythonPackage rec {
     description = "Python dependency management and packaging made easy";
     license = licenses.mit;
     maintainers = with maintainers; [ jakewaksbaum dotlambda ];
+    mainProgram = "poetry";
   };
 }
diff --git a/pkgs/tools/package-management/poetry2conda/default.nix b/pkgs/tools/package-management/poetry2conda/default.nix
index 86e66def48680..7aa821d678ace 100644
--- a/pkgs/tools/package-management/poetry2conda/default.nix
+++ b/pkgs/tools/package-management/poetry2conda/default.nix
@@ -43,5 +43,6 @@ with python3.pkgs; buildPythonApplication rec {
     homepage = "https://github.com/dojeda/poetry2conda";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
+    mainProgram = "poetry2conda";
   };
 }
diff --git a/pkgs/tools/package-management/repro-get/default.nix b/pkgs/tools/package-management/repro-get/default.nix
index bb619874d7b0f..95d5902be0065 100644
--- a/pkgs/tools/package-management/repro-get/default.nix
+++ b/pkgs/tools/package-management/repro-get/default.nix
@@ -69,5 +69,6 @@ buildGoModule rec {
     homepage = "https://github.com/reproducible-containers/repro-get";
     license = licenses.asl20;
     maintainers = with maintainers; [ matthewcroughan ];
+    mainProgram = "repro-get";
   };
 }
diff --git a/pkgs/tools/package-management/reuse/default.nix b/pkgs/tools/package-management/reuse/default.nix
index 8ba5be3e77951..38e79765aafb0 100644
--- a/pkgs/tools/package-management/reuse/default.nix
+++ b/pkgs/tools/package-management/reuse/default.nix
@@ -36,5 +36,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/fsfe/reuse-tool";
     license = with licenses; [ asl20 cc-by-sa-40 cc0 gpl3Plus ];
     maintainers = with maintainers; [ FlorianFranzen Luflosi ];
+    mainProgram = "reuse";
   };
 }
diff --git a/pkgs/tools/package-management/smlpkg/default.nix b/pkgs/tools/package-management/smlpkg/default.nix
index 4bf75c1261496..be7592c1c6d88 100644
--- a/pkgs/tools/package-management/smlpkg/default.nix
+++ b/pkgs/tools/package-management/smlpkg/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = mlton.meta.platforms;
     maintainers = with maintainers; [ athas ];
+    mainProgram = "smlpkg";
   };
 }
diff --git a/pkgs/tools/package-management/yarn-lock-converter/default.nix b/pkgs/tools/package-management/yarn-lock-converter/default.nix
index 2f3ebff741084..70f5b143ebe8b 100644
--- a/pkgs/tools/package-management/yarn-lock-converter/default.nix
+++ b/pkgs/tools/package-management/yarn-lock-converter/default.nix
@@ -45,5 +45,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/VHT/yarn-lock-converter";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
+    mainProgram = "yarn-lock-converter";
   };
 }
diff --git a/pkgs/tools/system/actkbd/default.nix b/pkgs/tools/system/actkbd/default.nix
index 61be7e5a4a92e..5dd024e573d4e 100644
--- a/pkgs/tools/system/actkbd/default.nix
+++ b/pkgs/tools/system/actkbd/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     homepage = "http://users.softlab.ece.ntua.gr/~thkala/projects/actkbd/";
     platforms = platforms.linux;
+    mainProgram = "actkbd";
   };
 }
diff --git a/pkgs/tools/system/amdgpu_top/default.nix b/pkgs/tools/system/amdgpu_top/default.nix
index b8f753bc5a46b..85a7b40cd5407 100644
--- a/pkgs/tools/system/amdgpu_top/default.nix
+++ b/pkgs/tools/system/amdgpu_top/default.nix
@@ -54,5 +54,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ geri1701 ];
     platforms = platforms.linux;
+    mainProgram = "amdgpu_top";
   };
 }
diff --git a/pkgs/tools/system/automatic-timezoned/default.nix b/pkgs/tools/system/automatic-timezoned/default.nix
index 7233a41142edc..f6bfe6db6958c 100644
--- a/pkgs/tools/system/automatic-timezoned/default.nix
+++ b/pkgs/tools/system/automatic-timezoned/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ maxbrunet ];
     platforms = platforms.linux;
+    mainProgram = "automatic-timezoned";
   };
 }
diff --git a/pkgs/tools/system/awstats/default.nix b/pkgs/tools/system/awstats/default.nix
index 21b76adf3e596..e1479e6192cb9 100644
--- a/pkgs/tools/system/awstats/default.nix
+++ b/pkgs/tools/system/awstats/default.nix
@@ -63,5 +63,6 @@ perlPackages.buildPerlPackage rec {
     homepage = "https://awstats.org";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
+    mainProgram = "awstats";
   };
 }
diff --git a/pkgs/tools/system/bar/default.nix b/pkgs/tools/system/bar/default.nix
index 9ff8d2080f7fe..1109def2bf309 100644
--- a/pkgs/tools/system/bar/default.nix
+++ b/pkgs/tools/system/bar/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.rdnetto ];
     platforms = lib.platforms.all;
+    mainProgram = "bar";
   };
 }
diff --git a/pkgs/tools/system/btop/default.nix b/pkgs/tools/system/btop/default.nix
index a4a5156525dd2..6a51b29d1d1c0 100644
--- a/pkgs/tools/system/btop/default.nix
+++ b/pkgs/tools/system/btop/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ rmcgibbo ];
+    mainProgram = "btop";
   };
 }
diff --git a/pkgs/tools/system/chase/default.nix b/pkgs/tools/system/chase/default.nix
index d20d33235cf87..40f09089fdff1 100644
--- a/pkgs/tools/system/chase/default.nix
+++ b/pkgs/tools/system/chase/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.polyrod ];
     platforms = platforms.all;
+    mainProgram = "chase";
   };
 }
diff --git a/pkgs/tools/system/clinfo/default.nix b/pkgs/tools/system/clinfo/default.nix
index 746f83690e7dd..50e72498bf640 100644
--- a/pkgs/tools/system/clinfo/default.nix
+++ b/pkgs/tools/system/clinfo/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.cc0;
     maintainers = with maintainers; [ athas r-burns ];
     platforms = platforms.unix;
+    mainProgram = "clinfo";
   };
 }
diff --git a/pkgs/tools/system/colorls/default.nix b/pkgs/tools/system/colorls/default.nix
index 8243590cd7d55..3dc460140cb63 100644
--- a/pkgs/tools/system/colorls/default.nix
+++ b/pkgs/tools/system/colorls/default.nix
@@ -14,5 +14,6 @@ bundlerApp {
     license     = with licenses; mit;
     maintainers = with maintainers; [ lukebfox nicknovitski cbley ];
     platforms   = ruby.meta.platforms;
+    mainProgram = "colorls";
   };
 }
diff --git a/pkgs/tools/system/confd/default.nix b/pkgs/tools/system/confd/default.nix
index 25f03e1a665ff..bdbba9bc9f212 100644
--- a/pkgs/tools/system/confd/default.nix
+++ b/pkgs/tools/system/confd/default.nix
@@ -20,5 +20,6 @@ buildGoPackage rec {
     homepage = "https://github.com/kelseyhightower/confd";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.zimbatm ];
+    mainProgram = "confd";
   };
 }
diff --git a/pkgs/tools/system/ctop/default.nix b/pkgs/tools/system/ctop/default.nix
index e3a9e82d8a223..6cf30afa3fd7d 100644
--- a/pkgs/tools/system/ctop/default.nix
+++ b/pkgs/tools/system/ctop/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://ctop.sh/";
     license = licenses.mit;
     maintainers = with maintainers; [ apeyroux marsam ];
+    mainProgram = "ctop";
   };
 }
diff --git a/pkgs/tools/system/daemon/default.nix b/pkgs/tools/system/daemon/default.nix
index 7d63b12850ead..0a7b579347176 100644
--- a/pkgs/tools/system/daemon/default.nix
+++ b/pkgs/tools/system/daemon/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.sander ];
     platforms = platforms.unix;
+    mainProgram = "daemon";
   };
 }
diff --git a/pkgs/tools/system/daemonize/default.nix b/pkgs/tools/system/daemonize/default.nix
index b3cf2a4356f61..3a1340e606d0a 100644
--- a/pkgs/tools/system/daemonize/default.nix
+++ b/pkgs/tools/system/daemonize/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "http://software.clapper.org/daemonize/";
     license = licenses.bsd3;
     platforms = with platforms; linux ++ freebsd ++ darwin;
+    mainProgram = "daemonize";
   };
 }
diff --git a/pkgs/tools/system/datefudge/default.nix b/pkgs/tools/system/datefudge/default.nix
index d83e4aa383bc6..e32fb70e2e094 100644
--- a/pkgs/tools/system/datefudge/default.nix
+++ b/pkgs/tools/system/datefudge/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ leenaars ];
+    mainProgram = "datefudge";
   };
 }
diff --git a/pkgs/tools/system/dcfldd/default.nix b/pkgs/tools/system/dcfldd/default.nix
index 7047d41c5bb53..395b4431acee0 100644
--- a/pkgs/tools/system/dcfldd/default.nix
+++ b/pkgs/tools/system/dcfldd/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
 
     platforms = platforms.all;
     maintainers = with maintainers; [ qknight ];
+    mainProgram = "dcfldd";
   };
 }
diff --git a/pkgs/tools/system/ddh/default.nix b/pkgs/tools/system/ddh/default.nix
index cba8ade1f4286..33618da36376e 100644
--- a/pkgs/tools/system/ddh/default.nix
+++ b/pkgs/tools/system/ddh/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ h7x4 ];
     platforms = platforms.all;
+    mainProgram = "ddh";
   };
 }
diff --git a/pkgs/tools/system/ddrescueview/default.nix b/pkgs/tools/system/ddrescueview/default.nix
index c22c74cd4a84e..3576c0eb65376 100644
--- a/pkgs/tools/system/ddrescueview/default.nix
+++ b/pkgs/tools/system/ddrescueview/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ orivej ];
+    mainProgram = "ddrescueview";
   };
 }
diff --git a/pkgs/tools/system/dfc/default.nix b/pkgs/tools/system/dfc/default.nix
index 6478e699539f9..0ad1d745b066c 100644
--- a/pkgs/tools/system/dfc/default.nix
+++ b/pkgs/tools/system/dfc/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [qknight];
     platforms = lib.platforms.all;
+    mainProgram = "dfc";
   };
 }
diff --git a/pkgs/tools/system/dfrs/default.nix b/pkgs/tools/system/dfrs/default.nix
index f9bbbd12388fe..002e421900b9f 100644
--- a/pkgs/tools/system/dfrs/default.nix
+++ b/pkgs/tools/system/dfrs/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/anthraxx/dfrs";
     license = licenses.mit;
     maintainers = with maintainers; [ wamserma ];
+    mainProgram = "dfrs";
   };
 }
diff --git a/pkgs/tools/system/disk-filltest/default.nix b/pkgs/tools/system/disk-filltest/default.nix
index ecfa14aa91be9..aeef6732236f0 100644
--- a/pkgs/tools/system/disk-filltest/default.nix
+++ b/pkgs/tools/system/disk-filltest/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ caadar ];
     platforms = platforms.all;
+    mainProgram = "disk-filltest";
   };
 
 }
diff --git a/pkgs/tools/system/dog/default.nix b/pkgs/tools/system/dog/default.nix
index 6d15f5bbd52b7..b8ed50c0c63e8 100644
--- a/pkgs/tools/system/dog/default.nix
+++ b/pkgs/tools/system/dog/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ qknight ];
     platforms = platforms.all;
+    mainProgram = "dog";
   };
 }
diff --git a/pkgs/tools/system/dool/default.nix b/pkgs/tools/system/dool/default.nix
index 27d98a49ef7d7..a54bcd4b14e87 100644
--- a/pkgs/tools/system/dool/default.nix
+++ b/pkgs/tools/system/dool/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
     platforms = platforms.unix;
+    mainProgram = "dool";
   };
 }
diff --git a/pkgs/tools/system/envconsul/default.nix b/pkgs/tools/system/envconsul/default.nix
index 5f21a0bcafdc9..f3e5609d9abd9 100644
--- a/pkgs/tools/system/envconsul/default.nix
+++ b/pkgs/tools/system/envconsul/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     description = "Read and set environmental variables for processes from Consul";
     license = licenses.mpl20;
     maintainers = with maintainers; [ pradeepchhetri ];
+    mainProgram = "envconsul";
   };
 }
diff --git a/pkgs/tools/system/epilys-bb/default.nix b/pkgs/tools/system/epilys-bb/default.nix
index 169e10bc30c42..44a1e566c5d47 100644
--- a/pkgs/tools/system/epilys-bb/default.nix
+++ b/pkgs/tools/system/epilys-bb/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ cafkafk ];
     platforms = platforms.linux;
+    mainProgram = "bb";
   };
 }
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index c6c091c1fba1b..02c48d302ac35 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
     platforms = platforms.unix;
+    mainProgram = "facter";
   };
 }
diff --git a/pkgs/tools/system/foreman/default.nix b/pkgs/tools/system/foreman/default.nix
index ce2f201762902..8a7cfde32ee05 100644
--- a/pkgs/tools/system/foreman/default.nix
+++ b/pkgs/tools/system/foreman/default.nix
@@ -11,5 +11,6 @@ bundlerEnv {
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
     platforms = ruby.meta.platforms;
+    mainProgram = "foreman";
   };
 }
diff --git a/pkgs/tools/system/foremost/default.nix b/pkgs/tools/system/foremost/default.nix
index 140ce91fd66cc..a1a09826c5374 100644
--- a/pkgs/tools/system/foremost/default.nix
+++ b/pkgs/tools/system/foremost/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = [ maintainers.jiegec ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "foremost";
   };
 }
diff --git a/pkgs/tools/system/gdmap/default.nix b/pkgs/tools/system/gdmap/default.nix
index 2d5cafc4de1c0..900dabf834b54 100644
--- a/pkgs/tools/system/gdmap/default.nix
+++ b/pkgs/tools/system/gdmap/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "gdmap";
   };
 }
diff --git a/pkgs/tools/system/gdu/default.nix b/pkgs/tools/system/gdu/default.nix
index 1b6f44fd700b7..ba95a6730630c 100644
--- a/pkgs/tools/system/gdu/default.nix
+++ b/pkgs/tools/system/gdu/default.nix
@@ -55,5 +55,6 @@ buildGoModule rec {
     changelog = "https://github.com/dundee/gdu/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab zowoq ];
+    mainProgram = "gdu";
   };
 }
diff --git a/pkgs/tools/system/gkraken/default.nix b/pkgs/tools/system/gkraken/default.nix
index f37a21db79f47..330d9f1129f7b 100644
--- a/pkgs/tools/system/gkraken/default.nix
+++ b/pkgs/tools/system/gkraken/default.nix
@@ -82,5 +82,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.linux;
+    mainProgram = "gkraken";
   };
 }
diff --git a/pkgs/tools/system/go-audit/default.nix b/pkgs/tools/system/go-audit/default.nix
index 83bd7827fff51..38fd388973902 100644
--- a/pkgs/tools/system/go-audit/default.nix
+++ b/pkgs/tools/system/go-audit/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
     platforms = platforms.linux;
+    mainProgram = "go-audit";
   };
 }
diff --git a/pkgs/tools/system/gohai/default.nix b/pkgs/tools/system/gohai/default.nix
index 64d051a923f22..5fa84e873ba3f 100644
--- a/pkgs/tools/system/gohai/default.nix
+++ b/pkgs/tools/system/gohai/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
       information. It is used by the Datadog agent to provide detailed
       system metrics.
     '';
+    mainProgram = "gohai";
   };
 }
diff --git a/pkgs/tools/system/gopsuinfo/default.nix b/pkgs/tools/system/gopsuinfo/default.nix
index df8cd5026eaf7..b4a1003e40cfe 100644
--- a/pkgs/tools/system/gopsuinfo/default.nix
+++ b/pkgs/tools/system/gopsuinfo/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ otini ];
     platforms = platforms.linux;
+    mainProgram = "gopsuinfo";
   };
 }
diff --git a/pkgs/tools/system/gotop/default.nix b/pkgs/tools/system/gotop/default.nix
index 966406971a551..9681d3286cefd 100644
--- a/pkgs/tools/system/gotop/default.nix
+++ b/pkgs/tools/system/gotop/default.nix
@@ -49,5 +49,6 @@ buildGoModule rec {
     changelog = "https://github.com/xxxserxxx/gotop/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = [ maintainers.magnetophon ];
+    mainProgram = "gotop";
   };
 }
diff --git a/pkgs/tools/system/gptman/default.nix b/pkgs/tools/system/gptman/default.nix
index e8fc661dd72dc..3e3fc623a9e76 100644
--- a/pkgs/tools/system/gptman/default.nix
+++ b/pkgs/tools/system/gptman/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rust-disk-partition-management/gptman";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ akshgpt7 ];
+    mainProgram = "gptman";
   };
 }
diff --git a/pkgs/tools/system/gt5/default.nix b/pkgs/tools/system/gt5/default.nix
index edd1a8ecfd488..49d9fe651d497 100644
--- a/pkgs/tools/system/gt5/default.nix
+++ b/pkgs/tools/system/gt5/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; all;
+    mainProgram = "gt5";
   };
 }
diff --git a/pkgs/tools/system/gtop/default.nix b/pkgs/tools/system/gtop/default.nix
index 766719dfb347e..327f09a91fb30 100644
--- a/pkgs/tools/system/gtop/default.nix
+++ b/pkgs/tools/system/gtop/default.nix
@@ -23,5 +23,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/aksakalli/gtop";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tfc ];
+    mainProgram = "gtop";
   };
 }
diff --git a/pkgs/tools/system/hardinfo/default.nix b/pkgs/tools/system/hardinfo/default.nix
index 66669b5e850c3..99ffe50786ec6 100644
--- a/pkgs/tools/system/hardinfo/default.nix
+++ b/pkgs/tools/system/hardinfo/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ bjornfor ];
     platforms = [ "x86_64-linux" "i686-linux" ]; # ARMv7 and AArch64 are unsupported
+    mainProgram = "hardinfo";
   };
 }
diff --git a/pkgs/tools/system/hddfancontrol/default.nix b/pkgs/tools/system/hddfancontrol/default.nix
index 117acd7f75311..64409cbcdba03 100644
--- a/pkgs/tools/system/hddfancontrol/default.nix
+++ b/pkgs/tools/system/hddfancontrol/default.nix
@@ -30,5 +30,6 @@ python3Packages.buildPythonPackage rec {
     homepage = "https://github.com/desbma/hddfancontrol";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ benley ];
+    mainProgram = "hddfancontrol";
   };
 }
diff --git a/pkgs/tools/system/hiera-eyaml/default.nix b/pkgs/tools/system/hiera-eyaml/default.nix
index be6fb1c7462ab..1f48d37f5847a 100644
--- a/pkgs/tools/system/hiera-eyaml/default.nix
+++ b/pkgs/tools/system/hiera-eyaml/default.nix
@@ -13,5 +13,6 @@ bundlerEnv {
     license = licenses.mit;
     maintainers = with maintainers; [ benley nicknovitski ];
     platforms = platforms.unix;
+    mainProgram = "eyaml";
   };
 }
diff --git a/pkgs/tools/system/honcho/default.nix b/pkgs/tools/system/honcho/default.nix
index 1fef47933bb5c..08c0fb3f6b58f 100644
--- a/pkgs/tools/system/honcho/default.nix
+++ b/pkgs/tools/system/honcho/default.nix
@@ -34,5 +34,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/nickstenning/honcho";
     maintainers = with maintainers; [ benley ];
     platforms = platforms.unix;
+    mainProgram = "honcho";
   };
 }
diff --git a/pkgs/tools/system/hostctl/default.nix b/pkgs/tools/system/hostctl/default.nix
index 9f349423f9f0f..76c41d85ecdfd 100644
--- a/pkgs/tools/system/hostctl/default.nix
+++ b/pkgs/tools/system/hostctl/default.nix
@@ -42,5 +42,6 @@ buildGoModule rec {
     homepage = "https://guumaster.github.io/hostctl/";
     license = licenses.mit;
     maintainers = with maintainers; [ blaggacao ];
+    mainProgram = "hostctl";
   };
 }
diff --git a/pkgs/tools/system/hw-probe/default.nix b/pkgs/tools/system/hw-probe/default.nix
index 501ae69dbfd2b..8b190087ffd57 100644
--- a/pkgs/tools/system/hw-probe/default.nix
+++ b/pkgs/tools/system/hw-probe/default.nix
@@ -136,5 +136,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; (linux ++ freebsd ++ netbsd ++ openbsd);
     license = with licenses; [ lgpl21 bsdOriginal ];
     maintainers = with maintainers; [ rehno-lindeque  ];
+    mainProgram = "hw-probe";
   };
 }
diff --git a/pkgs/tools/system/idle3tools/default.nix b/pkgs/tools/system/idle3tools/default.nix
index c0386fb66bcf9..d66a7f9b66a81 100644
--- a/pkgs/tools/system/idle3tools/default.nix
+++ b/pkgs/tools/system/idle3tools/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
+    mainProgram = "idle3ctl";
   };
 }
diff --git a/pkgs/tools/system/illum/default.nix b/pkgs/tools/system/illum/default.nix
index c9e87bef62144..3d33be9ed635f 100644
--- a/pkgs/tools/system/illum/default.nix
+++ b/pkgs/tools/system/illum/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.dancek ];
     license = lib.licenses.agpl3;
+    mainProgram = "illum-d";
   };
 }
diff --git a/pkgs/tools/system/inxi/default.nix b/pkgs/tools/system/inxi/default.nix
index b03a7c14a7d63..a376146032ac2 100644
--- a/pkgs/tools/system/inxi/default.nix
+++ b/pkgs/tools/system/inxi/default.nix
@@ -58,5 +58,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
+    mainProgram = "inxi";
   };
 }
diff --git a/pkgs/tools/system/ioping/default.nix b/pkgs/tools/system/ioping/default.nix
index 9af290503f494..f610258cf503e 100644
--- a/pkgs/tools/system/ioping/default.nix
+++ b/pkgs/tools/system/ioping/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.gpl3Plus;
     homepage = "https://github.com/koct9i/ioping";
+    mainProgram = "ioping";
   };
 }
diff --git a/pkgs/tools/system/java-service-wrapper/default.nix b/pkgs/tools/system/java-service-wrapper/default.nix
index 63300964f672b..acc5ddf3f54e8 100644
--- a/pkgs/tools/system/java-service-wrapper/default.nix
+++ b/pkgs/tools/system/java-service-wrapper/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = [ maintainers.suhr ];
+    mainProgram = "wrapper";
   };
 }
diff --git a/pkgs/tools/system/jobber/default.nix b/pkgs/tools/system/jobber/default.nix
index d226d82d8cd84..d9620e49977b8 100644
--- a/pkgs/tools/system/jobber/default.nix
+++ b/pkgs/tools/system/jobber/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     description = "An alternative to cron, with sophisticated status-reporting and error-handling";
     license = licenses.mit;
     maintainers = with maintainers; [ urandom ];
+    mainProgram = "jobber";
   };
 }
diff --git a/pkgs/tools/system/jsvc/default.nix b/pkgs/tools/system/jsvc/default.nix
index 4dcc773ebf436..9d1b07895fc34 100644
--- a/pkgs/tools/system/jsvc/default.nix
+++ b/pkgs/tools/system/jsvc/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ rsynnest ];
     license     = lib.licenses.asl20;
     platforms = with lib.platforms; unix;
+    mainProgram = "jsvc";
   };
 }
diff --git a/pkgs/tools/system/jump/default.nix b/pkgs/tools/system/jump/default.nix
index 3ff64996d0137..483ea356f0e98 100644
--- a/pkgs/tools/system/jump/default.nix
+++ b/pkgs/tools/system/jump/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/gsamokovarov/jump";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "jump";
   };
 }
diff --git a/pkgs/tools/system/kmon/default.nix b/pkgs/tools/system/kmon/default.nix
index 4b9b2d0099325..df7ccfa4cf25f 100644
--- a/pkgs/tools/system/kmon/default.nix
+++ b/pkgs/tools/system/kmon/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ figsoda misuzu matthiasbeyer ];
+    mainProgram = "kmon";
   };
 }
diff --git a/pkgs/tools/system/lact/default.nix b/pkgs/tools/system/lact/default.nix
index e91326972949b..234e58832fca8 100644
--- a/pkgs/tools/system/lact/default.nix
+++ b/pkgs/tools/system/lact/default.nix
@@ -76,5 +76,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
     platforms = platforms.linux;
+    mainProgram = "lact";
   };
 }
diff --git a/pkgs/tools/system/localtime/default.nix b/pkgs/tools/system/localtime/default.nix
index 10ee42bf0308d..bdb1fa2e74445 100644
--- a/pkgs/tools/system/localtime/default.nix
+++ b/pkgs/tools/system/localtime/default.nix
@@ -39,5 +39,6 @@ buildGoModule {
     maintainers = with maintainers; [ lovesegfault ];
     platforms = platforms.linux;
     license = licenses.gpl3;
+    mainProgram = "localtimed";
   };
 }
diff --git a/pkgs/tools/system/logrotate/default.nix b/pkgs/tools/system/logrotate/default.nix
index e7d60479a3e5f..e92f34188f4ff 100644
--- a/pkgs/tools/system/logrotate/default.nix
+++ b/pkgs/tools/system/logrotate/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.viric ];
     platforms = platforms.all;
+    mainProgram = "logrotate";
   };
 }
diff --git a/pkgs/tools/system/lr/default.nix b/pkgs/tools/system/lr/default.nix
index 806b329196a28..e3f62a79e4c13 100644
--- a/pkgs/tools/system/lr/default.nix
+++ b/pkgs/tools/system/lr/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ vikanezrimaya ];
+    mainProgram = "lr";
   };
 }
diff --git a/pkgs/tools/system/lshw/default.nix b/pkgs/tools/system/lshw/default.nix
index f5b4486365c33..9878f82b9d092 100644
--- a/pkgs/tools/system/lshw/default.nix
+++ b/pkgs/tools/system/lshw/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ thiagokokada ];
     platforms = platforms.linux;
+    mainProgram = "lshw";
   };
 }
diff --git a/pkgs/tools/system/mediawriter/default.nix b/pkgs/tools/system/mediawriter/default.nix
index eaea077c8520f..f0b8305bc8e83 100644
--- a/pkgs/tools/system/mediawriter/default.nix
+++ b/pkgs/tools/system/mediawriter/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/FedoraQt/MediaWriter/releases/tag/${version}";
     license = licenses.lgpl2Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "mediawriter";
   };
 }
diff --git a/pkgs/tools/system/memtester/default.nix b/pkgs/tools/system/memtester/default.nix
index 14b3610abe979..7753ed804e164 100644
--- a/pkgs/tools/system/memtester/default.nix
+++ b/pkgs/tools/system/memtester/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.unix;
+    mainProgram = "memtester";
   };
 }
diff --git a/pkgs/tools/system/minijail/default.nix b/pkgs/tools/system/minijail/default.nix
index ab237dd307279..87913252ab4bd 100644
--- a/pkgs/tools/system/minijail/default.nix
+++ b/pkgs/tools/system/minijail/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ pcarrier qyliss ];
     platforms = platforms.linux;
+    mainProgram = "minijail0";
   };
 }
diff --git a/pkgs/tools/system/mlc/default.nix b/pkgs/tools/system/mlc/default.nix
index 5df3579ca9a1e..409738e4a353a 100644
--- a/pkgs/tools/system/mlc/default.nix
+++ b/pkgs/tools/system/mlc/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ basvandijk ];
     platforms = with platforms; linux;
+    mainProgram = "mlc";
   };
 }
diff --git a/pkgs/tools/system/monit/default.nix b/pkgs/tools/system/monit/default.nix
index f1ebd6596c5bf..bd36d6fa400e0 100644
--- a/pkgs/tools/system/monit/default.nix
+++ b/pkgs/tools/system/monit/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.agpl3;
     maintainers = with lib.maintainers; [ raskin wmertens ryantm ];
     platforms = with lib; platforms.linux ++ platforms.darwin;
+    mainProgram = "monit";
   };
 }
diff --git a/pkgs/tools/system/mq-cli/default.nix b/pkgs/tools/system/mq-cli/default.nix
index cdbff1921a79b..81adc7daa2725 100644
--- a/pkgs/tools/system/mq-cli/default.nix
+++ b/pkgs/tools/system/mq-cli/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license          = licenses.mit;
     maintainers      = with maintainers; [ tazjin ];
     platforms        = platforms.linux;
+    mainProgram      = "mq";
   };
 }
diff --git a/pkgs/tools/system/nats-top/default.nix b/pkgs/tools/system/nats-top/default.nix
index 49d70e0b30cf5..c26c65d48a89a 100644
--- a/pkgs/tools/system/nats-top/default.nix
+++ b/pkgs/tools/system/nats-top/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     changelog = "https://github.com/nats-io/nats-top/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "nats-top";
   };
 }
diff --git a/pkgs/tools/system/opencl-info/default.nix b/pkgs/tools/system/opencl-info/default.nix
index 124b53512d726..fc549d2d7961f 100644
--- a/pkgs/tools/system/opencl-info/default.nix
+++ b/pkgs/tools/system/opencl-info/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "opencl-info";
   };
 }
diff --git a/pkgs/tools/system/pcstat/default.nix b/pkgs/tools/system/pcstat/default.nix
index 8e45896632b3e..85e6c791990eb 100644
--- a/pkgs/tools/system/pcstat/default.nix
+++ b/pkgs/tools/system/pcstat/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/tobert/pcstat";
     license = licenses.asl20;
     maintainers = with maintainers; [ aminechikhaoui ];
+    mainProgram = "pcstat";
   };
 }
diff --git a/pkgs/tools/system/procodile/default.nix b/pkgs/tools/system/procodile/default.nix
index 6c463b4543335..3c4437ea09c47 100644
--- a/pkgs/tools/system/procodile/default.nix
+++ b/pkgs/tools/system/procodile/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = with licenses; mit;
     maintainers = with maintainers; [ manveru nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "procodile";
   };
 }
diff --git a/pkgs/tools/system/ps_mem/default.nix b/pkgs/tools/system/ps_mem/default.nix
index 8408ed5e8d189..96c21e461d4a6 100644
--- a/pkgs/tools/system/ps_mem/default.nix
+++ b/pkgs/tools/system/ps_mem/default.nix
@@ -17,5 +17,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.lgpl21;
     maintainers = [ ];
     platforms = platforms.linux;
+    mainProgram = "ps_mem";
   };
 }
diff --git a/pkgs/tools/system/psensor/default.nix b/pkgs/tools/system/psensor/default.nix
index b6c6e947b0c46..47456b76f325c 100644
--- a/pkgs/tools/system/psensor/default.nix
+++ b/pkgs/tools/system/psensor/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "psensor";
   };
 }
diff --git a/pkgs/tools/system/psstop/default.nix b/pkgs/tools/system/psstop/default.nix
index 1d4fff918ec79..1adb6c4e5ed5d 100644
--- a/pkgs/tools/system/psstop/default.nix
+++ b/pkgs/tools/system/psstop/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     description = "Show processes' memory usage by looking into pss"; # upstream summary
     license = licenses.gpl3;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "psstop";
   };
 }
diff --git a/pkgs/tools/system/r10k/default.nix b/pkgs/tools/system/r10k/default.nix
index 12522bd8cff10..75b75d00253eb 100644
--- a/pkgs/tools/system/r10k/default.nix
+++ b/pkgs/tools/system/r10k/default.nix
@@ -19,5 +19,6 @@ bundlerApp {
     license     = licenses.asl20;
     maintainers = with maintainers; [ zimbatm manveru nicknovitski ];
     platforms = platforms.unix;
+    mainProgram = "r10k";
   };
 }
diff --git a/pkgs/tools/system/retry/default.nix b/pkgs/tools/system/retry/default.nix
index 34d4bbb139604..998ba8cb72868 100644
--- a/pkgs/tools/system/retry/default.nix
+++ b/pkgs/tools/system/retry/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ gfrascadorio ];
     platforms = platforms.all;
+    mainProgram = "retry";
   };
 }
 
diff --git a/pkgs/tools/system/rofi-systemd/default.nix b/pkgs/tools/system/rofi-systemd/default.nix
index f64a84c550958..b8be1adea984f 100644
--- a/pkgs/tools/system/rofi-systemd/default.nix
+++ b/pkgs/tools/system/rofi-systemd/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ imalison ];
     license = lib.licenses.gpl3;
     platforms = with lib.platforms; linux;
+    mainProgram = "rofi-systemd";
   };
 }
diff --git a/pkgs/tools/system/runitor/default.nix b/pkgs/tools/system/runitor/default.nix
index d724d4c437002..d5d2f50cc0f57 100644
--- a/pkgs/tools/system/runitor/default.nix
+++ b/pkgs/tools/system/runitor/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     '';
     license = licenses.bsd0;
     maintainers = with maintainers; [ bdd ];
+    mainProgram = "runitor";
   };
 }
diff --git a/pkgs/tools/system/rwc/default.nix b/pkgs/tools/system/rwc/default.nix
index 7180c2554702e..19d1c1abbfeca 100644
--- a/pkgs/tools/system/rwc/default.nix
+++ b/pkgs/tools/system/rwc/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     platforms = platforms.linux;
     maintainers = with maintainers; [ somasis ];
+    mainProgram = "rwc";
   };
 }
diff --git a/pkgs/tools/system/s-tui/default.nix b/pkgs/tools/system/s-tui/default.nix
index 29b37aa0b0fd9..8f81ba97a0da0 100644
--- a/pkgs/tools/system/s-tui/default.nix
+++ b/pkgs/tools/system/s-tui/default.nix
@@ -32,5 +32,6 @@ python3Packages.buildPythonPackage rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ infinisil ];
     broken = stdenv.isDarwin; # https://github.com/amanusk/s-tui/issues/49
+    mainProgram = "s-tui";
   };
 }
diff --git a/pkgs/tools/system/s0ix-selftest-tool/default.nix b/pkgs/tools/system/s0ix-selftest-tool/default.nix
index f75ba42ac90ae..535a68f6ff75f 100644
--- a/pkgs/tools/system/s0ix-selftest-tool/default.nix
+++ b/pkgs/tools/system/s0ix-selftest-tool/default.nix
@@ -76,5 +76,6 @@ resholve.mkDerivation {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [adamcstephens];
+    mainProgram = "s0ix-selftest-tool";
   };
 }
diff --git a/pkgs/tools/system/safe-rm/default.nix b/pkgs/tools/system/safe-rm/default.nix
index bac9bb3560245..26b0aba9889f1 100644
--- a/pkgs/tools/system/safe-rm/default.nix
+++ b/pkgs/tools/system/safe-rm/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "safe-rm";
   };
 }
diff --git a/pkgs/tools/system/safecopy/default.nix b/pkgs/tools/system/safecopy/default.nix
index ff7149a4063aa..2bf4547777653 100644
--- a/pkgs/tools/system/safecopy/default.nix
+++ b/pkgs/tools/system/safecopy/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
 
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.bluescreen303 ];
+    mainProgram = "safecopy";
   };
 }
diff --git a/pkgs/tools/system/setserial/default.nix b/pkgs/tools/system/setserial/default.nix
index be4ffa3388e79..d224b96d89dc7 100644
--- a/pkgs/tools/system/setserial/default.nix
+++ b/pkgs/tools/system/setserial/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     description = "Serial port configuration utility";
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2;
+    mainProgram = "setserial";
   };
 }
diff --git a/pkgs/tools/system/skeema/default.nix b/pkgs/tools/system/skeema/default.nix
index 86798155047c6..1d5c7c4886a9c 100644
--- a/pkgs/tools/system/skeema/default.nix
+++ b/pkgs/tools/system/skeema/default.nix
@@ -53,5 +53,6 @@ buildGoModule rec {
     homepage = "https://skeema.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "skeema";
   };
 }
diff --git a/pkgs/tools/system/snooze/default.nix b/pkgs/tools/system/snooze/default.nix
index bfe91c6e0e8d0..1a719a494f84c 100644
--- a/pkgs/tools/system/snooze/default.nix
+++ b/pkgs/tools/system/snooze/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ kaction ];
     license = licenses.cc0;
     platforms = platforms.unix;
+    mainProgram = "snooze";
   };
 }
diff --git a/pkgs/tools/system/stacer/default.nix b/pkgs/tools/system/stacer/default.nix
index 75068148bd74c..57d376bea9fe4 100644
--- a/pkgs/tools/system/stacer/default.nix
+++ b/pkgs/tools/system/stacer/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dit7ya ];
     platforms = platforms.linux;
+    mainProgram = "stacer";
   };
 }
diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix
index b6ce8fc8d8a4f..40211cb4e71b4 100644
--- a/pkgs/tools/system/stress-ng/default.nix
+++ b/pkgs/tools/system/stress-ng/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ c0bw3b ];
     platforms = platforms.unix;
+    mainProgram = "stress-ng";
   };
 }
diff --git a/pkgs/tools/system/stress/default.nix b/pkgs/tools/system/stress/default.nix
index ab765c8201313..0334ed757b36a 100644
--- a/pkgs/tools/system/stress/default.nix
+++ b/pkgs/tools/system/stress/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     description = "Simple workload generator for POSIX systems. It imposes a configurable amount of CPU, memory, I/O, and disk stress on the system";
     license = licenses.gpl2;
     platforms = platforms.unix;
+    mainProgram = "stress";
   };
 }
diff --git a/pkgs/tools/system/stressapptest/default.nix b/pkgs/tools/system/stressapptest/default.nix
index 2a1bc008e18c5..3243db0d0076c 100644
--- a/pkgs/tools/system/stressapptest/default.nix
+++ b/pkgs/tools/system/stressapptest/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
     platforms = platforms.unix;
+    mainProgram = "stressapptest";
   };
 }
diff --git a/pkgs/tools/system/supercronic/default.nix b/pkgs/tools/system/supercronic/default.nix
index 3b3f285a08656..6b2b4ef5c43ab 100644
--- a/pkgs/tools/system/supercronic/default.nix
+++ b/pkgs/tools/system/supercronic/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     homepage = "https://github.com/aptible/supercronic";
     license = licenses.mit;
     maintainers = with maintainers; [ nasageek ];
+    mainProgram = "supercronic";
   };
 }
diff --git a/pkgs/tools/system/symlinks/default.nix b/pkgs/tools/system/symlinks/default.nix
index 8d1213c0afefa..3a40295425597 100644
--- a/pkgs/tools/system/symlinks/default.nix
+++ b/pkgs/tools/system/symlinks/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ckauhaus ];
     platforms = platforms.unix;
+    mainProgram = "symlinks";
   };
 }
diff --git a/pkgs/tools/system/systemd-journal2gelf/default.nix b/pkgs/tools/system/systemd-journal2gelf/default.nix
index ef7f5b039cfb7..cb319fbd52d82 100644
--- a/pkgs/tools/system/systemd-journal2gelf/default.nix
+++ b/pkgs/tools/system/systemd-journal2gelf/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/parse-nl/SystemdJournal2Gelf";
     license = licenses.bsd2;
     maintainers = with maintainers; [ fadenb fpletz ];
+    mainProgram = "SystemdJournal2Gelf";
   };
 }
diff --git a/pkgs/tools/system/thermald/default.nix b/pkgs/tools/system/thermald/default.nix
index 9f667bb4203ec..193287b022d2a 100644
--- a/pkgs/tools/system/thermald/default.nix
+++ b/pkgs/tools/system/thermald/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "thermald";
   };
 }
diff --git a/pkgs/tools/system/thinkfan/default.nix b/pkgs/tools/system/thinkfan/default.nix
index dc6920a97bdce..17887cc7bdf58 100644
--- a/pkgs/tools/system/thinkfan/default.nix
+++ b/pkgs/tools/system/thinkfan/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/vmatare/thinkfan";
     maintainers = with lib.maintainers; [ domenkozar rnhmjoj ];
     platforms = lib.platforms.linux;
+    mainProgram = "thinkfan";
   };
 }
diff --git a/pkgs/tools/system/tm/default.nix b/pkgs/tools/system/tm/default.nix
index 19ade9b929cb0..129630596373a 100644
--- a/pkgs/tools/system/tm/default.nix
+++ b/pkgs/tools/system/tm/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ viric ];
     platforms = platforms.all;
+    mainProgram = "tm";
   };
 }
diff --git a/pkgs/tools/system/tp-auto-kbbl/default.nix b/pkgs/tools/system/tp-auto-kbbl/default.nix
index fa257fc2a361c..60bd8dcc64109 100644
--- a/pkgs/tools/system/tp-auto-kbbl/default.nix
+++ b/pkgs/tools/system/tp-auto-kbbl/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ sebtm ];
     platforms = platforms.linux;
+    mainProgram = "tp-auto-kbbl";
   };
 }
diff --git a/pkgs/tools/system/ts/default.nix b/pkgs/tools/system/ts/default.nix
index df19955b6076e..843249f911e8f 100644
--- a/pkgs/tools/system/ts/default.nix
+++ b/pkgs/tools/system/ts/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ viric ];
     platforms = platforms.all;
+    mainProgram = "ts";
   };
 }
diff --git a/pkgs/tools/system/ttop/default.nix b/pkgs/tools/system/ttop/default.nix
index ceea0e215b1ff..694964daf9c3d 100644
--- a/pkgs/tools/system/ttop/default.nix
+++ b/pkgs/tools/system/ttop/default.nix
@@ -31,5 +31,6 @@ nimPackages.buildNimPackage (finalAttrs: {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ figsoda sikmir ];
+    mainProgram = "ttop";
   };
 })
diff --git a/pkgs/tools/system/tuptime/default.nix b/pkgs/tools/system/tuptime/default.nix
index b49063d680934..d93f1a346ca60 100644
--- a/pkgs/tools/system/tuptime/default.nix
+++ b/pkgs/tools/system/tuptime/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.evils ];
+    mainProgram = "tuptime";
   };
 }
diff --git a/pkgs/tools/system/ufiformat/default.nix b/pkgs/tools/system/ufiformat/default.nix
index 5b778c5230e3e..52204a073ae78 100644
--- a/pkgs/tools/system/ufiformat/default.nix
+++ b/pkgs/tools/system/ufiformat/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.amarshall ];
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
+    mainProgram = "ufiformat";
   };
 }
diff --git a/pkgs/tools/system/undaemonize/default.nix b/pkgs/tools/system/undaemonize/default.nix
index 50ae366d10bd4..83007db867dc3 100644
--- a/pkgs/tools/system/undaemonize/default.nix
+++ b/pkgs/tools/system/undaemonize/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.canndrew ];
     platforms = lib.platforms.linux;
+    mainProgram = "undaemonize";
   };
 }
 
diff --git a/pkgs/tools/system/vbetool/default.nix b/pkgs/tools/system/vbetool/default.nix
index ebdeae60c3868..8cc7b338ca96a 100644
--- a/pkgs/tools/system/vbetool/default.nix
+++ b/pkgs/tools/system/vbetool/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
     license = licenses.gpl2;
+    mainProgram = "vbetool";
   };
 }
diff --git a/pkgs/tools/system/wsysmon/default.nix b/pkgs/tools/system/wsysmon/default.nix
index 96c3cc30587ee..8f03fdf90ccd8 100644
--- a/pkgs/tools/system/wsysmon/default.nix
+++ b/pkgs/tools/system/wsysmon/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = [ licenses.mit ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ totoroot ];
+    mainProgram = "WSysMon";
   };
 }
diff --git a/pkgs/tools/system/xe/default.nix b/pkgs/tools/system/xe/default.nix
index 133c7d8736194..2a8231b7fb039 100644
--- a/pkgs/tools/system/xe/default.nix
+++ b/pkgs/tools/system/xe/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     platforms = platforms.all;
     maintainers = with maintainers; [ ];
+    mainProgram = "xe";
   };
 }
diff --git a/pkgs/tools/system/yeshup/default.nix b/pkgs/tools/system/yeshup/default.nix
index 113d17b09b537..723021d0ee74a 100644
--- a/pkgs/tools/system/yeshup/default.nix
+++ b/pkgs/tools/system/yeshup/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.cc-by-sa-30; # From Stackoverflow answer
     maintainers = with maintainers; [ obadz ];
+    mainProgram = "yeshup";
   };
 }
diff --git a/pkgs/tools/system/zfxtop/default.nix b/pkgs/tools/system/zfxtop/default.nix
index 0ffbeac5e638b..5c216c7ca0cbe 100644
--- a/pkgs/tools/system/zfxtop/default.nix
+++ b/pkgs/tools/system/zfxtop/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/ssleert/zfxtop";
     license = licenses.bsd2;
     maintainers = with maintainers; [ wozeparrot ];
+    mainProgram = "zfxtop";
   };
 }
diff --git a/pkgs/tools/system/zps/default.nix b/pkgs/tools/system/zps/default.nix
index 91ce2ed8f6a87..776a53cdc72c2 100644
--- a/pkgs/tools/system/zps/default.nix
+++ b/pkgs/tools/system/zps/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
     platforms = platforms.linux;
+    mainProgram = "zps";
   };
 }
diff --git a/pkgs/tools/system/zx/default.nix b/pkgs/tools/system/zx/default.nix
index 857661c31f2fd..1dec344ed3aaf 100644
--- a/pkgs/tools/system/zx/default.nix
+++ b/pkgs/tools/system/zx/default.nix
@@ -21,5 +21,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/google/zx";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ hlolli ];
+    mainProgram = "zx";
   };
 }
diff --git a/pkgs/tools/wayland/aw-watcher-window-wayland/default.nix b/pkgs/tools/wayland/aw-watcher-window-wayland/default.nix
index 20235737d98bd..6ffaf29a77d31 100644
--- a/pkgs/tools/wayland/aw-watcher-window-wayland/default.nix
+++ b/pkgs/tools/wayland/aw-watcher-window-wayland/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ActivityWatch/aw-watcher-window-wayland";
     license = licenses.mpl20;
     maintainers = with maintainers; [ esau79p ];
+    mainProgram = "aw-watcher-window-wayland";
   };
 }
diff --git a/pkgs/tools/wayland/chayang/default.nix b/pkgs/tools/wayland/chayang/default.nix
index 30780ed90a8b0..d92a729bd28e1 100644
--- a/pkgs/tools/wayland/chayang/default.nix
+++ b/pkgs/tools/wayland/chayang/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     maintainers = with maintainers; [ mxkrsv ];
     platforms = platforms.linux;
+    mainProgram = "chayang";
   };
 })
diff --git a/pkgs/tools/wayland/clapboard/default.nix b/pkgs/tools/wayland/clapboard/default.nix
index 151675bf3caf0..4f14de873375e 100644
--- a/pkgs/tools/wayland/clapboard/default.nix
+++ b/pkgs/tools/wayland/clapboard/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
     platforms = platforms.linux;
+    mainProgram = "clapboard";
   };
 }
diff --git a/pkgs/tools/wayland/clipman/default.nix b/pkgs/tools/wayland/clipman/default.nix
index cf229b3c2e725..05eab08da9b6a 100644
--- a/pkgs/tools/wayland/clipman/default.nix
+++ b/pkgs/tools/wayland/clipman/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ma27 ];
     platforms = platforms.linux;
+    mainProgram = "clipman";
   };
 }
diff --git a/pkgs/tools/wayland/gnome-randr/default.nix b/pkgs/tools/wayland/gnome-randr/default.nix
index 130b29f8412da..51c460852c0af 100644
--- a/pkgs/tools/wayland/gnome-randr/default.nix
+++ b/pkgs/tools/wayland/gnome-randr/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage {
     license = licenses.mit;
     maintainers = [ maintainers.roberth ];
     platforms = platforms.linux;
+    mainProgram = "gnome-randr";
   };
 }
diff --git a/pkgs/tools/wayland/hyprland-per-window-layout/default.nix b/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
index f6412a3ca745a..e8c0d543d6e75 100644
--- a/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
+++ b/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = [ maintainers.azazak123 ];
     platforms = platforms.linux;
+    mainProgram = "hyprland-per-window-layout";
   };
 }
diff --git a/pkgs/tools/wayland/proycon-wayout/default.nix b/pkgs/tools/wayland/proycon-wayout/default.nix
index 265d585ce1dfb..7b0aa87694d15 100644
--- a/pkgs/tools/wayland/proycon-wayout/default.nix
+++ b/pkgs/tools/wayland/proycon-wayout/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ wentam ];
+    mainProgram = "proycon-wayout";
   };
 }
diff --git a/pkgs/tools/wayland/shikane/default.nix b/pkgs/tools/wayland/shikane/default.nix
index 229217d0ac23f..b9cac576b5871 100644
--- a/pkgs/tools/wayland/shikane/default.nix
+++ b/pkgs/tools/wayland/shikane/default.nix
@@ -41,5 +41,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ michaelpachec0 natsukium ];
     platforms = platforms.linux;
+    mainProgram = "shikane";
   };
 }
diff --git a/pkgs/tools/wayland/swaycwd/default.nix b/pkgs/tools/wayland/swaycwd/default.nix
index d53dc95dad5a7..9ca91675a35fa 100644
--- a/pkgs/tools/wayland/swaycwd/default.nix
+++ b/pkgs/tools/wayland/swaycwd/default.nix
@@ -29,5 +29,6 @@ nimPackages.buildNimPackage rec{
     maintainers = with maintainers; [ cab404 ];
     platforms = platforms.linux;
     license = licenses.gpl3Only;
+    mainProgram = "swaycwd";
   };
 }
diff --git a/pkgs/tools/wayland/swayimg/default.nix b/pkgs/tools/wayland/swayimg/default.nix
index 8f483e79a4da7..78a7ab67bad9b 100644
--- a/pkgs/tools/wayland/swayimg/default.nix
+++ b/pkgs/tools/wayland/swayimg/default.nix
@@ -74,5 +74,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
     platforms = platforms.linux;
+    mainProgram = "swayimg";
   };
 }
diff --git a/pkgs/tools/wayland/swaykbdd/default.nix b/pkgs/tools/wayland/swaykbdd/default.nix
index 36ab908dfe503..c4ab6098f21b0 100644
--- a/pkgs/tools/wayland/swaykbdd/default.nix
+++ b/pkgs/tools/wayland/swaykbdd/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ivankovnatsky ];
     platforms = platforms.linux;
+    mainProgram = "swaykbdd";
   };
 }
diff --git a/pkgs/tools/wayland/swayrbar/default.nix b/pkgs/tools/wayland/swayrbar/default.nix
index bd4ef671de461..f8f085f1632b6 100644
--- a/pkgs/tools/wayland/swayrbar/default.nix
+++ b/pkgs/tools/wayland/swayrbar/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ gpl3Plus ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ sebtm ];
+    mainProgram = "swayrbar";
   };
 }
diff --git a/pkgs/tools/wayland/swaysome/default.nix b/pkgs/tools/wayland/swaysome/default.nix
index 8c4c2eef5d522..4acf4115a0480 100644
--- a/pkgs/tools/wayland/swaysome/default.nix
+++ b/pkgs/tools/wayland/swaysome/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ esclear ];
     platforms = platforms.linux;
+    mainProgram = "swaysome";
   };
 }
diff --git a/pkgs/tools/wayland/way-displays/default.nix b/pkgs/tools/wayland/way-displays/default.nix
index bac42d39fd1ac..ffd16ac50c085 100644
--- a/pkgs/tools/wayland/way-displays/default.nix
+++ b/pkgs/tools/wayland/way-displays/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ simoneruffini ];
     platforms = platforms.linux;
+    mainProgram = "way-displays";
   };
 }
diff --git a/pkgs/tools/wayland/waylogout/default.nix b/pkgs/tools/wayland/waylogout/default.nix
index 553d1a9fd5936..6bf3b89eea409 100644
--- a/pkgs/tools/wayland/waylogout/default.nix
+++ b/pkgs/tools/wayland/waylogout/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
     platforms = platforms.linux;
+    mainProgram = "waylogout";
   };
 }
diff --git a/pkgs/tools/wayland/wayout/default.nix b/pkgs/tools/wayland/wayout/default.nix
index ca3a3f4191167..b548279d401ee 100644
--- a/pkgs/tools/wayland/wayout/default.nix
+++ b/pkgs/tools/wayland/wayout/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ onny ];
     platforms = platforms.linux;
+    mainProgram = "wayout";
   };
 
 }
diff --git a/pkgs/tools/wayland/wdomirror/default.nix b/pkgs/tools/wayland/wdomirror/default.nix
index 486bed320c581..8796b2036dd5d 100644
--- a/pkgs/tools/wayland/wdomirror/default.nix
+++ b/pkgs/tools/wayland/wdomirror/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jpas ];
+    mainProgram = "wdomirror";
   };
 }
diff --git a/pkgs/tools/wayland/wev/default.nix b/pkgs/tools/wayland/wev/default.nix
index 506b67d14e5b0..c4913e6f75f50 100644
--- a/pkgs/tools/wayland/wev/default.nix
+++ b/pkgs/tools/wayland/wev/default.nix
@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ primeos ];
     platforms = platforms.linux;
-
+    mainProgram = "wev";
   };
 }
diff --git a/pkgs/tools/wayland/wl-color-picker/default.nix b/pkgs/tools/wayland/wl-color-picker/default.nix
index 9fcbc76bff28e..bb5f21ded61df 100644
--- a/pkgs/tools/wayland/wl-color-picker/default.nix
+++ b/pkgs/tools/wayland/wl-color-picker/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ onny ];
     platforms = platforms.linux;
+    mainProgram = "wl-color-picker";
   };
 }
diff --git a/pkgs/tools/wayland/wl-gammactl/default.nix b/pkgs/tools/wayland/wl-gammactl/default.nix
index 3aae67b47359d..2117c57106f34 100644
--- a/pkgs/tools/wayland/wl-gammactl/default.nix
+++ b/pkgs/tools/wayland/wl-gammactl/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ lodi ];
+    mainProgram = "wl-gammactl";
   };
 }
diff --git a/pkgs/tools/wayland/wlay/default.nix b/pkgs/tools/wayland/wlay/default.nix
index 3a80e0627e37a..c2330de5f7dad 100644
--- a/pkgs/tools/wayland/wlay/default.nix
+++ b/pkgs/tools/wayland/wlay/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     inherit (wayland.meta) platforms;
+    mainProgram = "wlay";
   };
 }
diff --git a/pkgs/tools/wayland/wlprop/default.nix b/pkgs/tools/wayland/wlprop/default.nix
index 67c4918b371fb..0637d0596ca20 100644
--- a/pkgs/tools/wayland/wlprop/default.nix
+++ b/pkgs/tools/wayland/wlprop/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ sebtm ];
     platforms = platforms.linux;
+    mainProgram = "wlprop";
   };
 }
diff --git a/pkgs/tools/wayland/wlr-randr/default.nix b/pkgs/tools/wayland/wlr-randr/default.nix
index d9f7bc246cd0b..41a1d27865756 100644
--- a/pkgs/tools/wayland/wlr-randr/default.nix
+++ b/pkgs/tools/wayland/wlr-randr/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
     platforms = platforms.linux;
+    mainProgram = "wlr-randr";
   };
 }
diff --git a/pkgs/tools/wayland/wlr-which-key/default.nix b/pkgs/tools/wayland/wlr-which-key/default.nix
index d333f1525402f..bef65f8bc9dbc 100644
--- a/pkgs/tools/wayland/wlr-which-key/default.nix
+++ b/pkgs/tools/wayland/wlr-which-key/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ xlambein ];
     platforms = platforms.linux;
+    mainProgram = "wlr-which-key";
   };
 }
diff --git a/pkgs/tools/wayland/wlrctl/default.nix b/pkgs/tools/wayland/wlrctl/default.nix
index ebe6629f3704b..130c54731eaa3 100644
--- a/pkgs/tools/wayland/wlrctl/default.nix
+++ b/pkgs/tools/wayland/wlrctl/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ puffnfresh artturin ];
     platforms = platforms.linux;
+    mainProgram = "wlrctl";
   };
 }
diff --git a/pkgs/tools/wayland/wlsunset/default.nix b/pkgs/tools/wayland/wlsunset/default.nix
index 8dac99d93e45d..df0f52fdf79d7 100644
--- a/pkgs/tools/wayland/wlsunset/default.nix
+++ b/pkgs/tools/wayland/wlsunset/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
+    mainProgram = "wlsunset";
   };
 }
diff --git a/pkgs/tools/wayland/wluma/default.nix b/pkgs/tools/wayland/wluma/default.nix
index 0dfc572c9b20e..07142210c3039 100644
--- a/pkgs/tools/wayland/wluma/default.nix
+++ b/pkgs/tools/wayland/wluma/default.nix
@@ -51,5 +51,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.isc;
     maintainers = with maintainers; [ yshym jmc-figueira ];
     platforms = platforms.linux;
+    mainProgram = "wluma";
   };
 }
diff --git a/pkgs/tools/wayland/wob/default.nix b/pkgs/tools/wayland/wob/default.nix
index 32fad72384f98..67f7904192f92 100644
--- a/pkgs/tools/wayland/wob/default.nix
+++ b/pkgs/tools/wayland/wob/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ primeos ];
     platforms = platforms.linux;
+    mainProgram = "wob";
   };
 }
diff --git a/pkgs/tools/wayland/wpaperd/default.nix b/pkgs/tools/wayland/wpaperd/default.nix
index 76a9bd5e24dd8..dc7ce198e8e7b 100644
--- a/pkgs/tools/wayland/wpaperd/default.nix
+++ b/pkgs/tools/wayland/wpaperd/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ DPDmancul ];
+    mainProgram = "wpaperd";
   };
 }
diff --git a/pkgs/tools/wayland/wshowkeys/default.nix b/pkgs/tools/wayland/wshowkeys/default.nix
index 268dbd8ddbc9b..ef0c6fd6cd347 100644
--- a/pkgs/tools/wayland/wshowkeys/default.nix
+++ b/pkgs/tools/wayland/wshowkeys/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     # TODO: gpl3Only or gpl3Plus (ask upstream)?
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos berbiche ];
+    mainProgram = "wshowkeys";
   };
 }