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 3a10bd72d309a..3858de921592e 100644
--- a/pkgs/applications/accessibility/contrast/default.nix
+++ b/pkgs/applications/accessibility/contrast/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     # never built on aarch64-darwin, x86_64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin;
+    mainProgram = "contrast";
   };
 }
diff --git a/pkgs/applications/accessibility/dasher/default.nix b/pkgs/applications/accessibility/dasher/default.nix
index c159f2579eae6..0de562c5331bb 100644
--- a/pkgs/applications/accessibility/dasher/default.nix
+++ b/pkgs/applications/accessibility/dasher/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2Only;
     maintainers = [ ];
     platforms = lib.platforms.all;
+    mainProgram = "dasher";
   };
 }
diff --git a/pkgs/applications/accessibility/espeakup/default.nix b/pkgs/applications/accessibility/espeakup/default.nix
index 00f432ff4138a..a0adef6aa935e 100644
--- a/pkgs/applications/accessibility/espeakup/default.nix
+++ b/pkgs/applications/accessibility/espeakup/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ethindp ];
     platforms = with platforms; linux;
+    mainProgram = "espeakup";
   };
 }
diff --git a/pkgs/applications/accessibility/mousetweaks/default.nix b/pkgs/applications/accessibility/mousetweaks/default.nix
index 815b956da8e12..847002c6d7114 100644
--- a/pkgs/applications/accessibility/mousetweaks/default.nix
+++ b/pkgs/applications/accessibility/mousetweaks/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.johnazoidberg ];
+    mainProgram = "mousetweaks";
   };
 }
diff --git a/pkgs/applications/accessibility/svkbd/default.nix b/pkgs/applications/accessibility/svkbd/default.nix
index f9cad958c02c9..cc1951e4caea3 100644
--- a/pkgs/applications/accessibility/svkbd/default.nix
+++ b/pkgs/applications/accessibility/svkbd/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "svkbd-mobile-intl";
   };
 }
diff --git a/pkgs/applications/accessibility/wvkbd/default.nix b/pkgs/applications/accessibility/wvkbd/default.nix
index 2d706b4204ceb..65cbf91676cb8 100644
--- a/pkgs/applications/accessibility/wvkbd/default.nix
+++ b/pkgs/applications/accessibility/wvkbd/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.elohmeier ];
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
+    mainProgram = "wvkbd-mobintl";
   };
 }
diff --git a/pkgs/applications/backup/deja-dup/default.nix b/pkgs/applications/backup/deja-dup/default.nix
index c2212373e70ff..da97e45b63f6b 100644
--- a/pkgs/applications/backup/deja-dup/default.nix
+++ b/pkgs/applications/backup/deja-dup/default.nix
@@ -75,5 +75,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.linux;
+    mainProgram = "deja-dup";
   };
 }
diff --git a/pkgs/applications/backup/ludusavi/default.nix b/pkgs/applications/backup/ludusavi/default.nix
index f6abbf346c6da..f83f16a4e4569 100644
--- a/pkgs/applications/backup/ludusavi/default.nix
+++ b/pkgs/applications/backup/ludusavi/default.nix
@@ -83,5 +83,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/mtkennerly/ludusavi/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ pasqui23 ];
+    mainProgram = "ludusavi";
   };
 }
diff --git a/pkgs/applications/backup/restic-integrity/default.nix b/pkgs/applications/backup/restic-integrity/default.nix
index 6c571527248de..9065f7f486c0f 100644
--- a/pkgs/applications/backup/restic-integrity/default.nix
+++ b/pkgs/applications/backup/restic-integrity/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.upi.li/networkException/restic-integrity";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ janik ];
+    mainProgram = "restic-integrity";
   };
 }
diff --git a/pkgs/applications/backup/restique/default.nix b/pkgs/applications/backup/restique/default.nix
index 6bc2ea8caf945..b7038d5a3d6ed 100644
--- a/pkgs/applications/backup/restique/default.nix
+++ b/pkgs/applications/backup/restique/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     homepage = "https://git.srcbox.net/stefan/restique";
     license = with licenses; [ gpl3Plus cc-by-sa-40 cc0 ];
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "restique";
   };
 }
diff --git a/pkgs/applications/backup/unifi-protect-backup/default.nix b/pkgs/applications/backup/unifi-protect-backup/default.nix
index f2beb553edd54..2f164adcea12d 100644
--- a/pkgs/applications/backup/unifi-protect-backup/default.nix
+++ b/pkgs/applications/backup/unifi-protect-backup/default.nix
@@ -50,5 +50,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/ep1cman/unifi-protect-backup/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ajs124 ];
+    mainProgram = "unifi-protect-backup";
   };
 }
diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix
index 7870b3c11ee68..6ce761e8677f1 100644
--- a/pkgs/applications/backup/vorta/default.nix
+++ b/pkgs/applications/backup/vorta/default.nix
@@ -95,5 +95,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ma27 ];
     platforms = platforms.linux;
+    mainProgram = "vorta";
   };
 }
diff --git a/pkgs/applications/blockchains/alfis/default.nix b/pkgs/applications/blockchains/alfis/default.nix
index cef4af1d77a0d..af1da19f63867 100644
--- a/pkgs/applications/blockchains/alfis/default.nix
+++ b/pkgs/applications/blockchains/alfis/default.nix
@@ -57,5 +57,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ misuzu ];
     platforms = platforms.unix;
+    mainProgram = "alfis";
   };
 }
diff --git a/pkgs/applications/blockchains/aperture/default.nix b/pkgs/applications/blockchains/aperture/default.nix
index e208666bfe2cb..c453d48c567ac 100644
--- a/pkgs/applications/blockchains/aperture/default.nix
+++ b/pkgs/applications/blockchains/aperture/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/lightninglabs/aperture";
     license = licenses.mit;
     maintainers = with maintainers; [ sputn1ck ];
+    mainProgram = "aperture";
   };
 }
diff --git a/pkgs/applications/blockchains/charge-lnd/default.nix b/pkgs/applications/blockchains/charge-lnd/default.nix
index 521a44de1dd07..1ea8912a75352 100644
--- a/pkgs/applications/blockchains/charge-lnd/default.nix
+++ b/pkgs/applications/blockchains/charge-lnd/default.nix
@@ -35,5 +35,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/accumulator/charge-lnd";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ mmilata mariaa144 ];
+    mainProgram = "charge-lnd";
   };
 }
diff --git a/pkgs/applications/blockchains/chia-plotter/default.nix b/pkgs/applications/blockchains/chia-plotter/default.nix
index 25d4d8653466b..5c0fa18739fb6 100644
--- a/pkgs/applications/blockchains/chia-plotter/default.nix
+++ b/pkgs/applications/blockchains/chia-plotter/default.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ilyakooo0 ];
+    mainProgram = "chia_plot";
   };
 }
diff --git a/pkgs/applications/blockchains/clboss/default.nix b/pkgs/applications/blockchains/clboss/default.nix
index c6ffe8e07f983..c016e0f37e38c 100644
--- a/pkgs/applications/blockchains/clboss/default.nix
+++ b/pkgs/applications/blockchains/clboss/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "clboss";
   };
 }
diff --git a/pkgs/applications/blockchains/crypto-org-wallet/default.nix b/pkgs/applications/blockchains/crypto-org-wallet/default.nix
index e45e43497563a..1460d87d932bf 100644
--- a/pkgs/applications/blockchains/crypto-org-wallet/default.nix
+++ b/pkgs/applications/blockchains/crypto-org-wallet/default.nix
@@ -29,5 +29,6 @@ in appimageTools.wrapType2 rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ th0rgal ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "chain-desktop-wallet";
   };
 }
diff --git a/pkgs/applications/blockchains/cryptop/default.nix b/pkgs/applications/blockchains/cryptop/default.nix
index d93a10436fc31..588fb03a36569 100644
--- a/pkgs/applications/blockchains/cryptop/default.nix
+++ b/pkgs/applications/blockchains/cryptop/default.nix
@@ -19,5 +19,6 @@ buildPythonApplication rec {
     description = "Command line Cryptocurrency Portfolio";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ bhipple ];
+    mainProgram = "cryptop";
   };
 }
diff --git a/pkgs/applications/blockchains/dcrctl/default.nix b/pkgs/applications/blockchains/dcrctl/default.nix
index 97f9b7767db7b..04411399ac34d 100644
--- a/pkgs/applications/blockchains/dcrctl/default.nix
+++ b/pkgs/applications/blockchains/dcrctl/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "A secure Decred wallet daemon written in Go (golang)";
     license = with lib.licenses; [ isc ];
     maintainers = with lib.maintainers; [ ];
+    mainProgram = "dcrctl";
   };
 }
diff --git a/pkgs/applications/blockchains/dcrwallet/default.nix b/pkgs/applications/blockchains/dcrwallet/default.nix
index da1755f14b5bc..fa604e9aac938 100644
--- a/pkgs/applications/blockchains/dcrwallet/default.nix
+++ b/pkgs/applications/blockchains/dcrwallet/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "A secure Decred wallet daemon written in Go (golang)";
     license = with lib.licenses; [ isc ];
     maintainers = with lib.maintainers; [ juaningan ];
+    mainProgram = "dcrwallet";
   };
 }
diff --git a/pkgs/applications/blockchains/electrs/default.nix b/pkgs/applications/blockchains/electrs/default.nix
index 40dfe70debd30..2401231367ef6 100644
--- a/pkgs/applications/blockchains/electrs/default.nix
+++ b/pkgs/applications/blockchains/electrs/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/romanz/electrs";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
+    mainProgram = "electrs";
   };
 }
diff --git a/pkgs/applications/blockchains/ergo/default.nix b/pkgs/applications/blockchains/ergo/default.nix
index 7ff9b9563d90c..d630ce55383c3 100644
--- a/pkgs/applications/blockchains/ergo/default.nix
+++ b/pkgs/applications/blockchains/ergo/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.cc0;
     platforms = platforms.all;
     maintainers = with maintainers; [ mmahut ];
+    mainProgram = "ergo";
   };
 }
diff --git a/pkgs/applications/blockchains/ethabi/default.nix b/pkgs/applications/blockchains/ethabi/default.nix
index eea4d546f14ba..50fa8fee06687 100644
--- a/pkgs/applications/blockchains/ethabi/default.nix
+++ b/pkgs/applications/blockchains/ethabi/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rust-ethereum/ethabi";
     maintainers = [ maintainers.dbrock ];
     license = licenses.asl20;
+    mainProgram = "ethabi";
   };
 }
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 8ba06230bb277..5f96baba174bb 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -33,5 +33,6 @@ appimageTools.wrapType2 rec {
     license = licenses.mit;
     maintainers = with maintainers; [ andresilva thedavidmeister nyanloutre RaghavSood th0rgal ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "ledger-live-desktop";
   };
 }
diff --git a/pkgs/applications/blockchains/lighthouse/default.nix b/pkgs/applications/blockchains/lighthouse/default.nix
index 2500ec5c28571..dbc4d4d4b9aac 100644
--- a/pkgs/applications/blockchains/lighthouse/default.nix
+++ b/pkgs/applications/blockchains/lighthouse/default.nix
@@ -152,5 +152,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://lighthouse.sigmaprime.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ centromere pmw ];
+    mainProgram = "lighthouse";
   };
 }
diff --git a/pkgs/applications/blockchains/lightwalletd/default.nix b/pkgs/applications/blockchains/lightwalletd/default.nix
index 040d08e752b6e..5b89ec20091a9 100644
--- a/pkgs/applications/blockchains/lightwalletd/default.nix
+++ b/pkgs/applications/blockchains/lightwalletd/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/zcash/lightwalletd";
     maintainers = with maintainers; [ centromere ];
     license = licenses.mit;
+    mainProgram = "lightwalletd";
   };
 }
diff --git a/pkgs/applications/blockchains/lndconnect/default.nix b/pkgs/applications/blockchains/lndconnect/default.nix
index 860ca5a1bd6af..c773ce8e193ff 100644
--- a/pkgs/applications/blockchains/lndconnect/default.nix
+++ b/pkgs/applications/blockchains/lndconnect/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/LN-Zap/lndconnect";
     maintainers = [ maintainers.d-xo ];
     platforms = platforms.linux;
+    mainProgram = "lndconnect";
   };
 }
diff --git a/pkgs/applications/blockchains/lndhub-go/default.nix b/pkgs/applications/blockchains/lndhub-go/default.nix
index 08bfd05471d4c..b236ed5da4424 100644
--- a/pkgs/applications/blockchains/lndhub-go/default.nix
+++ b/pkgs/applications/blockchains/lndhub-go/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/getAlby/lndhub.go";
     license = licenses.gpl3;
     maintainers = with maintainers; [ prusnak ];
+    mainProgram = "lndhub.go";
   };
 }
diff --git a/pkgs/applications/blockchains/lndmanage/default.nix b/pkgs/applications/blockchains/lndmanage/default.nix
index 97333fde00dd9..6a76ff9530c69 100644
--- a/pkgs/applications/blockchains/lndmanage/default.nix
+++ b/pkgs/applications/blockchains/lndmanage/default.nix
@@ -40,5 +40,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/bitromortac/lndmanage";
     license = licenses.mit;
     maintainers = with maintainers; [ mmilata ];
+    mainProgram = "lndmanage";
   };
 }
diff --git a/pkgs/applications/blockchains/miniscript/default.nix b/pkgs/applications/blockchains/miniscript/default.nix
index e9d68b756212f..acdcd108c607a 100644
--- a/pkgs/applications/blockchains/miniscript/default.nix
+++ b/pkgs/applications/blockchains/miniscript/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license         = licenses.mit;
     platforms       = platforms.linux;
     maintainers     = with maintainers; [ RaghavSood jb55 ];
+    mainProgram = "miniscript";
   };
 }
diff --git a/pkgs/applications/blockchains/mycrypto/default.nix b/pkgs/applications/blockchains/mycrypto/default.nix
index d4793eb9276b8..fada1835bfb17 100644
--- a/pkgs/applications/blockchains/mycrypto/default.nix
+++ b/pkgs/applications/blockchains/mycrypto/default.nix
@@ -50,5 +50,6 @@ in appimageTools.wrapType2 rec {
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = [ ];
+    mainProgram = "MyCrypto";
   };
 }
diff --git a/pkgs/applications/blockchains/nbxplorer/default.nix b/pkgs/applications/blockchains/nbxplorer/default.nix
index 6de7cf7578c4d..a2e7b0241baf7 100644
--- a/pkgs/applications/blockchains/nbxplorer/default.nix
+++ b/pkgs/applications/blockchains/nbxplorer/default.nix
@@ -30,5 +30,6 @@ buildDotnetModule rec {
     maintainers = with maintainers; [ kcalvinalvin erikarvstedt ];
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "nbxplorer";
   };
 }
diff --git a/pkgs/applications/blockchains/openethereum/default.nix b/pkgs/applications/blockchains/openethereum/default.nix
index 43b24ecd61a10..a41b9df837513 100644
--- a/pkgs/applications/blockchains/openethereum/default.nix
+++ b/pkgs/applications/blockchains/openethereum/default.nix
@@ -57,5 +57,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ akru ];
     platforms = lib.platforms.unix;
+    mainProgram = "openethereum";
   };
 }
diff --git a/pkgs/applications/blockchains/optimism/default.nix b/pkgs/applications/blockchains/optimism/default.nix
index 2cbcaf532afe5..cd7cc1ce9fe25 100644
--- a/pkgs/applications/blockchains/optimism/default.nix
+++ b/pkgs/applications/blockchains/optimism/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/ethereum-optimism/optimism";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
+    mainProgram = "cmd";
   };
 }
diff --git a/pkgs/applications/blockchains/snarkos/default.nix b/pkgs/applications/blockchains/snarkos/default.nix
index f3ea89a73f011..8513eb6de413b 100644
--- a/pkgs/applications/blockchains/snarkos/default.nix
+++ b/pkgs/applications/blockchains/snarkos/default.nix
@@ -55,5 +55,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
     platforms = platforms.unix;
+    mainProgram = "snarkos";
   };
 }
diff --git a/pkgs/applications/blockchains/stellar-core/default.nix b/pkgs/applications/blockchains/stellar-core/default.nix
index 6d3359cdcd006..5a70cce931747 100644
--- a/pkgs/applications/blockchains/stellar-core/default.nix
+++ b/pkgs/applications/blockchains/stellar-core/default.nix
@@ -71,5 +71,6 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     maintainers = [ ];
     platforms = lib.platforms.linux;
+    mainProgram = "stellar-core";
   };
 })
diff --git a/pkgs/applications/blockchains/terra-station/default.nix b/pkgs/applications/blockchains/terra-station/default.nix
index 7b82f2658a1c6..cf684e062c5cb 100644
--- a/pkgs/applications/blockchains/terra-station/default.nix
+++ b/pkgs/applications/blockchains/terra-station/default.nix
@@ -67,5 +67,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = [ maintainers.peterwilli ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "terra-station";
   };
 }
diff --git a/pkgs/applications/blockchains/tessera/default.nix b/pkgs/applications/blockchains/tessera/default.nix
index a0facc33b7dd3..03bd6734a9a59 100644
--- a/pkgs/applications/blockchains/tessera/default.nix
+++ b/pkgs/applications/blockchains/tessera/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ mmahut ];
+    mainProgram = "tessera";
   };
 }
diff --git a/pkgs/applications/blockchains/torq/default.nix b/pkgs/applications/blockchains/torq/default.nix
index c57ab07e4045c..7518508f64b1a 100644
--- a/pkgs/applications/blockchains/torq/default.nix
+++ b/pkgs/applications/blockchains/torq/default.nix
@@ -56,5 +56,6 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://github.com/lncapital/torq";
     maintainers = with maintainers; [ mmilata prusnak ];
+    mainProgram = "torq";
   };
 }
diff --git a/pkgs/applications/blockchains/trezor-suite/default.nix b/pkgs/applications/blockchains/trezor-suite/default.nix
index e5f8963e921c6..bff5cad84e4f9 100644
--- a/pkgs/applications/blockchains/trezor-suite/default.nix
+++ b/pkgs/applications/blockchains/trezor-suite/default.nix
@@ -59,5 +59,6 @@ appimageTools.wrapType2 rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ prusnak ];
     platforms = [ "aarch64-linux" "x86_64-linux" ];
+    mainProgram = "trezor-suite";
   };
 }
diff --git a/pkgs/applications/blockchains/zecwallet-lite/default.nix b/pkgs/applications/blockchains/zecwallet-lite/default.nix
index e3aad8cb0c5ff..27004722c38e2 100644
--- a/pkgs/applications/blockchains/zecwallet-lite/default.nix
+++ b/pkgs/applications/blockchains/zecwallet-lite/default.nix
@@ -26,5 +26,6 @@ appimageTools.wrapType2 rec {
     license = licenses.mit;
     maintainers = with maintainers; [ colinsane ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "zecwallet-lite";
   };
 }
diff --git a/pkgs/applications/editors/amp/default.nix b/pkgs/applications/editors/amp/default.nix
index 7f4081a399e79..a1c96ea92beb9 100644
--- a/pkgs/applications/editors/amp/default.nix
+++ b/pkgs/applications/editors/amp/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     license = [ licenses.gpl3 ];
     maintainers = [ maintainers.sb0 ];
     platforms = platforms.unix;
+    mainProgram = "amp";
   };
 }
diff --git a/pkgs/applications/editors/apostrophe/default.nix b/pkgs/applications/editors/apostrophe/default.nix
index bbc84b4caa5e0..501f820664f2f 100644
--- a/pkgs/applications/editors/apostrophe/default.nix
+++ b/pkgs/applications/editors/apostrophe/default.nix
@@ -54,5 +54,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.sternenseemann ];
+    mainProgram = "apostrophe";
   };
 }
diff --git a/pkgs/applications/editors/bless/default.nix b/pkgs/applications/editors/bless/default.nix
index dc7e0ff2f8ecc..2ac885683eb17 100644
--- a/pkgs/applications/editors/bless/default.nix
+++ b/pkgs/applications/editors/bless/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.mkg20001 ];
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "bless";
   };
 }
diff --git a/pkgs/applications/editors/bluefish/default.nix b/pkgs/applications/editors/bluefish/default.nix
index 6a5d3cbd1f6aa..0ec47ceb95666 100644
--- a/pkgs/applications/editors/bluefish/default.nix
+++ b/pkgs/applications/editors/bluefish/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vbgl ];
     platforms = platforms.all;
+    mainProgram = "bluefish";
   };
 }
diff --git a/pkgs/applications/editors/bonzomatic/default.nix b/pkgs/applications/editors/bonzomatic/default.nix
index 318c459dd21d0..886e42414da13 100644
--- a/pkgs/applications/editors/bonzomatic/default.nix
+++ b/pkgs/applications/editors/bonzomatic/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.unlicense;
     maintainers = [ maintainers.ilian ];
     platforms = [ "i686-linux" "x86_64-linux" ];
+    mainProgram = "bonzomatic";
   };
 }
diff --git a/pkgs/applications/editors/bviplus/default.nix b/pkgs/applications/editors/bviplus/default.nix
index 1cffe049c73de..ddf37bb69fc6d 100644
--- a/pkgs/applications/editors/bviplus/default.nix
+++ b/pkgs/applications/editors/bviplus/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "bviplus";
   };
 }
diff --git a/pkgs/applications/editors/codux/default.nix b/pkgs/applications/editors/codux/default.nix
index bc44da21dc26a..314f639f10603 100644
--- a/pkgs/applications/editors/codux/default.nix
+++ b/pkgs/applications/editors/codux/default.nix
@@ -31,5 +31,6 @@ appimageTools.wrapType2 rec {
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ dit7ya kashw2 ];
+    mainProgram = "codux";
   };
 }
diff --git a/pkgs/applications/editors/cpeditor/default.nix b/pkgs/applications/editors/cpeditor/default.nix
index 718c3fdd20fdf..c7d56cf50abe1 100644
--- a/pkgs/applications/editors/cpeditor/default.nix
+++ b/pkgs/applications/editors/cpeditor/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ rewine ];
+    mainProgram = "cpeditor";
   };
 }
diff --git a/pkgs/applications/editors/cudatext/default.nix b/pkgs/applications/editors/cudatext/default.nix
index 7b5bcd12ef436..37b79d9815c3e 100644
--- a/pkgs/applications/editors/cudatext/default.nix
+++ b/pkgs/applications/editors/cudatext/default.nix
@@ -118,5 +118,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl20;
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.linux;
+    mainProgram = "cudatext";
   };
 }
diff --git a/pkgs/applications/editors/dhex/default.nix b/pkgs/applications/editors/dhex/default.nix
index 743e55b096938..4ee1897bda79e 100644
--- a/pkgs/applications/editors/dhex/default.nix
+++ b/pkgs/applications/editors/dhex/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [qknight];
     platforms = with lib.platforms; linux;
+    mainProgram = "dhex";
   };
 }
diff --git a/pkgs/applications/editors/dit/default.nix b/pkgs/applications/editors/dit/default.nix
index 90502172faa5d..bb148ab9260ee 100644
--- a/pkgs/applications/editors/dit/default.nix
+++ b/pkgs/applications/editors/dit/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = with platforms; linux;
     maintainers = with maintainers; [ davidak ];
+    mainProgram = "dit";
   };
 }
diff --git a/pkgs/applications/editors/edbrowse/default.nix b/pkgs/applications/editors/edbrowse/default.nix
index 5b37b86556b7f..0f51e016c0ea7 100644
--- a/pkgs/applications/editors/edbrowse/default.nix
+++ b/pkgs/applications/editors/edbrowse/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl1Plus;
     maintainers = with maintainers; [ schmitthenner vrthra equirosa ];
     platforms = platforms.linux;
+    mainProgram = "edbrowse";
   };
 }
 # TODO: send the patch to upstream developers
diff --git a/pkgs/applications/editors/edit/default.nix b/pkgs/applications/editors/edit/default.nix
index 6ea90b0b8a81e..192aa903f3e9d 100644
--- a/pkgs/applications/editors/edit/default.nix
+++ b/pkgs/applications/editors/edit/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation {
     license = lib.licenses.publicDomain;
     maintainers = with lib.maintainers; [ AndersonTorres vrthra ];
     platforms = lib.platforms.unix;
+    mainProgram = "edit";
   };
 }
diff --git a/pkgs/applications/editors/edlin/default.nix b/pkgs/applications/editors/edlin/default.nix
index 9de4f8d4a8c78..f8baa9aa67bc1 100644
--- a/pkgs/applications/editors/edlin/default.nix
+++ b/pkgs/applications/editors/edlin/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; unix;
+    mainProgram = "edlin";
   };
 })
diff --git a/pkgs/applications/editors/edwood/default.nix b/pkgs/applications/editors/edwood/default.nix
index 8dfa36398bfd3..fc32c5ed39378 100644
--- a/pkgs/applications/editors/edwood/default.nix
+++ b/pkgs/applications/editors/edwood/default.nix
@@ -43,5 +43,6 @@ buildGoModule rec {
     homepage = "https://github.com/rjkroege/edwood";
     license = with licenses; [ mit bsd3 ];
     maintainers = with maintainers; [ kranzes ];
+    mainProgram = "edwood";
   };
 }
diff --git a/pkgs/applications/editors/em/default.nix b/pkgs/applications/editors/em/default.nix
index 89cc795f5674e..89da2d719fa8c 100644
--- a/pkgs/applications/editors/em/default.nix
+++ b/pkgs/applications/editors/em/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "em";
   };
 }
diff --git a/pkgs/applications/editors/flpsed/default.nix b/pkgs/applications/editors/flpsed/default.nix
index bffa50643899d..ae541b8dd7685 100644
--- a/pkgs/applications/editors/flpsed/default.nix
+++ b/pkgs/applications/editors/flpsed/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "flpsed";
   };
 }
diff --git a/pkgs/applications/editors/focuswriter/default.nix b/pkgs/applications/editors/focuswriter/default.nix
index de008a54513ad..f2b422d8cbf79 100644
--- a/pkgs/applications/editors/focuswriter/default.nix
+++ b/pkgs/applications/editors/focuswriter/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ madjar kashw2 ];
     platforms = platforms.linux;
     homepage = "https://gottcode.org/focuswriter/";
+    mainProgram = "focuswriter";
   };
 }
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index 0391685137f7b..fc3f3fd274741 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -178,5 +178,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
+    mainProgram = "gnome-builder";
   };
 }
diff --git a/pkgs/applications/editors/gnome-inform7/default.nix b/pkgs/applications/editors/gnome-inform7/default.nix
index 3b73e0843d92a..cab490cd76e4c 100644
--- a/pkgs/applications/editors/gnome-inform7/default.nix
+++ b/pkgs/applications/editors/gnome-inform7/default.nix
@@ -113,5 +113,6 @@ in stdenv.mkDerivation {
     license = licenses.gpl3Only;
     maintainers = [ maintainers.fitzgibbon ];
     platforms = platforms.linux;
+    mainProgram = "gnome-inform7";
   };
 }
diff --git a/pkgs/applications/editors/gnome-latex/default.nix b/pkgs/applications/editors/gnome-latex/default.nix
index e0b7bc9524fd0..90b145c503302 100644
--- a/pkgs/applications/editors/gnome-latex/default.nix
+++ b/pkgs/applications/editors/gnome-latex/default.nix
@@ -71,5 +71,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.manveru ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "gnome-latex";
   };
 }
diff --git a/pkgs/applications/editors/gophernotes/default.nix b/pkgs/applications/editors/gophernotes/default.nix
index 3ed0b67741afe..9e6ebb47f9668 100644
--- a/pkgs/applications/editors/gophernotes/default.nix
+++ b/pkgs/applications/editors/gophernotes/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/gopherdata/gophernotes";
     license = licenses.mit;
     maintainers = [ maintainers.costrouc ];
+    mainProgram = "gophernotes";
   };
 }
