about summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications')
-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
509 files changed, 509 insertions, 0 deletions
diff --git a/pkgs/applications/accessibility/contrast/default.nix b/pkgs/applications/accessibility/contrast/default.nix
index 3a10bd72d309..3858de921592 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 c159f2579eae..0de562c5331b 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 00f432ff4138..a0adef6aa935 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 815b956da8e1..847002c6d711 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 f9cad958c02c..cc1951e4caea 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 2d706b4204ce..65cbf91676cb 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 c2212373e70f..da97e45b63f6 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 f6abbf346c6d..f83f16a4e456 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 6c571527248d..9065f7f486c0 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 6bc2ea8caf94..b7038d5a3d6e 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 f2beb553edd5..2f164adcea12 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 7870b3c11ee6..6ce761e8677f 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 cef4af1d77a0..af1da19f6386 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 e208666bfe2c..c453d48c567a 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 521a44de1dd0..1ea8912a7535 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 25d4d8653466..5c0fa18739fb 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 c6ffe8e07f98..c016e0f37e38 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 e45e43497563..1460d87d932b 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 d93a10436fc3..588fb03a3656 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 97f9b7767db7..04411399ac34 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 da1755f14b5b..fa604e9aac93 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 40dfe70debd3..2401231367ef 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 7ff9b9563d90..d630ce55383c 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 eea4d546f14b..50fa8fee0668 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 8ba06230bb27..5f96baba174b 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 2500ec5c2857..dbc4d4d4b9aa 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 040d08e752b6..5b89ec20091a 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 860ca5a1bd6a..c773ce8e193f 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 08bfd05471d4..b236ed5da442 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 97333fde00dd..6a76ff9530c6 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 e9d68b756212..acdcd108c607 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 d4793eb9276b..fada1835bfb1 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 6de7cf7578c4..a2e7b0241baf 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 43b24ecd61a1..a41b9df83751 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 2cbcaf532afe..cd7cc1ce9fe2 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 f3ea89a73f01..8513eb6de413 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 6d3359cdcd00..5a70cce93174 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 7b82f2658a1c..cf684e062c5c 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 a0facc33b7dd..03bd6734a9a5 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 c57ab07e4045..7518508f64b1 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 e5f8963e921c..bff5cad84e4f 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 e3aad8cb0c5f..27004722c38e 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 7f4081a399e7..a1c96ea92beb 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 bbc84b4caa5e..501f820664f2 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 dc7e0ff2f8ec..2ac885683eb1 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 6a5d3cbd1f6a..0ec47ceb9566 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 318c459dd21d..886e42414da1 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 1cffe049c73d..ddf37bb69fc6 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 bc44da21dc26..314f639f1060 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 718c3fdd20fd..c7d56cf50abe 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 7b5bcd12ef43..37b79d9815c3 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 743e55b09693..4ee1897bda79 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 90502172faa5..bb148ab9260e 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 5b37b86556b7..0f51e016c0ea 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 6ea90b0b8a81..192aa903f3e9 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 9de4f8d4a8c7..f8baa9aa67bc 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 8dfa36398bfd..fc32c5ed3937 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 89cc795f5674..89da2d719fa8 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 bffa50643899..ae541b8dd768 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 de008a54513a..f2b422d8cbf7 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 0391685137f7..fc3f3fd27474 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 3b73e0843d92..cab490cd76e4 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 e0b7bc9524fd..90b145c50330 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 3ed0b67741af..9e6ebb47f966 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 a2bb4e84c999..a3e8726b13ec 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 ca044168b845..a3ad923ef561 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 1c2e09695e5e..17291a458a4b 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 5eb023f8b9ed..8ebd84cf248d 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 238bc905f713..7f32835fdc84 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 c8a13738c910..363466e160d0 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 3d1f01f4b021..a5056575fa4a 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 686113452eb8..0e1326f50c49 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 2ccea6afc3ee..2caf4ee781e2 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 a9688241ab1d..337bc3bc6dfa 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 d0b38bcd35a8..b02067a2113e 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 857bc35309f2..d74c5a213532 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 5ed1603ba8a8..77f3a38bc6c5 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 c93ba5ed8874..645883f5489f 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 dcfe3d8ed35f..f24f83c70f27 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 2f75fb34cd18..de304cd6208a 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 088f10a9e976..079c24c2e732 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 71449a0b8a80..9d0724f1997b 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 aa336ce45e21..6a656114ff5f 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 e246185e2a19..017354222e82 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 c2b1d627496f..a2d7f13338a9 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 c2085bcf0455..2f668a6fc526 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 3aa08559bdf7..56de0b332a55 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 cc5f60984c93..5532bd8524da 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 2e67e83e972b..24ce2cec46df 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 b4555bc89878..cf5d35c1c296 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 65e724df3db9..f80e01e1e18e 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 bbb8d39a5f7a..1991b2a7bc77 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 c36aba6d9bba..2d2af2ce508e 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 abbfefce5293..545e82cf6de9 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 0d4d171d9828..bc2bc733c6c0 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 574d83f1be97..feb42d9a99a9 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 4118aee8a2dd..67ebd13134b2 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 1740d5a8e374..022e9ec69720 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 8252f8ce1c14..3db7c73fd422 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 6e4354612e3f..e3348ceebfd7 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 3cec9808ed4d..4684831416b0 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 1f66a581dbe5..0451c067c16c 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 47a7445bd7f1..536f2cd11009 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 b27ab8bbb69b..315db4115900 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 9b6c9a02985d..2eae992a36c6 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 f6b241c9d07f..9663728e6ef9 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 936cc9f7bb87..5bedface4c5a 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 36d3ee4afddc..a888747d0522 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 9a103867fbc6..30d902ce0fd0 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 0ba381901b98..ad47edfe83e4 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 3fe756bcf72b..74d0bc156758 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 a036e0532977..23ef7a0ef567 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 85909af04e98..6013f8a699fe 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 a6a29addc7a9..679d64d6cca4 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 bd7c237e8c13..7d75bdce82ef 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 8de11fd5d59c..e7db019467ba 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 cb1307d7ffb4..bafb1aa30385 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 cd0d6dbc9386..9294c33c5863 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 9722c3cb4dee..81278c9184e7 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 3ec0439a5d88..270faac53f68 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 808b70ed5ec9..8510918d4cab 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 cc9e218bad35..b7eca10fc7cf 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 81bdc29a54f3..edf8061da4d1 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 0b1047cbc70c..596ba95b7450 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 93ba2ac105b1..fc32fb97f58b 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 7b8caee04bc9..e81931c619b3 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 e2673068dcb3..7ac034568c82 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 bd07776c7df0..3f299be447ad 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 23370866e721..8c659a99d0ff 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 55924db4a389..3546284f99c3 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 27fa0981f170..27c5ebf9e9c0 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 7f11ec257038..2be03621a016 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 c945576f32e1..53d401f01e18 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 f86fd87573b3..b72426bc50db 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 50112238215d..8b46e31b7b5c 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 f7ef51b7040f..3d78aa42a240 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 4c7b5727fbac..e8b62033f350 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 47298fb4dbc2..35176db8b241 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 f165e6a59942..53aa9fb89408 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 9e239627b02c..c94bbc878018 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 153cc791cbf9..334302cae008 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 c442303e6758..2d100e3c2159 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 8d9553270906..4e7fea129654 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 7335a6092024..9acbf6f929b9 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 c6d8770415a1..3bd4697a6e6e 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 b9722b6989ff..e7bfde8a5192 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 2367f847d107..281c9e5526eb 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 17d9f828b642..13b59f4c4d9d 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 ed26c6f60de2..8db698e963bc 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 1897a283f70d..a177256432d3 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 994e17c750c8..132ad32160b9 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 b757445eb087..7fa4c37b557a 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 4e11d9fe3863..844b8648d6c8 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 8a06565e1fce..416f3dc60cc6 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 c45398dfd4f4..0ad7de8ec468 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 c90fd239267e..d21f21def8e2 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 a260bca6a55d..2e2ef6ee6ccc 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 d0542f5c3edc..17d80e496e31 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 7f1a46b37dab..e64cbaf357b0 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 26ecf043a4d5..7ce2d07ce7dd 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 72128a5ef95c..000354d1e5c9 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 a59f65995e2e..6a4a2927d3ef 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 5c882c1da80e..3d4d70597e69 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 719b730817b4..9144b67c9abb 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 beed066e65e9..ac02ca8f64c1 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 5702ff414f33..21748a86e81b 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 1b2caaf5bb06..20775c4ed4af 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 8fc822416bf2..80087822bf85 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 bebb16740840..5bc7da276caf 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 290a6519f85a..b52f312e03fe 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 ffab340d023f..086c9325f565 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 91d4c8dccbac..094fa8007d7b 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 a3a136a32695..05c8263f436b 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 17d32b84a78f..c0fa9afdb243 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 773ec444edf9..8d7889663fff 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 2089408d09ba..808df455a4f2 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 d1aef5180837..6cb15ad685d9 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 d4f2a9b26a18..45569fefb28f 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 e0249f813a74..09662f4eb56b 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 535cc3aa3171..15067e2d9ab2 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 7d53cbbcb8da..85922fea6551 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 50143013b88f..ee2e7ddf3f08 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 6761741ce9ce..8db9ddacef72 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 16d5f0952ebc..5bf146995f12 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 8ff83db294ff..d900df082076 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 b9f4838f58bf..cb7d99b04799 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 d31d56702ace..bcfde9f1a005 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 c7d4508c060c..4da47eddd61b 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 e87ea1bbe514..bc722b91fa02 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 46fc2a7ae170..a3f78b5d5951 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 afa496f5ab61..b3cb5316ec0c 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 8d2b619ab718..778681063b61 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 fc515590f37a..df54826608b6 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 0bfc62ccfbb2..c1531a25b548 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 9160568ee483..43392ae28e48 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 bae71f82cb4e..bfc2d1e84d29 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 3ceb5c0e1afd..77ad4dad40d0 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 34d33e326ab4..7d3efef57de9 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 1502f8a16aef..950c648337ad 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 fa0236dcd8c2..805a70f88e74 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 f2d8b8d68541..deaa49e4f66d 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 b5f8285087a7..a8e60b9b9439 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 d29d5816f449..8c72fdd435e5 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 ad4c40cd4ad2..023b72b88837 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 7d703d2db4ff..eb216b1df861 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 9af0fb7b73ca..5af5c568e463 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 d9ee62affa3b..928c7a69fd8c 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 57b14ed54c72..4e2ca164fda1 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 2a4591ec3e3f..b39b102c2f2f 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 49471ebf7e39..4b8c5096cc5d 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 212850dcc7f5..92a65320b8c5 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 0c8c629208af..f3dec5e6ab07 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 9b6db44f437e..a975f1c26cef 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 a85c318c65d7..0e73d07616a7 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 5894e758e9d9..a5c49ece00d1 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 1a036106c6df..a1692dd255a2 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 528c82fe8199..6630cbaa1258 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 80d3d6187d1a..fc2b470178f3 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 69b1f67d629a..b9ab08e9bbbc 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 3b55aafa0a4f..2141effcf015 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 6873558830be..0c4d0b9d99a2 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 877655ffbc07..90483efc89a5 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 890a70ac30b7..ef9f09a606fa 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 4d1ab91f83af..bbf435fd4ff7 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 9856d1428f97..86b0657e0c03 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 279af55254e0..f10d91229376 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 2b05ecdc7221..ab854a2f9906 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 fb8d1b56d086..65da21cbabc7 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 d999bb5db297..acfbbb48943d 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 ebc7657e8af3..f0c7203fd9ce 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 9b7a4df091de..33b4cb0f90b5 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 23d676e54eb5..a1242c43a9ca 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 3a1a51f83f8e..d540d4211073 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 da16be94c33b..ae63280f7ee7 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 4800a14b31ee..7ee825f566ec 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 7423726ac3ba..ebee69ebb3cd 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 e994739008d3..654ad2c82d56 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 895e4610f4fc..14348921054b 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 d9742a6a8f54..c430a02b24c6 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 af586da3496a..b126569c5991 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 2cdae3989795..ef9b81f6d031 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 0b4205eb6055..31a71d5b8ad7 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 85f1ad6e6ba2..7d012c83606a 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 7d6af92b7e79..51a8839261af 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 cf254293987d..41aab380d555 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 ac534ff573a6..f76a0f77e54f 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 80704e49a208..17ac4a3b0894 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 7c786bb0b6b1..f7e6cadac0d3 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 39e834168c32..b0d00c912a78 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 addfd1f5041b..ed4825011490 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 16c5b49406f6..10eec961104d 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 e05bed928889..a38be753dfa9 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 652c0be52117..cc77bf5aca65 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 22f16692ec8e..f38e08ba8c8e 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 0898ce089fc0..c63b2e6f3429 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 dc21b61ed3e6..7f181fa006f8 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 de396a0f7d01..d9acc9d46fb9 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 959031fad9f9..a3ac58c04be8 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 386f405eb225..45e90c521f10 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 5a2e9e5eeca6..588ef81ced00 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 ad0d64a6ef62..eccc508fc257 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 862461827eb1..90e0482675ae 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 4cd4c68673a7..b8ddc56e88c6 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 1ad75e75b7bf..5ea10a13c418 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 65afd5f1c387..832698718c3d 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 20183c5fada3..2d3e511fcbfd 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 962bf18b366b..54de6b1bcf3a 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 9b46a0c501b1..d04faab2a65c 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 c2f4b4a27030..2355f48bcb77 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 a843b5243352..983d7b3dd672 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 4dc9c4f8453d..d69988eca012 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 57b5e3c46372..a3087249cadd 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 dc80052fe62a..559c81dd48c6 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 93db500f0a26..016892892247 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 279ae81b1010..907721f882b3 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 b6b8b6f94134..ca931ac2786d 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 592f61db8e08..66e141ef85ff 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 ed36f2092716..54ce30907323 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 26cce4b25c9d..a1f45d65db35 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 d8ce7a42bb59..2683af402287 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 e1c55676da09..941b84b68fcc 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 42e23dcd32e3..29975c5b68d0 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 0fe486dbc2d1..3d3d7521f28d 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 0f0eeff156b0..94949396ee9f 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 5a3a41e05b05..feb4bcafc1b4 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 4b4319f8cd7c..a85bbbc54f5d 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 1cd14aa96927..27979d63cca5 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 1a1811b2f438..52b4a49d19b9 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 c4cb223d253b..063aa3215705 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 f2b47af2e382..fc9bd9ee02ed 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 8f3155ce0546..fd506ca2b46b 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 ec1c44b96134..df42e3b18779 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 ebea57c1552a..5c215644463c 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 edf05ff03f81..e989e03ca1cf 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 2650f330c0a9..e32d89c042ca 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 6293af4642a3..877a727523b5 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 154a4048e0a7..a2f2045a3ddc 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 2e173dd41be9..a055ccc868f2 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 277786d72420..b3d7f7a3a432 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 fe81f0b41ef0..d9792654a94b 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 2bbf7840138d..0fcdd265a0c3 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 aa53529933ff..53f43d69d4d4 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 c10a27102490..547adee7d6a3 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 afce41e15d19..19556366b1eb 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 624ce5616909..2f56091e2ad6 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 bc5f7f3b0854..661abe06f73e 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 7e90b6e38035..cbc96ed1e78c 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 7c0e6d53db0a..851cb8464c5b 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 48fee5c578ed..915ef38307b2 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 9d72cc18b94f..6722f94d503e 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 00c9bfa0ae4a..36336d964cc3 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 7ceb970737c3..fc16e778f28c 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 b68179b182bc..cddc6eb7e2fe 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 257ace5013e2..eba9f5ed7525 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 cb19964f733b..c880b9343f1a 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 33233fe9cf86..8c79258fd3ff 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 9082bffce0f9..a58ea68fe2b6 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 34fb6f73c64e..5397688ebf1f 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 0f6a59ac641e..8bbb0eee971d 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 575cf96826d4..37783a92ab3e 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 28fbba659f42..16ae8c9e6a8b 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 be565f4fda44..667a204f8447 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 db79637ef9ff..e265f56aea85 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 6980c8f22576..6d0013f5ad51 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 d7c1e46577e5..2c1ccb76dd73 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 a795f0f6f6dd..25fcd7247c22 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 21e8bafcd0b3..ccb1f07edeca 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 0bc267d9647c..ba677b2ba8e5 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 f4e1815e278e..781eeae33231 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 c99403889d54..ddd56fdfb11c 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 2a7d70cdc1b7..e0f20d1467f6 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 3f60ba8b7acf..03385404e787 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 d0175251e6ec..63c2202b4be9 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 bf7abf12d7bf..c282da41c1eb 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 664db771e93f..aeb0eaf43f11 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 92457cdbf4c3..3d57ceb03a80 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 ef188ba68d95..931f85fd45f0 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 6bbe405f65c1..d75a1cba6142 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 72de9d90c3e8..a14b7c22bd4b 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 fd2875b13be2..c42f6eecfeea 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 fc8ec7b55d1f..e43448fd2f1d 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 01dc3efcd6e0..29dbe0573422 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 2f1ec571b162..6a9a18aa992f 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 027bba16e86c..854c66a6d5e4 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 7085e0c48f25..cc34a67c04b5 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 b7b6d62e4b4c..5637471711b1 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 63f7bf7fbbe2..4c35e2706ed1 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 85cb9127c21e..a0038554d86c 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 7c2972538e9e..53df3af4a79d 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 f7cdceaa1b4c..f11c515b5399 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 b369e5db05b1..8d6c7f072d04 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 38927d75757e..a94099e30478 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 5ba5e26d3f14..fd7d78cc28a5 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 da6bb386535c..a13f25e68195 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 f2f6f8cd32e1..5ac391977598 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 196cdea93dba..f576859647c5 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 a40e959a50a4..5fc67ef47d78 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 562658a6e99f..89ea5c0e84ae 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 bd824a71633c..3e2e6a848008 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 1f331ffd4962..710cdda4f94a 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 e4b54078edc5..1cce34df66ad 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 d4a4889f4a3f..ff4968d7166d 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 0625d0a684e0..bd056e8a7ce7 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 22fe2b2fbbd2..4597a87b4721 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 73a2035c31fb..0dab32e57acc 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 9dbec102a55e..6bf36cc375b8 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 9b427a2284d7..2c01d052eeda 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 21c04812f9f3..389d00dc1a41 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 235c5c58f381..5e4f58cea1d3 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 fa9a232e0db9..6a600fec3083 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 9a507e93ab65..7a103bc045b5 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 d15d649b841b..92096c6a3474 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 90081d4e5908..8b1c74ee66cc 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 8b2f185a55bd..3814f921fa24 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 9a1940cffc75..1625c87e0c0b 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 d4e35ac48418..80892b96c94b 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 917fdd2f9a24..3efeeb8544d4 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 99694efda1d3..8070a96a2b4b 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 43c009c9dbb8..8b9e822070cf 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 3a097d3e130f..27b745a403d4 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 3e998d0c4a17..523847db247f 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 8d7d5a6611d3..18018f88d025 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 daf56c174456..cfab93dbcd71 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 49d2dedbb0c3..c5d12c8403c1 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 7541ec6598a0..5d89a8df657c 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 75a7a9b46bb7..a3b40daacf79 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 9fffd01019e8..e38b4dde3d29 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 2643a449c60f..29d095fe67fd 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 a3fd87e6142e..b5a8221b7fdf 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 3255544ff8b3..9d0175911d69 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 4ab5222c54ba..a50e3d15614a 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 6e41dcb7b8e3..9d0bfa9e966e 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 523eef1b8591..d554fd56847c 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 fb0db20990e4..d8fc548f10b3 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 b73933e36a71..8b112ed838a3 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 12689bedcbd3..c5ed409117e3 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 74d2389fce7b..647f171c8731 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 804265bcb545..8d1d6ac305f9 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 a5c6a7beb06b..dad9a5240249 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 6f5fb3cf6fbb..efd8d6ed6e2a 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 02263f46e0f4..40701d2cbf85 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 a2a9d8d112cd..8ca3b813663f 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 afcec67d9134..cadd38523ca1 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 ad9a77af080a..bdf361cec9fc 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 0e6b52f8f7ab..5fe8c8785a81 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 6bca33eb3885..39904f829159 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 61f59854debd..dd0d4924aaea 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 8fda60e3a0a0..f09b3a79794d 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 06bed9211318..3caa2b7fc56c 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 a82839ef7548..f04025b37ddc 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 757759b1146f..e3bd3cbf99a2 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 670eef3aa3ee..1930f06ffdb6 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 372ace9ffa3a..95bc37819240 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 23954a05c5aa..829c4b83778d 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 372bc52044e7..73fab758d75e 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 5daac65313e8..f23ed20c797b 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 f3ac6414a709..02c9d80a43ea 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 ec980f1bfd1b..f209c092bdc1 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 f64af16709f6..ec2f0c95f899 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 b8dff4f1af77..105a86fbf4a7 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 18e38122f27c..5fc574881cfb 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 d37fc66cb036..1b8c40e233a5 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 90f18613ca07..2e71c4668356 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 a12171772966..9e5a14d4983c 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 8fa0c7b03762..68ef965ec1ab 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 be2ac3c7413c..e237a1c641a9 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 e37a8b1ed4ae..359679103497 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 469ba5b8eaa6..3172c4bb4343 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 1e644ff9f417..c15a0680a933 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 83ebf1db9b4e..90cf5e7dcf24 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 5abc6c47a134..efa7782891ce 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 43901d1524ad..8640424be1e9 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 9455f6d1a1e4..bc0d6bd3a6cb 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 95f7be2cbcaf..773d1f1ad423 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 56d830a2ac76..fd8e03963dca 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 859cd8e8cc36..b1b05a524f74 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 05455b0f84f7..bd38a4c2f76a 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 be0a7fcd2416..96e42b1a7f95 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 37ea20718fd6..e21e3a98f1f7 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 d61f30de1be5..d3d55d2cb4a6 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 13f3564fa0d0..9b8a8773b1b4 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 6f445da73d38..15d59af318fb 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 82c23b4892e4..cb0df69ee2c5 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 1a8c6f2d3adb..4dedf71d39bf 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 26202ee18bc2..b1a4c907c0db 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 b8d7e7b6bfed..799e68bf072e 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 925fa38a199a..75a8d9f5c639 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 8799455834a9..56a85517eb0a 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 f3b44bf7c6aa..4e7252a514f8 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 e0ede1f1e704..bfa1039d5d33 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 7df47d3f4256..a6c7ad6ceb86 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 3e7027f9dfd9..df354c08f414 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 5b66a59e5850..f7b2b973ab57 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 e95e404f82f8..3cfd905bc560 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 3c4281d8e734..f096b59efc99 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 d0eceae70525..f929bac673c2 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 6b513dae9e1e..a2824004a153 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 ee61a1bafacc..6c22a5ec1298 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 66ab59e58bd8..de0d3cd4131f 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 5f365f5c6296..0c2c4d0d0df8 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 e35a5d16a49d..a896829356b1 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 56829737ead9..1181d12c9aec 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 df73860dda8b..8671617a4043 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 7a5bc71ce85c..80c013becb40 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 e5d5eb930982..3372ea695ef4 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 1e50f157adcf..698dd5b86959 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 9568a0bb695c..d8fda62ccf90 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 fa4f105f6e83..3e7c50690896 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 67edd6887c90..a17c5753981f 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 67ea1e07b908..286a521be054 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 b1b03d09680f..b6eaea8d7597 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 75641547ad2e..d927c8430a1e 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 2df0978b0d0a..9eeb8134f595 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 94928ff35733..75b7f41c7e78 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 627817139c8c..5dc9ae5028e8 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 dc6f79d6a7e5..5ad60bf7d080 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 18d65480138c..e11b265a9e3c 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 6a0b94999000..01cfe07da8ab 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 f6612f3d9aea..840c9d648b94 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 a179b4568a7f..93355b74b472 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 1f07da0a7bc4..f070b1fd062c 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 ac5353daeb23..5560a04dcd61 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 e4578319ee07..dc2f58b1d3a8 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 a09790070772..24b011040ae4 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 0855e512fd8e..0578be8ed6c7 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 d056005e8f52..addebf13ec65 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 e9edd10b2539..99ecf86e20a1 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 1b58fa0f2c89..6718caf1ada2 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 18df9da344d4..9456449405a8 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 2fbc37d8e7eb..0692780a549d 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 0d8436dcb3ed..d5763a0489f1 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 791f61c4670a..553e79f9e6dc 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 cf1088c82231..1a2e388bdc34 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 49133ef5344f..e2986159b20a 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 36e6322462da..bb6615b70860 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 3d54d8f8de58..47370d884cdc 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 6f323b963e4c..554132752c86 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 4df306eec9c0..12c2e5da1b98 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 5cd0f7569caa..45160d65dbc6 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 c5c3d9db783e..c776e66da886 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 84defaa98bed..c0b147e6ee58 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 57cf0fc93fac..60984987ab62 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 b0b40afc9e4c..7cba387369c7 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 f4fea3f434c3..80900d0639b1 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 c0fcdd859b21..322906d5657f 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 f439833e547a..45170ab0d15a 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 eaafac71b6c1..6c850278b337 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 d0241a296ad6..86ae59a6152c 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 207e3a83ab2b..d66c905fea90 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";
   };
 }