diff --git a/pkgs/applications/editors/hecate/default.nix b/pkgs/applications/editors/hecate/default.nix
index a2bb4e84c999e..a3e8726b13ecb 100644
--- a/pkgs/applications/editors/hecate/default.nix
+++ b/pkgs/applications/editors/hecate/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     longDescription = "The Hex Editor From Hell!";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "hecate";
   };
 }
diff --git a/pkgs/applications/editors/heh/default.nix b/pkgs/applications/editors/heh/default.nix
index ca044168b8450..a3ad923ef561c 100644
--- a/pkgs/applications/editors/heh/default.nix
+++ b/pkgs/applications/editors/heh/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/ndd7xv/heh/releases/tag/${src.rev}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ piturnah ];
+    mainProgram = "heh";
   };
 }
diff --git a/pkgs/applications/editors/hexcurse/default.nix b/pkgs/applications/editors/hexcurse/default.nix
index 1c2e09695e5e4..17291a458a4b5 100644
--- a/pkgs/applications/editors/hexcurse/default.nix
+++ b/pkgs/applications/editors/hexcurse/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "hexcurse";
   };
 }
diff --git a/pkgs/applications/editors/hexdino/default.nix b/pkgs/applications/editors/hexdino/default.nix
index 5eb023f8b9ed0..8ebd84cf248db 100644
--- a/pkgs/applications/editors/hexdino/default.nix
+++ b/pkgs/applications/editors/hexdino/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Luz/hexdino";
     license = licenses.mit;
     maintainers = [ maintainers.luz ];
+    mainProgram = "hexdino";
   };
 }
diff --git a/pkgs/applications/editors/hexedit/default.nix b/pkgs/applications/editors/hexedit/default.nix
index 238bc905f7130..7f32835fdc84d 100644
--- a/pkgs/applications/editors/hexedit/default.nix
+++ b/pkgs/applications/editors/hexedit/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ delroth ];
+    mainProgram = "hexedit";
   };
 }
diff --git a/pkgs/applications/editors/ht/default.nix b/pkgs/applications/editors/ht/default.nix
index c8a13738c9109..363466e160d0b 100644
--- a/pkgs/applications/editors/ht/default.nix
+++ b/pkgs/applications/editors/ht/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "ht";
   };
 }
diff --git a/pkgs/applications/editors/kibi/default.nix b/pkgs/applications/editors/kibi/default.nix
index 3d1f01f4b021f..a5056575fa4a2 100644
--- a/pkgs/applications/editors/kibi/default.nix
+++ b/pkgs/applications/editors/kibi/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ilai-deutel/kibi";
     license = licenses.mit;
     maintainers = with maintainers; [ robertodr ];
+    mainProgram = "kibi";
   };
 }
diff --git a/pkgs/applications/editors/kile/default.nix b/pkgs/applications/editors/kile/default.nix
index 686113452eb81..0e1326f50c492 100644
--- a/pkgs/applications/editors/kile/default.nix
+++ b/pkgs/applications/editors/kile/default.nix
@@ -64,5 +64,6 @@ mkDerivation rec {
     homepage = "https://www.kde.org/applications/office/kile/";
     maintainers = with lib.maintainers; [ fridh ];
     license = lib.licenses.gpl2Plus;
+    mainProgram = "kile";
   };
 }
diff --git a/pkgs/applications/editors/l3afpad/default.nix b/pkgs/applications/editors/l3afpad/default.nix
index 2ccea6afc3ee2..2caf4ee781e2e 100644
--- a/pkgs/applications/editors/l3afpad/default.nix
+++ b/pkgs/applications/editors/l3afpad/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ ckie ];
     license = licenses.gpl2;
+    mainProgram = "l3afpad";
   };
 }
diff --git a/pkgs/applications/editors/ldtk/default.nix b/pkgs/applications/editors/ldtk/default.nix
index a9688241ab1d7..337bc3bc6dfa6 100644
--- a/pkgs/applications/editors/ldtk/default.nix
+++ b/pkgs/applications/editors/ldtk/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation (finalAttrs: {
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ felschr ];
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    mainProgram = "ldtk";
   };
 })
diff --git a/pkgs/applications/editors/leafpad/default.nix b/pkgs/applications/editors/leafpad/default.nix
index d0b38bcd35a89..b02067a2113e5 100644
--- a/pkgs/applications/editors/leafpad/default.nix
+++ b/pkgs/applications/editors/leafpad/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = [ maintainers.flosse ];
     license = licenses.gpl3;
+    mainProgram = "leafpad";
   };
 }
diff --git a/pkgs/applications/editors/lite-xl/default.nix b/pkgs/applications/editors/lite-xl/default.nix
index 857bc35309f2e..d74c5a2135321 100644
--- a/pkgs/applications/editors/lite-xl/default.nix
+++ b/pkgs/applications/editors/lite-xl/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ sefidel ];
     platforms = platforms.unix;
+    mainProgram = "lite-xl";
   };
 }
diff --git a/pkgs/applications/editors/lite/default.nix b/pkgs/applications/editors/lite/default.nix
index 5ed1603ba8a86..77f3a38bc6c5e 100644
--- a/pkgs/applications/editors/lite/default.nix
+++ b/pkgs/applications/editors/lite/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
     platforms = platforms.unix;
+    mainProgram = "lite";
   };
 }
diff --git a/pkgs/applications/editors/manuskript/default.nix b/pkgs/applications/editors/manuskript/default.nix
index c93ba5ed88740..645883f5489fb 100644
--- a/pkgs/applications/editors/manuskript/default.nix
+++ b/pkgs/applications/editors/manuskript/default.nix
@@ -58,5 +58,6 @@ python3Packages.buildPythonApplication rec {
     license = lib.licenses.gpl3;
     maintainers = [ ];
     platforms = lib.platforms.unix;
+    mainProgram = "manuskript";
   };
 }
diff --git a/pkgs/applications/editors/marker/default.nix b/pkgs/applications/editors/marker/default.nix
index dcfe3d8ed35f0..f24f83c70f278 100644
--- a/pkgs/applications/editors/marker/default.nix
+++ b/pkgs/applications/editors/marker/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     changelog = "https://github.com/fabiocolacio/Marker/releases/tag/${version}";
+    mainProgram = "marker";
   };
 }
diff --git a/pkgs/applications/editors/mindforger/default.nix b/pkgs/applications/editors/mindforger/default.nix
index 2f75fb34cd183..de304cd6208af 100644
--- a/pkgs/applications/editors/mindforger/default.nix
+++ b/pkgs/applications/editors/mindforger/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ cyplo ];
+    mainProgram = "mindforger";
   };
 }
diff --git a/pkgs/applications/editors/mle/default.nix b/pkgs/applications/editors/mle/default.nix
index 088f10a9e9767..079c24c2e732b 100644
--- a/pkgs/applications/editors/mle/default.nix
+++ b/pkgs/applications/editors/mle/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ adsr ];
+    mainProgram = "mle";
   };
 }
diff --git a/pkgs/applications/editors/moe/default.nix b/pkgs/applications/editors/moe/default.nix
index 71449a0b8a808..9d0724f1997b5 100644
--- a/pkgs/applications/editors/moe/default.nix
+++ b/pkgs/applications/editors/moe/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
+    mainProgram = "moe";
   };
 })
 # TODO: a configurable, global moerc file
diff --git a/pkgs/applications/editors/molsketch/default.nix b/pkgs/applications/editors/molsketch/default.nix
index aa336ce45e213..6a656114ff5f7 100644
--- a/pkgs/applications/editors/molsketch/default.nix
+++ b/pkgs/applications/editors/molsketch/default.nix
@@ -49,5 +49,6 @@ mkDerivation rec {
     homepage = "https://sourceforge.net/projects/molsketch/";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.moni ];
+    mainProgram = "molsketch";
   };
 }
diff --git a/pkgs/applications/editors/ne/default.nix b/pkgs/applications/editors/ne/default.nix
index e246185e2a19d..017354222e824 100644
--- a/pkgs/applications/editors/ne/default.nix
+++ b/pkgs/applications/editors/ne/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ geri1701 ];
+    mainProgram = "ne";
   };
 }
diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix
index c2b1d627496fe..a2d7f13338a96 100644
--- a/pkgs/applications/editors/netbeans/default.nix
+++ b/pkgs/applications/editors/netbeans/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation {
     ];
     maintainers = with lib.maintainers; [ sander rszibele kashw2 ];
     platforms = lib.platforms.unix;
+    mainProgram = "netbeans";
   };
 }
diff --git a/pkgs/applications/editors/notepad-next/default.nix b/pkgs/applications/editors/notepad-next/default.nix
index c2085bcf0455d..2f668a6fc526e 100644
--- a/pkgs/applications/editors/notepad-next/default.nix
+++ b/pkgs/applications/editors/notepad-next/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     platforms = platforms.unix;
     maintainers = [ maintainers.sebtm ];
     broken = stdenv.isAarch64;
+    mainProgram = "NotepadNext";
   };
 }
diff --git a/pkgs/applications/editors/notepadqq/default.nix b/pkgs/applications/editors/notepadqq/default.nix
index 3aa08559bdf78..56de0b332a55f 100644
--- a/pkgs/applications/editors/notepadqq/default.nix
+++ b/pkgs/applications/editors/notepadqq/default.nix
@@ -55,5 +55,6 @@ mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.rszibele ];
+    mainProgram = "notepadqq";
   };
 }
diff --git a/pkgs/applications/editors/nvpy/default.nix b/pkgs/applications/editors/nvpy/default.nix
index cc5f60984c935..5532bd8524dae 100644
--- a/pkgs/applications/editors/nvpy/default.nix
+++ b/pkgs/applications/editors/nvpy/default.nix
@@ -37,5 +37,6 @@ in pythonPackages.buildPythonApplication rec {
     homepage = "https://github.com/cpbotha/nvpy";
     platforms = platforms.linux;
     license = licenses.bsd3;
+    mainProgram = "nvpy";
   };
 }
diff --git a/pkgs/applications/editors/ox/default.nix b/pkgs/applications/editors/ox/default.nix
index 2e67e83e972b3..24ce2cec46df1 100644
--- a/pkgs/applications/editors/ox/default.nix
+++ b/pkgs/applications/editors/ox/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/curlpipe/ox/releases/tag/${version}";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ moni ];
+    mainProgram = "ox";
   };
 }
diff --git a/pkgs/applications/editors/pinegrow/default.nix b/pkgs/applications/editors/pinegrow/default.nix
index b4555bc898789..cf5d35c1c296c 100644
--- a/pkgs/applications/editors/pinegrow/default.nix
+++ b/pkgs/applications/editors/pinegrow/default.nix
@@ -97,5 +97,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = with licenses; [ unfreeRedistributable ];
     maintainers = with maintainers; [ gador ];
+    mainProgram = "pinegrow";
   };
 }
diff --git a/pkgs/applications/editors/pixelorama/default.nix b/pkgs/applications/editors/pixelorama/default.nix
index 65e724df3db9e..f80e01e1e18e8 100644
--- a/pkgs/applications/editors/pixelorama/default.nix
+++ b/pkgs/applications/editors/pixelorama/default.nix
@@ -90,5 +90,6 @@ in stdenv.mkDerivation (finalAttrs: {
     license = licenses.mit;
     platforms = [ "i686-linux" "x86_64-linux" ];
     maintainers = with maintainers; [ felschr ];
+    mainProgram = "pixelorama";
   };
 })
diff --git a/pkgs/applications/editors/qxmledit/default.nix b/pkgs/applications/editors/qxmledit/default.nix
index bbb8d39a5f7a2..1991b2a7bc77c 100644
--- a/pkgs/applications/editors/qxmledit/default.nix
+++ b/pkgs/applications/editors/qxmledit/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2;
     platforms = platforms.unix;
     changelog = "https://github.com/lbellonda/qxmledit/blob/${version}/NEWS";
+    mainProgram = "qxmledit";
   };
 }
diff --git a/pkgs/applications/editors/qxw/default.nix b/pkgs/applications/editors/qxw/default.nix
index c36aba6d9bba1..2d2af2ce508ef 100644
--- a/pkgs/applications/editors/qxw/default.nix
+++ b/pkgs/applications/editors/qxw/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.tckmn ];
     platforms = platforms.linux;
+    mainProgram = "qxw";
   };
 }
diff --git a/pkgs/applications/editors/rednotebook/default.nix b/pkgs/applications/editors/rednotebook/default.nix
index abbfefce52933..545e82cf6de9d 100644
--- a/pkgs/applications/editors/rednotebook/default.nix
+++ b/pkgs/applications/editors/rednotebook/default.nix
@@ -36,5 +36,6 @@ buildPythonApplication rec {
     description = "A modern journal that includes a calendar navigation, customizable templates, export functionality and word clouds";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ orivej ];
+    mainProgram = "rednotebook";
   };
 }
diff --git a/pkgs/applications/editors/rehex/default.nix b/pkgs/applications/editors/rehex/default.nix
index 0d4d171d98281..bc2bc733c6c03 100644
--- a/pkgs/applications/editors/rehex/default.nix
+++ b/pkgs/applications/editors/rehex/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ markus1189 wegank ];
     platforms = platforms.all;
+    mainProgram = "rehex";
   };
 }
diff --git a/pkgs/applications/editors/retext/default.nix b/pkgs/applications/editors/retext/default.nix
index 574d83f1be974..feb42d9a99a93 100644
--- a/pkgs/applications/editors/retext/default.nix
+++ b/pkgs/applications/editors/retext/default.nix
@@ -88,5 +88,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ klntsky ];
     platforms = platforms.unix;
+    mainProgram = "retext";
   };
 }
diff --git a/pkgs/applications/editors/scite/default.nix b/pkgs/applications/editors/scite/default.nix
index 4118aee8a2dd1..67ebd13134b2f 100644
--- a/pkgs/applications/editors/scite/default.nix
+++ b/pkgs/applications/editors/scite/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.rszibele ];
+    mainProgram = "SciTE";
   };
 }
diff --git a/pkgs/applications/editors/sigil/default.nix b/pkgs/applications/editors/sigil/default.nix
index 1740d5a8e374b..022e9ec697202 100644
--- a/pkgs/applications/editors/sigil/default.nix
+++ b/pkgs/applications/editors/sigil/default.nix
@@ -41,5 +41,6 @@ mkDerivation rec {
     license = licenses.gpl3;
     # currently unmaintained
     platforms = platforms.linux;
+    mainProgram = "sigil";
   };
 }
diff --git a/pkgs/applications/editors/spacevim/default.nix b/pkgs/applications/editors/spacevim/default.nix
index 8252f8ce1c145..3db7c73fd422e 100644
--- a/pkgs/applications/editors/spacevim/default.nix
+++ b/pkgs/applications/editors/spacevim/default.nix
@@ -73,5 +73,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.fzakaria ];
     platforms = platforms.all;
+    mainProgram = "spacevim";
   };
 }
diff --git a/pkgs/applications/editors/standardnotes/default.nix b/pkgs/applications/editors/standardnotes/default.nix
index 6e4354612e3f6..e3348ceebfd72 100644
--- a/pkgs/applications/editors/standardnotes/default.nix
+++ b/pkgs/applications/editors/standardnotes/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ mgregoire chuangzhu squalus ];
     sourceProvenance = [ sourceTypes.binaryNativeCode ];
     platforms = builtins.attrNames srcjson.deb;
+    mainProgram = "standardnotes";
   };
 }
diff --git a/pkgs/applications/editors/texmaker/default.nix b/pkgs/applications/editors/texmaker/default.nix
index 3cec9808ed4d4..4684831416b0d 100644
--- a/pkgs/applications/editors/texmaker/default.nix
+++ b/pkgs/applications/editors/texmaker/default.nix
@@ -36,5 +36,6 @@ mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ cfouche markuskowa ];
+    mainProgram = "texmaker";
   };
 }
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index 1f66a581dbe51..0451c067c16cf 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ajs124 cfouche ];
+    mainProgram = "texstudio";
   };
 })
diff --git a/pkgs/applications/editors/textadept/default.nix b/pkgs/applications/editors/textadept/default.nix
index 47a7445bd7f19..536f2cd110096 100644
--- a/pkgs/applications/editors/textadept/default.nix
+++ b/pkgs/applications/editors/textadept/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ raskin mirrexagon arcuru ];
     platforms = platforms.linux;
+    mainProgram = "textadept";
   };
 }
diff --git a/pkgs/applications/editors/texworks/default.nix b/pkgs/applications/editors/texworks/default.nix
index b27ab8bbb69bd..315db41159007 100644
--- a/pkgs/applications/editors/texworks/default.nix
+++ b/pkgs/applications/editors/texworks/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dotlambda ];
     platforms = with platforms; linux;
+    mainProgram = "texworks";
   };
 }
diff --git a/pkgs/applications/editors/thonny/default.nix b/pkgs/applications/editors/thonny/default.nix
index 9b6c9a02985da..2eae992a36c6f 100644
--- a/pkgs/applications/editors/thonny/default.nix
+++ b/pkgs/applications/editors/thonny/default.nix
@@ -64,5 +64,6 @@ buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ leenaars ];
     platforms = platforms.unix;
+    mainProgram = "thonny";
   };
 }
diff --git a/pkgs/applications/editors/tweak/default.nix b/pkgs/applications/editors/tweak/default.nix
index f6b241c9d07f0..9663728e6ef90 100644
--- a/pkgs/applications/editors/tweak/default.nix
+++ b/pkgs/applications/editors/tweak/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.chiark.greenend.org.uk/~sgtatham/tweak";
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "tweak";
   };
 }
diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix
index 936cc9f7bb87d..5bedface4c5a1 100644
--- a/pkgs/applications/editors/typora/default.nix
+++ b/pkgs/applications/editors/typora/default.nix
@@ -100,5 +100,6 @@ in stdenv.mkDerivation {
     license = licenses.unfree;
     maintainers = with maintainers; [ npulidomateo ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "typora";
   };
 }
diff --git a/pkgs/applications/editors/uivonim/default.nix b/pkgs/applications/editors/uivonim/default.nix
index 36d3ee4afddcc..a888747d05223 100644
--- a/pkgs/applications/editors/uivonim/default.nix
+++ b/pkgs/applications/editors/uivonim/default.nix
@@ -39,5 +39,6 @@ buildNpmPackage rec {
     maintainers = with maintainers; [ gebner ];
     platforms = platforms.unix;
     license = licenses.agpl3Only;
+    mainProgram = "uivonim";
   };
 }
diff --git a/pkgs/applications/editors/vbindiff/default.nix b/pkgs/applications/editors/vbindiff/default.nix
index 9a103867fbc69..30d902ce0fd08 100644
--- a/pkgs/applications/editors/vbindiff/default.nix
+++ b/pkgs/applications/editors/vbindiff/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.cjmweb.net/vbindiff/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
+    mainProgram = "vbindiff";
   };
 }
diff --git a/pkgs/applications/editors/viw/default.nix b/pkgs/applications/editors/viw/default.nix
index 0ba381901b983..ad47edfe83e4d 100644
--- a/pkgs/applications/editors/viw/default.nix
+++ b/pkgs/applications/editors/viw/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/lpan/viw";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "viw";
   };
 }
diff --git a/pkgs/applications/editors/wily/default.nix b/pkgs/applications/editors/wily/default.nix
index 3fe756bcf72b7..74d0bc156758b 100644
--- a/pkgs/applications/editors/wily/default.nix
+++ b/pkgs/applications/editors/wily/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.artistic1;
     maintainers = [ maintainers.vrthra ];
     platforms = platforms.unix;
+    mainProgram = "wily";
   };
 }
diff --git a/pkgs/applications/editors/wxhexeditor/default.nix b/pkgs/applications/editors/wxhexeditor/default.nix
index a036e05329773..23ef7a0ef567a 100644
--- a/pkgs/applications/editors/wxhexeditor/default.nix
+++ b/pkgs/applications/editors/wxhexeditor/default.nix
@@ -76,5 +76,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ wegank ];
+    mainProgram = "wxHexEditor";
   };
 }
diff --git a/pkgs/applications/editors/xed-editor/default.nix b/pkgs/applications/editors/xed-editor/default.nix
index 85909af04e981..6013f8a699fe5 100644
--- a/pkgs/applications/editors/xed-editor/default.nix
+++ b/pkgs/applications/editors/xed-editor/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ tu-maurice bobby285271 ];
+    mainProgram = "xed";
   };
 }
diff --git a/pkgs/applications/editors/xedit/default.nix b/pkgs/applications/editors/xedit/default.nix
index a6a29addc7a96..679d64d6cca4b 100644
--- a/pkgs/applications/editors/xedit/default.nix
+++ b/pkgs/applications/editors/xedit/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     # never built on aarch64-darwin, x86_64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin;
+    mainProgram = "xedit";
   };
 }
diff --git a/pkgs/applications/editors/xmlcopyeditor/default.nix b/pkgs/applications/editors/xmlcopyeditor/default.nix
index bd7c237e8c133..7d75bdce82eff 100644
--- a/pkgs/applications/editors/xmlcopyeditor/default.nix
+++ b/pkgs/applications/editors/xmlcopyeditor/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ candeira wegank ];
+    mainProgram = "xmlcopyeditor";
   };
 }
diff --git a/pkgs/applications/editors/zee/default.nix b/pkgs/applications/editors/zee/default.nix
index 8de11fd5d59c2..e7db019467ba8 100644
--- a/pkgs/applications/editors/zee/default.nix
+++ b/pkgs/applications/editors/zee/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/zee-editor/zee";
     license = licenses.mit;
     maintainers = with maintainers; [ booklearner ];
+    mainProgram = "zee";
   };
 }
diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix
index cb1307d7ffb42..bafb1aa303853 100644
--- a/pkgs/applications/editors/zile/default.nix
+++ b/pkgs/applications/editors/zile/default.nix
@@ -76,5 +76,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ pSub AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "zile";
   };
 }
diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix
index cd0d6dbc93863..9294c33c5863d 100644
--- a/pkgs/applications/gis/grass/default.nix
+++ b/pkgs/applications/gis/grass/default.nix
@@ -152,5 +152,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; teams.geospatial.members ++ [ mpickering ];
     platforms = platforms.all;
+    mainProgram = "grass";
   };
 })
diff --git a/pkgs/applications/gis/openorienteering-mapper/default.nix b/pkgs/applications/gis/openorienteering-mapper/default.nix
index 9722c3cb4dee5..81278c9184e79 100644
--- a/pkgs/applications/gis/openorienteering-mapper/default.nix
+++ b/pkgs/applications/gis/openorienteering-mapper/default.nix
@@ -87,5 +87,6 @@ mkDerivation rec {
     maintainers = with maintainers; [ mpickering sikmir ];
     platforms = with platforms; unix;
     broken = stdenv.isDarwin;
+    mainProgram = "Mapper";
   };
 }
diff --git a/pkgs/applications/gis/tunnelx/default.nix b/pkgs/applications/gis/tunnelx/default.nix
index 3ec0439a5d882..270faac53f685 100644
--- a/pkgs/applications/gis/tunnelx/default.nix
+++ b/pkgs/applications/gis/tunnelx/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ goatchurchprime ];
     platforms = lib.platforms.linux;
+    mainProgram = "tunnelx";
   };
 })
diff --git a/pkgs/applications/gis/udig/default.nix b/pkgs/applications/gis/udig/default.nix
index 808b70ed5ec93..8510918d4cabc 100644
--- a/pkgs/applications/gis/udig/default.nix
+++ b/pkgs/applications/gis/udig/default.nix
@@ -22,6 +22,7 @@ let
     license = with licenses; [ epl10 bsd3 ];
     maintainers = with maintainers; [ sikmir ];
     platforms = builtins.attrNames srcs;
+    mainProgram = "udig";
   };
 
   linux = stdenv.mkDerivation {
diff --git a/pkgs/applications/networking/Sylk/default.nix b/pkgs/applications/networking/Sylk/default.nix
index cc9e218bad359..b7eca10fc7cfd 100644
--- a/pkgs/applications/networking/Sylk/default.nix
+++ b/pkgs/applications/networking/Sylk/default.nix
@@ -27,5 +27,6 @@ appimageTools.wrapType2 rec {
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ zimbatm ];
     platforms = [ "i386-linux" "x86_64-linux" ];
+    mainProgram = "Sylk";
   };
 }
diff --git a/pkgs/applications/networking/alpnpass/default.nix b/pkgs/applications/networking/alpnpass/default.nix
index 81bdc29a54f33..edf8061da4d17 100644
--- a/pkgs/applications/networking/alpnpass/default.nix
+++ b/pkgs/applications/networking/alpnpass/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     homepage = "https://github.com/VerSprite/alpnpass";
     license = licenses.unlicense;
     maintainers = [ maintainers.raboof ];
+    mainProgram = "alpnpass";
   };
 }
diff --git a/pkgs/applications/networking/apache-directory-studio/default.nix b/pkgs/applications/networking/apache-directory-studio/default.nix
index 0b1047cbc70c4..596ba95b7450b 100644
--- a/pkgs/applications/networking/apache-directory-studio/default.nix
+++ b/pkgs/applications/networking/apache-directory-studio/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     # Upstream supports macOS and Windows too.
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "ApacheDirectoryStudio";
   };
 }
diff --git a/pkgs/applications/networking/appgate-sdp/default.nix b/pkgs/applications/networking/appgate-sdp/default.nix
index 93ba2ac105b13..fc32fb97f58b9 100644
--- a/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/pkgs/applications/networking/appgate-sdp/default.nix
@@ -155,5 +155,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ymatsiuk ];
+    mainProgram = "appgate";
   };
 }
diff --git a/pkgs/applications/networking/asn/default.nix b/pkgs/applications/networking/asn/default.nix
index 7b8caee04bc95..e81931c619b35 100644
--- a/pkgs/applications/networking/asn/default.nix
+++ b/pkgs/applications/networking/asn/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/nitefood/asn/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "asn";
   };
 }
diff --git a/pkgs/applications/networking/avalanchego/default.nix b/pkgs/applications/networking/avalanchego/default.nix
index e2673068dcb3e..7ac034568c82e 100644
--- a/pkgs/applications/networking/avalanchego/default.nix
+++ b/pkgs/applications/networking/avalanchego/default.nix
@@ -41,5 +41,6 @@ buildGoModule rec {
     changelog = "https://github.com/ava-labs/avalanchego/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ urandom qjoly ];
+    mainProgram = "avalanchego";
   };
 }
diff --git a/pkgs/applications/networking/blocky/default.nix b/pkgs/applications/networking/blocky/default.nix
index bd07776c7df06..3f299be447ad2 100644
--- a/pkgs/applications/networking/blocky/default.nix
+++ b/pkgs/applications/networking/blocky/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     changelog = "https://github.com/0xERR0R/blocky/releases";
     license = licenses.asl20;
     maintainers = with maintainers; [ ratsclub ];
+    mainProgram = "blocky";
   };
 }
diff --git a/pkgs/applications/networking/brig/default.nix b/pkgs/applications/networking/brig/default.nix
index 23370866e7215..8c659a99d0ffb 100644
--- a/pkgs/applications/networking/brig/default.nix
+++ b/pkgs/applications/networking/brig/default.nix
@@ -53,5 +53,6 @@ buildGoModule rec {
     changelog = "https://github.com/sahib/brig/releases/tag/${src.rev}";
     license = licenses.agpl3;
     maintainers = with maintainers; [ offline ];
+    mainProgram = "brig";
   };
 }
diff --git a/pkgs/applications/networking/calls/default.nix b/pkgs/applications/networking/calls/default.nix
index 55924db4a3893..3546284f99c35 100644
--- a/pkgs/applications/networking/calls/default.nix
+++ b/pkgs/applications/networking/calls/default.nix
@@ -112,5 +112,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ craigem lheckemann tomfitzhenry ];
     platforms = platforms.linux;
+    mainProgram = "gnome-calls";
   };
 }
diff --git a/pkgs/applications/networking/charles/default.nix b/pkgs/applications/networking/charles/default.nix
index 27fa0981f170e..27c5ebf9e9c0f 100644
--- a/pkgs/applications/networking/charles/default.nix
+++ b/pkgs/applications/networking/charles/default.nix
@@ -75,5 +75,6 @@ in {
     version = "3.12.3";
     sha256 = "13zk82ny1w5zd9qcs9qkq0kdb22ni5byzajyshpxdfm4zv6p32ss";
     jdk = jdk8.jre;
+    mainProgram = "charles";
   });
 }
diff --git a/pkgs/applications/networking/cloudflare-dyndns/default.nix b/pkgs/applications/networking/cloudflare-dyndns/default.nix
index 7f11ec257038b..2be03621a016f 100644
--- a/pkgs/applications/networking/cloudflare-dyndns/default.nix
+++ b/pkgs/applications/networking/cloudflare-dyndns/default.nix
@@ -56,5 +56,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/kissgyorgy/cloudflare-dyndns";
     license = licenses.mit;
     maintainers = with maintainers; [ lovesegfault ];
+    mainProgram = "cloudflare-dyndns";
   };
 }
diff --git a/pkgs/applications/networking/cozy-drive/default.nix b/pkgs/applications/networking/cozy-drive/default.nix
index c945576f32e11..53d401f01e18e 100644
--- a/pkgs/applications/networking/cozy-drive/default.nix
+++ b/pkgs/applications/networking/cozy-drive/default.nix
@@ -31,5 +31,6 @@ appimageTools.wrapType2 {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ simarra ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "cozydrive";
   };
 }
diff --git a/pkgs/applications/networking/datovka/default.nix b/pkgs/applications/networking/datovka/default.nix
index f86fd87573b3b..b72426bc50dbc 100644
--- a/pkgs/applications/networking/datovka/default.nix
+++ b/pkgs/applications/networking/datovka/default.nix
@@ -29,5 +29,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.mmahut ];
     platforms = platforms.linux;
+    mainProgram = "datovka";
   };
 }
diff --git a/pkgs/applications/networking/discordo/default.nix b/pkgs/applications/networking/discordo/default.nix
index 50112238215de..8b46e31b7b5cf 100644
--- a/pkgs/applications/networking/discordo/default.nix
+++ b/pkgs/applications/networking/discordo/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://github.com/ayn2op/discordo";
     license = licenses.mit;
     maintainers = [ maintainers.arian-d ];
+    mainProgram = "discordo";
   };
 }
diff --git a/pkgs/applications/networking/diswall/default.nix b/pkgs/applications/networking/diswall/default.nix
index f7ef51b7040f1..3d78aa42a2404 100644
--- a/pkgs/applications/networking/diswall/default.nix
+++ b/pkgs/applications/networking/diswall/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://www.diswall.stream";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ izorkin ];
+    mainProgram = "diswall";
   };
 }
diff --git a/pkgs/applications/networking/drive/default.nix b/pkgs/applications/networking/drive/default.nix
index 4c7b5727fbac9..e8b62033f350b 100644
--- a/pkgs/applications/networking/drive/default.nix
+++ b/pkgs/applications/networking/drive/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     description = "Google Drive client for the commandline";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "drive";
   };
 }
diff --git a/pkgs/applications/networking/droopy/default.nix b/pkgs/applications/networking/droopy/default.nix
index 47298fb4dbc2f..35176db8b2415 100644
--- a/pkgs/applications/networking/droopy/default.nix
+++ b/pkgs/applications/networking/droopy/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation {
     homepage = "http://stackp.online.fr/droopy";
     license = licenses.bsd3;
     maintainers = [ maintainers.Profpatsch ];
+    mainProgram = "droopy";
   };
 
 }
diff --git a/pkgs/applications/networking/dsvpn/default.nix b/pkgs/applications/networking/dsvpn/default.nix
index f165e6a59942d..53aa9fb894087 100644
--- a/pkgs/applications/networking/dsvpn/default.nix
+++ b/pkgs/applications/networking/dsvpn/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.unix;
+    mainProgram = "dsvpn";
   };
 }
diff --git a/pkgs/applications/networking/errbot/default.nix b/pkgs/applications/networking/errbot/default.nix
index 9e239627b02c1..c94bbc8780188 100644
--- a/pkgs/applications/networking/errbot/default.nix
+++ b/pkgs/applications/networking/errbot/default.nix
@@ -68,5 +68,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     # flaky on darwin, "RuntimeError: can't start new thread"
+    mainProgram = "errbot";
   };
 }
diff --git a/pkgs/applications/networking/filebrowser/default.nix b/pkgs/applications/networking/filebrowser/default.nix
index 153cc791cbf91..334302cae0089 100644
--- a/pkgs/applications/networking/filebrowser/default.nix
+++ b/pkgs/applications/networking/filebrowser/default.nix
@@ -56,5 +56,6 @@ buildGoModule rec {
     homepage = "https://filebrowser.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ nielsegberts ];
+    mainProgram = "filebrowser";
   };
 }
diff --git a/pkgs/applications/networking/gdrive/default.nix b/pkgs/applications/networking/gdrive/default.nix
index c442303e6758c..2d100e3c21599 100644
--- a/pkgs/applications/networking/gdrive/default.nix
+++ b/pkgs/applications/networking/gdrive/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     description = "A command line utility for interacting with Google Drive";
     license = licenses.mit;
     maintainers = [ maintainers.rzetterberg ];
+    mainProgram = "gdrive";
   };
 }
diff --git a/pkgs/applications/networking/gdrive3/default.nix b/pkgs/applications/networking/gdrive3/default.nix
index 8d9553270906b..4e7fea1296542 100644
--- a/pkgs/applications/networking/gdrive3/default.nix
+++ b/pkgs/applications/networking/gdrive3/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/glotlabs/gdrive/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "gdrive";
   };
 }
diff --git a/pkgs/applications/networking/giara/default.nix b/pkgs/applications/networking/giara/default.nix
index 7335a60920243..9acbf6f929b98 100644
--- a/pkgs/applications/networking/giara/default.nix
+++ b/pkgs/applications/networking/giara/default.nix
@@ -73,5 +73,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://gitlab.gnome.org/World/giara";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "giara";
   };
 }
diff --git a/pkgs/applications/networking/gnmic/default.nix b/pkgs/applications/networking/gnmic/default.nix
index c6d8770415a1e..3bd4697a6e6e0 100644
--- a/pkgs/applications/networking/gnmic/default.nix
+++ b/pkgs/applications/networking/gnmic/default.nix
@@ -41,5 +41,6 @@ buildGoModule rec {
     changelog = "https://github.com/openconfig/gnmic/releases/tag/${src.rev}";
     license = licenses.asl20;
     maintainers = with maintainers; [ vincentbernat ];
+    mainProgram = "gnmic";
   };
 }
diff --git a/pkgs/applications/networking/gnome-network-displays/default.nix b/pkgs/applications/networking/gnome-network-displays/default.nix
index b9722b6989ff1..e7bfde8a5192f 100644
--- a/pkgs/applications/networking/gnome-network-displays/default.nix
+++ b/pkgs/applications/networking/gnome-network-displays/default.nix
@@ -76,5 +76,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with maintainers; [ doronbehar ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "gnome-network-displays";
   };
 })
diff --git a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
index 2367f847d1073..281c9e5526eb0 100644
--- a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
+++ b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
@@ -27,5 +27,6 @@ buildDunePackage rec {
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ obadz ];
+    mainProgram = "google-drive-ocamlfuse";
   };
 }
diff --git a/pkgs/applications/networking/gossa/default.nix b/pkgs/applications/networking/gossa/default.nix
index 17d9f828b6423..13b59f4c4d9df 100644
--- a/pkgs/applications/networking/gossa/default.nix
+++ b/pkgs/applications/networking/gossa/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     description = "A fast and simple multimedia fileserver";
     license = licenses.mit;
     maintainers = with maintainers; [ dsymbol ];
+    mainProgram = "gossa";
   };
 }
diff --git a/pkgs/applications/networking/headlines/default.nix b/pkgs/applications/networking/headlines/default.nix
index ed26c6f60de22..8db698e963bc4 100644
--- a/pkgs/applications/networking/headlines/default.nix
+++ b/pkgs/applications/networking/headlines/default.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ chuangzhu ];
+    mainProgram = "headlines";
   };
 }
diff --git a/pkgs/applications/networking/hpmyroom/default.nix b/pkgs/applications/networking/hpmyroom/default.nix
index 1897a283f70d8..a177256432d30 100644
--- a/pkgs/applications/networking/hpmyroom/default.nix
+++ b/pkgs/applications/networking/hpmyroom/default.nix
@@ -55,5 +55,6 @@ mkDerivation rec {
     homepage = "https://myroom.hpe.com";
     # TODO: A Darwin binary is available upstream
     platforms = [ "x86_64-linux" ];
+    mainProgram = "hpmyroom";
   };
 }
diff --git a/pkgs/applications/networking/hydroxide/default.nix b/pkgs/applications/networking/hydroxide/default.nix
index 994e17c750c89..132ad32160b97 100644
--- a/pkgs/applications/networking/hydroxide/default.nix
+++ b/pkgs/applications/networking/hydroxide/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/emersion/hydroxide";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "hydroxide";
   };
 }
diff --git a/pkgs/applications/networking/icemon/default.nix b/pkgs/applications/networking/icemon/default.nix
index b757445eb087b..7fa4c37b557a2 100644
--- a/pkgs/applications/networking/icemon/default.nix
+++ b/pkgs/applications/networking/icemon/default.nix
@@ -20,5 +20,6 @@ mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ emantor ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "icemon";
   };
 }
diff --git a/pkgs/applications/networking/insync/default.nix b/pkgs/applications/networking/insync/default.nix
index 4e11d9fe38634..844b8648d6c85 100644
--- a/pkgs/applications/networking/insync/default.nix
+++ b/pkgs/applications/networking/insync/default.nix
@@ -37,6 +37,7 @@ let
      1) Currently the system try icon does not render correctly.
      2) libqtvirtualkeyboardplugin does not have necessary Qt library shipped from vendor.
     '';
+    mainProgram = "insync";
   };
 
   insync-pkg = stdenvNoCC.mkDerivation {
diff --git a/pkgs/applications/networking/ipfs-upload-client/default.nix b/pkgs/applications/networking/ipfs-upload-client/default.nix
index 8a06565e1fced..416f3dc60cc6e 100644
--- a/pkgs/applications/networking/ipfs-upload-client/default.nix
+++ b/pkgs/applications/networking/ipfs-upload-client/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/INFURA/ipfs-upload-client";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
+    mainProgram = "ipfs-upload-client";
   };
 }
diff --git a/pkgs/applications/networking/ipget/default.nix b/pkgs/applications/networking/ipget/default.nix
index c45398dfd4f4b..0ad7de8ec468c 100644
--- a/pkgs/applications/networking/ipget/default.nix
+++ b/pkgs/applications/networking/ipget/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://ipfs.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ Luflosi ];
+    mainProgram = "ipget";
   };
 }
diff --git a/pkgs/applications/networking/iptraf-ng/default.nix b/pkgs/applications/networking/iptraf-ng/default.nix
index c90fd239267e0..d21f21def8e2a 100644
--- a/pkgs/applications/networking/iptraf-ng/default.nix
+++ b/pkgs/applications/networking/iptraf-ng/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "iptraf-ng";
   };
 }
diff --git a/pkgs/applications/networking/iroh/default.nix b/pkgs/applications/networking/iroh/default.nix
index a260bca6a55d2..2e2ef6ee6ccc3 100644
--- a/pkgs/applications/networking/iroh/default.nix
+++ b/pkgs/applications/networking/iroh/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://iroh.computer";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ cameronfyfe ];
+    mainProgram = "iroh";
   };
 }
diff --git a/pkgs/applications/networking/juju/default.nix b/pkgs/applications/networking/juju/default.nix
index d0542f5c3edca..17d80e496e317 100644
--- a/pkgs/applications/networking/juju/default.nix
+++ b/pkgs/applications/networking/juju/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://juju.is";
     license = licenses.mit;
     maintainers = with maintainers; [ citadelcore ];
+    mainProgram = "juju";
   };
 }
diff --git a/pkgs/applications/networking/jxplorer/default.nix b/pkgs/applications/networking/jxplorer/default.nix
index 7f1a46b37dabf..e64cbaf357b01 100644
--- a/pkgs/applications/networking/jxplorer/default.nix
+++ b/pkgs/applications/networking/jxplorer/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license     = lib.licenses.caossl;
     maintainers = with maintainers; [ benwbooth ];
     platforms   = platforms.linux;
+    mainProgram = "jxplorer";
   };
 }
diff --git a/pkgs/applications/networking/lieer/default.nix b/pkgs/applications/networking/lieer/default.nix
index 26ecf043a4d53..7ce2d07ce7dd3 100644
--- a/pkgs/applications/networking/lieer/default.nix
+++ b/pkgs/applications/networking/lieer/default.nix
@@ -42,5 +42,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://lieer.gaute.vetsj.com/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ flokli ];
+    mainProgram = "gmi";
   };
 }
diff --git a/pkgs/applications/networking/linssid/default.nix b/pkgs/applications/networking/linssid/default.nix
index 72128a5ef95c4..000354d1e5c9a 100644
--- a/pkgs/applications/networking/linssid/default.nix
+++ b/pkgs/applications/networking/linssid/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "linssid";
   };
 }
diff --git a/pkgs/applications/networking/listadmin/default.nix b/pkgs/applications/networking/listadmin/default.nix
index a59f65995e2e3..6a4a2927d3ef3 100644
--- a/pkgs/applications/networking/listadmin/default.nix
+++ b/pkgs/applications/networking/listadmin/default.nix
@@ -44,5 +44,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.publicDomain;
     platforms = platforms.unix;
     maintainers = with maintainers; [ nomeata ];
+    mainProgram = "listadmin";
   };
 }
diff --git a/pkgs/applications/networking/lls/default.nix b/pkgs/applications/networking/lls/default.nix
index 5c882c1da80e3..3d4d70597e69c 100644
--- a/pkgs/applications/networking/lls/default.nix
+++ b/pkgs/applications/networking/lls/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = [ maintainers.k900 ];
     platforms = platforms.linux;
     homepage = "https://github.com/jcaesar/lls";
+    mainProgram = "lls";
   };
 }
diff --git a/pkgs/applications/networking/localproxy/default.nix b/pkgs/applications/networking/localproxy/default.nix
index 719b730817b41..9144b67c9abb3 100644
--- a/pkgs/applications/networking/localproxy/default.nix
+++ b/pkgs/applications/networking/localproxy/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.asl20;
     maintainers = with maintainers; [ spalf ];
     platforms = platforms.unix;
+    mainProgram = "localproxy";
   };
 })
diff --git a/pkgs/applications/networking/mhost/default.nix b/pkgs/applications/networking/mhost/default.nix
index beed066e65e98..ac02ca8f64c17 100644
--- a/pkgs/applications/networking/mhost/default.nix
+++ b/pkgs/applications/networking/mhost/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lukaspustina/mhost";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.mgttlinger ];
+    mainProgram = "mhost";
   };
 }
diff --git a/pkgs/applications/networking/modem-manager-gui/default.nix b/pkgs/applications/networking/modem-manager-gui/default.nix
index 5702ff414f336..21748a86e81b1 100644
--- a/pkgs/applications/networking/modem-manager-gui/default.nix
+++ b/pkgs/applications/networking/modem-manager-gui/default.nix
@@ -81,5 +81,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ ahuzik galagora ];
     platforms = platforms.linux;
+    mainProgram = "modem-manager-gui";
   };
 }
diff --git a/pkgs/applications/networking/n8n/default.nix b/pkgs/applications/networking/n8n/default.nix
index 1b2caaf5bb065..20775c4ed4afe 100644
--- a/pkgs/applications/networking/n8n/default.nix
+++ b/pkgs/applications/networking/n8n/default.nix
@@ -41,5 +41,6 @@ nodePackages.n8n.override {
     description = "Free and source-available fair-code licensed workflow automation tool. Easily automate tasks across different services.";
     maintainers = with maintainers; [ freezeboy k900 ];
     license = licenses.sustainableUse;
+    mainProgram = "n8n";
   };
 }
diff --git a/pkgs/applications/networking/nali/default.nix b/pkgs/applications/networking/nali/default.nix
index 8fc822416bf2d..80087822bf858 100644
--- a/pkgs/applications/networking/nali/default.nix
+++ b/pkgs/applications/networking/nali/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/zu1k/nali";
     license = licenses.mit;
     maintainers = with maintainers; [ diffumist xyenon ];
+    mainProgram = "nali";
   };
 }
diff --git a/pkgs/applications/networking/ncgopher/default.nix b/pkgs/applications/networking/ncgopher/default.nix
index bebb16740840c..5bc7da276caf3 100644
--- a/pkgs/applications/networking/ncgopher/default.nix
+++ b/pkgs/applications/networking/ncgopher/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "ncgopher";
   };
 }
diff --git a/pkgs/applications/networking/ndppd/default.nix b/pkgs/applications/networking/ndppd/default.nix
index 290a6519f85a4..b52f312e03fe3 100644
--- a/pkgs/applications/networking/ndppd/default.nix
+++ b/pkgs/applications/networking/ndppd/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ fadenb ];
+    mainProgram = "ndppd";
   };
 }
diff --git a/pkgs/applications/networking/netmaker/default.nix b/pkgs/applications/networking/netmaker/default.nix
index ffab340d023fa..086c9325f565e 100644
--- a/pkgs/applications/networking/netmaker/default.nix
+++ b/pkgs/applications/networking/netmaker/default.nix
@@ -40,5 +40,6 @@ buildGoModule rec {
     changelog = "https://github.com/gravitl/netmaker/-/releases/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom qjoly ];
+    mainProgram = "netmaker";
   };
 }
diff --git a/pkgs/applications/networking/nextdns/default.nix b/pkgs/applications/networking/nextdns/default.nix
index 91d4c8dccbacf..094fa8007d7b8 100644
--- a/pkgs/applications/networking/nextdns/default.nix
+++ b/pkgs/applications/networking/nextdns/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://nextdns.io";
     license = licenses.mit;
     maintainers = with maintainers; [ pnelson ];
+    mainProgram = "nextdns";
   };
 }
diff --git a/pkgs/applications/networking/nntp-proxy/default.nix b/pkgs/applications/networking/nntp-proxy/default.nix
index a3a136a32695c..05c8263f436bb 100644
--- a/pkgs/applications/networking/nntp-proxy/default.nix
+++ b/pkgs/applications/networking/nntp-proxy/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.fadenb ];
     platforms = lib.platforms.all;
+    mainProgram = "nntp-proxy";
   };
 }
diff --git a/pkgs/applications/networking/novnc/default.nix b/pkgs/applications/networking/novnc/default.nix
index 17d32b84a78f6..c0fa9afdb2430 100644
--- a/pkgs/applications/networking/novnc/default.nix
+++ b/pkgs/applications/networking/novnc/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     homepage = "https://novnc.com";
     license = with licenses; [ mpl20 ofl bsd3 bsd2 mit ];
     maintainers = with maintainers; [ neverbehave ];
+    mainProgram = "novnc";
   };
 }
diff --git a/pkgs/applications/networking/offrss/default.nix b/pkgs/applications/networking/offrss/default.nix
index 773ec444edf92..8d7889663fff7 100644
--- a/pkgs/applications/networking/offrss/default.nix
+++ b/pkgs/applications/networking/offrss/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ viric ];
     platforms = lib.platforms.linux;
+    mainProgram = "offrss";
   };
 }
diff --git a/pkgs/applications/networking/omping/default.nix b/pkgs/applications/networking/omping/default.nix
index 2089408d09bab..808df455a4f2e 100644
--- a/pkgs/applications/networking/omping/default.nix
+++ b/pkgs/applications/networking/omping/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.unix;
     inherit (src.meta) homepage;
+    mainProgram = "omping";
   };
 }
diff --git a/pkgs/applications/networking/onionshare/default.nix b/pkgs/applications/networking/onionshare/default.nix
index d1aef51808377..6cb15ad685d95 100644
--- a/pkgs/applications/networking/onionshare/default.nix
+++ b/pkgs/applications/networking/onionshare/default.nix
@@ -58,6 +58,7 @@ let
 
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ lourkeur ];
+    mainProgram = "onionshare-cli";
   };
 
   # TODO: package meek https://support.torproject.org/glossary/meek/
diff --git a/pkgs/applications/networking/opsdroid/default.nix b/pkgs/applications/networking/opsdroid/default.nix
index d4f2a9b26a185..45569fefb28fa 100644
--- a/pkgs/applications/networking/opsdroid/default.nix
+++ b/pkgs/applications/networking/opsdroid/default.nix
@@ -32,5 +32,6 @@ python3Packages.buildPythonPackage rec {
     maintainers = with maintainers; [ globin willibutz ];
     license = licenses.asl20;
     platforms = platforms.unix;
+    mainProgram = "opsdroid";
   };
 }
diff --git a/pkgs/applications/networking/pcloud/default.nix b/pkgs/applications/networking/pcloud/default.nix
index e0249f813a74c..09662f4eb56b3 100644
--- a/pkgs/applications/networking/pcloud/default.nix
+++ b/pkgs/applications/networking/pcloud/default.nix
@@ -121,5 +121,6 @@ stdenv.mkDerivation {
     license = licenses.unfree;
     maintainers = with maintainers; [ patryk27 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "pcloud";
   };
 }
diff --git a/pkgs/applications/networking/protocol/default.nix b/pkgs/applications/networking/protocol/default.nix
index 535cc3aa3171d..15067e2d9ab2e 100644
--- a/pkgs/applications/networking/protocol/default.nix
+++ b/pkgs/applications/networking/protocol/default.nix
@@ -25,5 +25,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/luismartingarcia/protocol";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ teto ];
+    mainProgram = "protocol";
   };
 }
diff --git a/pkgs/applications/networking/protonmail-bridge/default.nix b/pkgs/applications/networking/protonmail-bridge/default.nix
index 7d53cbbcb8dac..85922fea6551e 100644
--- a/pkgs/applications/networking/protonmail-bridge/default.nix
+++ b/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -52,5 +52,6 @@ buildGoModule rec {
 
       To work, use secret-service freedesktop.org API (e.g. Gnome keyring) or pass.
     '';
+    mainProgram = "protonmail-bridge";
   };
 }
diff --git a/pkgs/applications/networking/qv2ray/default.nix b/pkgs/applications/networking/qv2ray/default.nix
index 50143013b88f0..ee2e7ddf3f08e 100644
--- a/pkgs/applications/networking/qv2ray/default.nix
+++ b/pkgs/applications/networking/qv2ray/default.nix
@@ -79,5 +79,6 @@ mkDerivation rec {
     platforms = platforms.all;
     # never built on aarch64-darwin, x86_64-darwin since update to unstable-2022-09-25
     broken = stdenv.isDarwin;
+    mainProgram = "qv2ray";
   };
 }
diff --git a/pkgs/applications/networking/r53-ddns/default.nix b/pkgs/applications/networking/r53-ddns/default.nix
index 6761741ce9cec..8db9ddacef726 100644
--- a/pkgs/applications/networking/r53-ddns/default.nix
+++ b/pkgs/applications/networking/r53-ddns/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/fleaz/r53-ddns";
     description = "A DIY DynDNS tool based on Route53";
     maintainers = with maintainers; [ fleaz ];
+    mainProgram = "r53-ddns";
   };
 }
diff --git a/pkgs/applications/networking/resilio-sync/default.nix b/pkgs/applications/networking/resilio-sync/default.nix
index 16d5f0952ebc8..5bf146995f128 100644
--- a/pkgs/applications/networking/resilio-sync/default.nix
+++ b/pkgs/applications/networking/resilio-sync/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license     = licenses.unfreeRedistributable;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ domenkozar thoughtpolice cwoac jwoudenberg ];
+    mainProgram = "rslsync";
   };
 }
diff --git a/pkgs/applications/networking/rofi-vpn/default.nix b/pkgs/applications/networking/rofi-vpn/default.nix
index 8ff83db294ff4..d900df082076d 100644
--- a/pkgs/applications/networking/rofi-vpn/default.nix
+++ b/pkgs/applications/networking/rofi-vpn/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ DamienCassou ];
     platforms = platforms.linux;
+    mainProgram = "rofi-vpn";
   };
 }
diff --git a/pkgs/applications/networking/rymdport/default.nix b/pkgs/applications/networking/rymdport/default.nix
index b9f4838f58bf0..cb7d99b047996 100644
--- a/pkgs/applications/networking/rymdport/default.nix
+++ b/pkgs/applications/networking/rymdport/default.nix
@@ -48,5 +48,6 @@ buildGoModule rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda ];
     platforms = lib.platforms.linux;
+    mainProgram = "rymdport";
   };
 }
diff --git a/pkgs/applications/networking/scaleft/default.nix b/pkgs/applications/networking/scaleft/default.nix
index d31d56702ace2..bcfde9f1a0057 100644
--- a/pkgs/applications/networking/scaleft/default.nix
+++ b/pkgs/applications/networking/scaleft/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ jloyet ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "sft";
   };
 }
diff --git a/pkgs/applications/networking/seafile-client/default.nix b/pkgs/applications/networking/seafile-client/default.nix
index c7d4508c060cc..4da47eddd61bb 100644
--- a/pkgs/applications/networking/seafile-client/default.nix
+++ b/pkgs/applications/networking/seafile-client/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ schmittlauch greizgh ];
+    mainProgram = "seafile-applet";
   };
 }
diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix
index e87ea1bbe5149..bc722b91fa029 100644
--- a/pkgs/applications/networking/shellhub-agent/default.nix
+++ b/pkgs/applications/networking/shellhub-agent/default.nix
@@ -56,5 +56,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ otavio ];
     platforms = platforms.linux;
+    mainProgram = "agent";
   };
 }
diff --git a/pkgs/applications/networking/sieve-connect/default.nix b/pkgs/applications/networking/sieve-connect/default.nix
index 46fc2a7ae1701..a3f78b5d59518 100644
--- a/pkgs/applications/networking/sieve-connect/default.nix
+++ b/pkgs/applications/networking/sieve-connect/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ das_j ];
+    mainProgram = "sieve-connect";
   };
 }
diff --git a/pkgs/applications/networking/sniffnet/default.nix b/pkgs/applications/networking/sniffnet/default.nix
index afa496f5ab612..b3cb5316ec0c8 100644
--- a/pkgs/applications/networking/sniffnet/default.nix
+++ b/pkgs/applications/networking/sniffnet/default.nix
@@ -61,5 +61,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/gyulyvgc/sniffnet/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "sniffnet";
   };
 }
diff --git a/pkgs/applications/networking/sniproxy/default.nix b/pkgs/applications/networking/sniproxy/default.nix
index 8d2b619ab7189..778681063b616 100644
--- a/pkgs/applications/networking/sniproxy/default.nix
+++ b/pkgs/applications/networking/sniproxy/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ womfoo raitobezarius ];
     platforms = platforms.linux;
+    mainProgram = "sniproxy";
   };
 
 }
diff --git a/pkgs/applications/networking/soapui/default.nix b/pkgs/applications/networking/soapui/default.nix
index fc515590f37ae..df54826608b66 100644
--- a/pkgs/applications/networking/soapui/default.nix
+++ b/pkgs/applications/networking/soapui/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = "SoapUI End User License Agreement";
     maintainers = with maintainers; [ gerschtli ];
     platforms = platforms.all;
+    mainProgram = "soapui";
   };
 }
diff --git a/pkgs/applications/networking/spideroak/default.nix b/pkgs/applications/networking/spideroak/default.nix
index 0bfc62ccfbb2b..c1531a25b5480 100644
--- a/pkgs/applications/networking/spideroak/default.nix
+++ b/pkgs/applications/networking/spideroak/default.nix
@@ -57,5 +57,6 @@ in stdenv.mkDerivation {
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ amorsillo ];
     platforms = lib.platforms.linux;
+    mainProgram = "spideroak";
   };
 }
diff --git a/pkgs/applications/networking/station/default.nix b/pkgs/applications/networking/station/default.nix
index 9160568ee4830..43392ae28e483 100644
--- a/pkgs/applications/networking/station/default.nix
+++ b/pkgs/applications/networking/station/default.nix
@@ -37,5 +37,6 @@ in appimageTools.wrapType2 rec {
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ ];
+    mainProgram = "station";
   };
 }
diff --git a/pkgs/applications/networking/stc-cli/default.nix b/pkgs/applications/networking/stc-cli/default.nix
index bae71f82cb4eb..bfc2d1e84d290 100644
--- a/pkgs/applications/networking/stc-cli/default.nix
+++ b/pkgs/applications/networking/stc-cli/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     changelog = "https://github.com/tenox7/stc/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = [ maintainers.ivankovnatsky ];
+    mainProgram = "stc";
   };
 }
diff --git a/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix b/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix
index 3ceb5c0e1afd2..77ad4dad40d09 100644
--- a/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix
+++ b/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix
@@ -39,5 +39,6 @@ qt5.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ kalbasit ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "SynologyCloudSyncDecryptionTool";
   };
 }
diff --git a/pkgs/applications/networking/synology-drive-client/default.nix b/pkgs/applications/networking/synology-drive-client/default.nix
index 34d33e326ab4d..7d3efef57de9d 100644
--- a/pkgs/applications/networking/synology-drive-client/default.nix
+++ b/pkgs/applications/networking/synology-drive-client/default.nix
@@ -11,6 +11,7 @@ let
     license = licenses.unfree;
     maintainers = with maintainers; [ jcouyang MoritzBoehme ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    mainProgram = "synology-drive";
   };
   passthru.updateScript = writeScript "update-synology-drive-client" ''
     #!/usr/bin/env nix-shell
diff --git a/pkgs/applications/networking/tcping-go/default.nix b/pkgs/applications/networking/tcping-go/default.nix
index 1502f8a16aef7..950c648337ad9 100644
--- a/pkgs/applications/networking/tcping-go/default.nix
+++ b/pkgs/applications/networking/tcping-go/default.nix
@@ -18,5 +18,6 @@ buildGoModule {
     homepage = "https://github.com/cloverstd/tcping";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
+    mainProgram = "tcping";
   };
 }
diff --git a/pkgs/applications/networking/tcpkali/default.nix b/pkgs/applications/networking/tcpkali/default.nix
index fa0236dcd8c20..805a70f88e741 100644
--- a/pkgs/applications/networking/tcpkali/default.nix
+++ b/pkgs/applications/networking/tcpkali/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     inherit (src.meta) homepage;
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ ethercrow ];
+    mainProgram = "tcpkali";
   };
 }
diff --git a/pkgs/applications/networking/termius/default.nix b/pkgs/applications/networking/termius/default.nix
index f2d8b8d685414..deaa49e4f66d5 100644
--- a/pkgs/applications/networking/termius/default.nix
+++ b/pkgs/applications/networking/termius/default.nix
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ Br1ght0ne th0rgal ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "termius-app";
   };
 }
diff --git a/pkgs/applications/networking/testssl/default.nix b/pkgs/applications/networking/testssl/default.nix
index b5f8285087a7b..a8e60b9b9439b 100644
--- a/pkgs/applications/networking/testssl/default.nix
+++ b/pkgs/applications/networking/testssl/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     homepage = "https://testssl.sh/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ etu ];
+    mainProgram = "testssl.sh";
   };
 }
diff --git a/pkgs/applications/networking/tmpmail/default.nix b/pkgs/applications/networking/tmpmail/default.nix
index d29d5816f449d..8c72fdd435e59 100644
--- a/pkgs/applications/networking/tmpmail/default.nix
+++ b/pkgs/applications/networking/tmpmail/default.nix
@@ -29,5 +29,6 @@ stdenvNoCC.mkDerivation rec {
     description = "A temporary email right from your terminal written in POSIX sh ";
     license = licenses.mit;
     maintainers = [ maintainers.lom ];
+    mainProgram = "tmpmail";
   };
 }
diff --git a/pkgs/applications/networking/trayscale/default.nix b/pkgs/applications/networking/trayscale/default.nix
index ad4c40cd4ad22..023b72b88837e 100644
--- a/pkgs/applications/networking/trayscale/default.nix
+++ b/pkgs/applications/networking/trayscale/default.nix
@@ -50,5 +50,6 @@ buildGoModule rec {
     homepage = "https://github.com/DeedleFake/trayscale";
     license = licenses.mit;
     maintainers = with maintainers; [ k900 ];
+    mainProgram = "trayscale";
   };
 }
diff --git a/pkgs/applications/networking/twtxt/default.nix b/pkgs/applications/networking/twtxt/default.nix
index 7d703d2db4ff5..eb216b1df8612 100644
--- a/pkgs/applications/networking/twtxt/default.nix
+++ b/pkgs/applications/networking/twtxt/default.nix
@@ -33,5 +33,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/buckket/twtxt";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "twtxt";
   };
 }
diff --git a/pkgs/applications/networking/umurmur/default.nix b/pkgs/applications/networking/umurmur/default.nix
index 9af0fb7b73ca2..5af5c568e4636 100644
--- a/pkgs/applications/networking/umurmur/default.nix
+++ b/pkgs/applications/networking/umurmur/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     # never built on aarch64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin && stdenv.isAarch64;
+    mainProgram = "umurmurd";
   };
 }
diff --git a/pkgs/applications/networking/upnp-router-control/default.nix b/pkgs/applications/networking/upnp-router-control/default.nix
index d9ee62affa3b8..928c7a69fd8c6 100644
--- a/pkgs/applications/networking/upnp-router-control/default.nix
+++ b/pkgs/applications/networking/upnp-router-control/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
+    mainProgram = "upnp-router-control";
   };
 }
diff --git a/pkgs/applications/networking/versus/default.nix b/pkgs/applications/networking/versus/default.nix
index 57b14ed54c72f..4e2ca164fda11 100644
--- a/pkgs/applications/networking/versus/default.nix
+++ b/pkgs/applications/networking/versus/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/INFURA/versus";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
+    mainProgram = "versus";
   };
 }
diff --git a/pkgs/applications/networking/warp/default.nix b/pkgs/applications/networking/warp/default.nix
index 2a4591ec3e3f4..b39b102c2f2f4 100644
--- a/pkgs/applications/networking/warp/default.nix
+++ b/pkgs/applications/networking/warp/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ dotlambda foo-dogsquared ];
     platforms = lib.platforms.all;
+    mainProgram = "warp";
   };
 }
diff --git a/pkgs/applications/networking/wayback_machine_downloader/default.nix b/pkgs/applications/networking/wayback_machine_downloader/default.nix
index 49471ebf7e39f..4b8c5096cc5d3 100644
--- a/pkgs/applications/networking/wayback_machine_downloader/default.nix
+++ b/pkgs/applications/networking/wayback_machine_downloader/default.nix
@@ -12,5 +12,6 @@ bundlerApp {
     license = licenses.mit;
     maintainers = [ maintainers.manveru ];
     platforms = platforms.all;
+    mainProgram = "wayback_machine_downloader";
   };
 }
diff --git a/pkgs/applications/networking/websocketd/default.nix b/pkgs/applications/networking/websocketd/default.nix
index 212850dcc7f52..92a65320b8c56 100644
--- a/pkgs/applications/networking/websocketd/default.nix
+++ b/pkgs/applications/networking/websocketd/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "http://websocketd.com/";
     maintainers = [ maintainers.bjornfor ];
     license = licenses.bsd2;
+    mainProgram = "websocketd";
   };
 }
diff --git a/pkgs/applications/networking/wg-bond/default.nix b/pkgs/applications/networking/wg-bond/default.nix
index 0c8c629208af8..f3dec5e6ab07e 100644
--- a/pkgs/applications/networking/wg-bond/default.nix
+++ b/pkgs/applications/networking/wg-bond/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://gitlab.com/cab404/wg-bond/-/releases#v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ cab404 ];
+    mainProgram = "wg-bond";
   };
 }
diff --git a/pkgs/applications/networking/wgcf/default.nix b/pkgs/applications/networking/wgcf/default.nix
index 9b6db44f437e8..a975f1c26cefc 100644
--- a/pkgs/applications/networking/wgcf/default.nix
+++ b/pkgs/applications/networking/wgcf/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/ViRb3/wgcf";
     license = licenses.mit;
     maintainers = with maintainers; [ yureien ];
+    mainProgram = "wgcf";
   };
 }
diff --git a/pkgs/applications/networking/wgnord/default.nix b/pkgs/applications/networking/wgnord/default.nix
index a85c318c65d77..0e73d07616a7e 100644
--- a/pkgs/applications/networking/wgnord/default.nix
+++ b/pkgs/applications/networking/wgnord/default.nix
@@ -61,5 +61,6 @@ resholve.mkDerivation rec {
     changelog = "https://github.com/phirecc/wgnord/releases/tag/v${version}";
     maintainers = with lib.maintainers; [ urandom ];
     license = licenses.mit;
+    mainProgram = "wgnord";
   };
 }
diff --git a/pkgs/applications/networking/yaup/default.nix b/pkgs/applications/networking/yaup/default.nix
index 5894e758e9d96..a5c49ece00d1c 100644
--- a/pkgs/applications/networking/yaup/default.nix
+++ b/pkgs/applications/networking/yaup/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     # ld: unknown option: --export-dynamic
     broken = stdenv.isDarwin;
+    mainProgram = "yaup";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/contour/default.nix b/pkgs/applications/terminal-emulators/contour/default.nix
index 1a036106c6dfc..a1692dd255a2c 100644
--- a/pkgs/applications/terminal-emulators/contour/default.nix
+++ b/pkgs/applications/terminal-emulators/contour/default.nix
@@ -105,5 +105,6 @@ mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ moni ];
     platforms = platforms.unix;
+    mainProgram = "contour";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/cool-retro-term/default.nix b/pkgs/applications/terminal-emulators/cool-retro-term/default.nix
index 528c82fe81993..6630cbaa1258f 100644
--- a/pkgs/applications/terminal-emulators/cool-retro-term/default.nix
+++ b/pkgs/applications/terminal-emulators/cool-retro-term/default.nix
@@ -57,5 +57,6 @@ mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     platforms = with lib.platforms; linux ++ darwin;
     maintainers = with lib.maintainers; [ ];
+    mainProgram = "cool-retro-term";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/darktile/default.nix b/pkgs/applications/terminal-emulators/darktile/default.nix
index 80d3d6187d1ad..fc2b470178f3b 100644
--- a/pkgs/applications/terminal-emulators/darktile/default.nix
+++ b/pkgs/applications/terminal-emulators/darktile/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/liamg/darktile/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ flexagoon ];
+    mainProgram = "darktile";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/dterm/default.nix b/pkgs/applications/terminal-emulators/dterm/default.nix
index 69b1f67d629a9..b9ab08e9bbbc3 100644
--- a/pkgs/applications/terminal-emulators/dterm/default.nix
+++ b/pkgs/applications/terminal-emulators/dterm/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ auchter ];
     platforms = platforms.unix;
+    mainProgram = "dterm";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/gnome-console/default.nix b/pkgs/applications/terminal-emulators/gnome-console/default.nix
index 3b55aafa0a4f9..2141effcf015f 100644
--- a/pkgs/applications/terminal-emulators/gnome-console/default.nix
+++ b/pkgs/applications/terminal-emulators/gnome-console/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members ++ (with maintainers; [ zhaofengli ]);
     platforms = platforms.unix;
+    mainProgram = "kgx";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/hyper/default.nix b/pkgs/applications/terminal-emulators/hyper/default.nix
index 6873558830be1..0c4d0b9d99a20 100644
--- a/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/pkgs/applications/terminal-emulators/hyper/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.mit;
     platforms   = [ "x86_64-linux" ];
+    mainProgram = "hyper";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/lxterminal/default.nix b/pkgs/applications/terminal-emulators/lxterminal/default.nix
index 877655ffbc070..90483efc89a51 100644
--- a/pkgs/applications/terminal-emulators/lxterminal/default.nix
+++ b/pkgs/applications/terminal-emulators/lxterminal/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.pbsds ];
     platforms = lib.platforms.linux;
+    mainProgram = "lxterminal";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/microcom/default.nix b/pkgs/applications/terminal-emulators/microcom/default.nix
index 890a70ac30b7c..ef9f09a606fa3 100644
--- a/pkgs/applications/terminal-emulators/microcom/default.nix
+++ b/pkgs/applications/terminal-emulators/microcom/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ emantor ];
     platforms = with platforms; linux;
+    mainProgram = "microcom";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/sakura/default.nix b/pkgs/applications/terminal-emulators/sakura/default.nix
index 4d1ab91f83afd..bbf435fd4ff73 100644
--- a/pkgs/applications/terminal-emulators/sakura/default.nix
+++ b/pkgs/applications/terminal-emulators/sakura/default.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ astsmtl codyopel AndersonTorres ];
     platforms = lib.platforms.linux;
+    mainProgram = "sakura";
  };
 })
diff --git a/pkgs/applications/terminal-emulators/st/default.nix b/pkgs/applications/terminal-emulators/st/default.nix
index 9856d1428f971..86b0657e0c039 100644
--- a/pkgs/applications/terminal-emulators/st/default.nix
+++ b/pkgs/applications/terminal-emulators/st/default.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.mit;
     maintainers = with maintainers; [ andsild ];
     platforms = platforms.unix;
+    mainProgram = "st";
   };
 })
diff --git a/pkgs/applications/terminal-emulators/stupidterm/default.nix b/pkgs/applications/terminal-emulators/stupidterm/default.nix
index 279af55254e0b..f10d91229376b 100644
--- a/pkgs/applications/terminal-emulators/stupidterm/default.nix
+++ b/pkgs/applications/terminal-emulators/stupidterm/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation {
     license = licenses.lgpl3Plus;
     maintainers = [ maintainers.etu ];
     platforms = platforms.linux;
+    mainProgram = "stupidterm";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/termite/default.nix b/pkgs/applications/terminal-emulators/termite/default.nix
index 2b05ecdc72217..ab854a2f99069 100644
--- a/pkgs/applications/terminal-emulators/termite/default.nix
+++ b/pkgs/applications/terminal-emulators/termite/default.nix
@@ -76,5 +76,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://github.com/thestinger/termite/";
     maintainers = with maintainers; [ koral ];
     platforms = platforms.all;
+    mainProgram = "termite";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/tilix/default.nix b/pkgs/applications/terminal-emulators/tilix/default.nix
index fb8d1b56d0863..65da21cbabc79 100644
--- a/pkgs/applications/terminal-emulators/tilix/default.nix
+++ b/pkgs/applications/terminal-emulators/tilix/default.nix
@@ -83,5 +83,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl20;
     maintainers = with maintainers; [ midchildan ];
     platforms = platforms.linux;
+    mainProgram = "tilix";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/tym/default.nix b/pkgs/applications/terminal-emulators/tym/default.nix
index d999bb5db2979..acfbbb48943d0 100644
--- a/pkgs/applications/terminal-emulators/tym/default.nix
+++ b/pkgs/applications/terminal-emulators/tym/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ wesleyjrz kashw2 ];
     platforms = platforms.linux;
+    mainProgram = "tym";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/xtermcontrol/default.nix b/pkgs/applications/terminal-emulators/xtermcontrol/default.nix
index ebc7657e8af3c..f0c7203fd9cee 100644
--- a/pkgs/applications/terminal-emulators/xtermcontrol/default.nix
+++ b/pkgs/applications/terminal-emulators/xtermcontrol/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.derchris ];
+    mainProgram = "xtermcontrol";
   };
 }
diff --git a/pkgs/applications/version-management/bcompare/default.nix b/pkgs/applications/version-management/bcompare/default.nix
index 9b7a4df091de3..33b4cb0f90b54 100644
--- a/pkgs/applications/version-management/bcompare/default.nix
+++ b/pkgs/applications/version-management/bcompare/default.nix
@@ -90,6 +90,7 @@ let
     license = licenses.unfree;
     maintainers = with maintainers; [ ktor arkivm ];
     platforms = builtins.attrNames srcs;
+    mainProgram = "bcompare";
   };
 in
 if stdenv.isDarwin
diff --git a/pkgs/applications/version-management/bit/default.nix b/pkgs/applications/version-management/bit/default.nix
index 23d676e54eb5b..a1242c43a9ca5 100644
--- a/pkgs/applications/version-management/bit/default.nix
+++ b/pkgs/applications/version-management/bit/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/chriswalz/bit";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "bit";
   };
 }
diff --git a/pkgs/applications/version-management/bumpver/default.nix b/pkgs/applications/version-management/bumpver/default.nix
index 3a1a51f83f8ea..d540d42110736 100644
--- a/pkgs/applications/version-management/bumpver/default.nix
+++ b/pkgs/applications/version-management/bumpver/default.nix
@@ -30,5 +30,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://pypi.org/project/bumpver/";
     license = licenses.mit;
     maintainers = with maintainers; [ kfollesdal ];
+    mainProgram = "bumpver";
   };
 }
diff --git a/pkgs/applications/version-management/codeberg-cli/default.nix b/pkgs/applications/version-management/codeberg-cli/default.nix
index da16be94c33b7..ae63280f7ee7c 100644
--- a/pkgs/applications/version-management/codeberg-cli/default.nix
+++ b/pkgs/applications/version-management/codeberg-cli/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://codeberg.org/RobWalt/codeberg-cli";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ robwalt ];
+    mainProgram = "berg";
   };
 }
diff --git a/pkgs/applications/version-management/conform/default.nix b/pkgs/applications/version-management/conform/default.nix
index 4800a14b31eef..7ee825f566ec7 100644
--- a/pkgs/applications/version-management/conform/default.nix
+++ b/pkgs/applications/version-management/conform/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/siderolabs/conform";
     license = licenses.mpl20;
     maintainers = with maintainers; [ jmgilman jk ];
+    mainProgram = "conform";
   };
 }
diff --git a/pkgs/applications/version-management/cvsps/default.nix b/pkgs/applications/version-management/cvsps/default.nix
index 7423726ac3bad..ebee69ebb3cdd 100644
--- a/pkgs/applications/version-management/cvsps/default.nix
+++ b/pkgs/applications/version-management/cvsps/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.cobite.com/cvsps/";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.unix;
+    mainProgram = "cvsps";
   };
 }
diff --git a/pkgs/applications/version-management/danger-gitlab/default.nix b/pkgs/applications/version-management/danger-gitlab/default.nix
index e994739008d39..654ad2c82d560 100644
--- a/pkgs/applications/version-management/danger-gitlab/default.nix
+++ b/pkgs/applications/version-management/danger-gitlab/default.nix
@@ -10,5 +10,6 @@ bundlerApp {
     homepage = "https://github.com/danger/danger-gitlab-gem";
     license = licenses.mit;
     maintainers = teams.serokell.members;
+    mainProgram = "danger";
   };
 }
diff --git a/pkgs/applications/version-management/darcs-to-git/default.nix b/pkgs/applications/version-management/darcs-to-git/default.nix
index 895e4610f4fc0..14348921054b2 100644
--- a/pkgs/applications/version-management/darcs-to-git/default.nix
+++ b/pkgs/applications/version-management/darcs-to-git/default.nix
@@ -77,5 +77,6 @@ stdenv.mkDerivation {
     homepage = "http://www.sanityinc.com/articles/converting-darcs-repositories-to-git";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
+    mainProgram = "darcs-to-git";
   };
 }
diff --git a/pkgs/applications/version-management/deepgit/default.nix b/pkgs/applications/version-management/deepgit/default.nix
index d9742a6a8f54e..c430a02b24c68 100644
--- a/pkgs/applications/version-management/deepgit/default.nix
+++ b/pkgs/applications/version-management/deepgit/default.nix
@@ -82,5 +82,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ urandom ];
     platforms = platforms.linux;
+    mainProgram = "deepgit";
   };
 }
diff --git a/pkgs/applications/version-management/degit/default.nix b/pkgs/applications/version-management/degit/default.nix
index af586da3496ae..b126569c59912 100644
--- a/pkgs/applications/version-management/degit/default.nix
+++ b/pkgs/applications/version-management/degit/default.nix
@@ -22,5 +22,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/Rich-Harris/degit";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ kidonng ];
+    mainProgram = "degit";
   };
 }
diff --git a/pkgs/applications/version-management/diff-so-fancy/default.nix b/pkgs/applications/version-management/diff-so-fancy/default.nix
index 2cdae39897954..ef9b81f6d031b 100644
--- a/pkgs/applications/version-management/diff-so-fancy/default.nix
+++ b/pkgs/applications/version-management/diff-so-fancy/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
       diff-highlight to upgrade your diffs' appearances.
     '';
     maintainers = with maintainers; [ fpletz ma27 ];
+    mainProgram = "diff-so-fancy";
   };
 }
diff --git a/pkgs/applications/version-management/fnc/default.nix b/pkgs/applications/version-management/fnc/default.nix
index 0b4205eb60551..31a71d5b8ad7d 100644
--- a/pkgs/applications/version-management/fnc/default.nix
+++ b/pkgs/applications/version-management/fnc/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ abbe ];
+    mainProgram = "fnc";
   };
 }
diff --git a/pkgs/applications/version-management/fornalder/default.nix b/pkgs/applications/version-management/fornalder/default.nix
index 85f1ad6e6ba2f..7d012c83606a6 100644
--- a/pkgs/applications/version-management/fornalder/default.nix
+++ b/pkgs/applications/version-management/fornalder/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/hpjansson/fornalder";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ astro figsoda ];
+    mainProgram = "fornalder";
   };
 }
diff --git a/pkgs/applications/version-management/gex/default.nix b/pkgs/applications/version-management/gex/default.nix
index 7d6af92b7e79c..51a8839261af9 100644
--- a/pkgs/applications/version-management/gex/default.nix
+++ b/pkgs/applications/version-management/gex/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Piturnah/gex/releases/tag/${src.rev}";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ azd325 evanrichter piturnah ];
+    mainProgram = "gex";
   };
 }
diff --git a/pkgs/applications/version-management/gfold/default.nix b/pkgs/applications/version-management/gfold/default.nix
index cf254293987db..41aab380d5554 100644
--- a/pkgs/applications/version-management/gfold/default.nix
+++ b/pkgs/applications/version-management/gfold/default.nix
@@ -41,5 +41,6 @@ rustPlatform.buildRustPackage {
     license = licenses.asl20;
     maintainers = [ maintainers.shanesveller ];
     platforms = platforms.unix;
+    mainProgram = "gfold";
   };
 }
diff --git a/pkgs/applications/version-management/ghorg/default.nix b/pkgs/applications/version-management/ghorg/default.nix
index ac534ff573a69..f76a0f77e54f2 100644
--- a/pkgs/applications/version-management/ghorg/default.nix
+++ b/pkgs/applications/version-management/ghorg/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     homepage = "https://github.com/gabrie30/ghorg";
     license = licenses.asl20;
     maintainers = with maintainers; [ vidbina ];
+    mainProgram = "ghorg";
   };
 }
diff --git a/pkgs/applications/version-management/ghq/default.nix b/pkgs/applications/version-management/ghq/default.nix
index 80704e49a208a..17ac4a3b08949 100644
--- a/pkgs/applications/version-management/ghq/default.nix
+++ b/pkgs/applications/version-management/ghq/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://github.com/x-motemen/ghq";
     maintainers = with lib.maintainers; [ sigma ];
     license = lib.licenses.mit;
+    mainProgram = "ghq";
   };
 }
diff --git a/pkgs/applications/version-management/ghr/default.nix b/pkgs/applications/version-management/ghr/default.nix
index 7c786bb0b6b1c..f7e6cadac0d31 100644
--- a/pkgs/applications/version-management/ghr/default.nix
+++ b/pkgs/applications/version-management/ghr/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     description = "Upload multiple artifacts to GitHub Release in parallel";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "ghr";
   };
 }
diff --git a/pkgs/applications/version-management/git-absorb/default.nix b/pkgs/applications/version-management/git-absorb/default.nix
index 39e834168c32d..b0d00c912a783 100644
--- a/pkgs/applications/version-management/git-absorb/default.nix
+++ b/pkgs/applications/version-management/git-absorb/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     description = "git commit --fixup, but automatic";
     license = [ licenses.bsd3 ];
     maintainers = [ maintainers.marsam ];
+    mainProgram = "git-absorb";
   };
 }
diff --git a/pkgs/applications/version-management/git-annex-remote-dbx/default.nix b/pkgs/applications/version-management/git-annex-remote-dbx/default.nix
index addfd1f5041b1..ed48250114904 100644
--- a/pkgs/applications/version-management/git-annex-remote-dbx/default.nix
+++ b/pkgs/applications/version-management/git-annex-remote-dbx/default.nix
@@ -21,5 +21,6 @@ buildPythonApplication rec {
     description = "A git-annex special remote for Dropbox";
     homepage = "https://pypi.org/project/git-annex-remote-dbx/";
     license = licenses.mit;
+    mainProgram = "git-annex-remote-dbx";
   };
 }
diff --git a/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix b/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix
index 16c5b49406f67..10eec961104d8 100644
--- a/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix
+++ b/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix
@@ -39,5 +39,6 @@ buildPythonApplication rec {
     homepage = "https://pypi.org/project/git-annex-remote-googledrive/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ gravndal ];
+    mainProgram = "git-annex-remote-googledrive";
   };
 }
diff --git a/pkgs/applications/version-management/git-annex-remote-rclone/default.nix b/pkgs/applications/version-management/git-annex-remote-rclone/default.nix
index e05bed928889d..a38be753dfa9e 100644
--- a/pkgs/applications/version-management/git-annex-remote-rclone/default.nix
+++ b/pkgs/applications/version-management/git-annex-remote-rclone/default.nix
@@ -25,5 +25,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = [ maintainers.montag451 ];
+    mainProgram = "git-annex-remote-rclone";
   };
 }
diff --git a/pkgs/applications/version-management/git-appraise/default.nix b/pkgs/applications/version-management/git-appraise/default.nix
index 652c0be521171..cc77bf5aca65c 100644
--- a/pkgs/applications/version-management/git-appraise/default.nix
+++ b/pkgs/applications/version-management/git-appraise/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/google/git-appraise";
     license = licenses.asl20;
     maintainers = with maintainers; [ vdemeester ];
+    mainProgram = "git-appraise";
   };
 }
diff --git a/pkgs/applications/version-management/git-archive-all/default.nix b/pkgs/applications/version-management/git-archive-all/default.nix
index 22f16692ec8e9..f38e08ba8c8ee 100644
--- a/pkgs/applications/version-management/git-archive-all/default.nix
+++ b/pkgs/applications/version-management/git-archive-all/default.nix
@@ -58,5 +58,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/Kentzo/git-archive-all";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
+    mainProgram = "git-archive-all";
   };
 }
diff --git a/pkgs/applications/version-management/git-backdate/default.nix b/pkgs/applications/version-management/git-backdate/default.nix
index 0898ce089fc05..c63b2e6f3429c 100644
--- a/pkgs/applications/version-management/git-backdate/default.nix
+++ b/pkgs/applications/version-management/git-backdate/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/rixx/git-backdate";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ matthiasbeyer ];
+    mainProgram = "git-backdate";
   };
 }
 
diff --git a/pkgs/applications/version-management/git-backup/default.nix b/pkgs/applications/version-management/git-backup/default.nix
index dc21b61ed3e63..7f181fa006f81 100644
--- a/pkgs/applications/version-management/git-backup/default.nix
+++ b/pkgs/applications/version-management/git-backup/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     description = "A tool to help you backup your git repositories from services like GitHub";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "git-backup";
   };
 }
diff --git a/pkgs/applications/version-management/git-bars/default.nix b/pkgs/applications/version-management/git-bars/default.nix
index de396a0f7d01a..d9acc9d46fb9c 100644
--- a/pkgs/applications/version-management/git-bars/default.nix
+++ b/pkgs/applications/version-management/git-bars/default.nix
@@ -21,5 +21,6 @@ python3Packages.buildPythonApplication {
     description = "A utility for visualising git commit activity as bars on the terminal";
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
+    mainProgram = "git-bars";
   };
 }
diff --git a/pkgs/applications/version-management/git-big-picture/default.nix b/pkgs/applications/version-management/git-big-picture/default.nix
index 959031fad9f95..a3ac58c04be8e 100644
--- a/pkgs/applications/version-management/git-big-picture/default.nix
+++ b/pkgs/applications/version-management/git-big-picture/default.nix
@@ -22,5 +22,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/git-big-picture/git-big-picture";
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.nthorne ];
+    mainProgram = "git-big-picture";
   };
 }
diff --git a/pkgs/applications/version-management/git-bug-migration/default.nix b/pkgs/applications/version-management/git-bug-migration/default.nix
index 386f405eb225c..45e90c521f104 100644
--- a/pkgs/applications/version-management/git-bug-migration/default.nix
+++ b/pkgs/applications/version-management/git-bug-migration/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     homepage = "https://github.com/MichaelMure/git-bug-migration";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ DeeUnderscore ];
+    mainProgram = "git-bug-migration";
   };
 }
diff --git a/pkgs/applications/version-management/git-bug/default.nix b/pkgs/applications/version-management/git-bug/default.nix
index 5a2e9e5eeca63..588ef81ced00f 100644
--- a/pkgs/applications/version-management/git-bug/default.nix
+++ b/pkgs/applications/version-management/git-bug/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     homepage = "https://github.com/MichaelMure/git-bug";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ royneary DeeUnderscore ];
+    mainProgram = "git-bug";
   };
 }
diff --git a/pkgs/applications/version-management/git-chglog/default.nix b/pkgs/applications/version-management/git-chglog/default.nix
index ad0d64a6ef62a..eccc508fc257a 100644
--- a/pkgs/applications/version-management/git-chglog/default.nix
+++ b/pkgs/applications/version-management/git-chglog/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/git-chglog/git-chglog";
     license = licenses.mit;
     maintainers = with maintainers; [ ldenefle ];
+    mainProgram = "git-chglog";
   };
 }
diff --git a/pkgs/applications/version-management/git-codeowners/default.nix b/pkgs/applications/version-management/git-codeowners/default.nix
index 862461827eb17..90e0482675ae0 100644
--- a/pkgs/applications/version-management/git-codeowners/default.nix
+++ b/pkgs/applications/version-management/git-codeowners/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     description = "a git extension to work with CODEOWNERS files";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
+    mainProgram = "git-codeowners";
   };
 }
diff --git a/pkgs/applications/version-management/git-codereview/default.nix b/pkgs/applications/version-management/git-codereview/default.nix
index 4cd4c68673a72..b8ddc56e88c69 100644
--- a/pkgs/applications/version-management/git-codereview/default.nix
+++ b/pkgs/applications/version-management/git-codereview/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://golang.org/x/review/git-codereview";
     license = licenses.bsd3;
     maintainers = [ maintainers.edef ];
+    mainProgram = "git-codereview";
   };
 }
diff --git a/pkgs/applications/version-management/git-crecord/default.nix b/pkgs/applications/version-management/git-crecord/default.nix
index 1ad75e75b7bfd..5ea10a13c418f 100644
--- a/pkgs/applications/version-management/git-crecord/default.nix
+++ b/pkgs/applications/version-management/git-crecord/default.nix
@@ -21,5 +21,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Git subcommand to interactively select changes to commit or stage";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ onny ];
+    mainProgram = "git-crecord";
   };
 }
diff --git a/pkgs/applications/version-management/git-credential-1password/default.nix b/pkgs/applications/version-management/git-credential-1password/default.nix
index 65afd5f1c3870..832698718c3d6 100644
--- a/pkgs/applications/version-management/git-credential-1password/default.nix
+++ b/pkgs/applications/version-management/git-credential-1password/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     changelog = "https://github.com/develerik/git-credential-1password/releases/tag/v${version}";
     license = licenses.isc;
     maintainers = [ maintainers.ivankovnatsky ];
+    mainProgram = "git-credential-1password";
   };
 }
diff --git a/pkgs/applications/version-management/git-credential-keepassxc/default.nix b/pkgs/applications/version-management/git-credential-keepassxc/default.nix
index 20183c5fada39..2d3e511fcbfdf 100644
--- a/pkgs/applications/version-management/git-credential-keepassxc/default.nix
+++ b/pkgs/applications/version-management/git-credential-keepassxc/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Frederick888/git-credential-keepassxc";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fgaz ];
+    mainProgram = "git-credential-keepassxc";
   };
 }
diff --git a/pkgs/applications/version-management/git-credential-manager/default.nix b/pkgs/applications/version-management/git-credential-manager/default.nix
index 962bf18b366b6..54de6b1bcf3a4 100644
--- a/pkgs/applications/version-management/git-credential-manager/default.nix
+++ b/pkgs/applications/version-management/git-credential-manager/default.nix
@@ -63,5 +63,6 @@ buildDotnetModule rec {
       .NET can find `/usr/bin/codesign` to sign the compiled binary.
       This problem is common to all .NET packages on MacOS with Nix.
     '';
+    mainProgram = "git-credential-manager";
   };
 }
diff --git a/pkgs/applications/version-management/git-credential-oauth/default.nix b/pkgs/applications/version-management/git-credential-oauth/default.nix
index 9b46a0c501b17..d04faab2a65cb 100644
--- a/pkgs/applications/version-management/git-credential-oauth/default.nix
+++ b/pkgs/applications/version-management/git-credential-oauth/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     changelog = "https://github.com/hickford/git-credential-oauth/releases/tag/${src.rev}";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ shyim ];
+    mainProgram = "git-credential-oauth";
   };
 }
diff --git a/pkgs/applications/version-management/git-crypt/default.nix b/pkgs/applications/version-management/git-crypt/default.nix
index c2f4b4a270308..2355f48bcb779 100644
--- a/pkgs/applications/version-management/git-crypt/default.nix
+++ b/pkgs/applications/version-management/git-crypt/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ dochang ];
     platforms = platforms.unix;
+    mainProgram = "git-crypt";
   };
 
 }
diff --git a/pkgs/applications/version-management/git-dive/default.nix b/pkgs/applications/version-management/git-dive/default.nix
index a843b5243352f..983d7b3dd672c 100644
--- a/pkgs/applications/version-management/git-dive/default.nix
+++ b/pkgs/applications/version-management/git-dive/default.nix
@@ -62,5 +62,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/gitext-rs/git-dive/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "git-dive";
   };
 }
diff --git a/pkgs/applications/version-management/git-fame/default.nix b/pkgs/applications/version-management/git-fame/default.nix
index 4dc9c4f8453d6..d69988eca0125 100644
--- a/pkgs/applications/version-management/git-fame/default.nix
+++ b/pkgs/applications/version-management/git-fame/default.nix
@@ -17,5 +17,6 @@ bundlerEnv {
     license     = licenses.mit;
     maintainers = with maintainers; [ expipiplus1 nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "git-fame";
   };
 }
diff --git a/pkgs/applications/version-management/git-ftp/default.nix b/pkgs/applications/version-management/git-ftp/default.nix
index 57b5e3c463724..a3087249caddb 100644
--- a/pkgs/applications/version-management/git-ftp/default.nix
+++ b/pkgs/applications/version-management/git-ftp/default.nix
@@ -95,5 +95,6 @@ resholve.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ tweber ];
     platforms = platforms.unix;
+    mainProgram = "git-ftp";
   };
 }
diff --git a/pkgs/applications/version-management/git-gone/default.nix b/pkgs/applications/version-management/git-gone/default.nix
index dc80052fe62a3..559c81dd48c63 100644
--- a/pkgs/applications/version-management/git-gone/default.nix
+++ b/pkgs/applications/version-management/git-gone/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/swsnr/git-gone/raw/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "git-gone";
   };
 }
diff --git a/pkgs/applications/version-management/git-graph/default.nix b/pkgs/applications/version-management/git-graph/default.nix
index 93db500f0a267..016892892247d 100644
--- a/pkgs/applications/version-management/git-graph/default.nix
+++ b/pkgs/applications/version-management/git-graph/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     broken = stdenv.isDarwin;
     maintainers = with maintainers; [ cafkafk ];
+    mainProgram = "git-graph";
   };
 }
diff --git a/pkgs/applications/version-management/git-hub/default.nix b/pkgs/applications/version-management/git-hub/default.nix
index 279ae81b10108..907721f882b3b 100644
--- a/pkgs/applications/version-management/git-hub/default.nix
+++ b/pkgs/applications/version-management/git-hub/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3Plus;
     platforms = platforms.all;
+    mainProgram = "git-hub";
   };
 }
diff --git a/pkgs/applications/version-management/git-ignore/default.nix b/pkgs/applications/version-management/git-ignore/default.nix
index b6b8b6f941345..ca931ac2786dc 100644
--- a/pkgs/applications/version-management/git-ignore/default.nix
+++ b/pkgs/applications/version-management/git-ignore/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sondr3/git-ignore/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "git-ignore";
   };
 }
diff --git a/pkgs/applications/version-management/git-imerge/default.nix b/pkgs/applications/version-management/git-imerge/default.nix
index 592f61db8e088..66e141ef85ff6 100644
--- a/pkgs/applications/version-management/git-imerge/default.nix
+++ b/pkgs/applications/version-management/git-imerge/default.nix
@@ -20,5 +20,6 @@ buildPythonApplication rec {
     description = "Perform a merge between two branches incrementally";
     license = licenses.gpl2Plus;
     maintainers = [ ];
+    mainProgram = "git-imerge";
   };
 }
diff --git a/pkgs/applications/version-management/git-lfs/default.nix b/pkgs/applications/version-management/git-lfs/default.nix
index ed36f2092716a..54ce30907323e 100644
--- a/pkgs/applications/version-management/git-lfs/default.nix
+++ b/pkgs/applications/version-management/git-lfs/default.nix
@@ -55,5 +55,6 @@ buildGoModule rec {
     changelog = "https://github.com/git-lfs/git-lfs/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ twey marsam ];
+    mainProgram = "git-lfs";
   };
 }
diff --git a/pkgs/applications/version-management/git-machete/default.nix b/pkgs/applications/version-management/git-machete/default.nix
index 26cce4b25c9d7..a1f45d65db354 100644
--- a/pkgs/applications/version-management/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-machete/default.nix
@@ -55,5 +55,6 @@ buildPythonApplication rec {
     changelog = "https://github.com/VirtusLab/git-machete/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ blitz ];
+    mainProgram = "git-machete";
   };
 }
diff --git a/pkgs/applications/version-management/git-my/default.nix b/pkgs/applications/version-management/git-my/default.nix
index d8ce7a42bb591..2683af4022877 100644
--- a/pkgs/applications/version-management/git-my/default.nix
+++ b/pkgs/applications/version-management/git-my/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
     license = licenses.free;
     maintainers = with maintainers; [ bb010g ];
     platforms = platforms.all;
+    mainProgram = "git-my";
   };
 }
 
diff --git a/pkgs/applications/version-management/git-nomad/default.nix b/pkgs/applications/version-management/git-nomad/default.nix
index e1c55676da091..941b84b68fcc3 100644
--- a/pkgs/applications/version-management/git-nomad/default.nix
+++ b/pkgs/applications/version-management/git-nomad/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/rraval/git-nomad/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ rraval ];
+    mainProgram = "git-nomad";
   };
 }
diff --git a/pkgs/applications/version-management/git-open/default.nix b/pkgs/applications/version-management/git-open/default.nix
index 42e23dcd32e37..29975c5b68d0b 100644
--- a/pkgs/applications/version-management/git-open/default.nix
+++ b/pkgs/applications/version-management/git-open/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "git-open";
   };
 }
diff --git a/pkgs/applications/version-management/git-privacy/default.nix b/pkgs/applications/version-management/git-privacy/default.nix
index 0fe486dbc2d12..3d3d7521f28dc 100644
--- a/pkgs/applications/version-management/git-privacy/default.nix
+++ b/pkgs/applications/version-management/git-privacy/default.nix
@@ -43,5 +43,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/EMPRI-DEVOPS/git-privacy";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "git-privacy";
   };
 }
diff --git a/pkgs/applications/version-management/git-publish/default.nix b/pkgs/applications/version-management/git-publish/default.nix
index 0f0eeff156b06..94949396ee9f1 100644
--- a/pkgs/applications/version-management/git-publish/default.nix
+++ b/pkgs/applications/version-management/git-publish/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.lheckemann ];
     homepage = "https://github.com/stefanha/git-publish";
+    mainProgram = "git-publish";
   };
 }
diff --git a/pkgs/applications/version-management/git-quick-stats/default.nix b/pkgs/applications/version-management/git-quick-stats/default.nix
index 5a3a41e05b05d..feb4bcafc1b44 100644
--- a/pkgs/applications/version-management/git-quick-stats/default.nix
+++ b/pkgs/applications/version-management/git-quick-stats/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = [ maintainers.kmein ];
     license = licenses.mit;
+    mainProgram = "git-quick-stats";
   };
 }
diff --git a/pkgs/applications/version-management/git-quickfix/default.nix b/pkgs/applications/version-management/git-quickfix/default.nix
index 4b4319f8cd7cc..a85bbbc54f5d7 100644
--- a/pkgs/applications/version-management/git-quickfix/default.nix
+++ b/pkgs/applications/version-management/git-quickfix/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = with maintainers; [ msfjarvis ];
+    mainProgram = "git-quickfix";
   };
 }
diff --git a/pkgs/applications/version-management/git-radar/default.nix b/pkgs/applications/version-management/git-radar/default.nix
index 1cd14aa969278..27979d63cca56 100644
--- a/pkgs/applications/version-management/git-radar/default.nix
+++ b/pkgs/applications/version-management/git-radar/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     description = "A tool you can add to your prompt to provide at-a-glance information on your git repo";
     platforms = with platforms; linux ++ darwin;
     maintainers = with maintainers; [ kamilchm ];
+    mainProgram = "git-radar";
   };
 }
diff --git a/pkgs/applications/version-management/git-recent/default.nix b/pkgs/applications/version-management/git-recent/default.nix
index 1a1811b2f4384..52b4a49d19b99 100644
--- a/pkgs/applications/version-management/git-recent/default.nix
+++ b/pkgs/applications/version-management/git-recent/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.jlesquembre ];
+    mainProgram = "git-recent";
   };
 }
diff --git a/pkgs/applications/version-management/git-relevant-history/default.nix b/pkgs/applications/version-management/git-relevant-history/default.nix
index c4cb223d253b8..063aa3215705b 100644
--- a/pkgs/applications/version-management/git-relevant-history/default.nix
+++ b/pkgs/applications/version-management/git-relevant-history/default.nix
@@ -20,5 +20,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.asl20;
     platforms = platforms.all;
     maintainers = [ maintainers.bendlas ];
+    mainProgram = "git-relevant-history";
   };
 }
diff --git a/pkgs/applications/version-management/git-remote-codecommit/default.nix b/pkgs/applications/version-management/git-remote-codecommit/default.nix
index f2b47af2e3828..fc9bd9ee02edf 100644
--- a/pkgs/applications/version-management/git-remote-codecommit/default.nix
+++ b/pkgs/applications/version-management/git-remote-codecommit/default.nix
@@ -35,5 +35,6 @@ buildPythonApplication rec {
     maintainers = [ lib.maintainers.zaninime ];
     homepage = "https://github.com/awslabs/git-remote-codecommit";
     license = lib.licenses.asl20;
+    mainProgram = "git-remote-codecommit";
   };
 }
diff --git a/pkgs/applications/version-management/git-remote-gcrypt/default.nix b/pkgs/applications/version-management/git-remote-gcrypt/default.nix
index 8f3155ce0546b..fd506ca2b46b6 100644
--- a/pkgs/applications/version-management/git-remote-gcrypt/default.nix
+++ b/pkgs/applications/version-management/git-remote-gcrypt/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ ellis montag451 ];
     platforms = platforms.unix;
+    mainProgram = "git-remote-gcrypt";
   };
 }
diff --git a/pkgs/applications/version-management/git-reparent/default.nix b/pkgs/applications/version-management/git-reparent/default.nix
index ec1c44b96134e..df42e3b18779d 100644
--- a/pkgs/applications/version-management/git-reparent/default.nix
+++ b/pkgs/applications/version-management/git-reparent/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.marsam ];
     license = licenses.gpl2;
     platforms = platforms.unix;
+    mainProgram = "git-reparent";
   };
 }
diff --git a/pkgs/applications/version-management/git-repo-updater/default.nix b/pkgs/applications/version-management/git-repo-updater/default.nix
index ebea57c1552a8..5c215644463cc 100644
--- a/pkgs/applications/version-management/git-repo-updater/default.nix
+++ b/pkgs/applications/version-management/git-repo-updater/default.nix
@@ -27,5 +27,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/earwig/git-repo-updater";
     license = licenses.mit;
     maintainers = with maintainers; [bdesham ];
+    mainProgram = "gitup";
   };
 }
diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix
index edf05ff03f816..e989e03ca1cfb 100644
--- a/pkgs/applications/version-management/git-repo/default.nix
+++ b/pkgs/applications/version-management/git-repo/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ otavio ];
     platforms = platforms.unix;
+    mainProgram = "repo";
   };
 }
diff --git a/pkgs/applications/version-management/git-review/default.nix b/pkgs/applications/version-management/git-review/default.nix
index 2650f330c0a99..e32d89c042ca2 100644
--- a/pkgs/applications/version-management/git-review/default.nix
+++ b/pkgs/applications/version-management/git-review/default.nix
@@ -48,5 +48,6 @@ buildPythonApplication rec {
     homepage = "https://opendev.org/opendev/git-review";
     license = licenses.asl20;
     maintainers = with maintainers; [ kira-bruneau ];
+    mainProgram = "git-review";
   };
 }
diff --git a/pkgs/applications/version-management/git-secret/default.nix b/pkgs/applications/version-management/git-secret/default.nix
index 6293af4642a34..877a727523b56 100644
--- a/pkgs/applications/version-management/git-secret/default.nix
+++ b/pkgs/applications/version-management/git-secret/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.lo1tuma ];
     platforms = lib.platforms.all;
+    mainProgram = "git-secret";
   };
 }
diff --git a/pkgs/applications/version-management/git-secrets/default.nix b/pkgs/applications/version-management/git-secrets/default.nix
index 154a4048e0a7a..a2f2045a3ddcf 100644
--- a/pkgs/applications/version-management/git-secrets/default.nix
+++ b/pkgs/applications/version-management/git-secrets/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/awslabs/git-secrets";
     license = licenses.asl20;
     platforms = platforms.all;
+    mainProgram = "git-secrets";
   };
 }
diff --git a/pkgs/applications/version-management/git-series/default.nix b/pkgs/applications/version-management/git-series/default.nix
index 2e173dd41be93..a055ccc868f28 100644
--- a/pkgs/applications/version-management/git-series/default.nix
+++ b/pkgs/applications/version-management/git-series/default.nix
@@ -63,5 +63,6 @@ rustPlatform.buildRustPackage {
 
     license = licenses.mit;
     maintainers = with maintainers; [ edef vmandela ];
+    mainProgram = "git-series";
   };
 }
diff --git a/pkgs/applications/version-management/git-sizer/default.nix b/pkgs/applications/version-management/git-sizer/default.nix
index 277786d72420b..b3d7f7a3a432e 100644
--- a/pkgs/applications/version-management/git-sizer/default.nix
+++ b/pkgs/applications/version-management/git-sizer/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/github/git-sizer";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewbauer ];
+    mainProgram = "git-sizer";
   };
 }
diff --git a/pkgs/applications/version-management/git-stack/default.nix b/pkgs/applications/version-management/git-stack/default.nix
index fe81f0b41ef0a..d9792654a94b0 100644
--- a/pkgs/applications/version-management/git-stack/default.nix
+++ b/pkgs/applications/version-management/git-stack/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/gitext-rs/git-stack/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ stehessel ];
+    mainProgram = "git-stack";
   };
 }
diff --git a/pkgs/applications/version-management/git-standup/default.nix b/pkgs/applications/version-management/git-standup/default.nix
index 2bbf7840138dd..0fcdd265a0c39 100644
--- a/pkgs/applications/version-management/git-standup/default.nix
+++ b/pkgs/applications/version-management/git-standup/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
+    mainProgram = "git-standup";
   };
 }
diff --git a/pkgs/applications/version-management/git-stree/default.nix b/pkgs/applications/version-management/git-stree/default.nix
index aa53529933ff1..53f43d69d4d40 100644
--- a/pkgs/applications/version-management/git-stree/default.nix
+++ b/pkgs/applications/version-management/git-stree/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = [ maintainers.benley ];
     platforms = platforms.unix;
+    mainProgram = "git-stree";
   };
 }
diff --git a/pkgs/applications/version-management/git-subtrac/default.nix b/pkgs/applications/version-management/git-subtrac/default.nix
index c10a271024904..547adee7d6a3a 100644
--- a/pkgs/applications/version-management/git-subtrac/default.nix
+++ b/pkgs/applications/version-management/git-subtrac/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/apenwarr/git-subtrac";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "git-subtrac";
   };
 }
diff --git a/pkgs/applications/version-management/git-team/default.nix b/pkgs/applications/version-management/git-team/default.nix
index afce41e15d19a..19556366b1eb7 100644
--- a/pkgs/applications/version-management/git-team/default.nix
+++ b/pkgs/applications/version-management/git-team/default.nix
@@ -41,5 +41,6 @@ buildGoModule rec {
     homepage = "https://github.com/hekmekk/git-team";
     license = licenses.mit;
     maintainers = with maintainers; [ lockejan ];
+    mainProgram = "git-team";
   };
 }
diff --git a/pkgs/applications/version-management/git-test/default.nix b/pkgs/applications/version-management/git-test/default.nix
index 624ce5616909e..2f56091e2ad6d 100644
--- a/pkgs/applications/version-management/git-test/default.nix
+++ b/pkgs/applications/version-management/git-test/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
+    mainProgram = "git-test";
   };
 }
diff --git a/pkgs/applications/version-management/git-town/default.nix b/pkgs/applications/version-management/git-town/default.nix
index bc5f7f3b08541..661abe06f73e2 100644
--- a/pkgs/applications/version-management/git-town/default.nix
+++ b/pkgs/applications/version-management/git-town/default.nix
@@ -64,5 +64,6 @@ buildGoModule rec {
     homepage = "https://www.git-town.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ allonsy blaggacao ];
+    mainProgram = "git-town";
   };
 }
diff --git a/pkgs/applications/version-management/git-trim/default.nix b/pkgs/applications/version-management/git-trim/default.nix
index 7e90b6e38035c..cbc96ed1e78c3 100644
--- a/pkgs/applications/version-management/git-trim/default.nix
+++ b/pkgs/applications/version-management/git-trim/default.nix
@@ -51,5 +51,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/foriequal0/git-trim";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "git-trim";
   };
 }
diff --git a/pkgs/applications/version-management/git-up/default.nix b/pkgs/applications/version-management/git-up/default.nix
index 7c0e6d53db0ad..851cb8464c5b2 100644
--- a/pkgs/applications/version-management/git-up/default.nix
+++ b/pkgs/applications/version-management/git-up/default.nix
@@ -52,5 +52,6 @@ pythonPackages.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.all;
+    mainProgram = "git-up";
   };
 }
diff --git a/pkgs/applications/version-management/git-vanity-hash/default.nix b/pkgs/applications/version-management/git-vanity-hash/default.nix
index 48fee5c578eda..915ef38307b2f 100644
--- a/pkgs/applications/version-management/git-vanity-hash/default.nix
+++ b/pkgs/applications/version-management/git-vanity-hash/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     description = "Tool for creating commit hashes with a specific prefix";
     license = [ licenses.mit ];
     maintainers = [ maintainers.kaction ];
+    mainProgram = "git-vanity-hash";
   };
 }
diff --git a/pkgs/applications/version-management/git-vendor/default.nix b/pkgs/applications/version-management/git-vendor/default.nix
index 9d72cc18b94fb..6722f94d503e7 100644
--- a/pkgs/applications/version-management/git-vendor/default.nix
+++ b/pkgs/applications/version-management/git-vendor/default.nix
@@ -61,6 +61,7 @@ in stdenv.mkDerivation {
     license = lib.licenses.mit;
     maintainers = [ ];
     platforms = lib.platforms.all;
+    mainProgram = "git-vendor";
   };
 
 }
diff --git a/pkgs/applications/version-management/git-when-merged/default.nix b/pkgs/applications/version-management/git-when-merged/default.nix
index 00c9bfa0ae4af..36336d964cc35 100644
--- a/pkgs/applications/version-management/git-when-merged/default.nix
+++ b/pkgs/applications/version-management/git-when-merged/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = python3.meta.platforms;
     maintainers = with maintainers; [ DamienCassou ];
+    mainProgram = "git-when-merged";
   };
 }
diff --git a/pkgs/applications/version-management/git-workspace/default.nix b/pkgs/applications/version-management/git-workspace/default.nix
index 7ceb970737c3d..fc16e778f28c9 100644
--- a/pkgs/applications/version-management/git-workspace/default.nix
+++ b/pkgs/applications/version-management/git-workspace/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/orf/git-workspace";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ misuzu ];
+    mainProgram = "git-workspace";
   };
 }
diff --git a/pkgs/applications/version-management/git2cl/default.nix b/pkgs/applications/version-management/git2cl/default.nix
index b68179b182bca..cddc6eb7e2fe9 100644
--- a/pkgs/applications/version-management/git2cl/default.nix
+++ b/pkgs/applications/version-management/git2cl/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     homepage = "https://savannah.nongnu.org/projects/git2cl";
     description = "Convert git logs to GNU style ChangeLog files";
     platforms = lib.platforms.unix;
+    mainProgram = "git2cl";
   };
 }
diff --git a/pkgs/applications/version-management/gita/default.nix b/pkgs/applications/version-management/gita/default.nix
index 257ace5013e21..eba9f5ed75257 100644
--- a/pkgs/applications/version-management/gita/default.nix
+++ b/pkgs/applications/version-management/gita/default.nix
@@ -39,5 +39,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/nosarthur/gita";
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
+    mainProgram = "gita";
   };
 }
diff --git a/pkgs/applications/version-management/gitbatch/default.nix b/pkgs/applications/version-management/gitbatch/default.nix
index cb19964f733bd..c880b9343f1a6 100644
--- a/pkgs/applications/version-management/gitbatch/default.nix
+++ b/pkgs/applications/version-management/gitbatch/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ teto ];
     platforms = with platforms; linux;
+    mainProgram = "gitbatch";
   };
 }
diff --git a/pkgs/applications/version-management/github-desktop/default.nix b/pkgs/applications/version-management/github-desktop/default.nix
index 33233fe9cf86e..8c79258fd3ff6 100644
--- a/pkgs/applications/version-management/github-desktop/default.nix
+++ b/pkgs/applications/version-management/github-desktop/default.nix
@@ -79,5 +79,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dan4ik605743 ];
     platforms = lib.platforms.linux;
+    mainProgram = "github-desktop";
   };
 })
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 9082bffce0f9d..a58ea68fe2b6d 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -40,6 +40,7 @@ let
     license = licenses.unfree;
     platforms = builtins.attrNames srcs;
     maintainers = with maintainers; [ xnwdd evanjs arkivm ];
+    mainProgram = "gitkraken";
   };
 
   linux = stdenv.mkDerivation rec {
diff --git a/pkgs/applications/version-management/gitlab-triage/default.nix b/pkgs/applications/version-management/gitlab-triage/default.nix
index 34fb6f73c64e6..5397688ebf1fa 100644
--- a/pkgs/applications/version-management/gitlab-triage/default.nix
+++ b/pkgs/applications/version-management/gitlab-triage/default.nix
@@ -12,5 +12,6 @@ bundlerApp {
     homepage = "https://gitlab.com/gitlab-org/gitlab-triage";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "gitlab-triage";
   };
 }
diff --git a/pkgs/applications/version-management/gitless/default.nix b/pkgs/applications/version-management/gitless/default.nix
index 0f6a59ac641e4..8bbb0eee971de 100644
--- a/pkgs/applications/version-management/gitless/default.nix
+++ b/pkgs/applications/version-management/gitless/default.nix
@@ -36,5 +36,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ cransom ];
     platforms = platforms.all;
+    mainProgram = "gl";
   };
 }
diff --git a/pkgs/applications/version-management/gitlint/default.nix b/pkgs/applications/version-management/gitlint/default.nix
index 575cf96826d4c..37783a92ab3e1 100644
--- a/pkgs/applications/version-management/gitlint/default.nix
+++ b/pkgs/applications/version-management/gitlint/default.nix
@@ -49,5 +49,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/jorisroovers/gitlint/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ethancedwards8 fab ];
+    mainProgram = "gitlint";
   };
 }
diff --git a/pkgs/applications/version-management/gitls/default.nix b/pkgs/applications/version-management/gitls/default.nix
index 28fbba659f427..16ae8c9e6a8bc 100644
--- a/pkgs/applications/version-management/gitls/default.nix
+++ b/pkgs/applications/version-management/gitls/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     changelog = "https://github.com/hahwul/gitls/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "gitls";
   };
 }
diff --git a/pkgs/applications/version-management/gitmux/default.nix b/pkgs/applications/version-management/gitmux/default.nix
index be565f4fda44d..667a204f8447d 100644
--- a/pkgs/applications/version-management/gitmux/default.nix
+++ b/pkgs/applications/version-management/gitmux/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/arl/gitmux";
     license = licenses.mit;
     maintainers = with maintainers; [ nialov ];
+    mainProgram = "gitmux";
   };
 }
diff --git a/pkgs/applications/version-management/gitnuro/default.nix b/pkgs/applications/version-management/gitnuro/default.nix
index db79637ef9ff9..e265f56aea855 100644
--- a/pkgs/applications/version-management/gitnuro/default.nix
+++ b/pkgs/applications/version-management/gitnuro/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ zendo ];
+    mainProgram = "gitnuro";
   };
 }
diff --git a/pkgs/applications/version-management/gitprompt-rs/default.nix b/pkgs/applications/version-management/gitprompt-rs/default.nix
index 6980c8f225764..6d0013f5ad513 100644
--- a/pkgs/applications/version-management/gitprompt-rs/default.nix
+++ b/pkgs/applications/version-management/gitprompt-rs/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/9ary/gitprompt-rs";
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ novenary ];
+    mainProgram = "gitprompt-rs";
   };
 }
diff --git a/pkgs/applications/version-management/gitqlient/default.nix b/pkgs/applications/version-management/gitqlient/default.nix
index d7c1e46577e57..2c1ccb76dd73a 100644
--- a/pkgs/applications/version-management/gitqlient/default.nix
+++ b/pkgs/applications/version-management/gitqlient/default.nix
@@ -82,5 +82,6 @@ mkDerivation rec {
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "gitqlient";
   };
 }
diff --git a/pkgs/applications/version-management/gitstats/default.nix b/pkgs/applications/version-management/gitstats/default.nix
index a795f0f6f6dd3..25fcd7247c220 100644
--- a/pkgs/applications/version-management/gitstats/default.nix
+++ b/pkgs/applications/version-management/gitstats/default.nix
@@ -62,5 +62,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "gitstats";
   };
 }
diff --git a/pkgs/applications/version-management/gitstatus/default.nix b/pkgs/applications/version-management/gitstatus/default.nix
index 21e8bafcd0b35..ccb1f07edeca4 100644
--- a/pkgs/applications/version-management/gitstatus/default.nix
+++ b/pkgs/applications/version-management/gitstatus/default.nix
@@ -87,5 +87,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ mmlb hexa SuperSandro2000 ];
     platforms = platforms.all;
+    mainProgram = "gitstatusd";
   };
 }
diff --git a/pkgs/applications/version-management/gitty/default.nix b/pkgs/applications/version-management/gitty/default.nix
index 0bc267d9647c8..ba677b2ba8e54 100644
--- a/pkgs/applications/version-management/gitty/default.nix
+++ b/pkgs/applications/version-management/gitty/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "Contextual information about your git projects, right on the command-line";
     license = licenses.mit;
     maintainers = with maintainers; [ izorkin ];
+    mainProgram = "gitty";
   };
 }
diff --git a/pkgs/applications/version-management/glab/default.nix b/pkgs/applications/version-management/glab/default.nix
index f4e1815e278e2..781eeae33231b 100644
--- a/pkgs/applications/version-management/glab/default.nix
+++ b/pkgs/applications/version-management/glab/default.nix
@@ -43,5 +43,6 @@ buildGoModule rec {
     homepage = "https://gitlab.com/gitlab-org/cli";
     changelog = "https://gitlab.com/gitlab-org/cli/-/releases/v${version}";
     maintainers = with maintainers; [ freezeboy ];
+    mainProgram = "glab";
   };
 }
diff --git a/pkgs/applications/version-management/glitter/default.nix b/pkgs/applications/version-management/glitter/default.nix
index c99403889d54a..ddd56fdfb11c7 100644
--- a/pkgs/applications/version-management/glitter/default.nix
+++ b/pkgs/applications/version-management/glitter/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Milo123459/glitter/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "glitter";
   };
 }
diff --git a/pkgs/applications/version-management/gogs/default.nix b/pkgs/applications/version-management/gogs/default.nix
index 2a7d70cdc1b7a..e0f20d1467f61 100644
--- a/pkgs/applications/version-management/gogs/default.nix
+++ b/pkgs/applications/version-management/gogs/default.nix
@@ -44,5 +44,6 @@ buildGoModule rec {
     homepage = "https://gogs.io";
     license = licenses.mit;
     maintainers = [ maintainers.schneefux ];
+    mainProgram = "gogs";
   };
 }
diff --git a/pkgs/applications/version-management/gomp/default.nix b/pkgs/applications/version-management/gomp/default.nix
index 3f60ba8b7acfc..03385404e787c 100644
--- a/pkgs/applications/version-management/gomp/default.nix
+++ b/pkgs/applications/version-management/gomp/default.nix
@@ -20,5 +20,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
     platforms = platforms.unix;
+    mainProgram = "gomp";
   };
 }
diff --git a/pkgs/applications/version-management/gource/default.nix b/pkgs/applications/version-management/gource/default.nix
index d0175251e6ec2..63c2202b4be96 100644
--- a/pkgs/applications/version-management/gource/default.nix
+++ b/pkgs/applications/version-management/gource/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     '';
     platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "gource";
   };
 }
diff --git a/pkgs/applications/version-management/gst/default.nix b/pkgs/applications/version-management/gst/default.nix
index bf7abf12d7bfc..c282da41c1ebc 100644
--- a/pkgs/applications/version-management/gst/default.nix
+++ b/pkgs/applications/version-management/gst/default.nix
@@ -52,5 +52,6 @@ buildGoModule rec {
     homepage = "https://github.com/uetchy/gst";
     maintainers = with lib.maintainers; [ _0x4A6F ];
     license = lib.licenses.asl20;
+    mainProgram = "gst";
   };
 }
diff --git a/pkgs/applications/version-management/guilt/default.nix b/pkgs/applications/version-management/guilt/default.nix
index 664db771e93f2..aeb0eaf43f11a 100644
--- a/pkgs/applications/version-management/guilt/default.nix
+++ b/pkgs/applications/version-management/guilt/default.nix
@@ -88,5 +88,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ javimerino ];
     license = [ licenses.gpl2 ];
     platforms = platforms.all;
+    mainProgram = "guilt";
   };
 }
diff --git a/pkgs/applications/version-management/gut/default.nix b/pkgs/applications/version-management/gut/default.nix
index 92457cdbf4c3d..3d57ceb03a802 100644
--- a/pkgs/applications/version-management/gut/default.nix
+++ b/pkgs/applications/version-management/gut/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://gut-cli.dev";
     license = licenses.mit;
     maintainers = with maintainers; [ paveloom ];
+    mainProgram = "gut";
   };
 }
diff --git a/pkgs/applications/version-management/hut/default.nix b/pkgs/applications/version-management/hut/default.nix
index ef188ba68d95d..931f85fd45f0b 100644
--- a/pkgs/applications/version-management/hut/default.nix
+++ b/pkgs/applications/version-management/hut/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     description = "A CLI tool for Sourcehut / sr.ht";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ fgaz ];
+    mainProgram = "hut";
   };
 }
diff --git a/pkgs/applications/version-management/lab/default.nix b/pkgs/applications/version-management/lab/default.nix
index 6bbe405f65c13..d75a1cba61426 100644
--- a/pkgs/applications/version-management/lab/default.nix
+++ b/pkgs/applications/version-management/lab/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://zaquestion.github.io/lab";
     license = licenses.cc0;
     maintainers = with maintainers; [ marsam dtzWill ];
+    mainProgram = "lab";
   };
 }
diff --git a/pkgs/applications/version-management/legit-web/default.nix b/pkgs/applications/version-management/legit-web/default.nix
index 72de9d90c3e82..a14b7c22bd4bc 100644
--- a/pkgs/applications/version-management/legit-web/default.nix
+++ b/pkgs/applications/version-management/legit-web/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://github.com/icyphox/legit";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.ratsclub ];
+    mainProgram = "legit";
   };
 }
diff --git a/pkgs/applications/version-management/legit/default.nix b/pkgs/applications/version-management/legit/default.nix
index fd2875b13be2a..c42f6eecfeeab 100644
--- a/pkgs/applications/version-management/legit/default.nix
+++ b/pkgs/applications/version-management/legit/default.nix
@@ -28,5 +28,6 @@ python3Packages.buildPythonApplication rec {
     description = "Git for Humans, Inspired by GitHub for Mac";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ryneeverett ];
+    mainProgram = "legit";
   };
 }
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index fc8ec7b55d1fe..e43448fd2f1d1 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -69,5 +69,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ jtojnar mimame ];
+    mainProgram = "meld";
   };
 }
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 01dc3efcd6e0c..29dbe0573422d 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -94,6 +94,7 @@ let
       license = licenses.gpl2Plus;
       maintainers = with maintainers; [ eelco lukegb pacien techknowlogick ];
       platforms = platforms.unix;
+      mainProgram = "hg";
     };
   };
 
diff --git a/pkgs/applications/version-management/merge-fmt/default.nix b/pkgs/applications/version-management/merge-fmt/default.nix
index 2f1ec571b162f..6a9a18aa992f2 100644
--- a/pkgs/applications/version-management/merge-fmt/default.nix
+++ b/pkgs/applications/version-management/merge-fmt/default.nix
@@ -24,5 +24,6 @@ buildDunePackage rec {
       conflicts by leveraging code formatters.
     '';
     maintainers = [ maintainers.alizter ];
+    mainProgram = "merge-fmt";
   };
 }
diff --git a/pkgs/applications/version-management/nbstripout/default.nix b/pkgs/applications/version-management/nbstripout/default.nix
index 027bba16e86c9..854c66a6d5e41 100644
--- a/pkgs/applications/version-management/nbstripout/default.nix
+++ b/pkgs/applications/version-management/nbstripout/default.nix
@@ -46,5 +46,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/kynan/nbstripout";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ jluttine ];
+    mainProgram = "nbstripout";
   };
 }
diff --git a/pkgs/applications/version-management/pass-git-helper/default.nix b/pkgs/applications/version-management/pass-git-helper/default.nix
index 7085e0c48f250..cc34a67c04b5a 100644
--- a/pkgs/applications/version-management/pass-git-helper/default.nix
+++ b/pkgs/applications/version-management/pass-git-helper/default.nix
@@ -22,5 +22,6 @@ buildPythonApplication rec {
     description = "A git credential helper interfacing with pass, the standard unix password manager";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hmenke vanzef ];
+    mainProgram = "pass-git-helper";
   };
 }
diff --git a/pkgs/applications/version-management/peru/default.nix b/pkgs/applications/version-management/peru/default.nix
index b7b6d62e4b4cb..5637471711b18 100644
--- a/pkgs/applications/version-management/peru/default.nix
+++ b/pkgs/applications/version-management/peru/default.nix
@@ -23,6 +23,7 @@ python3Packages.buildPythonApplication rec {
     description = "A tool for including other people's code in your projects";
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "peru";
   };
 
 }
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index 63f7bf7fbbe2a..4c35e2706ed1c 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -44,5 +44,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://pijul.org";
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ gal_bolle dywedir fabianhjr ];
+    mainProgram = "pijul";
   };
 }
diff --git a/pkgs/applications/version-management/qgit/default.nix b/pkgs/applications/version-management/qgit/default.nix
index 85cb9127c21e2..a0038554d86ce 100644
--- a/pkgs/applications/version-management/qgit/default.nix
+++ b/pkgs/applications/version-management/qgit/default.nix
@@ -21,5 +21,6 @@ mkDerivation rec {
     description = "Graphical front-end to Git";
     maintainers = with maintainers; [ peterhoeg markuskowa ];
     inherit (qtbase.meta) platforms;
+    mainProgram = "qgit";
   };
 }
diff --git a/pkgs/applications/version-management/rapidsvn/default.nix b/pkgs/applications/version-management/rapidsvn/default.nix
index 7c2972538e9e5..53df3af4a79d4 100644
--- a/pkgs/applications/version-management/rapidsvn/default.nix
+++ b/pkgs/applications/version-management/rapidsvn/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.viric ];
     platforms = lib.platforms.unix;
+    mainProgram = "rapidsvn";
   };
 }
diff --git a/pkgs/applications/version-management/rcshist/default.nix b/pkgs/applications/version-management/rcshist/default.nix
index f7cdceaa1b4ca..f11c515b5399e 100644
--- a/pkgs/applications/version-management/rcshist/default.nix
+++ b/pkgs/applications/version-management/rcshist/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.kaction ];
     platforms = lib.platforms.unix;
+    mainProgram = "rcshist";
   };
 }
diff --git a/pkgs/applications/version-management/rs-git-fsmonitor/default.nix b/pkgs/applications/version-management/rs-git-fsmonitor/default.nix
index b369e5db05b1c..8d6c7f072d041 100644
--- a/pkgs/applications/version-management/rs-git-fsmonitor/default.nix
+++ b/pkgs/applications/version-management/rs-git-fsmonitor/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jgavris/rs-git-fsmonitor";
     license = licenses.mit;
     maintainers = [ ];
+    mainProgram = "rs-git-fsmonitor";
   };
 }
diff --git a/pkgs/applications/version-management/scmpuff/default.nix b/pkgs/applications/version-management/scmpuff/default.nix
index 38927d75757e8..a94099e30478b 100644
--- a/pkgs/applications/version-management/scmpuff/default.nix
+++ b/pkgs/applications/version-management/scmpuff/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/mroth/scmpuff";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
+    mainProgram = "scmpuff";
   };
 }
diff --git a/pkgs/applications/version-management/scriv/default.nix b/pkgs/applications/version-management/scriv/default.nix
index 5ba5e26d3f147..fd7d78cc28a56 100644
--- a/pkgs/applications/version-management/scriv/default.nix
+++ b/pkgs/applications/version-management/scriv/default.nix
@@ -53,5 +53,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/nedbat/scriv/releases/tag/${version}";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ amesgen ];
+    mainProgram = "scriv";
   };
 }
diff --git a/pkgs/applications/version-management/sparkleshare/default.nix b/pkgs/applications/version-management/sparkleshare/default.nix
index da6bb386535c4..a13f25e681955 100644
--- a/pkgs/applications/version-management/sparkleshare/default.nix
+++ b/pkgs/applications/version-management/sparkleshare/default.nix
@@ -87,5 +87,6 @@ stdenv.mkDerivation rec {
     homepage = "https://sparkleshare.org";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ kevincox ];
+    mainProgram = "sparkleshare";
   };
 }
diff --git a/pkgs/applications/version-management/src/default.nix b/pkgs/applications/version-management/src/default.nix
index f2f6f8cd32e10..5ac3919775986 100644
--- a/pkgs/applications/version-management/src/default.nix
+++ b/pkgs/applications/version-management/src/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ calvertvl AndersonTorres ];
     inherit (python.meta) platforms;
+    mainProgram = "src";
   };
 }
diff --git a/pkgs/applications/version-management/stgit/default.nix b/pkgs/applications/version-management/stgit/default.nix
index 196cdea93dbab..f576859647c59 100644
--- a/pkgs/applications/version-management/stgit/default.nix
+++ b/pkgs/applications/version-management/stgit/default.nix
@@ -84,5 +84,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl2Only;
     platforms = platforms.unix;
     maintainers = with maintainers; [ jshholland ];
+    mainProgram = "stg";
   };
 }
diff --git a/pkgs/applications/version-management/svn-all-fast-export/default.nix b/pkgs/applications/version-management/svn-all-fast-export/default.nix
index a40e959a50a41..5fc67ef47d783 100644
--- a/pkgs/applications/version-management/svn-all-fast-export/default.nix
+++ b/pkgs/applications/version-management/svn-all-fast-export/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = [ maintainers.flokli ];
+    mainProgram = "svn-all-fast-export";
   };
 }
diff --git a/pkgs/applications/version-management/svn2git/default.nix b/pkgs/applications/version-management/svn2git/default.nix
index 562658a6e99fe..89ea5c0e84ae2 100644
--- a/pkgs/applications/version-management/svn2git/default.nix
+++ b/pkgs/applications/version-management/svn2git/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     description = "Tool for importing Subversion repositories into git";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
+    mainProgram = "svn2git";
   };
 }
diff --git a/pkgs/applications/version-management/tailor/default.nix b/pkgs/applications/version-management/tailor/default.nix
index bd824a71633cc..3e2e6a848008e 100644
--- a/pkgs/applications/version-management/tailor/default.nix
+++ b/pkgs/applications/version-management/tailor/default.nix
@@ -33,5 +33,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://gitlab.com/ports1/tailor";
     license = licenses.gpl1Plus;
     platforms = platforms.unix;
+    mainProgram = "tailor";
   };
 }
diff --git a/pkgs/applications/version-management/thicket/default.nix b/pkgs/applications/version-management/thicket/default.nix
index 1f331ffd49623..710cdda4f94aa 100644
--- a/pkgs/applications/version-management/thicket/default.nix
+++ b/pkgs/applications/version-management/thicket/default.nix
@@ -26,5 +26,6 @@ crystal.buildCrystalPackage rec {
     homepage = "https://github.com/taylorthurlow/thicket";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "thicket";
   };
 }
diff --git a/pkgs/applications/version-management/tig/default.nix b/pkgs/applications/version-management/tig/default.nix
index e4b54078edc5e..1cce34df66adb 100644
--- a/pkgs/applications/version-management/tig/default.nix
+++ b/pkgs/applications/version-management/tig/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ bjornfor domenkozar qknight globin ma27 ];
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
+    mainProgram = "tig";
   };
 }
diff --git a/pkgs/applications/version-management/vcprompt/default.nix b/pkgs/applications/version-management/vcprompt/default.nix
index d4a4889f4a3f9..ff4968d7166de 100644
--- a/pkgs/applications/version-management/vcprompt/default.nix
+++ b/pkgs/applications/version-management/vcprompt/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     platforms   = with platforms; linux ++ darwin;
     license = licenses.gpl2Plus;
+    mainProgram = "vcprompt";
   };
 }
diff --git a/pkgs/applications/version-management/vcsh/default.nix b/pkgs/applications/version-management/vcsh/default.nix
index 0625d0a684e00..bd056e8a7ce71 100644
--- a/pkgs/applications/version-management/vcsh/default.nix
+++ b/pkgs/applications/version-management/vcsh/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ttuegel alerque ];
     platforms = platforms.unix;
+    mainProgram = "vcsh";
   };
 }
diff --git a/pkgs/applications/version-management/verco/default.nix b/pkgs/applications/version-management/verco/default.nix
index 22fe2b2fbbd27..4597a87b4721b 100644
--- a/pkgs/applications/version-management/verco/default.nix
+++ b/pkgs/applications/version-management/verco/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://vamolessa.github.io/verco";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "verco";
   };
 }
diff --git a/pkgs/applications/version-management/yadm/default.nix b/pkgs/applications/version-management/yadm/default.nix
index 73a2035c31fb5..0dab32e57accf 100644
--- a/pkgs/applications/version-management/yadm/default.nix
+++ b/pkgs/applications/version-management/yadm/default.nix
@@ -135,5 +135,6 @@ resholve.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ abathur ];
     platforms = lib.platforms.unix;
+    mainProgram = "yadm";
   };
 }
diff --git a/pkgs/applications/video/adl/default.nix b/pkgs/applications/video/adl/default.nix
index 9dbec102a55e5..6bf36cc375b82 100644
--- a/pkgs/applications/video/adl/default.nix
+++ b/pkgs/applications/video/adl/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "adl";
   };
 }
diff --git a/pkgs/applications/video/aegisub/default.nix b/pkgs/applications/video/aegisub/default.nix
index 9b427a2284d77..2c01d052eedab 100644
--- a/pkgs/applications/video/aegisub/default.nix
+++ b/pkgs/applications/video/aegisub/default.nix
@@ -158,5 +158,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ AndersonTorres wegank ];
     platforms = platforms.unix;
+    mainProgram = "aegisub";
   };
 }
diff --git a/pkgs/applications/video/ani-cli/default.nix b/pkgs/applications/video/ani-cli/default.nix
index 21c04812f9f33..389d00dc1a41e 100644
--- a/pkgs/applications/video/ani-cli/default.nix
+++ b/pkgs/applications/video/ani-cli/default.nix
@@ -58,5 +58,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ skykanin ];
     platforms = platforms.unix;
+    mainProgram = "ani-cli";
   };
 }
diff --git a/pkgs/applications/video/anime-downloader/default.nix b/pkgs/applications/video/anime-downloader/default.nix
index 235c5c58f381a..5e4f58cea1d30 100644
--- a/pkgs/applications/video/anime-downloader/default.nix
+++ b/pkgs/applications/video/anime-downloader/default.nix
@@ -50,5 +50,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.unlicense;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "anime";
   };
 }
diff --git a/pkgs/applications/video/asciicam/default.nix b/pkgs/applications/video/asciicam/default.nix
index fa9a232e0db9f..6a600fec30835 100644
--- a/pkgs/applications/video/asciicam/default.nix
+++ b/pkgs/applications/video/asciicam/default.nix
@@ -23,5 +23,6 @@ buildGoModule {
     homepage = "https://github.com/muesli/asciicam";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "asciicam";
   };
 }
diff --git a/pkgs/applications/video/bilibili/default.nix b/pkgs/applications/video/bilibili/default.nix
index 9a507e93ab655..7a103bc045b54 100644
--- a/pkgs/applications/video/bilibili/default.nix
+++ b/pkgs/applications/video/bilibili/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ jedsek kashw2 ];
     platforms = platforms.unix;
+    mainProgram = "bilibili";
   };
 }
diff --git a/pkgs/applications/video/bino3d/default.nix b/pkgs/applications/video/bino3d/default.nix
index d15d649b841b5..92096c6a34746 100644
--- a/pkgs/applications/video/bino3d/default.nix
+++ b/pkgs/applications/video/bino3d/default.nix
@@ -21,5 +21,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.linux;
+    mainProgram = "bino";
   };
 }
diff --git a/pkgs/applications/video/catt/default.nix b/pkgs/applications/video/catt/default.nix
index 90081d4e59083..8b1c74ee66ccc 100644
--- a/pkgs/applications/video/catt/default.nix
+++ b/pkgs/applications/video/catt/default.nix
@@ -46,5 +46,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/skorokithakis/catt";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "catt";
   };
 }
diff --git a/pkgs/applications/video/ccextractor/default.nix b/pkgs/applications/video/ccextractor/default.nix
index 8b2f185a55bd7..3814f921fa240 100644
--- a/pkgs/applications/video/ccextractor/default.nix
+++ b/pkgs/applications/video/ccextractor/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     broken = stdenv.isAarch64;
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ titanous ];
+    mainProgram = "ccextractor";
   };
 }
diff --git a/pkgs/applications/video/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix
index 9a1940cffc753..1625c87e0c0bb 100644
--- a/pkgs/applications/video/clipgrab/default.nix
+++ b/pkgs/applications/video/clipgrab/default.nix
@@ -61,5 +61,6 @@ mkDerivation rec {
     homepage = "https://clipgrab.org/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "clipgrab";
   };
 }
diff --git a/pkgs/applications/video/coriander/default.nix b/pkgs/applications/video/coriander/default.nix
index d4e35ac484183..80892b96c94b6 100644
--- a/pkgs/applications/video/coriander/default.nix
+++ b/pkgs/applications/video/coriander/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux;
+    mainProgram = "coriander";
   };
 }
diff --git a/pkgs/applications/video/crunchy-cli/default.nix b/pkgs/applications/video/crunchy-cli/default.nix
index 917fdd2f9a245..3efeeb8544d43 100644
--- a/pkgs/applications/video/crunchy-cli/default.nix
+++ b/pkgs/applications/video/crunchy-cli/default.nix
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
     homepage = "https://github.com/crunchy-labs/crunchy-cli";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ stepbrobd ];
+    mainProgram = "crunchy-cli";
   };
 }
 
diff --git a/pkgs/applications/video/davinci-resolve/default.nix b/pkgs/applications/video/davinci-resolve/default.nix
index 99694efda1d31..8070a96a2b4b3 100644
--- a/pkgs/applications/video/davinci-resolve/default.nix
+++ b/pkgs/applications/video/davinci-resolve/default.nix
@@ -230,5 +230,6 @@ buildFHSEnv {
     maintainers = with maintainers; [ jshcmpbll ];
     platforms = [ "x86_64-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    mainProgram = "davinci-resolve";
   };
 }
diff --git a/pkgs/applications/video/deface/default.nix b/pkgs/applications/video/deface/default.nix
index 43c009c9dbb81..8b9e822070cf1 100644
--- a/pkgs/applications/video/deface/default.nix
+++ b/pkgs/applications/video/deface/default.nix
@@ -52,5 +52,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/ORB-HD/deface";
     license = licenses.mit;
     maintainers = with maintainers; [ lurkki ];
+    mainProgram = "deface";
   };
 }
diff --git a/pkgs/applications/video/dra-cla/default.nix b/pkgs/applications/video/dra-cla/default.nix
index 3a097d3e130f4..27b745a403d4b 100644
--- a/pkgs/applications/video/dra-cla/default.nix
+++ b/pkgs/applications/video/dra-cla/default.nix
@@ -41,5 +41,6 @@ stdenvNoCC.mkDerivation {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ idlip ];
     platforms = platforms.unix;
+    mainProgram = "dra-cla";
   };
 }
diff --git a/pkgs/applications/video/dvdbackup/default.nix b/pkgs/applications/video/dvdbackup/default.nix
index 3e998d0c4a170..523847db247f1 100644
--- a/pkgs/applications/video/dvdbackup/default.nix
+++ b/pkgs/applications/video/dvdbackup/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.bradediger ];
     platforms = lib.platforms.linux;
+    mainProgram = "dvdbackup";
   };
 }
diff --git a/pkgs/applications/video/dvdstyler/default.nix b/pkgs/applications/video/dvdstyler/default.nix
index 8d7d5a6611d34..18018f88d0256 100644
--- a/pkgs/applications/video/dvdstyler/default.nix
+++ b/pkgs/applications/video/dvdstyler/default.nix
@@ -128,5 +128,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; linux;
+    mainProgram = "dvdstyler";
   };
 }
diff --git a/pkgs/applications/video/entangle/default.nix b/pkgs/applications/video/entangle/default.nix
index daf56c174456a..cfab93dbcd71a 100644
--- a/pkgs/applications/video/entangle/default.nix
+++ b/pkgs/applications/video/entangle/default.nix
@@ -133,5 +133,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ ShamrockLee ];
+    mainProgram = "entangle";
   };
 }
diff --git a/pkgs/applications/video/epgstation/default.nix b/pkgs/applications/video/epgstation/default.nix
index 49d2dedbb0c3e..c5d12c8403c12 100644
--- a/pkgs/applications/video/epgstation/default.nix
+++ b/pkgs/applications/video/epgstation/default.nix
@@ -119,5 +119,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/l3tnun/EPGStation";
     license = licenses.mit;
     maintainers = with maintainers; [ midchildan ];
+    mainProgram = "epgstation";
   };
 }
diff --git a/pkgs/applications/video/f1viewer/default.nix b/pkgs/applications/video/f1viewer/default.nix
index 7541ec6598a02..5d89a8df657c1 100644
--- a/pkgs/applications/video/f1viewer/default.nix
+++ b/pkgs/applications/video/f1viewer/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/SoMuchForSubtlety/f1viewer";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ michzappa ];
+    mainProgram = "f1viewer";
   };
 }
diff --git a/pkgs/applications/video/ffmpeg-normalize/default.nix b/pkgs/applications/video/ffmpeg-normalize/default.nix
index 75a7a9b46bb77..a3b40daacf79a 100644
--- a/pkgs/applications/video/ffmpeg-normalize/default.nix
+++ b/pkgs/applications/video/ffmpeg-normalize/default.nix
@@ -25,5 +25,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/slhck/ffmpeg-normalize";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ prusnak ];
+    mainProgram = "ffmpeg-normalize";
   };
 }
diff --git a/pkgs/applications/video/filebot/default.nix b/pkgs/applications/video/filebot/default.nix
index 9fffd01019e8a..e38b4dde3d29a 100644
--- a/pkgs/applications/video/filebot/default.nix
+++ b/pkgs/applications/video/filebot/default.nix
@@ -67,5 +67,6 @@ in stdenv.mkDerivation (finalAttrs: {
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ gleber felschr ];
     platforms = platforms.linux;
+    mainProgram = "filebot";
   };
 })
diff --git a/pkgs/applications/video/flowblade/default.nix b/pkgs/applications/video/flowblade/default.nix
index 2643a449c60fd..29d095fe67fde 100644
--- a/pkgs/applications/video/flowblade/default.nix
+++ b/pkgs/applications/video/flowblade/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl3Plus ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ polygon ];
+    mainProgram = "flowblade";
   };
 }
diff --git a/pkgs/applications/video/freetube/default.nix b/pkgs/applications/video/freetube/default.nix
index a3fd87e6142ea..b5a8221b7fdfc 100644
--- a/pkgs/applications/video/freetube/default.nix
+++ b/pkgs/applications/video/freetube/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ ryneeverett alyaeanyx ];
     inherit (electron.meta) platforms;
+    mainProgram = "freetube";
   };
 }
diff --git a/pkgs/applications/video/giph/default.nix b/pkgs/applications/video/giph/default.nix
index 3255544ff8b3c..9d0175911d690 100644
--- a/pkgs/applications/video/giph/default.nix
+++ b/pkgs/applications/video/giph/default.nix
@@ -39,5 +39,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.lom ];
     platforms = platforms.linux;
+    mainProgram = "giph";
   };
 }
diff --git a/pkgs/applications/video/glaxnimate/default.nix b/pkgs/applications/video/glaxnimate/default.nix
index 4ab5222c54ba5..a50e3d15614a8 100644
--- a/pkgs/applications/video/glaxnimate/default.nix
+++ b/pkgs/applications/video/glaxnimate/default.nix
@@ -82,5 +82,6 @@ stdenv.mkDerivation rec {
     description = "Simple vector animation program.";
     license = licenses.gpl3;
     maintainers = with maintainers; [ tobiasBora ];
+    mainProgram = "glaxnimate";
   };
 }
diff --git a/pkgs/applications/video/gnomecast/default.nix b/pkgs/applications/video/gnomecast/default.nix
index 6e41dcb7b8e37..9d0bfa9e966e3 100644
--- a/pkgs/applications/video/gnomecast/default.nix
+++ b/pkgs/applications/video/gnomecast/default.nix
@@ -41,5 +41,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/keredson/gnomecast";
     license = with licenses; [ gpl3 ];
     broken = stdenv.isDarwin;
+    mainProgram = "gnomecast";
   };
 }
diff --git a/pkgs/applications/video/go-chromecast/default.nix b/pkgs/applications/video/go-chromecast/default.nix
index 523eef1b85914..d554fd56847cb 100644
--- a/pkgs/applications/video/go-chromecast/default.nix
+++ b/pkgs/applications/video/go-chromecast/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "CLI for Google Chromecast, Home devices and Cast Groups";
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "go-chromecast";
   };
 }
diff --git a/pkgs/applications/video/go2tv/default.nix b/pkgs/applications/video/go2tv/default.nix
index fb0db20990e48..d8fc548f10b3c 100644
--- a/pkgs/applications/video/go2tv/default.nix
+++ b/pkgs/applications/video/go2tv/default.nix
@@ -53,5 +53,6 @@ buildGoModule rec {
     homepage = "https://github.com/alexballas/go2tv";
     license = licenses.mit;
     maintainers = with maintainers; [ gdamjan ];
+    mainProgram = "go2tv";
   };
 }
diff --git a/pkgs/applications/video/haruna/default.nix b/pkgs/applications/video/haruna/default.nix
index b73933e36a716..8b112ed838a31 100644
--- a/pkgs/applications/video/haruna/default.nix
+++ b/pkgs/applications/video/haruna/default.nix
@@ -74,5 +74,6 @@ mkDerivation rec {
     description = "Open source video player built with Qt/QML and libmpv";
     license = with licenses; [ bsd3 cc-by-40 cc-by-sa-40 cc0 gpl2Plus gpl3Plus wtfpl ];
     maintainers = with maintainers; [ jojosch kashw2 ];
+    mainProgram = "haruna";
   };
 }
diff --git a/pkgs/applications/video/hdhomerun-config-gui/default.nix b/pkgs/applications/video/hdhomerun-config-gui/default.nix
index 12689bedcbd38..c5ed409117e3f 100644
--- a/pkgs/applications/video/hdhomerun-config-gui/default.nix
+++ b/pkgs/applications/video/hdhomerun-config-gui/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.louisdk1 ];
+    mainProgram = "hdhomerun_config_gui";
   };
 }
diff --git a/pkgs/applications/video/hypnotix/default.nix b/pkgs/applications/video/hypnotix/default.nix
index 74d2389fce7b8..647f171c87311 100644
--- a/pkgs/applications/video/hypnotix/default.nix
+++ b/pkgs/applications/video/hypnotix/default.nix
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda bobby285271 ];
     platforms = lib.platforms.linux;
+    mainProgram = "hypnotix";
   };
 }
diff --git a/pkgs/applications/video/imagination/default.nix b/pkgs/applications/video/imagination/default.nix
index 804265bcb5456..8d1d6ac305f9e 100644
--- a/pkgs/applications/video/imagination/default.nix
+++ b/pkgs/applications/video/imagination/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ austinbutler ];
     platforms = platforms.linux;
+    mainProgram = "imagination";
   };
 }
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index a5c6a7beb06b0..dad9a52402495 100644
--- a/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -120,5 +120,6 @@ buildPythonApplication rec {
       unlicense
     ];
     maintainers = with maintainers; [ jojosch ];
+    mainProgram = "jellyfin-mpv-shim";
   };
 }
diff --git a/pkgs/applications/video/jftui/default.nix b/pkgs/applications/video/jftui/default.nix
index 6f5fb3cf6fbbc..efd8d6ed6e2a8 100644
--- a/pkgs/applications/video/jftui/default.nix
+++ b/pkgs/applications/video/jftui/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.unlicense;
     maintainers = [ maintainers.nyanloutre ];
     platforms = platforms.linux;
+    mainProgram = "jftui";
   };
 }
diff --git a/pkgs/applications/video/kaffeine/default.nix b/pkgs/applications/video/kaffeine/default.nix
index 02263f46e0f4b..40701d2cbf85e 100644
--- a/pkgs/applications/video/kaffeine/default.nix
+++ b/pkgs/applications/video/kaffeine/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.pasqui23 ];
     platforms = platforms.all;
+    mainProgram = "kaffeine";
   };
 }
diff --git a/pkgs/applications/video/kazam/default.nix b/pkgs/applications/video/kazam/default.nix
index a2a9d8d112cd4..8ca3b813663f4 100644
--- a/pkgs/applications/video/kazam/default.nix
+++ b/pkgs/applications/video/kazam/default.nix
@@ -58,5 +58,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.domenkozar ];
+    mainProgram = "kazam";
   };
 }
diff --git a/pkgs/applications/video/lbry/default.nix b/pkgs/applications/video/lbry/default.nix
index afcec67d9134b..cadd38523ca15 100644
--- a/pkgs/applications/video/lbry/default.nix
+++ b/pkgs/applications/video/lbry/default.nix
@@ -45,5 +45,6 @@ in appimageTools.wrapAppImage rec {
     changelog = "https://github.com/lbryio/lbry-desktop/blob/master/CHANGELOG.md";
     maintainers = with maintainers; [ enderger ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "lbry";
   };
 }
diff --git a/pkgs/applications/video/linuxstopmotion/default.nix b/pkgs/applications/video/linuxstopmotion/default.nix
index ad9a77af080ab..bdf361cec9fc1 100644
--- a/pkgs/applications/video/linuxstopmotion/default.nix
+++ b/pkgs/applications/video/linuxstopmotion/default.nix
@@ -23,5 +23,6 @@ mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "stopmotion";
   };
 }
diff --git a/pkgs/applications/video/losslesscut-bin/default.nix b/pkgs/applications/video/losslesscut-bin/default.nix
index 0e6b52f8f7aba..5fe8c8785a818 100644
--- a/pkgs/applications/video/losslesscut-bin/default.nix
+++ b/pkgs/applications/video/losslesscut-bin/default.nix
@@ -12,6 +12,7 @@ let
     homepage = "https://mifi.no/losslesscut/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ShamrockLee ];
+    mainProgram = "losslesscut";
   };
   x86_64-appimage = callPackage ./build-from-appimage.nix {
     inherit pname version metaCommon;
diff --git a/pkgs/applications/video/mapmap/default.nix b/pkgs/applications/video/mapmap/default.nix
index 6bca33eb38854..39904f8291593 100644
--- a/pkgs/applications/video/mapmap/default.nix
+++ b/pkgs/applications/video/mapmap/default.nix
@@ -73,6 +73,7 @@ mkDerivation rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.erictapen ];
     platforms = platforms.linux;
+    mainProgram = "mapmap";
   };
 
 }
diff --git a/pkgs/applications/video/media-downloader/default.nix b/pkgs/applications/video/media-downloader/default.nix
index 61f59854debd5..dd0d4924aaea1 100644
--- a/pkgs/applications/video/media-downloader/default.nix
+++ b/pkgs/applications/video/media-downloader/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ zendo ];
     platforms = lib.platforms.linux;
+    mainProgram = "media-downloader";
   };
 })
diff --git a/pkgs/applications/video/memento/default.nix b/pkgs/applications/video/memento/default.nix
index 8fda60e3a0a09..f09b3a79794d1 100644
--- a/pkgs/applications/video/memento/default.nix
+++ b/pkgs/applications/video/memento/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2;
     maintainers = with maintainers; [ teto ];
     platforms = platforms.linux;
+    mainProgram = "memento";
   };
 })
 
diff --git a/pkgs/applications/video/minitube/default.nix b/pkgs/applications/video/minitube/default.nix
index 06bed9211318f..3caa2b7fc56cc 100644
--- a/pkgs/applications/video/minitube/default.nix
+++ b/pkgs/applications/video/minitube/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "minitube";
   };
 }
diff --git a/pkgs/applications/video/mjpg-streamer/default.nix b/pkgs/applications/video/mjpg-streamer/default.nix
index a82839ef7548c..f04025b37ddc4 100644
--- a/pkgs/applications/video/mjpg-streamer/default.nix
+++ b/pkgs/applications/video/mjpg-streamer/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation {
     platforms = platforms.linux;
     license = licenses.gpl2;
     maintainers = with maintainers; [ gebner ];
+    mainProgram = "mjpg_streamer";
   };
 }
diff --git a/pkgs/applications/video/mlv-app/default.nix b/pkgs/applications/video/mlv-app/default.nix
index 757759b1146f3..e3bd3cbf99a26 100644
--- a/pkgs/applications/video/mlv-app/default.nix
+++ b/pkgs/applications/video/mlv-app/default.nix
@@ -58,5 +58,6 @@ mkDerivation rec {
       kiwi
     ];
     platforms = platforms.linux;
+    mainProgram = "mlvapp";
   };
 }
diff --git a/pkgs/applications/video/molotov/default.nix b/pkgs/applications/video/molotov/default.nix
index 670eef3aa3ee7..1930f06ffdb60 100644
--- a/pkgs/applications/video/molotov/default.nix
+++ b/pkgs/applications/video/molotov/default.nix
@@ -26,5 +26,6 @@ appimageTools.wrapType2 {
     license = with licenses; [ unfree ];
     maintainers = with maintainers; [ apeyroux freezeboy ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "molotov";
   };
 }
diff --git a/pkgs/applications/video/motion/default.nix b/pkgs/applications/video/motion/default.nix
index 372ace9ffa3a5..95bc378192407 100644
--- a/pkgs/applications/video/motion/default.nix
+++ b/pkgs/applications/video/motion/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     # never built on aarch64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin && stdenv.isAarch64;
+    mainProgram = "motion";
   };
 }
diff --git a/pkgs/applications/video/mov-cli/default.nix b/pkgs/applications/video/mov-cli/default.nix
index 23954a05c5aae..829c4b83778dc 100644
--- a/pkgs/applications/video/mov-cli/default.nix
+++ b/pkgs/applications/video/mov-cli/default.nix
@@ -35,5 +35,6 @@ python3.pkgs.buildPythonPackage rec {
     description = "A cli tool to browse and watch movies";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ baitinq ];
+    mainProgram = "mov-cli";
   };
 }
diff --git a/pkgs/applications/video/mpc-qt/default.nix b/pkgs/applications/video/mpc-qt/default.nix
index 372bc52044e70..73fab758d75ef 100644
--- a/pkgs/applications/video/mpc-qt/default.nix
+++ b/pkgs/applications/video/mpc-qt/default.nix
@@ -24,5 +24,6 @@ mkDerivation rec {
     platforms = platforms.unix;
     broken = stdenv.isDarwin;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "mpc-qt";
   };
 }
diff --git a/pkgs/applications/video/olive-editor/default.nix b/pkgs/applications/video/olive-editor/default.nix
index 5daac65313e82..f23ed20c797be 100644
--- a/pkgs/applications/video/olive-editor/default.nix
+++ b/pkgs/applications/video/olive-editor/default.nix
@@ -79,5 +79,6 @@ stdenv.mkDerivation {
     platforms = platforms.unix;
     # never built on aarch64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin && stdenv.isAarch64;
+    mainProgram = "olive-editor";
   };
 }
diff --git a/pkgs/applications/video/open-in-mpv/default.nix b/pkgs/applications/video/open-in-mpv/default.nix
index f3ac6414a7094..02c9d80a43ea8 100644
--- a/pkgs/applications/video/open-in-mpv/default.nix
+++ b/pkgs/applications/video/open-in-mpv/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     homepage = "https://github.com/Baldomo/open-in-mpv";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "open-in-mpv";
   };
 }
diff --git a/pkgs/applications/video/openshot-qt/default.nix b/pkgs/applications/video/openshot-qt/default.nix
index ec980f1bfd1be..f209c092bdc1d 100644
--- a/pkgs/applications/video/openshot-qt/default.nix
+++ b/pkgs/applications/video/openshot-qt/default.nix
@@ -80,5 +80,6 @@ mkDerivationWith python3.pkgs.buildPythonApplication rec {
     license = with licenses; gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; unix;
+    mainProgram = "openshot-qt";
   };
 }
diff --git a/pkgs/applications/video/p2pvc/default.nix b/pkgs/applications/video/p2pvc/default.nix
index f64af16709f62..ec2f0c95f8998 100644
--- a/pkgs/applications/video/p2pvc/default.nix
+++ b/pkgs/applications/video/p2pvc/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ trino ];
     platforms = with lib.platforms; linux;
+    mainProgram = "p2pvc";
   };
 }
diff --git a/pkgs/applications/video/peek/default.nix b/pkgs/applications/video/peek/default.nix
index b8dff4f1af773..105a86fbf4a7b 100644
--- a/pkgs/applications/video/peek/default.nix
+++ b/pkgs/applications/video/peek/default.nix
@@ -89,5 +89,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ puffnfresh ];
     platforms = platforms.linux;
+    mainProgram = "peek";
   };
 }
diff --git a/pkgs/applications/video/pipe-viewer/default.nix b/pkgs/applications/video/pipe-viewer/default.nix
index 18e38122f27c8..5fc574881cfbd 100644
--- a/pkgs/applications/video/pipe-viewer/default.nix
+++ b/pkgs/applications/video/pipe-viewer/default.nix
@@ -83,5 +83,6 @@ buildPerlModule rec {
     license = licenses.artistic2;
     maintainers = with maintainers; [ julm ];
     platforms = platforms.all;
+    mainProgram = "pipe-viewer";
   };
 }
diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix
index d37fc66cb0364..1b8c40e233a53 100644
--- a/pkgs/applications/video/pitivi/default.nix
+++ b/pkgs/applications/video/pitivi/default.nix
@@ -104,5 +104,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ akechishiro ];
     platforms = platforms.linux;
+    mainProgram = "pitivi";
   };
 }
diff --git a/pkgs/applications/video/plex-mpv-shim/default.nix b/pkgs/applications/video/plex-mpv-shim/default.nix
index 90f18613ca07e..2e71c4668356e 100644
--- a/pkgs/applications/video/plex-mpv-shim/default.nix
+++ b/pkgs/applications/video/plex-mpv-shim/default.nix
@@ -47,5 +47,6 @@ buildPythonApplication rec {
     maintainers = with maintainers; [ devusb ];
     license = licenses.mit;
     platforms = platforms.linux;
+    mainProgram = "plex-mpv-shim";
   };
 }
diff --git a/pkgs/applications/video/popcorntime/default.nix b/pkgs/applications/video/popcorntime/default.nix
index a121717729669..9e5a14d4983c3 100644
--- a/pkgs/applications/video/popcorntime/default.nix
+++ b/pkgs/applications/video/popcorntime/default.nix
@@ -89,5 +89,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.gpl3;
     maintainers = with maintainers; [ onny ];
+    mainProgram = "popcorntime";
   };
 }
diff --git a/pkgs/applications/video/prism/default.nix b/pkgs/applications/video/prism/default.nix
index 8fa0c7b03762c..68ef965ec1ab1 100644
--- a/pkgs/applications/video/prism/default.nix
+++ b/pkgs/applications/video/prism/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/muesli/prism";
     license = licenses.mit;
     maintainers = with maintainers; [ paperdigits ];
+    mainProgram = "prism";
   };
 }
diff --git a/pkgs/applications/video/qarte/default.nix b/pkgs/applications/video/qarte/default.nix
index be2ac3c7413c1..e237a1c641a92 100644
--- a/pkgs/applications/video/qarte/default.nix
+++ b/pkgs/applications/video/qarte/default.nix
@@ -42,5 +42,6 @@ in mkDerivation {
     license = licenses.gpl3;
     maintainers = with maintainers; [ vbgl ];
     platforms = platforms.linux;
+    mainProgram = "qarte";
   };
 }
diff --git a/pkgs/applications/video/qmediathekview/default.nix b/pkgs/applications/video/qmediathekview/default.nix
index e37a8b1ed4ae0..3596791034979 100644
--- a/pkgs/applications/video/qmediathekview/default.nix
+++ b/pkgs/applications/video/qmediathekview/default.nix
@@ -38,5 +38,6 @@ mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ dotlambda ];
     broken = stdenv.isAarch64;
+    mainProgram = "QMediathekView";
   };
 }
diff --git a/pkgs/applications/video/qstopmotion/default.nix b/pkgs/applications/video/qstopmotion/default.nix
index 469ba5b8eaa60..3172c4bb43435 100644
--- a/pkgs/applications/video/qstopmotion/default.nix
+++ b/pkgs/applications/video/qstopmotion/default.nix
@@ -81,5 +81,6 @@ mkDerivation rec {
     maintainers = [ maintainers.leenaars ];
     broken = stdenv.isAarch64;
     platforms = lib.platforms.gnu ++ lib.platforms.linux;
+    mainProgram = "qstopmotion";
   };
 }
diff --git a/pkgs/applications/video/recapp/default.nix b/pkgs/applications/video/recapp/default.nix
index 1e644ff9f4172..c15a0680a9333 100644
--- a/pkgs/applications/video/recapp/default.nix
+++ b/pkgs/applications/video/recapp/default.nix
@@ -77,5 +77,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/amikha1lov/RecApp";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "recapp";
   };
 }
diff --git a/pkgs/applications/video/screenkey/default.nix b/pkgs/applications/video/screenkey/default.nix
index 83ebf1db9b4e0..90cf5e7dcf247 100644
--- a/pkgs/applications/video/screenkey/default.nix
+++ b/pkgs/applications/video/screenkey/default.nix
@@ -64,5 +64,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.rasendubi ];
+    mainProgram = "screenkey";
   };
 }
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 5abc6c47a1346..efa7782891ceb 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -93,5 +93,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ goibhniu woffs peti ];
     platforms = platforms.linux;
+    mainProgram = "shotcut";
   };
 }
diff --git a/pkgs/applications/video/srtrelay/default.nix b/pkgs/applications/video/srtrelay/default.nix
index 43901d1524adf..8640424be1e95 100644
--- a/pkgs/applications/video/srtrelay/default.nix
+++ b/pkgs/applications/video/srtrelay/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/voc/srtrelay";
     license = licenses.mit;
     maintainers = with maintainers; [ fpletz ];
+    mainProgram = "srtrelay";
   };
 }
diff --git a/pkgs/applications/video/sub-batch/default.nix b/pkgs/applications/video/sub-batch/default.nix
index 9455f6d1a1e41..bc0d6bd3a6cb4 100644
--- a/pkgs/applications/video/sub-batch/default.nix
+++ b/pkgs/applications/video/sub-batch/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ erictapen ];
     broken = stdenv.isDarwin;
+    mainProgram = "sub-batch";
   };
 }
diff --git a/pkgs/applications/video/subdl/default.nix b/pkgs/applications/video/subdl/default.nix
index 95f7be2cbcafe..773d1f1ad4237 100644
--- a/pkgs/applications/video/subdl/default.nix
+++ b/pkgs/applications/video/subdl/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     platforms = lib.platforms.all;
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.exfalso ];
+    mainProgram = "subdl";
   };
 }
diff --git a/pkgs/applications/video/subtitleeditor/default.nix b/pkgs/applications/video/subtitleeditor/default.nix
index 56d830a2ac76d..fd8e03963dca0 100644
--- a/pkgs/applications/video/subtitleeditor/default.nix
+++ b/pkgs/applications/video/subtitleeditor/default.nix
@@ -59,5 +59,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.plcplc ];
+    mainProgram = "subtitleeditor";
   };
 }
diff --git a/pkgs/applications/video/tartube/default.nix b/pkgs/applications/video/tartube/default.nix
index 859cd8e8cc365..b1b05a524f74f 100644
--- a/pkgs/applications/video/tartube/default.nix
+++ b/pkgs/applications/video/tartube/default.nix
@@ -74,5 +74,6 @@ python3Packages.buildPythonApplication rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ mkg20001 luc65r ];
     homepage = "https://tartube.sourceforge.io/";
+    mainProgram = "tartube";
   };
 }
diff --git a/pkgs/applications/video/timelens/default.nix b/pkgs/applications/video/timelens/default.nix
index 05455b0f84f79..bd38a4c2f76af 100644
--- a/pkgs/applications/video/timelens/default.nix
+++ b/pkgs/applications/video/timelens/default.nix
@@ -41,5 +41,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/timelens/timelens/blob/${src.rev}/CHANGELOG.md";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ janik ];
+    mainProgram = "timelens";
   };
 }
diff --git a/pkgs/applications/video/uvccapture/default.nix b/pkgs/applications/video/uvccapture/default.nix
index be0a7fcd2416e..96e42b1a7f95a 100644
--- a/pkgs/applications/video/uvccapture/default.nix
+++ b/pkgs/applications/video/uvccapture/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "uvccapture";
   };
 }
diff --git a/pkgs/applications/video/vcs/default.nix b/pkgs/applications/video/vcs/default.nix
index 37ea20718fd6e..e21e3a98f1f7f 100644
--- a/pkgs/applications/video/vcs/default.nix
+++ b/pkgs/applications/video/vcs/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation {
     license = licenses.cc-by-nc-sa-30;
     maintainers = with maintainers; [ elitak ];
     platforms = with platforms; unix;
+    mainProgram = "vcs";
   };
 }
diff --git a/pkgs/applications/video/video-trimmer/default.nix b/pkgs/applications/video/video-trimmer/default.nix
index d61f30de1be57..d3d55d2cb4a6b 100644
--- a/pkgs/applications/video/video-trimmer/default.nix
+++ b/pkgs/applications/video/video-trimmer/default.nix
@@ -73,5 +73,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with maintainers; [ doronbehar ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "video-trimmer";
   };
 })
diff --git a/pkgs/applications/video/vivictpp/default.nix b/pkgs/applications/video/vivictpp/default.nix
index 13f3564fa0d08..9b8a8773b1b4b 100644
--- a/pkgs/applications/video/vivictpp/default.nix
+++ b/pkgs/applications/video/vivictpp/default.nix
@@ -69,5 +69,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ tilpner ];
+    mainProgram = "vivictpp";
   };
 }
diff --git a/pkgs/applications/video/vokoscreen-ng/default.nix b/pkgs/applications/video/vokoscreen-ng/default.nix
index 6f445da73d38a..15d59af318fbe 100644
--- a/pkgs/applications/video/vokoscreen-ng/default.nix
+++ b/pkgs/applications/video/vokoscreen-ng/default.nix
@@ -69,5 +69,6 @@ mkDerivation rec {
     homepage = "https://github.com/vkohaupt/vokoscreenNG";
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "vokoscreenNG";
   };
 }
diff --git a/pkgs/applications/video/vokoscreen/default.nix b/pkgs/applications/video/vokoscreen/default.nix
index 82c23b4892e43..cb0df69ee2c53 100644
--- a/pkgs/applications/video/vokoscreen/default.nix
+++ b/pkgs/applications/video/vokoscreen/default.nix
@@ -53,5 +53,6 @@ mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.league ];
     platforms = platforms.linux;
+    mainProgram = "vokoscreen";
   };
 }
diff --git a/pkgs/applications/video/w_scan/default.nix b/pkgs/applications/video/w_scan/default.nix
index 1a8c6f2d3adbe..4dedf71d39bf2 100644
--- a/pkgs/applications/video/w_scan/default.nix
+++ b/pkgs/applications/video/w_scan/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.nico202 ] ;
     license = lib.licenses.gpl2;
+    mainProgram = "w_scan";
   };
 }
diff --git a/pkgs/applications/video/w_scan2/default.nix b/pkgs/applications/video/w_scan2/default.nix
index 26202ee18bc23..b1a4c907c0dbc 100644
--- a/pkgs/applications/video/w_scan2/default.nix
+++ b/pkgs/applications/video/w_scan2/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ _0x4A6F ] ;
     license = lib.licenses.gpl2Only;
+    mainProgram = "w_scan2";
   };
 }
diff --git a/pkgs/applications/video/webcamoid/default.nix b/pkgs/applications/video/webcamoid/default.nix
index b8d7e7b6bfed2..799e68bf072e6 100644
--- a/pkgs/applications/video/webcamoid/default.nix
+++ b/pkgs/applications/video/webcamoid/default.nix
@@ -31,5 +31,6 @@ mkDerivation rec {
     license = [ licenses.gpl3Plus ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ robaca ];
+    mainProgram = "webcamoid";
   };
 }
diff --git a/pkgs/applications/video/webtorrent_desktop/default.nix b/pkgs/applications/video/webtorrent_desktop/default.nix
index 925fa38a199aa..75a8d9f5c639f 100644
--- a/pkgs/applications/video/webtorrent_desktop/default.nix
+++ b/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -57,6 +57,7 @@ buildNpmPackage {
     homepage = "https://webtorrent.io/desktop";
     license = licenses.mit;
     maintainers = [ maintainers.bendlas ];
+    mainProgram = "WebTorrent";
   };
 
 }
diff --git a/pkgs/applications/video/wf-recorder/default.nix b/pkgs/applications/video/wf-recorder/default.nix
index 8799455834a95..56a85517eb0a1 100644
--- a/pkgs/applications/video/wf-recorder/default.nix
+++ b/pkgs/applications/video/wf-recorder/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ yuka ];
     platforms = platforms.linux;
+    mainProgram = "wf-recorder";
   };
 }
diff --git a/pkgs/applications/video/xscast/default.nix b/pkgs/applications/video/xscast/default.nix
index f3b44bf7c6aa4..4e7252a514f88 100644
--- a/pkgs/applications/video/xscast/default.nix
+++ b/pkgs/applications/video/xscast/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     description = "Screencasts of windows with list of keystrokes overlayed";
     maintainers = with maintainers; [ ];
+    mainProgram = "xscast";
   };
 }
diff --git a/pkgs/applications/video/youtube-tui/default.nix b/pkgs/applications/video/youtube-tui/default.nix
index e0ede1f1e704c..bfa1039d5d330 100644
--- a/pkgs/applications/video/youtube-tui/default.nix
+++ b/pkgs/applications/video/youtube-tui/default.nix
@@ -52,5 +52,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://siriusmart.github.io/youtube-tui";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Ruixi-rebirth ];
+    mainProgram = "youtube-tui";
   };
 }
diff --git a/pkgs/applications/video/yuview/default.nix b/pkgs/applications/video/yuview/default.nix
index 7df47d3f42562..a6c7ad6ceb869 100644
--- a/pkgs/applications/video/yuview/default.nix
+++ b/pkgs/applications/video/yuview/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ leixb ];
     platforms = platforms.unix;
+    mainProgram = "YUView";
   };
 }
diff --git a/pkgs/applications/virtualization/buildkit-nix/default.nix b/pkgs/applications/virtualization/buildkit-nix/default.nix
index 3e7027f9dfd91..df354c08f4141 100644
--- a/pkgs/applications/virtualization/buildkit-nix/default.nix
+++ b/pkgs/applications/virtualization/buildkit-nix/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ lesuisse ];
+    mainProgram = "buildkit-nix";
   };
 }
diff --git a/pkgs/applications/virtualization/catatonit/default.nix b/pkgs/applications/virtualization/catatonit/default.nix
index 5b66a59e5850f..f7b2b973ab579 100644
--- a/pkgs/applications/virtualization/catatonit/default.nix
+++ b/pkgs/applications/virtualization/catatonit/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ erosennin ] ++ teams.podman.members;
     platforms = platforms.linux;
+    mainProgram = "catatonit";
   };
 }
diff --git a/pkgs/applications/virtualization/cntr/default.nix b/pkgs/applications/virtualization/cntr/default.nix
index e95e404f82f83..3cfd905bc5601 100644
--- a/pkgs/applications/virtualization/cntr/default.nix
+++ b/pkgs/applications/virtualization/cntr/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.mic92 ];
+    mainProgram = "cntr";
   };
 }
diff --git a/pkgs/applications/virtualization/colima/default.nix b/pkgs/applications/virtualization/colima/default.nix
index 3c4281d8e734f..f096b59efc996 100644
--- a/pkgs/applications/virtualization/colima/default.nix
+++ b/pkgs/applications/virtualization/colima/default.nix
@@ -68,5 +68,6 @@ buildGoModule rec {
     homepage = "https://github.com/abiosoft/colima";
     license = licenses.mit;
     maintainers = with maintainers; [ aaschmid tricktron ];
+    mainProgram = "colima";
   };
 }
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index d0eceae70525a..f929bac673c2e 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ ] ++ teams.podman.members;
     platforms = platforms.linux;
+    mainProgram = "conmon";
   };
 }
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index 6b513dae9e1e9..a2824004a153c 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -80,5 +80,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ] ++ teams.podman.members;
+    mainProgram = "crun";
   };
 }
diff --git a/pkgs/applications/virtualization/dumb-init/default.nix b/pkgs/applications/virtualization/dumb-init/default.nix
index ee61a1bafacca..6c22a5ec12982 100644
--- a/pkgs/applications/virtualization/dumb-init/default.nix
+++ b/pkgs/applications/virtualization/dumb-init/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.linux;
+    mainProgram = "dumb-init";
   };
 }
diff --git a/pkgs/applications/virtualization/firectl/default.nix b/pkgs/applications/virtualization/firectl/default.nix
index 66ab59e58bd87..de0d3cd4131f8 100644
--- a/pkgs/applications/virtualization/firectl/default.nix
+++ b/pkgs/applications/virtualization/firectl/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ xrelkd ];
+    mainProgram = "firectl";
   };
 }
diff --git a/pkgs/applications/virtualization/krunvm/default.nix b/pkgs/applications/virtualization/krunvm/default.nix
index 5f365f5c62963..0c2c4d0d0df87 100644
--- a/pkgs/applications/virtualization/krunvm/default.nix
+++ b/pkgs/applications/virtualization/krunvm/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
     platforms = libkrun.meta.platforms;
+    mainProgram = "krunvm";
   };
 }
diff --git a/pkgs/applications/virtualization/nixpacks/default.nix b/pkgs/applications/virtualization/nixpacks/default.nix
index e35a5d16a49df..a896829356b1f 100644
--- a/pkgs/applications/virtualization/nixpacks/default.nix
+++ b/pkgs/applications/virtualization/nixpacks/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/railwayapp/nixpacks";
     license = licenses.mit;
     maintainers = [ maintainers.zoedsoupe ];
+    mainProgram = "nixpacks";
   };
 }
diff --git a/pkgs/applications/virtualization/ops/default.nix b/pkgs/applications/virtualization/ops/default.nix
index 56829737ead90..1181d12c9aecf 100644
--- a/pkgs/applications/virtualization/ops/default.nix
+++ b/pkgs/applications/virtualization/ops/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "ops";
   };
 }
diff --git a/pkgs/applications/virtualization/podman-compose/default.nix b/pkgs/applications/virtualization/podman-compose/default.nix
index df73860dda8bf..8671617a40431 100644
--- a/pkgs/applications/virtualization/podman-compose/default.nix
+++ b/pkgs/applications/virtualization/podman-compose/default.nix
@@ -19,5 +19,6 @@ buildPythonApplication rec {
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.sikmir ] ++ lib.teams.podman.members;
+    mainProgram = "podman-compose";
   };
 }
diff --git a/pkgs/applications/virtualization/podman-desktop/default.nix b/pkgs/applications/virtualization/podman-desktop/default.nix
index 7a5bc71ce85c8..80c013becb405 100644
--- a/pkgs/applications/virtualization/podman-desktop/default.nix
+++ b/pkgs/applications/virtualization/podman-desktop/default.nix
@@ -116,5 +116,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.asl20;
     maintainers = with maintainers; [ panda2134 ];
     inherit (electron.meta) platforms;
+    mainProgram = "podman-desktop";
   };
 })
diff --git a/pkgs/applications/virtualization/podman-tui/default.nix b/pkgs/applications/virtualization/podman-tui/default.nix
index e5d5eb9309820..3372ea695ef47 100644
--- a/pkgs/applications/virtualization/podman-tui/default.nix
+++ b/pkgs/applications/virtualization/podman-tui/default.nix
@@ -45,5 +45,6 @@ buildGoModule rec {
     description = "Podman Terminal UI";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "podman-tui";
   };
 }
diff --git a/pkgs/applications/virtualization/pods/default.nix b/pkgs/applications/virtualization/pods/default.nix
index 1e50f157adcf4..698dd5b86959c 100644
--- a/pkgs/applications/virtualization/pods/default.nix
+++ b/pkgs/applications/virtualization/pods/default.nix
@@ -63,5 +63,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
     platforms = platforms.linux;
+    mainProgram = "pods";
   };
 }
diff --git a/pkgs/applications/virtualization/qtemu/default.nix b/pkgs/applications/virtualization/qtemu/default.nix
index 9568a0bb695c2..d8fda62ccf904 100644
--- a/pkgs/applications/virtualization/qtemu/default.nix
+++ b/pkgs/applications/virtualization/qtemu/default.nix
@@ -41,5 +41,6 @@ mkDerivation rec {
     license = licenses.gpl2;
     platforms = with platforms; linux;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "qtemu";
   };
 }
diff --git a/pkgs/applications/virtualization/remotebox/default.nix b/pkgs/applications/virtualization/remotebox/default.nix
index fa4f105f6e838..3e7c50690896e 100644
--- a/pkgs/applications/virtualization/remotebox/default.nix
+++ b/pkgs/applications/virtualization/remotebox/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
       client which is able to manage a VirtualBox server installation.
     '';
     platforms = platforms.all;
+    mainProgram = "remotebox";
   };
 }
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index 67edd6887c90a..a17c5753981fa 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -56,5 +56,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ offline ] ++ teams.podman.members;
     platforms = platforms.linux;
+    mainProgram = "runc";
   };
 }
diff --git a/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix b/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix
index 67ea1e07b9088..286a521be0541 100644
--- a/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix
+++ b/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix
@@ -67,5 +67,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ astro ];
     platforms = [ "x86_64-none" ];
+    mainProgram = "hypervisor-fw";
   };
 }
diff --git a/pkgs/applications/virtualization/rvvm/default.nix b/pkgs/applications/virtualization/rvvm/default.nix
index b1b03d09680fa..b6eaea8d75978 100644
--- a/pkgs/applications/virtualization/rvvm/default.nix
+++ b/pkgs/applications/virtualization/rvvm/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl3 /* or */ mpl20 ];
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ ];
+    mainProgram = "rvvm";
   };
 }
diff --git a/pkgs/applications/virtualization/stratovirt/default.nix b/pkgs/applications/virtualization/stratovirt/default.nix
index 75641547ad2e2..d927c8430a1ec 100644
--- a/pkgs/applications/virtualization/stratovirt/default.nix
+++ b/pkgs/applications/virtualization/stratovirt/default.nix
@@ -41,5 +41,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mulan-psl2;
     maintainers = with maintainers; [ astro ];
     platforms = [ "aarch64-linux" "x86_64-linux" ];
+    mainProgram = "stratovirt";
   };
 }
diff --git a/pkgs/applications/virtualization/tini/default.nix b/pkgs/applications/virtualization/tini/default.nix
index 2df0978b0d0aa..9eeb8134f5958 100644
--- a/pkgs/applications/virtualization/tini/default.nix
+++ b/pkgs/applications/virtualization/tini/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/krallin/tini";
     license = licenses.mit;
     platforms = platforms.linux;
+    mainProgram = "tini";
   };
 }
diff --git a/pkgs/applications/virtualization/toolbox/default.nix b/pkgs/applications/virtualization/toolbox/default.nix
index 94928ff357339..75b7f41c7e78b 100644
--- a/pkgs/applications/virtualization/toolbox/default.nix
+++ b/pkgs/applications/virtualization/toolbox/default.nix
@@ -47,5 +47,6 @@ buildGoModule rec {
     description = "Tool for containerized command line environments on Linux";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
+    mainProgram = "toolbox";
   };
 }
diff --git a/pkgs/applications/virtualization/umoci/default.nix b/pkgs/applications/virtualization/umoci/default.nix
index 627817139c8c4..5dc9ae5028e80 100644
--- a/pkgs/applications/virtualization/umoci/default.nix
+++ b/pkgs/applications/virtualization/umoci/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://umo.ci";
     license = licenses.asl20;
     maintainers = with maintainers; [ zokrezyl ];
+    mainProgram = "umoci";
   };
 }
diff --git a/pkgs/applications/virtualization/virt-top/default.nix b/pkgs/applications/virtualization/virt-top/default.nix
index dc6f79d6a7e55..5ad60bf7d080f 100644
--- a/pkgs/applications/virtualization/virt-top/default.nix
+++ b/pkgs/applications/virtualization/virt-top/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = [ ];
     platforms = platforms.linux;
+    mainProgram = "virt-top";
   };
 }
diff --git a/pkgs/applications/virtualization/virt-what/default.nix b/pkgs/applications/virtualization/virt-what/default.nix
index 18d65480138c2..e11b265a9e3c0 100644
--- a/pkgs/applications/virtualization/virt-what/default.nix
+++ b/pkgs/applications/virtualization/virt-what/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ fpletz ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "virt-what";
   };
 }
diff --git a/pkgs/applications/virtualization/virter/default.nix b/pkgs/applications/virtualization/virter/default.nix
index 6a0b94999000f..01cfe07da8ab6 100644
--- a/pkgs/applications/virtualization/virter/default.nix
+++ b/pkgs/applications/virtualization/virter/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     homepage = "https://github.com/LINBIT/virter";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ dit7ya ];
+    mainProgram = "virter";
   };
 }
diff --git a/pkgs/applications/virtualization/x11docker/default.nix b/pkgs/applications/virtualization/x11docker/default.nix
index f6612f3d9aea3..840c9d648b941 100644
--- a/pkgs/applications/virtualization/x11docker/default.nix
+++ b/pkgs/applications/virtualization/x11docker/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
+    mainProgram = "x11docker";
   };
 }
diff --git a/pkgs/applications/virtualization/youki/default.nix b/pkgs/applications/virtualization/youki/default.nix
index a179b4568a7f6..93355b74b4726 100644
--- a/pkgs/applications/virtualization/youki/default.nix
+++ b/pkgs/applications/virtualization/youki/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.asl20;
     maintainers = [];
     platforms = platforms.linux;
+    mainProgram = "youki";
   };
 }
diff --git a/pkgs/applications/window-managers/cagebreak/default.nix b/pkgs/applications/window-managers/cagebreak/default.nix
index 1f07da0a7bc4c..f070b1fd062c7 100644
--- a/pkgs/applications/window-managers/cagebreak/default.nix
+++ b/pkgs/applications/window-managers/cagebreak/default.nix
@@ -87,6 +87,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ berbiche ];
     platforms = platforms.linux;
     changelog = "https://github.com/project-repo/cagebreak/blob/${version}/Changelog.md";
+    mainProgram = "cagebreak";
   };
 
   passthru.tests.basic = nixosTests.cagebreak;
diff --git a/pkgs/applications/window-managers/cwm/default.nix b/pkgs/applications/window-managers/cwm/default.nix
index ac5353daeb23d..5560a04dcd61f 100644
--- a/pkgs/applications/window-managers/cwm/default.nix
+++ b/pkgs/applications/window-managers/cwm/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ _0x4A6F mkf ];
     license     = licenses.isc;
     platforms   = platforms.linux;
+    mainProgram = "cwm";
   };
 }
diff --git a/pkgs/applications/window-managers/dwl/default.nix b/pkgs/applications/window-managers/dwl/default.nix
index e4578319ee077..dc2f58b1d3a8f 100644
--- a/pkgs/applications/window-managers/dwl/default.nix
+++ b/pkgs/applications/window-managers/dwl/default.nix
@@ -92,6 +92,7 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl3Only;
     maintainers = [ lib.maintainers.AndersonTorres ];
     inherit (wayland.meta) platforms;
+    mainProgram = "dwl";
   };
 })
 # TODO: custom patches from upstream website
diff --git a/pkgs/applications/window-managers/dwm/default.nix b/pkgs/applications/window-managers/dwm/default.nix
index a097900707727..24b011040ae4e 100644
--- a/pkgs/applications/window-managers/dwm/default.nix
+++ b/pkgs/applications/window-managers/dwm/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ viric neonfuz ];
     platforms = platforms.all;
+    mainProgram = "dwm";
   };
 }
diff --git a/pkgs/applications/window-managers/evilwm/default.nix b/pkgs/applications/window-managers/evilwm/default.nix
index 0855e512fd8ee..0578be8ed6c78 100644
--- a/pkgs/applications/window-managers/evilwm/default.nix
+++ b/pkgs/applications/window-managers/evilwm/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     }; # like BSD/MIT, but Share-Alike'y; See README.
     maintainers = with maintainers; [ amiloradovsky ];
     platforms = platforms.all;
+    mainProgram = "evilwm";
   };
 }
diff --git a/pkgs/applications/window-managers/fbpanel/default.nix b/pkgs/applications/window-managers/fbpanel/default.nix
index d056005e8f523..addebf13ec653 100644
--- a/pkgs/applications/window-managers/fbpanel/default.nix
+++ b/pkgs/applications/window-managers/fbpanel/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     license = licenses.mit;
+    mainProgram = "fbpanel";
   };
 
   passthru = {
diff --git a/pkgs/applications/window-managers/gamescope/default.nix b/pkgs/applications/window-managers/gamescope/default.nix
index e9edd10b25394..99ecf86e20a1b 100644
--- a/pkgs/applications/window-managers/gamescope/default.nix
+++ b/pkgs/applications/window-managers/gamescope/default.nix
@@ -130,5 +130,6 @@ stdenv.mkDerivation {
     license = licenses.bsd2;
     maintainers = with maintainers; [ nrdxp pedrohlc Scrumplex zhaofengli ];
     platforms = platforms.linux;
+    mainProgram = "gamescope";
   };
 }
diff --git a/pkgs/applications/window-managers/jay/default.nix b/pkgs/applications/window-managers/jay/default.nix
index 1b58fa0f2c89b..6718caf1ada23 100644
--- a/pkgs/applications/window-managers/jay/default.nix
+++ b/pkgs/applications/window-managers/jay/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "jay";
   };
 }
diff --git a/pkgs/applications/window-managers/jwm/default.nix b/pkgs/applications/window-managers/jwm/default.nix
index 18df9da344d41..9456449405a85 100644
--- a/pkgs/applications/window-managers/jwm/default.nix
+++ b/pkgs/applications/window-managers/jwm/default.nix
@@ -79,5 +79,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.romildo ];
+    mainProgram = "jwm";
   };
 }
diff --git a/pkgs/applications/window-managers/kbdd/default.nix b/pkgs/applications/window-managers/kbdd/default.nix
index 2fbc37d8e7eb7..0692780a549d4 100644
--- a/pkgs/applications/window-managers/kbdd/default.nix
+++ b/pkgs/applications/window-managers/kbdd/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
     maintainers = [ ];
+    mainProgram = "kbdd";
   };
 }
diff --git a/pkgs/applications/window-managers/lemonbar/default.nix b/pkgs/applications/window-managers/lemonbar/default.nix
index 0d8436dcb3ed2..d5763a0489f1a 100644
--- a/pkgs/applications/window-managers/lemonbar/default.nix
+++ b/pkgs/applications/window-managers/lemonbar/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ meisternu moni ];
     license = licenses.mit;
     platforms = platforms.linux;
+    mainProgram = "lemonbar";
   };
 }
diff --git a/pkgs/applications/window-managers/lesbar/default.nix b/pkgs/applications/window-managers/lesbar/default.nix
index 791f61c4670aa..553e79f9e6dc7 100644
--- a/pkgs/applications/window-managers/lesbar/default.nix
+++ b/pkgs/applications/window-managers/lesbar/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.mit;
     maintainers = with maintainers; [ jpentland ];
     platforms = platforms.linux;
+    mainProgram = "lesbar";
   };
 })
diff --git a/pkgs/applications/window-managers/lwm/default.nix b/pkgs/applications/window-managers/lwm/default.nix
index cf1088c822311..1a2e388bdc349 100644
--- a/pkgs/applications/window-managers/lwm/default.nix
+++ b/pkgs/applications/window-managers/lwm/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
+    mainProgram = "lwm";
   };
 }
diff --git a/pkgs/applications/window-managers/mlvwm/default.nix b/pkgs/applications/window-managers/mlvwm/default.nix
index 49133ef5344ff..e2986159b20a7 100644
--- a/pkgs/applications/window-managers/mlvwm/default.nix
+++ b/pkgs/applications/window-managers/mlvwm/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     '';
     platforms = platforms.linux;
     maintainers = [ maintainers.j0hax ];
+    mainProgram = "mlvwm";
   };
 }
diff --git a/pkgs/applications/window-managers/neocomp/default.nix b/pkgs/applications/window-managers/neocomp/default.nix
index 36e6322462da1..bb6615b708609 100644
--- a/pkgs/applications/window-managers/neocomp/default.nix
+++ b/pkgs/applications/window-managers/neocomp/default.nix
@@ -84,5 +84,6 @@ stdenv.mkDerivation rec {
       for X11, focused on delivering frames from the window to the
       framebuffer as quickly as possible.
     '';
+    mainProgram = "neocomp";
   };
 }
diff --git a/pkgs/applications/window-managers/nimdow/default.nix b/pkgs/applications/window-managers/nimdow/default.nix
index 3d54d8f8de58e..47370d884cdcb 100644
--- a/pkgs/applications/window-managers/nimdow/default.nix
+++ b/pkgs/applications/window-managers/nimdow/default.nix
@@ -32,5 +32,6 @@ nimPackages.buildNimPackage rec {
       description = "Nim based tiling window manager";
       license = [ licenses.gpl2 ];
       maintainers = [ maintainers.marcusramberg ];
+      mainProgram = "nimdow";
     };
 }
diff --git a/pkgs/applications/window-managers/phosh/default.nix b/pkgs/applications/window-managers/phosh/default.nix
index 6f323b963e4c4..554132752c86c 100644
--- a/pkgs/applications/window-managers/phosh/default.nix
+++ b/pkgs/applications/window-managers/phosh/default.nix
@@ -138,5 +138,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ masipcat tomfitzhenry zhaofengli ];
     platforms = platforms.linux;
+    mainProgram = "phosh-session";
   };
 }
diff --git a/pkgs/applications/window-managers/sommelier/default.nix b/pkgs/applications/window-managers/sommelier/default.nix
index 4df306eec9c0a..12c2e5da1b984 100644
--- a/pkgs/applications/window-managers/sommelier/default.nix
+++ b/pkgs/applications/window-managers/sommelier/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ qyliss ];
     license = licenses.bsd3;
     platforms = platforms.linux;
+    mainProgram = "sommelier";
   };
 }
diff --git a/pkgs/applications/window-managers/stalonetray/default.nix b/pkgs/applications/window-managers/stalonetray/default.nix
index 5cd0f7569caa8..45160d65dbc65 100644
--- a/pkgs/applications/window-managers/stalonetray/default.nix
+++ b/pkgs/applications/window-managers/stalonetray/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ raskin ];
+    mainProgram = "stalonetray";
   };
 }
diff --git a/pkgs/applications/window-managers/stumpish/default.nix b/pkgs/applications/window-managers/stumpish/default.nix
index c5c3d9db783e9..c776e66da886e 100644
--- a/pkgs/applications/window-managers/stumpish/default.nix
+++ b/pkgs/applications/window-managers/stumpish/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
+    mainProgram = "stumpish";
   };
 }
diff --git a/pkgs/applications/window-managers/tinywl/default.nix b/pkgs/applications/window-managers/tinywl/default.nix
index 84defaa98bed4..c0b147e6ee585 100644
--- a/pkgs/applications/window-managers/tinywl/default.nix
+++ b/pkgs/applications/window-managers/tinywl/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ qyliss ] ++ wlroots.meta.maintainers;
     license = licenses.cc0;
     inherit (wlroots.meta) platforms;
+    mainProgram = "tinywl";
   };
 }
diff --git a/pkgs/applications/window-managers/trayer/default.nix b/pkgs/applications/window-managers/trayer/default.nix
index 57cf0fc93fac1..60984987ab62e 100644
--- a/pkgs/applications/window-managers/trayer/default.nix
+++ b/pkgs/applications/window-managers/trayer/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
     description = "A lightweight GTK2-based systray for UNIX desktop";
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "trayer";
   };
 }
 
diff --git a/pkgs/applications/window-managers/vwm/default.nix b/pkgs/applications/window-managers/vwm/default.nix
index b0b40afc9e4cb..7cba387369c7a 100644
--- a/pkgs/applications/window-managers/vwm/default.nix
+++ b/pkgs/applications/window-managers/vwm/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "vwm";
   };
 }
diff --git a/pkgs/applications/window-managers/windowlab/default.nix b/pkgs/applications/window-managers/windowlab/default.nix
index f4fea3f434c3c..80900d0639b1a 100644
--- a/pkgs/applications/window-managers/windowlab/default.nix
+++ b/pkgs/applications/window-managers/windowlab/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation {
       license     = licenses.gpl2;
       maintainers = with maintainers; [ ehmry ];
       platforms   = platforms.linux;
+      mainProgram = "windowlab";
     };
 }
diff --git a/pkgs/applications/window-managers/wmderland/default.nix b/pkgs/applications/window-managers/wmderland/default.nix
index c0fcdd859b21f..322906d5657fa 100644
--- a/pkgs/applications/window-managers/wmderland/default.nix
+++ b/pkgs/applications/window-managers/wmderland/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = libX11.meta.platforms;
     maintainers = with maintainers; [ takagiy ];
+    mainProgram = "wmderland";
   };
 }
diff --git a/pkgs/applications/window-managers/wmderlandc/default.nix b/pkgs/applications/window-managers/wmderlandc/default.nix
index f439833e547af..45170ab0d15a2 100644
--- a/pkgs/applications/window-managers/wmderlandc/default.nix
+++ b/pkgs/applications/window-managers/wmderlandc/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ takagiy ];
+    mainProgram = "wmderlandc";
   };
 })
diff --git a/pkgs/applications/window-managers/wmfs/default.nix b/pkgs/applications/window-managers/wmfs/default.nix
index eaafac71b6c18..6c850278b337f 100644
--- a/pkgs/applications/window-managers/wmfs/default.nix
+++ b/pkgs/applications/window-managers/wmfs/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation {
     license = licenses.bsd2;
     maintainers = [ maintainers.balsoft ];
     platforms = platforms.linux;
+    mainProgram = "wmfs";
   };
 }
diff --git a/pkgs/applications/window-managers/x-create-mouse-void/default.nix b/pkgs/applications/window-managers/x-create-mouse-void/default.nix
index d0241a296ad65..86ae59a6152ca 100644
--- a/pkgs/applications/window-managers/x-create-mouse-void/default.nix
+++ b/pkgs/applications/window-managers/x-create-mouse-void/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ eigengrau ];
+    mainProgram = "x-create-mouse-void";
   };
 }
diff --git a/pkgs/applications/window-managers/yabar/build.nix b/pkgs/applications/window-managers/yabar/build.nix
index 207e3a83ab2b3..d66c905fea90b 100644
--- a/pkgs/applications/window-managers/yabar/build.nix
+++ b/pkgs/applications/window-managers/yabar/build.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation {
     license     = licenses.mit;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "yabar";
   };
 }