about summary refs log tree commit diff
diff options
context:
space:
mode:
authorh7x4 <h7x4@nani.wtf>2024-02-11 03:19:15 +0100
committerh7x4 <h7x4@nani.wtf>2024-02-11 03:19:15 +0100
commit8121f3559a98259a8e767dedf4eaf3939442c54d (patch)
tree1b2191384a291042e08164b668be7b29a551f05f
parent2253eb356824637e3aa49bb399f546336efeaad1 (diff)
treewide: add `mainProgram`
-rw-r--r--pkgs/applications/audio/CHOWTapeModel/default.nix1
-rw-r--r--pkgs/applications/audio/ChowKick/default.nix1
-rw-r--r--pkgs/applications/audio/aacgain/default.nix1
-rw-r--r--pkgs/applications/audio/aeolus/default.nix1
-rw-r--r--pkgs/applications/audio/aj-snapshot/default.nix1
-rw-r--r--pkgs/applications/audio/ashuffle/default.nix1
-rw-r--r--pkgs/applications/audio/aucatctl/default.nix1
-rw-r--r--pkgs/applications/audio/bitmeter/default.nix1
-rw-r--r--pkgs/applications/audio/brutefir/default.nix1
-rw-r--r--pkgs/applications/audio/calf/default.nix1
-rw-r--r--pkgs/applications/audio/cdparanoia/default.nix1
-rw-r--r--pkgs/applications/audio/chuck/default.nix1
-rw-r--r--pkgs/applications/audio/cider/default.nix1
-rw-r--r--pkgs/applications/audio/cmusfm/default.nix1
-rw-r--r--pkgs/applications/audio/codecserver/default.nix1
-rw-r--r--pkgs/applications/audio/dirt/default.nix1
-rw-r--r--pkgs/applications/audio/dolbybcsoftwaredecode/default.nix1
-rw-r--r--pkgs/applications/audio/dsf2flac/default.nix1
-rw-r--r--pkgs/applications/audio/eflite/default.nix1
-rw-r--r--pkgs/applications/audio/famistudio/default.nix1
-rw-r--r--pkgs/applications/audio/flac123/default.nix1
-rw-r--r--pkgs/applications/audio/fluidsynth/default.nix1
-rw-r--r--pkgs/applications/audio/freewheeling/default.nix1
-rw-r--r--pkgs/applications/audio/freqtweak/default.nix1
-rw-r--r--pkgs/applications/audio/ft2-clone/default.nix1
-rw-r--r--pkgs/applications/audio/furnace/default.nix1
-rw-r--r--pkgs/applications/audio/geonkick/default.nix1
-rw-r--r--pkgs/applications/audio/gigedit/default.nix1
-rw-r--r--pkgs/applications/audio/gjay/default.nix1
-rw-r--r--pkgs/applications/audio/gnaural/default.nix1
-rw-r--r--pkgs/applications/audio/headset/default.nix1
-rw-r--r--pkgs/applications/audio/helm/default.nix1
-rw-r--r--pkgs/applications/audio/hybridreverb2/default.nix1
-rw-r--r--pkgs/applications/audio/id3v2/default.nix1
-rw-r--r--pkgs/applications/audio/industrializer/default.nix1
-rw-r--r--pkgs/applications/audio/infamousPlugins/default.nix1
-rw-r--r--pkgs/applications/audio/ir.lv2/default.nix1
-rw-r--r--pkgs/applications/audio/jaaa/default.nix1
-rw-r--r--pkgs/applications/audio/jack-passthrough/default.nix1
-rw-r--r--pkgs/applications/audio/jackmeter/default.nix1
-rw-r--r--pkgs/applications/audio/japa/default.nix1
-rw-r--r--pkgs/applications/audio/jellycli/default.nix1
-rw-r--r--pkgs/applications/audio/jmusicbot/default.nix1
-rw-r--r--pkgs/applications/audio/keyfinder-cli/default.nix1
-rw-r--r--pkgs/applications/audio/klick/default.nix1
-rw-r--r--pkgs/applications/audio/klystrack/default.nix1
-rw-r--r--pkgs/applications/audio/kmetronome/default.nix1
-rw-r--r--pkgs/applications/audio/listenbrainz-mpd/default.nix1
-rw-r--r--pkgs/applications/audio/littlegptracker/default.nix1
-rw-r--r--pkgs/applications/audio/losslessaudiochecker/default.nix1
-rw-r--r--pkgs/applications/audio/luppp/default.nix1
-rw-r--r--pkgs/applications/audio/lv2bm/default.nix1
-rw-r--r--pkgs/applications/audio/lv2lint/default.nix1
-rw-r--r--pkgs/applications/audio/m4acut/default.nix1
-rw-r--r--pkgs/applications/audio/master_me/default.nix1
-rw-r--r--pkgs/applications/audio/meterbridge/default.nix1
-rw-r--r--pkgs/applications/audio/mi2ly/default.nix1
-rw-r--r--pkgs/applications/audio/mid2key/default.nix1
-rw-r--r--pkgs/applications/audio/mikmod/default.nix1
-rw-r--r--pkgs/applications/audio/milkytracker/default.nix1
-rw-r--r--pkgs/applications/audio/mmlgui/default.nix1
-rw-r--r--pkgs/applications/audio/mmtc/default.nix1
-rw-r--r--pkgs/applications/audio/moc/default.nix1
-rw-r--r--pkgs/applications/audio/mp3gain/default.nix1
-rw-r--r--pkgs/applications/audio/mp3val/default.nix1
-rw-r--r--pkgs/applications/audio/museeks/default.nix1
-rw-r--r--pkgs/applications/audio/music-player/default.nix1
-rw-r--r--pkgs/applications/audio/musly/default.nix1
-rw-r--r--pkgs/applications/audio/ncmpc/default.nix1
-rw-r--r--pkgs/applications/audio/ncpamixer/default.nix1
-rw-r--r--pkgs/applications/audio/ncspot/default.nix1
-rw-r--r--pkgs/applications/audio/ninjas2/default.nix1
-rw-r--r--pkgs/applications/audio/odin2/default.nix1
-rw-r--r--pkgs/applications/audio/open-stage-control/default.nix1
-rw-r--r--pkgs/applications/audio/openutau/default.nix1
-rw-r--r--pkgs/applications/audio/opustags/default.nix1
-rw-r--r--pkgs/applications/audio/pamix/default.nix1
-rw-r--r--pkgs/applications/audio/patchage/default.nix1
-rw-r--r--pkgs/applications/audio/paulstretch/default.nix1
-rw-r--r--pkgs/applications/audio/pbpctrl/default.nix1
-rw-r--r--pkgs/applications/audio/petrifoo/default.nix1
-rw-r--r--pkgs/applications/audio/pianobar/default.nix1
-rw-r--r--pkgs/applications/audio/picoloop/default.nix1
-rw-r--r--pkgs/applications/audio/pmidi/default.nix1
-rw-r--r--pkgs/applications/audio/pms/default.nix1
-rw-r--r--pkgs/applications/audio/proteus/default.nix1
-rw-r--r--pkgs/applications/audio/psst/default.nix1
-rw-r--r--pkgs/applications/audio/pt2-clone/default.nix1
-rw-r--r--pkgs/applications/audio/rhvoice/default.nix1
-rw-r--r--pkgs/applications/audio/roomeqwizard/default.nix1
-rw-r--r--pkgs/applications/audio/schismtracker/default.nix1
-rw-r--r--pkgs/applications/audio/seq24/default.nix1
-rw-r--r--pkgs/applications/audio/snd/default.nix1
-rw-r--r--pkgs/applications/audio/sndpeek/default.nix1
-rw-r--r--pkgs/applications/audio/songrec/default.nix1
-rw-r--r--pkgs/applications/audio/sonixd/default.nix1
-rw-r--r--pkgs/applications/audio/sonobus/default.nix1
-rw-r--r--pkgs/applications/audio/sony-headphones-client/default.nix1
-rw-r--r--pkgs/applications/audio/spectrojack/default.nix1
-rw-r--r--pkgs/applications/audio/spotifyd/default.nix1
-rw-r--r--pkgs/applications/audio/sptlrx/default.nix1
-rw-r--r--pkgs/applications/audio/squishyball/default.nix1
-rw-r--r--pkgs/applications/audio/streamripper/default.nix1
-rw-r--r--pkgs/applications/audio/subtitlr/default.nix1
-rw-r--r--pkgs/applications/audio/svox/default.nix1
-rw-r--r--pkgs/applications/audio/synaesthesia/default.nix1
-rw-r--r--pkgs/applications/audio/tagutil/default.nix1
-rw-r--r--pkgs/applications/audio/timemachine/default.nix1
-rw-r--r--pkgs/applications/audio/tone/default.nix1
-rw-r--r--pkgs/applications/audio/tonelib-gfx/default.nix1
-rw-r--r--pkgs/applications/audio/tonelib-jam/default.nix1
-rw-r--r--pkgs/applications/audio/tonelib-metal/default.nix1
-rw-r--r--pkgs/applications/audio/tonelib-noisereducer/default.nix1
-rw-r--r--pkgs/applications/audio/tonelib-zoom/default.nix1
-rw-r--r--pkgs/applications/audio/transcribe/default.nix1
-rw-r--r--pkgs/applications/audio/tree-from-tags/default.nix1
-rw-r--r--pkgs/applications/audio/vimpc/default.nix1
-rw-r--r--pkgs/applications/audio/wavegain/default.nix1
-rw-r--r--pkgs/applications/audio/wolf-shaper/default.nix1
-rw-r--r--pkgs/applications/audio/xmp/default.nix1
-rw-r--r--pkgs/applications/audio/xtuner/default.nix1
-rw-r--r--pkgs/applications/audio/yasr/default.nix1
-rw-r--r--pkgs/applications/audio/ympd/default.nix1
-rw-r--r--pkgs/applications/audio/yoshimi/default.nix1
-rw-r--r--pkgs/applications/audio/zita-at1/default.nix1
-rw-r--r--pkgs/applications/display-managers/emptty/default.nix1
-rw-r--r--pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix1
-rw-r--r--pkgs/applications/display-managers/ly/default.nix1
-rw-r--r--pkgs/applications/emulators/attract-mode/default.nix1
-rw-r--r--pkgs/applications/emulators/basiliskii/default.nix1
-rw-r--r--pkgs/applications/emulators/caprice32/default.nix1
-rw-r--r--pkgs/applications/emulators/ccemux/default.nix1
-rw-r--r--pkgs/applications/emulators/cen64/default.nix1
-rw-r--r--pkgs/applications/emulators/emu2/default.nix1
-rw-r--r--pkgs/applications/emulators/gxemul/default.nix1
-rw-r--r--pkgs/applications/emulators/kega-fusion/default.nix1
-rw-r--r--pkgs/applications/emulators/mednafen/default.nix1
-rw-r--r--pkgs/applications/emulators/oberon-risc-emu/default.nix1
-rw-r--r--pkgs/applications/emulators/openmsx/default.nix1
-rw-r--r--pkgs/applications/emulators/simplenes/default.nix1
-rw-r--r--pkgs/applications/emulators/tamatool/default.nix1
-rw-r--r--pkgs/applications/emulators/tilem/default.nix1
-rw-r--r--pkgs/applications/emulators/tiny8086/default.nix1
-rw-r--r--pkgs/applications/emulators/uae/default.nix1
-rw-r--r--pkgs/applications/emulators/wibo/default.nix1
-rw-r--r--pkgs/applications/emulators/xcpc/default.nix1
-rw-r--r--pkgs/applications/emulators/yapesdl/default.nix1
-rw-r--r--pkgs/applications/emulators/zsnes/default.nix1
-rw-r--r--pkgs/applications/file-managers/cfm/default.nix1
-rw-r--r--pkgs/applications/file-managers/clifm/default.nix1
-rw-r--r--pkgs/applications/file-managers/lf/default.nix1
-rw-r--r--pkgs/applications/file-managers/mucommander/default.nix1
-rw-r--r--pkgs/applications/file-managers/noice/default.nix1
-rw-r--r--pkgs/applications/file-managers/sfm/default.nix1
-rw-r--r--pkgs/applications/file-managers/shfm/default.nix1
-rw-r--r--pkgs/applications/file-managers/xplorer/default.nix1
-rw-r--r--pkgs/applications/finance/irpf/default.nix1
-rw-r--r--pkgs/applications/graphics/alchemy/default.nix1
-rw-r--r--pkgs/applications/graphics/apngasm/default.nix1
-rw-r--r--pkgs/applications/graphics/artem/default.nix1
-rw-r--r--pkgs/applications/graphics/ascii-image-converter/default.nix1
-rw-r--r--pkgs/applications/graphics/autotrace/default.nix1
-rw-r--r--pkgs/applications/graphics/awesomebump/default.nix1
-rw-r--r--pkgs/applications/graphics/azpainter/default.nix1
-rw-r--r--pkgs/applications/graphics/curv/default.nix1
-rw-r--r--pkgs/applications/graphics/deskew/default.nix1
-rw-r--r--pkgs/applications/graphics/drawio/default.nix1
-rw-r--r--pkgs/applications/graphics/emulsion/default.nix1
-rw-r--r--pkgs/applications/graphics/entwine/default.nix1
-rw-r--r--pkgs/applications/graphics/epeg/default.nix1
-rw-r--r--pkgs/applications/graphics/epick/default.nix1
-rw-r--r--pkgs/applications/graphics/f3d/default.nix1
-rw-r--r--pkgs/applications/graphics/figma-agent/default.nix1
-rw-r--r--pkgs/applications/graphics/flaca/default.nix1
-rw-r--r--pkgs/applications/graphics/focus-stack/default.nix1
-rw-r--r--pkgs/applications/graphics/foxotron/default.nix1
-rw-r--r--pkgs/applications/graphics/gcolor2/default.nix1
-rw-r--r--pkgs/applications/graphics/gnuclad/default.nix1
-rw-r--r--pkgs/applications/graphics/gpicview/default.nix1
-rw-r--r--pkgs/applications/graphics/gqview/default.nix1
-rw-r--r--pkgs/applications/graphics/guetzli/default.nix1
-rw-r--r--pkgs/applications/graphics/hello-wayland/default.nix1
-rw-r--r--pkgs/applications/graphics/image_optim/default.nix1
-rw-r--r--pkgs/applications/graphics/imagej/default.nix1
-rw-r--r--pkgs/applications/graphics/img-cat/default.nix1
-rw-r--r--pkgs/applications/graphics/imgcat/default.nix1
-rw-r--r--pkgs/applications/graphics/imlibsetroot/default.nix1
-rw-r--r--pkgs/applications/graphics/jpeginfo/default.nix1
-rw-r--r--pkgs/applications/graphics/jpegoptim/default.nix1
-rw-r--r--pkgs/applications/graphics/lazpaint/default.nix1
-rw-r--r--pkgs/applications/graphics/lightburn/default.nix1
-rw-r--r--pkgs/applications/graphics/litemdview/default.nix1
-rw-r--r--pkgs/applications/graphics/lorien/default.nix1
-rw-r--r--pkgs/applications/graphics/meh/default.nix1
-rw-r--r--pkgs/applications/graphics/menyoki/default.nix1
-rw-r--r--pkgs/applications/graphics/minidjvu/default.nix1
-rw-r--r--pkgs/applications/graphics/mtpaint/default.nix1
-rw-r--r--pkgs/applications/graphics/ocrad/default.nix1
-rw-r--r--pkgs/applications/graphics/odafileconverter/default.nix1
-rw-r--r--pkgs/applications/graphics/openboard/default.nix1
-rw-r--r--pkgs/applications/graphics/pdfcpu/default.nix1
-rw-r--r--pkgs/applications/graphics/pixelnuke/default.nix1
-rw-r--r--pkgs/applications/graphics/pixeluvo/default.nix1
-rw-r--r--pkgs/applications/graphics/pqiv/default.nix1
-rw-r--r--pkgs/applications/graphics/qiv/default.nix1
-rw-r--r--pkgs/applications/graphics/round/default.nix1
-rw-r--r--pkgs/applications/graphics/swingsane/default.nix1
-rw-r--r--pkgs/applications/graphics/sxiv/default.nix1
-rw-r--r--pkgs/applications/graphics/tesseract/tesseract3.nix1
-rw-r--r--pkgs/applications/graphics/tesseract/tesseract4.nix1
-rw-r--r--pkgs/applications/graphics/unigine-superposition/default.nix1
-rw-r--r--pkgs/applications/graphics/upscayl/default.nix1
-rw-r--r--pkgs/applications/graphics/viewnior/default.nix1
-rw-r--r--pkgs/applications/graphics/vpv/default.nix1
-rw-r--r--pkgs/applications/graphics/wings/default.nix1
-rw-r--r--pkgs/applications/graphics/xfractint/default.nix1
-rw-r--r--pkgs/applications/graphics/xmountains/default.nix1
-rw-r--r--pkgs/applications/graphics/xournal/default.nix1
-rw-r--r--pkgs/applications/graphics/xzgv/default.nix1
-rw-r--r--pkgs/applications/graphics/yed/default.nix1
-rw-r--r--pkgs/applications/graphics/yeetgif/default.nix1
-rw-r--r--pkgs/applications/graphics/zgrviewer/default.nix1
-rw-r--r--pkgs/applications/graphics/zgv/default.nix1
-rw-r--r--pkgs/applications/logging/humioctl/default.nix1
-rw-r--r--pkgs/applications/misc/HentaiAtHome/default.nix1
-rw-r--r--pkgs/applications/misc/abook/default.nix1
-rw-r--r--pkgs/applications/misc/anup/default.nix1
-rw-r--r--pkgs/applications/misc/ape/default.nix1
-rw-r--r--pkgs/applications/misc/artha/default.nix1
-rw-r--r--pkgs/applications/misc/avrdudess/default.nix1
-rw-r--r--pkgs/applications/misc/azuredatastudio/default.nix1
-rw-r--r--pkgs/applications/misc/base16-universal-manager/default.nix1
-rw-r--r--pkgs/applications/misc/bb/default.nix1
-rw-r--r--pkgs/applications/misc/bklk/default.nix1
-rw-r--r--pkgs/applications/misc/blugon/default.nix1
-rw-r--r--pkgs/applications/misc/camunda-modeler/default.nix1
-rw-r--r--pkgs/applications/misc/cardpeek/default.nix1
-rw-r--r--pkgs/applications/misc/charm/default.nix1
-rw-r--r--pkgs/applications/misc/cheat/default.nix1
-rw-r--r--pkgs/applications/misc/clight/default.nix1
-rw-r--r--pkgs/applications/misc/clipqr/default.nix1
-rw-r--r--pkgs/applications/misc/cloak/default.nix1
-rw-r--r--pkgs/applications/misc/cmatrix/default.nix1
-rw-r--r--pkgs/applications/misc/cobalt/default.nix1
-rw-r--r--pkgs/applications/misc/cointop/default.nix1
-rw-r--r--pkgs/applications/misc/colorstorm/default.nix1
-rw-r--r--pkgs/applications/misc/colort/default.nix1
-rw-r--r--pkgs/applications/misc/coltrane/default.nix1
-rw-r--r--pkgs/applications/misc/comodoro/default.nix1
-rw-r--r--pkgs/applications/misc/confetty/default.nix1
-rw-r--r--pkgs/applications/misc/cotp/default.nix1
-rw-r--r--pkgs/applications/misc/crumbs/default.nix1
-rw-r--r--pkgs/applications/misc/ctodo/default.nix1
-rw-r--r--pkgs/applications/misc/curaengine/default.nix1
-rw-r--r--pkgs/applications/misc/ddgr/default.nix1
-rw-r--r--pkgs/applications/misc/deadd-notification-center/default.nix1
-rw-r--r--pkgs/applications/misc/deco/default.nix1
-rw-r--r--pkgs/applications/misc/devdocs-desktop/default.nix1
-rw-r--r--pkgs/applications/misc/devilspie2/default.nix1
-rw-r--r--pkgs/applications/misc/diff-pdf/default.nix1
-rw-r--r--pkgs/applications/misc/doctave/default.nix1
-rw-r--r--pkgs/applications/misc/doing/default.nix1
-rw-r--r--pkgs/applications/misc/downonspot/default.nix1
-rw-r--r--pkgs/applications/misc/dwmbar/default.nix1
-rw-r--r--pkgs/applications/misc/dwmblocks/default.nix1
-rw-r--r--pkgs/applications/misc/effitask/default.nix1
-rw-r--r--pkgs/applications/misc/elfx86exts/default.nix1
-rw-r--r--pkgs/applications/misc/emem/default.nix1
-rw-r--r--pkgs/applications/misc/epdfview/default.nix1
-rw-r--r--pkgs/applications/misc/evtest/default.nix1
-rw-r--r--pkgs/applications/misc/exercism/default.nix1
-rw-r--r--pkgs/applications/misc/expenses/default.nix1
-rw-r--r--pkgs/applications/misc/fead/default.nix1
-rw-r--r--pkgs/applications/misc/fehlstart/default.nix1
-rw-r--r--pkgs/applications/misc/ff2mpv/default.nix1
-rw-r--r--pkgs/applications/misc/filet/default.nix1
-rw-r--r--pkgs/applications/misc/firefly-desktop/default.nix1
-rw-r--r--pkgs/applications/misc/firestarter/default.nix1
-rw-r--r--pkgs/applications/misc/flamerobin/default.nix1
-rw-r--r--pkgs/applications/misc/flavours/default.nix1
-rw-r--r--pkgs/applications/misc/freeplane/default.nix1
-rw-r--r--pkgs/applications/misc/fsv/default.nix1
-rw-r--r--pkgs/applications/misc/galculator/default.nix1
-rw-r--r--pkgs/applications/misc/ganttproject-bin/default.nix1
-rw-r--r--pkgs/applications/misc/gcfflasher/default.nix1
-rw-r--r--pkgs/applications/misc/geek-life/default.nix1
-rw-r--r--pkgs/applications/misc/genact/default.nix1
-rw-r--r--pkgs/applications/misc/geoipupdate/default.nix1
-rw-r--r--pkgs/applications/misc/ghosttohugo/default.nix1
-rw-r--r--pkgs/applications/misc/gmnitohtml/default.nix1
-rw-r--r--pkgs/applications/misc/gmrun/default.nix1
-rw-r--r--pkgs/applications/misc/go-org/default.nix1
-rw-r--r--pkgs/applications/misc/gollum/default.nix1
-rw-r--r--pkgs/applications/misc/gomatrix/default.nix1
-rw-r--r--pkgs/applications/misc/googler/default.nix1
-rw-r--r--pkgs/applications/misc/gostatic/default.nix1
-rw-r--r--pkgs/applications/misc/gpa/default.nix1
-rw-r--r--pkgs/applications/misc/gphoto2/default.nix1
-rw-r--r--pkgs/applications/misc/gpsbabel/default.nix1
-rw-r--r--pkgs/applications/misc/gpsprune/default.nix1
-rw-r--r--pkgs/applications/misc/gpu-burn/default.nix1
-rw-r--r--pkgs/applications/misc/gpu-viewer/default.nix1
-rw-r--r--pkgs/applications/misc/grb/default.nix1
-rw-r--r--pkgs/applications/misc/green-pdfviewer/default.nix1
-rw-r--r--pkgs/applications/misc/gremlin-console/default.nix1
-rw-r--r--pkgs/applications/misc/gremlin-server/default.nix1
-rw-r--r--pkgs/applications/misc/grip/default.nix1
-rw-r--r--pkgs/applications/misc/gsctl/default.nix1
-rw-r--r--pkgs/applications/misc/gsimplecal/default.nix1
-rw-r--r--pkgs/applications/misc/gtk2fontsel/default.nix1
-rw-r--r--pkgs/applications/misc/gxkb/default.nix1
-rw-r--r--pkgs/applications/misc/gxmessage/default.nix1
-rw-r--r--pkgs/applications/misc/gxneur/default.nix1
-rw-r--r--pkgs/applications/misc/harsh/default.nix1
-rw-r--r--pkgs/applications/misc/has/default.nix1
-rw-r--r--pkgs/applications/misc/hcl2json/default.nix1
-rw-r--r--pkgs/applications/misc/hello-unfree/default.nix1
-rw-r--r--pkgs/applications/misc/herbe/default.nix1
-rw-r--r--pkgs/applications/misc/hivemind/default.nix1
-rw-r--r--pkgs/applications/misc/hr/default.nix1
-rw-r--r--pkgs/applications/misc/inlyne/default.nix1
-rw-r--r--pkgs/applications/misc/insulator2/default.nix1
-rw-r--r--pkgs/applications/misc/ipatool/default.nix1
-rw-r--r--pkgs/applications/misc/ipmiview/default.nix1
-rw-r--r--pkgs/applications/misc/jekyll/default.nix1
-rw-r--r--pkgs/applications/misc/jetbrains-toolbox/default.nix1
-rw-r--r--pkgs/applications/misc/josm/default.nix1
-rw-r--r--pkgs/applications/misc/jp2a/default.nix1
-rw-r--r--pkgs/applications/misc/jquake/default.nix1
-rw-r--r--pkgs/applications/misc/kaufkauflist/default.nix1
-rw-r--r--pkgs/applications/misc/kbt/default.nix1
-rw-r--r--pkgs/applications/misc/keepass-diff/default.nix1
-rw-r--r--pkgs/applications/misc/keylight-controller-mschneider82/default.nix1
-rw-r--r--pkgs/applications/misc/kiln/default.nix1
-rw-r--r--pkgs/applications/misc/klipperscreen/default.nix1
-rw-r--r--pkgs/applications/misc/kondo/default.nix1
-rw-r--r--pkgs/applications/misc/krabby/default.nix1
-rw-r--r--pkgs/applications/misc/kratos/default.nix1
-rw-r--r--pkgs/applications/misc/lavalauncher/default.nix1
-rw-r--r--pkgs/applications/misc/lemonade/default.nix1
-rw-r--r--pkgs/applications/misc/lenmus/default.nix1
-rw-r--r--pkgs/applications/misc/limesctl/default.nix1
-rw-r--r--pkgs/applications/misc/logseq/default.nix1
-rw-r--r--pkgs/applications/misc/lscolors/default.nix1
-rw-r--r--pkgs/applications/misc/lswt/default.nix1
-rw-r--r--pkgs/applications/misc/ltwheelconf/default.nix1
-rw-r--r--pkgs/applications/misc/lunatask/default.nix1
-rw-r--r--pkgs/applications/misc/madonctl/default.nix1
-rw-r--r--pkgs/applications/misc/makeself/default.nix1
-rw-r--r--pkgs/applications/misc/mangal/default.nix1
-rw-r--r--pkgs/applications/misc/mdp/default.nix1
-rw-r--r--pkgs/applications/misc/mdzk/default.nix1
-rw-r--r--pkgs/applications/misc/memo/default.nix1
-rw-r--r--pkgs/applications/misc/mencal/default.nix1
-rw-r--r--pkgs/applications/misc/metamorphose2/default.nix1
-rw-r--r--pkgs/applications/misc/metar/default.nix1
-rw-r--r--pkgs/applications/misc/milu/default.nix1
-rw-r--r--pkgs/applications/misc/mkgmap/default.nix1
-rw-r--r--pkgs/applications/misc/mop/default.nix1
-rw-r--r--pkgs/applications/misc/mystem/default.nix1
-rw-r--r--pkgs/applications/misc/natural-docs/default.nix1
-rw-r--r--pkgs/applications/misc/neo/default.nix1
-rw-r--r--pkgs/applications/misc/neo4j-desktop/default.nix1
-rw-r--r--pkgs/applications/misc/nix-tour/default.nix1
-rw-r--r--pkgs/applications/misc/notesnook/default.nix1
-rw-r--r--pkgs/applications/misc/nrsc5/default.nix1
-rw-r--r--pkgs/applications/misc/ns-usbloader/default.nix1
-rw-r--r--pkgs/applications/misc/nwg-dock/default.nix1
-rw-r--r--pkgs/applications/misc/obs-cli/default.nix1
-rw-r--r--pkgs/applications/misc/onagre/default.nix1
-rw-r--r--pkgs/applications/misc/oneko/default.nix1
-rw-r--r--pkgs/applications/misc/openbox-menu/default.nix1
-rw-r--r--pkgs/applications/misc/openjump/default.nix1
-rw-r--r--pkgs/applications/misc/openring/default.nix1
-rw-r--r--pkgs/applications/misc/oranda/default.nix1
-rw-r--r--pkgs/applications/misc/osm2xmap/default.nix1
-rw-r--r--pkgs/applications/misc/osmium-tool/default.nix1
-rw-r--r--pkgs/applications/misc/osmtogeojson/default.nix1
-rw-r--r--pkgs/applications/misc/otf2bdf/default.nix1
-rw-r--r--pkgs/applications/misc/oxker/default.nix1
-rw-r--r--pkgs/applications/misc/p2pool/default.nix1
-rw-r--r--pkgs/applications/misc/pagefind/default.nix1
-rw-r--r--pkgs/applications/misc/pcmanx-gtk2/default.nix1
-rw-r--r--pkgs/applications/misc/peaclock/default.nix1
-rw-r--r--pkgs/applications/misc/pell/default.nix1
-rw-r--r--pkgs/applications/misc/pgmanage/default.nix1
-rw-r--r--pkgs/applications/misc/phockup/default.nix1
-rw-r--r--pkgs/applications/misc/pinfo/default.nix1
-rw-r--r--pkgs/applications/misc/plasma-theme-switcher/default.nix1
-rw-r--r--pkgs/applications/misc/playonlinux/default.nix1
-rw-r--r--pkgs/applications/misc/pokemon-colorscripts-mac/default.nix1
-rw-r--r--pkgs/applications/misc/pomodoro/default.nix1
-rw-r--r--pkgs/applications/misc/pop-launcher/default.nix1
-rw-r--r--pkgs/applications/misc/pop/default.nix1
-rw-r--r--pkgs/applications/misc/porsmo/default.nix1
-rw-r--r--pkgs/applications/misc/premid/default.nix1
-rw-r--r--pkgs/applications/misc/process-compose/default.nix1
-rw-r--r--pkgs/applications/misc/psi-notify/default.nix1
-rw-r--r--pkgs/applications/misc/pstree/default.nix1
-rw-r--r--pkgs/applications/misc/pt/default.nix1
-rw-r--r--pkgs/applications/misc/quicksynergy/default.nix1
-rw-r--r--pkgs/applications/misc/ratt/default.nix1
-rw-r--r--pkgs/applications/misc/reddsaver/default.nix1
-rw-r--r--pkgs/applications/misc/resumed/default.nix1
-rw-r--r--pkgs/applications/misc/revanced-cli/default.nix1
-rw-r--r--pkgs/applications/misc/river-luatile/default.nix1
-rw-r--r--pkgs/applications/misc/river-tag-overlay/default.nix1
-rw-r--r--pkgs/applications/misc/rivercarro/default.nix1
-rw-r--r--pkgs/applications/misc/rlaunch/default.nix1
-rw-r--r--pkgs/applications/misc/robo3t/default.nix1
-rw-r--r--pkgs/applications/misc/rsclock/default.nix1
-rw-r--r--pkgs/applications/misc/rss-bridge-cli/default.nix1
-rw-r--r--pkgs/applications/misc/rusty-psn/default.nix1
-rw-r--r--pkgs/applications/misc/sampler/default.nix1
-rw-r--r--pkgs/applications/misc/sdcv/default.nix1
-rw-r--r--pkgs/applications/misc/semver/default.nix1
-rw-r--r--pkgs/applications/misc/senv/default.nix1
-rw-r--r--pkgs/applications/misc/shavee/default.nix1
-rw-r--r--pkgs/applications/misc/sidequest/default.nix1
-rw-r--r--pkgs/applications/misc/sigi/default.nix1
-rw-r--r--pkgs/applications/misc/skate/default.nix1
-rw-r--r--pkgs/applications/misc/slides/default.nix1
-rw-r--r--pkgs/applications/misc/slippy/default.nix1
-rw-r--r--pkgs/applications/misc/slstatus/default.nix1
-rw-r--r--pkgs/applications/misc/slweb/default.nix1
-rw-r--r--pkgs/applications/misc/smpq/default.nix1
-rw-r--r--pkgs/applications/misc/snixembed/default.nix1
-rw-r--r--pkgs/applications/misc/snowsql/default.nix1
-rw-r--r--pkgs/applications/misc/somebar/default.nix1
-rw-r--r--pkgs/applications/misc/spacenav-cube-example/default.nix1
-rw-r--r--pkgs/applications/misc/speedread/default.nix1
-rw-r--r--pkgs/applications/misc/spnavcfg/default.nix1
-rw-r--r--pkgs/applications/misc/spotify-tray/default.nix1
-rw-r--r--pkgs/applications/misc/ssocr/default.nix1
-rw-r--r--pkgs/applications/misc/stag/default.nix1
-rw-r--r--pkgs/applications/misc/stepreduce/default.nix1
-rw-r--r--pkgs/applications/misc/stork/default.nix1
-rw-r--r--pkgs/applications/misc/stretchly/default.nix1
-rw-r--r--pkgs/applications/misc/stw/default.nix1
-rw-r--r--pkgs/applications/misc/styx/default.nix1
-rw-r--r--pkgs/applications/misc/surface-control/default.nix1
-rw-r--r--pkgs/applications/misc/swaynag-battery/default.nix1
-rw-r--r--pkgs/applications/misc/synapse/default.nix1
-rw-r--r--pkgs/applications/misc/syncthing-tray/default.nix1
-rw-r--r--pkgs/applications/misc/systembus-notify/default.nix1
-rw-r--r--pkgs/applications/misc/tabula-java/default.nix1
-rw-r--r--pkgs/applications/misc/tagtime/default.nix1
-rw-r--r--pkgs/applications/misc/tailscale-systray/default.nix1
-rw-r--r--pkgs/applications/misc/taizen/default.nix1
-rw-r--r--pkgs/applications/misc/tandoor-recipes/default.nix1
-rw-r--r--pkgs/applications/misc/tango/default.nix1
-rw-r--r--pkgs/applications/misc/tasksh/default.nix1
-rw-r--r--pkgs/applications/misc/taskwarrior-tui/default.nix1
-rw-r--r--pkgs/applications/misc/terminal-colors/default.nix1
-rw-r--r--pkgs/applications/misc/terminal-parrot/default.nix1
-rw-r--r--pkgs/applications/misc/terminal-stocks/default.nix1
-rw-r--r--pkgs/applications/misc/thedesk/default.nix1
-rw-r--r--pkgs/applications/misc/thokr/default.nix1
-rw-r--r--pkgs/applications/misc/ticker/default.nix1
-rw-r--r--pkgs/applications/misc/tickrs/default.nix1
-rw-r--r--pkgs/applications/misc/timew-sync-server/default.nix1
-rw-r--r--pkgs/applications/misc/tiramisu/default.nix1
-rw-r--r--pkgs/applications/misc/tmatrix/default.nix1
-rw-r--r--pkgs/applications/misc/tnef/default.nix1
-rw-r--r--pkgs/applications/misc/todoist-electron/default.nix1
-rw-r--r--pkgs/applications/misc/todoist/default.nix1
-rw-r--r--pkgs/applications/misc/transifex-cli/default.nix1
-rw-r--r--pkgs/applications/misc/ttdl/default.nix1
-rw-r--r--pkgs/applications/misc/tthsum/default.nix1
-rw-r--r--pkgs/applications/misc/tty-share/default.nix1
-rw-r--r--pkgs/applications/misc/ttyper/default.nix1
-rw-r--r--pkgs/applications/misc/tuckr/default.nix1
-rw-r--r--pkgs/applications/misc/tut/default.nix1
-rw-r--r--pkgs/applications/misc/typer/default.nix1
-rw-r--r--pkgs/applications/misc/typioca/default.nix1
-rw-r--r--pkgs/applications/misc/udict/default.nix1
-rw-r--r--pkgs/applications/misc/ultralist/default.nix1
-rw-r--r--pkgs/applications/misc/uni/default.nix1
-rw-r--r--pkgs/applications/misc/unipicker/default.nix1
-rw-r--r--pkgs/applications/misc/usb-reset/default.nix1
-rw-r--r--pkgs/applications/misc/usync/default.nix1
-rw-r--r--pkgs/applications/misc/vcal/default.nix1
-rw-r--r--pkgs/applications/misc/vp/default.nix1
-rw-r--r--pkgs/applications/misc/vue/default.nix1
-rw-r--r--pkgs/applications/misc/vul/default.nix1
-rw-r--r--pkgs/applications/misc/warpd/default.nix1
-rw-r--r--pkgs/applications/misc/wbg/default.nix1
-rw-r--r--pkgs/applications/misc/wcalc/default.nix1
-rw-r--r--pkgs/applications/misc/wego/default.nix1
-rw-r--r--pkgs/applications/misc/with-shell/default.nix1
-rw-r--r--pkgs/applications/misc/wlclock/default.nix1
-rw-r--r--pkgs/applications/misc/wmenu/default.nix1
-rw-r--r--pkgs/applications/misc/wmname/default.nix1
-rw-r--r--pkgs/applications/misc/wofi-emoji/default.nix1
-rw-r--r--pkgs/applications/misc/writefreely/default.nix1
-rw-r--r--pkgs/applications/misc/wthrr/default.nix1
-rw-r--r--pkgs/applications/misc/xbattbar/default.nix1
-rw-r--r--pkgs/applications/misc/xchm/default.nix1
-rw-r--r--pkgs/applications/misc/xcruiser/default.nix1
-rw-r--r--pkgs/applications/misc/xkbd/default.nix1
-rw-r--r--pkgs/applications/misc/xkblayout-state/default.nix1
-rw-r--r--pkgs/applications/misc/xkbmon/default.nix1
-rw-r--r--pkgs/applications/misc/xlights/default.nix1
-rw-r--r--pkgs/applications/misc/xmenu/default.nix1
-rw-r--r--pkgs/applications/misc/xrandr-invert-colors/default.nix1
-rw-r--r--pkgs/applications/misc/xrq/default.nix1
-rw-r--r--pkgs/applications/misc/xscope/default.nix1
-rw-r--r--pkgs/applications/misc/xsw/default.nix1
-rw-r--r--pkgs/applications/misc/xxkb/default.nix1
-rw-r--r--pkgs/applications/misc/yambar/default.nix1
-rw-r--r--pkgs/applications/misc/zettlr/generic.nix1
-rw-r--r--pkgs/applications/misc/zine/default.nix1
-rw-r--r--pkgs/applications/misc/zktree/default.nix1
-rw-r--r--pkgs/applications/office/appflowy/default.nix1
-rw-r--r--pkgs/applications/office/hledger-check-fancyassertions/default.nix1
-rw-r--r--pkgs/applications/office/jameica/default.nix1
-rw-r--r--pkgs/applications/office/ledger-web/default.nix1
-rw-r--r--pkgs/applications/office/mendeley/default.nix1
-rw-r--r--pkgs/applications/office/micropad/default.nix1
-rw-r--r--pkgs/applications/office/notion-app-enhanced/default.nix1
-rw-r--r--pkgs/applications/office/p3x-onenote/default.nix1
-rw-r--r--pkgs/applications/office/pdfmm/default.nix1
-rw-r--r--pkgs/applications/office/pinpoint/default.nix1
-rw-r--r--pkgs/applications/office/rime-cli/default.nix1
-rw-r--r--pkgs/applications/office/roam-research/darwin.nix1
-rw-r--r--pkgs/applications/office/roam-research/linux.nix1
-rw-r--r--pkgs/applications/office/super-productivity/default.nix1
-rw-r--r--pkgs/applications/office/teapot/default.nix1
-rw-r--r--pkgs/applications/office/timeular/default.nix1
-rw-r--r--pkgs/applications/office/tudu/default.nix1
-rw-r--r--pkgs/applications/office/tusk/default.nix1
-rw-r--r--pkgs/applications/office/zk/default.nix1
-rw-r--r--pkgs/applications/radio/aldo/default.nix1
-rw-r--r--pkgs/applications/radio/anytone-emu/default.nix1
-rw-r--r--pkgs/applications/radio/cubicsdr/default.nix1
-rw-r--r--pkgs/applications/radio/dmrconfig/default.nix1
-rw-r--r--pkgs/applications/radio/dsd/default.nix1
-rw-r--r--pkgs/applications/radio/ebook2cw/default.nix1
-rw-r--r--pkgs/applications/radio/flamp/default.nix1
-rw-r--r--pkgs/applications/radio/flex-ndax/default.nix1
-rw-r--r--pkgs/applications/radio/fllog/default.nix1
-rw-r--r--pkgs/applications/radio/flmsg/default.nix1
-rw-r--r--pkgs/applications/radio/flrig/default.nix1
-rw-r--r--pkgs/applications/radio/flwrap/default.nix1
-rw-r--r--pkgs/applications/radio/freedv/default.nix1
-rw-r--r--pkgs/applications/radio/kalibrate-hackrf/default.nix1
-rw-r--r--pkgs/applications/radio/kappanhang/default.nix1
-rw-r--r--pkgs/applications/radio/minimodem/default.nix1
-rw-r--r--pkgs/applications/radio/noaa-apt/default.nix1
-rw-r--r--pkgs/applications/radio/pat/default.nix1
-rw-r--r--pkgs/applications/radio/rtl_433/default.nix1
-rw-r--r--pkgs/applications/radio/sdrplay/default.nix1
-rw-r--r--pkgs/applications/radio/sdrpp/default.nix1
-rw-r--r--pkgs/applications/radio/soapyremote/default.nix1
-rw-r--r--pkgs/applications/radio/tncattach/default.nix1
-rw-r--r--pkgs/applications/radio/xlog/default.nix1
-rw-r--r--pkgs/applications/search/doodle/default.nix1
-rw-r--r--pkgs/applications/search/grepcidr/default.nix1
-rw-r--r--pkgs/applications/search/grepm/default.nix1
-rw-r--r--pkgs/applications/system/mgmt/default.nix1
-rw-r--r--pkgs/applications/system/psitop/default.nix1
-rw-r--r--pkgs/applications/system/zxfer/default.nix1
-rw-r--r--pkgs/tools/admin/acme-sh/default.nix1
-rw-r--r--pkgs/tools/admin/afterburn/default.nix1
-rw-r--r--pkgs/tools/admin/analog/default.nix1
-rw-r--r--pkgs/tools/admin/aws-env/default.nix1
-rw-r--r--pkgs/tools/admin/aws-nuke/default.nix1
-rw-r--r--pkgs/tools/admin/aws-rotate-key/default.nix1
-rw-r--r--pkgs/tools/admin/awsls/default.nix1
-rw-r--r--pkgs/tools/admin/awsrm/default.nix1
-rw-r--r--pkgs/tools/admin/awsweeper/default.nix1
-rw-r--r--pkgs/tools/admin/berglas/default.nix1
-rw-r--r--pkgs/tools/admin/bom/default.nix1
-rw-r--r--pkgs/tools/admin/certigo/default.nix1
-rw-r--r--pkgs/tools/admin/cf-vault/default.nix1
-rw-r--r--pkgs/tools/admin/chamber/default.nix1
-rw-r--r--pkgs/tools/admin/cjdns-tools/default.nix1
-rw-r--r--pkgs/tools/admin/cli53/default.nix1
-rw-r--r--pkgs/tools/admin/coldsnap/default.nix1
-rw-r--r--pkgs/tools/admin/colmena/default.nix1
-rw-r--r--pkgs/tools/admin/copilot-cli/default.nix1
-rw-r--r--pkgs/tools/admin/cw/default.nix1
-rw-r--r--pkgs/tools/admin/damon/default.nix1
-rw-r--r--pkgs/tools/admin/docker-credential-gcr/default.nix1
-rw-r--r--pkgs/tools/admin/ejson2env/default.nix1
-rw-r--r--pkgs/tools/admin/fastlane/default.nix1
-rw-r--r--pkgs/tools/admin/fioctl/default.nix1
-rw-r--r--pkgs/tools/admin/gtk-vnc/default.nix1
-rw-r--r--pkgs/tools/admin/iamy/default.nix1
-rw-r--r--pkgs/tools/admin/infra/default.nix1
-rw-r--r--pkgs/tools/admin/itamae/default.nix1
-rw-r--r--pkgs/tools/admin/kics/default.nix1
-rw-r--r--pkgs/tools/admin/lego/default.nix1
-rw-r--r--pkgs/tools/admin/meshcentral/default.nix1
-rw-r--r--pkgs/tools/admin/netbox2netshot/default.nix1
-rw-r--r--pkgs/tools/admin/netplan/default.nix1
-rw-r--r--pkgs/tools/admin/okta-aws-cli/default.nix1
-rw-r--r--pkgs/tools/admin/ossutil/default.nix1
-rw-r--r--pkgs/tools/admin/pbm/default.nix1
-rw-r--r--pkgs/tools/admin/qovery-cli/default.nix1
-rw-r--r--pkgs/tools/admin/realvnc-vnc-viewer/default.nix1
-rw-r--r--pkgs/tools/admin/rhoas/default.nix1
-rw-r--r--pkgs/tools/admin/sec/default.nix1
-rw-r--r--pkgs/tools/admin/ssmsh/default.nix1
-rw-r--r--pkgs/tools/admin/swapspace/default.nix1
-rw-r--r--pkgs/tools/admin/syft/default.nix1
-rw-r--r--pkgs/tools/admin/triton/default.nix1
-rw-r--r--pkgs/tools/admin/wander/default.nix1
-rw-r--r--pkgs/tools/admin/zbctl/default.nix1
-rw-r--r--pkgs/tools/bluetooth/openobex/default.nix1
-rw-r--r--pkgs/tools/games/er-patcher/default.nix1
-rw-r--r--pkgs/tools/games/ps3-disc-dumper/default.nix1
-rw-r--r--pkgs/tools/games/slipstream/default.nix1
-rw-r--r--pkgs/tools/games/steam-rom-manager/default.nix1
-rw-r--r--pkgs/tools/networking/aardvark-dns/default.nix1
-rw-r--r--pkgs/tools/networking/acme-client/default.nix1
-rw-r--r--pkgs/tools/networking/ahcpd/default.nix1
-rw-r--r--pkgs/tools/networking/ain/default.nix1
-rw-r--r--pkgs/tools/networking/ali/default.nix1
-rw-r--r--pkgs/tools/networking/altermime/default.nix1
-rw-r--r--pkgs/tools/networking/amass/default.nix1
-rw-r--r--pkgs/tools/networking/anevicon/default.nix1
-rw-r--r--pkgs/tools/networking/arping/default.nix1
-rw-r--r--pkgs/tools/networking/arpoison/default.nix1
-rw-r--r--pkgs/tools/networking/atinout/default.nix1
-rw-r--r--pkgs/tools/networking/axel/default.nix1
-rw-r--r--pkgs/tools/networking/babeld/default.nix1
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix1
-rw-r--r--pkgs/tools/networking/bgpdump/default.nix1
-rw-r--r--pkgs/tools/networking/bgpq3/default.nix1
-rw-r--r--pkgs/tools/networking/bgpq4/default.nix1
-rw-r--r--pkgs/tools/networking/biosdevname/default.nix1
-rw-r--r--pkgs/tools/networking/bombardier/default.nix1
-rw-r--r--pkgs/tools/networking/bore/default.nix1
-rw-r--r--pkgs/tools/networking/boringtun/default.nix1
-rw-r--r--pkgs/tools/networking/boundary/default.nix1
-rw-r--r--pkgs/tools/networking/brook/default.nix1
-rw-r--r--pkgs/tools/networking/bukubrow/default.nix1
-rw-r--r--pkgs/tools/networking/bully/default.nix1
-rw-r--r--pkgs/tools/networking/burpsuite/default.nix1
-rw-r--r--pkgs/tools/networking/cadaver/default.nix1
-rw-r--r--pkgs/tools/networking/cassowary/default.nix1
-rw-r--r--pkgs/tools/networking/castnow/default.nix1
-rw-r--r--pkgs/tools/networking/cdpr/default.nix1
-rw-r--r--pkgs/tools/networking/cfspeedtest/default.nix1
-rw-r--r--pkgs/tools/networking/chaos/default.nix1
-rw-r--r--pkgs/tools/networking/checkip/default.nix1
-rw-r--r--pkgs/tools/networking/cksfv/default.nix1
-rw-r--r--pkgs/tools/networking/cnping/default.nix1
-rw-r--r--pkgs/tools/networking/cntlm/default.nix1
-rw-r--r--pkgs/tools/networking/cocom/default.nix1
-rw-r--r--pkgs/tools/networking/connect/default.nix1
-rw-r--r--pkgs/tools/networking/containerlab/default.nix1
-rw-r--r--pkgs/tools/networking/corerad/default.nix1
-rw-r--r--pkgs/tools/networking/corkscrew/default.nix1
-rw-r--r--pkgs/tools/networking/crackle/default.nix1
-rw-r--r--pkgs/tools/networking/croc/default.nix1
-rw-r--r--pkgs/tools/networking/curlie/default.nix1
-rw-r--r--pkgs/tools/networking/darkstat/default.nix1
-rw-r--r--pkgs/tools/networking/ddns-go/default.nix1
-rw-r--r--pkgs/tools/networking/dhcpcd/default.nix1
-rw-r--r--pkgs/tools/networking/dhcpdump/default.nix1
-rw-r--r--pkgs/tools/networking/dhcping/default.nix1
-rw-r--r--pkgs/tools/networking/dnscrypt-wrapper/default.nix1
-rw-r--r--pkgs/tools/networking/dnsmon-go/default.nix1
-rw-r--r--pkgs/tools/networking/dnsmonster/default.nix1
-rw-r--r--pkgs/tools/networking/dnsproxy/default.nix1
-rw-r--r--pkgs/tools/networking/dnstake/default.nix1
-rw-r--r--pkgs/tools/networking/dnstop/default.nix1
-rw-r--r--pkgs/tools/networking/dnstracer/default.nix1
-rw-r--r--pkgs/tools/networking/driftnet/default.nix1
-rw-r--r--pkgs/tools/networking/drill/default.nix1
-rw-r--r--pkgs/tools/networking/ebpf-verifier/default.nix1
-rw-r--r--pkgs/tools/networking/edgedb/default.nix1
-rw-r--r--pkgs/tools/networking/email/default.nix1
-rw-r--r--pkgs/tools/networking/fakeroute/default.nix1
-rw-r--r--pkgs/tools/networking/fast-ssh/default.nix1
-rw-r--r--pkgs/tools/networking/fastd/default.nix1
-rw-r--r--pkgs/tools/networking/filegive/default.nix1
-rw-r--r--pkgs/tools/networking/findomain/default.nix1
-rw-r--r--pkgs/tools/networking/flannel/default.nix1
-rw-r--r--pkgs/tools/networking/fping/default.nix1
-rw-r--r--pkgs/tools/networking/gemget/default.nix1
-rw-r--r--pkgs/tools/networking/ghostunnel/default.nix1
-rw-r--r--pkgs/tools/networking/go-shadowsocks2/default.nix1
-rw-r--r--pkgs/tools/networking/gobgp/default.nix1
-rw-r--r--pkgs/tools/networking/godns/default.nix1
-rw-r--r--pkgs/tools/networking/godspeed/default.nix1
-rw-r--r--pkgs/tools/networking/gof5/default.nix1
-rw-r--r--pkgs/tools/networking/goreplay/default.nix1
-rw-r--r--pkgs/tools/networking/gost/default.nix1
-rw-r--r--pkgs/tools/networking/gping/default.nix1
-rw-r--r--pkgs/tools/networking/grpc_cli/default.nix1
-rw-r--r--pkgs/tools/networking/grpcui/default.nix1
-rw-r--r--pkgs/tools/networking/grpcurl/default.nix1
-rw-r--r--pkgs/tools/networking/hans/default.nix1
-rw-r--r--pkgs/tools/networking/hey/default.nix1
-rw-r--r--pkgs/tools/networking/horst/default.nix1
-rw-r--r--pkgs/tools/networking/hss/default.nix1
-rw-r--r--pkgs/tools/networking/htpdate/default.nix1
-rw-r--r--pkgs/tools/networking/httperf/default.nix1
-rw-r--r--pkgs/tools/networking/httping/default.nix1
-rw-r--r--pkgs/tools/networking/httplab/default.nix1
-rw-r--r--pkgs/tools/networking/httprobe/default.nix1
-rw-r--r--pkgs/tools/networking/hue-cli/default.nix1
-rw-r--r--pkgs/tools/networking/hysteria/default.nix1
-rw-r--r--pkgs/tools/networking/i2p/default.nix1
-rw-r--r--pkgs/tools/networking/i2pd/default.nix1
-rw-r--r--pkgs/tools/networking/ifstat-legacy/default.nix1
-rw-r--r--pkgs/tools/networking/iftop/default.nix1
-rw-r--r--pkgs/tools/networking/igmpproxy/default.nix1
-rw-r--r--pkgs/tools/networking/inadyn/default.nix1
-rw-r--r--pkgs/tools/networking/ip2location/default.nix1
-rw-r--r--pkgs/tools/networking/ip2unix/default.nix1
-rw-r--r--pkgs/tools/networking/ipcalc/default.nix1
-rw-r--r--pkgs/tools/networking/ivpn/default.nix1
-rw-r--r--pkgs/tools/networking/jnettop/default.nix1
-rw-r--r--pkgs/tools/networking/kail/default.nix1
-rw-r--r--pkgs/tools/networking/kapp/default.nix1
-rw-r--r--pkgs/tools/networking/keama/default.nix1
-rw-r--r--pkgs/tools/networking/labctl/default.nix1
-rw-r--r--pkgs/tools/networking/libreswan/default.nix1
-rw-r--r--pkgs/tools/networking/linux-router/default.nix1
-rw-r--r--pkgs/tools/networking/lxi-tools/default.nix1
-rw-r--r--pkgs/tools/networking/lychee/default.nix1
-rw-r--r--pkgs/tools/networking/mailsend/default.nix1
-rw-r--r--pkgs/tools/networking/maphosts/default.nix1
-rw-r--r--pkgs/tools/networking/mbidled/default.nix1
-rw-r--r--pkgs/tools/networking/mcrcon/default.nix1
-rw-r--r--pkgs/tools/networking/mdk4/default.nix1
-rw-r--r--pkgs/tools/networking/memtier-benchmark/default.nix1
-rw-r--r--pkgs/tools/networking/minidlna/default.nix1
-rw-r--r--pkgs/tools/networking/minissdpd/default.nix1
-rw-r--r--pkgs/tools/networking/mmsd-tng/default.nix1
-rw-r--r--pkgs/tools/networking/mockoon/default.nix1
-rw-r--r--pkgs/tools/networking/mole/default.nix1
-rw-r--r--pkgs/tools/networking/motrix/default.nix1
-rw-r--r--pkgs/tools/networking/mozwire/default.nix1
-rw-r--r--pkgs/tools/networking/mqtt-benchmark/default.nix1
-rw-r--r--pkgs/tools/networking/mqttui/default.nix1
-rw-r--r--pkgs/tools/networking/mtr-exporter/default.nix1
-rw-r--r--pkgs/tools/networking/mubeng/default.nix1
-rw-r--r--pkgs/tools/networking/muffet/default.nix1
-rw-r--r--pkgs/tools/networking/nat-traverse/default.nix1
-rw-r--r--pkgs/tools/networking/netassert/default.nix1
-rw-r--r--pkgs/tools/networking/netdiscover/default.nix1
-rw-r--r--pkgs/tools/networking/nethogs/default.nix1
-rw-r--r--pkgs/tools/networking/nethoscope/default.nix1
-rw-r--r--pkgs/tools/networking/netifd/default.nix1
-rw-r--r--pkgs/tools/networking/netmask/default.nix1
-rw-r--r--pkgs/tools/networking/nettee/default.nix1
-rw-r--r--pkgs/tools/networking/nexttrace/default.nix1
-rw-r--r--pkgs/tools/networking/nfstrace/default.nix1
-rw-r--r--pkgs/tools/networking/ngrep/default.nix1
-rw-r--r--pkgs/tools/networking/ngrok/default.nix1
-rw-r--r--pkgs/tools/networking/noip/default.nix1
-rw-r--r--pkgs/tools/networking/norouter/default.nix1
-rw-r--r--pkgs/tools/networking/ntopng/default.nix1
-rw-r--r--pkgs/tools/networking/ntttcp/default.nix1
-rw-r--r--pkgs/tools/networking/nuttcp/default.nix1
-rw-r--r--pkgs/tools/networking/nylon/default.nix1
-rw-r--r--pkgs/tools/networking/nzbget/default.nix1
-rw-r--r--pkgs/tools/networking/oapi-codegen/default.nix1
-rw-r--r--pkgs/tools/networking/ofono/default.nix1
-rw-r--r--pkgs/tools/networking/oha/default.nix1
-rw-r--r--pkgs/tools/networking/onetun/default.nix1
-rw-r--r--pkgs/tools/networking/openconnect/common.nix1
-rw-r--r--pkgs/tools/networking/openfortivpn/default.nix1
-rw-r--r--pkgs/tools/networking/openvpn/default.nix1
-rw-r--r--pkgs/tools/networking/oui/default.nix1
-rw-r--r--pkgs/tools/networking/owl/default.nix1
-rw-r--r--pkgs/tools/networking/pacparser/default.nix1
-rw-r--r--pkgs/tools/networking/pathvector/default.nix1
-rw-r--r--pkgs/tools/networking/pcapc/default.nix1
-rw-r--r--pkgs/tools/networking/pcapfix/default.nix1
-rw-r--r--pkgs/tools/networking/pgrok/default.nix1
-rw-r--r--pkgs/tools/networking/phantomsocks/default.nix1
-rw-r--r--pkgs/tools/networking/photon/default.nix1
-rw-r--r--pkgs/tools/networking/piknik/default.nix1
-rw-r--r--pkgs/tools/networking/pingtcp/default.nix1
-rw-r--r--pkgs/tools/networking/pingu/default.nix1
-rw-r--r--pkgs/tools/networking/pixiecore/default.nix1
-rw-r--r--pkgs/tools/networking/pixiewps/default.nix1
-rw-r--r--pkgs/tools/networking/privoxy/default.nix1
-rw-r--r--pkgs/tools/networking/proxychains/default.nix1
-rw-r--r--pkgs/tools/networking/pwnat/default.nix1
-rw-r--r--pkgs/tools/networking/q/default.nix1
-rw-r--r--pkgs/tools/networking/qrcp/default.nix1
-rw-r--r--pkgs/tools/networking/quickserve/default.nix1
-rw-r--r--pkgs/tools/networking/rathole/default.nix1
-rw-r--r--pkgs/tools/networking/rcon/default.nix1
-rw-r--r--pkgs/tools/networking/rconc/default.nix1
-rw-r--r--pkgs/tools/networking/rdap/default.nix1
-rw-r--r--pkgs/tools/networking/rdrview/default.nix1
-rw-r--r--pkgs/tools/networking/redfang/default.nix1
-rw-r--r--pkgs/tools/networking/redir/default.nix1
-rw-r--r--pkgs/tools/networking/redli/default.nix1
-rw-r--r--pkgs/tools/networking/redsocks/default.nix1
-rw-r--r--pkgs/tools/networking/requestly/default.nix1
-rw-r--r--pkgs/tools/networking/restish/default.nix1
-rw-r--r--pkgs/tools/networking/rewrk/default.nix1
-rw-r--r--pkgs/tools/networking/ripmime/default.nix1
-rw-r--r--pkgs/tools/networking/routedns/default.nix1
-rw-r--r--pkgs/tools/networking/rshijack/default.nix1
-rw-r--r--pkgs/tools/networking/s3rs/default.nix1
-rw-r--r--pkgs/tools/networking/s5cmd/default.nix1
-rw-r--r--pkgs/tools/networking/saldl/default.nix1
-rw-r--r--pkgs/tools/networking/shncpd/default.nix1
-rw-r--r--pkgs/tools/networking/simpleproxy/default.nix1
-rw-r--r--pkgs/tools/networking/sipcalc/default.nix1
-rw-r--r--pkgs/tools/networking/sipexer/default.nix1
-rw-r--r--pkgs/tools/networking/sipsak/default.nix1
-rw-r--r--pkgs/tools/networking/sish/default.nix1
-rw-r--r--pkgs/tools/networking/sleep-on-lan/default.nix1
-rw-r--r--pkgs/tools/networking/slirp4netns/default.nix1
-rw-r--r--pkgs/tools/networking/slowlorust/default.nix1
-rw-r--r--pkgs/tools/networking/smartdns/default.nix1
-rw-r--r--pkgs/tools/networking/snabb/default.nix1
-rw-r--r--pkgs/tools/networking/snet/default.nix1
-rw-r--r--pkgs/tools/networking/snmpcheck/default.nix1
-rw-r--r--pkgs/tools/networking/sockperf/default.nix1
-rw-r--r--pkgs/tools/networking/speedtest-go/default.nix1
-rw-r--r--pkgs/tools/networking/speedtest-rs/default.nix1
-rw-r--r--pkgs/tools/networking/spoofer/default.nix1
-rw-r--r--pkgs/tools/networking/srelay/default.nix1
-rw-r--r--pkgs/tools/networking/ssh-agents/default.nix1
-rw-r--r--pkgs/tools/networking/ssh-ident/default.nix1
-rw-r--r--pkgs/tools/networking/ssh-key-confirmer/default.nix1
-rw-r--r--pkgs/tools/networking/sshed/default.nix1
-rw-r--r--pkgs/tools/networking/sshpass/default.nix1
-rw-r--r--pkgs/tools/networking/sshping/default.nix1
-rw-r--r--pkgs/tools/networking/ssldump/default.nix1
-rw-r--r--pkgs/tools/networking/sslsplit/default.nix1
-rw-r--r--pkgs/tools/networking/sstp/default.nix1
-rw-r--r--pkgs/tools/networking/stun/default.nix1
-rw-r--r--pkgs/tools/networking/stunnel/default.nix1
-rw-r--r--pkgs/tools/networking/subfinder/default.nix1
-rw-r--r--pkgs/tools/networking/suckit/default.nix1
-rw-r--r--pkgs/tools/networking/swagger-cli/default.nix1
-rw-r--r--pkgs/tools/networking/swagger-codegen/default.nix1
-rw-r--r--pkgs/tools/networking/tayga/default.nix1
-rw-r--r--pkgs/tools/networking/tcp-cutter/default.nix1
-rw-r--r--pkgs/tools/networking/tcpflow/default.nix1
-rw-r--r--pkgs/tools/networking/tcptraceroute/default.nix1
-rw-r--r--pkgs/tools/networking/tendermint/default.nix1
-rw-r--r--pkgs/tools/networking/termscp/default.nix1
-rw-r--r--pkgs/tools/networking/tinyfecvpn/default.nix1
-rw-r--r--pkgs/tools/networking/tox-node/default.nix1
-rw-r--r--pkgs/tools/networking/traceroute/default.nix1
-rw-r--r--pkgs/tools/networking/tran/default.nix1
-rw-r--r--pkgs/tools/networking/transmission-rss/default.nix1
-rw-r--r--pkgs/tools/networking/trurl/default.nix1
-rw-r--r--pkgs/tools/networking/tun2socks/default.nix1
-rw-r--r--pkgs/tools/networking/tunwg/default.nix1
-rw-r--r--pkgs/tools/networking/udpreplay/default.nix1
-rw-r--r--pkgs/tools/networking/udptunnel/default.nix1
-rw-r--r--pkgs/tools/networking/uqmi/default.nix1
-rw-r--r--pkgs/tools/networking/vegeta/default.nix1
-rw-r--r--pkgs/tools/networking/vlan/default.nix1
-rw-r--r--pkgs/tools/networking/vopono/default.nix1
-rw-r--r--pkgs/tools/networking/wakelan/default.nix1
-rw-r--r--pkgs/tools/networking/wakeonlan/default.nix1
-rw-r--r--pkgs/tools/networking/wavemon/default.nix1
-rw-r--r--pkgs/tools/networking/wbox/default.nix1
-rw-r--r--pkgs/tools/networking/wg-netmanager/default.nix1
-rw-r--r--pkgs/tools/networking/wget2/default.nix1
-rw-r--r--pkgs/tools/networking/whois/default.nix1
-rw-r--r--pkgs/tools/networking/wireguard-go/default.nix1
-rw-r--r--pkgs/tools/networking/wireguard-vanity-address/default.nix1
-rw-r--r--pkgs/tools/networking/wireproxy/default.nix1
-rw-r--r--pkgs/tools/networking/wormhole-william/default.nix1
-rw-r--r--pkgs/tools/networking/wrk/default.nix1
-rw-r--r--pkgs/tools/networking/wrk2/default.nix1
-rw-r--r--pkgs/tools/networking/wsl-vpnkit/default.nix1
-rw-r--r--pkgs/tools/networking/wuzz/default.nix1
-rw-r--r--pkgs/tools/networking/zap/default.nix1
-rw-r--r--pkgs/tools/networking/zs-apc-spdu-ctl/default.nix1
877 files changed, 877 insertions, 0 deletions
diff --git a/pkgs/applications/audio/CHOWTapeModel/default.nix b/pkgs/applications/audio/CHOWTapeModel/default.nix
index dd7604939f0f5..29c1b82d9d0e1 100644
--- a/pkgs/applications/audio/CHOWTapeModel/default.nix
+++ b/pkgs/applications/audio/CHOWTapeModel/default.nix
@@ -127,5 +127,6 @@ stdenv.mkDerivation rec {
     # error: 'vvtanh' was not declared in this scope; did you mean 'tanh'?
     # error: no matching function for call to 'juce::dsp::SIMDRegister<double>::SIMDRegister(xsimd::simd_batch_traits<xsimd::batch<double, 2> >::batch_bool_type)'
     broken = stdenv.isAarch64; # since 2021-12-27 on hydra (update to 2.10): https://hydra.nixos.org/build/162558991
+    mainProgram = "CHOWTapeModel";
   };
 }
diff --git a/pkgs/applications/audio/ChowKick/default.nix b/pkgs/applications/audio/ChowKick/default.nix
index b3ad00bf63a8a..0eec7ea32d32a 100644
--- a/pkgs/applications/audio/ChowKick/default.nix
+++ b/pkgs/applications/audio/ChowKick/default.nix
@@ -102,5 +102,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ magnetophon ];
     platforms = platforms.linux;
+    mainProgram = "ChowKick";
   };
 }
diff --git a/pkgs/applications/audio/aacgain/default.nix b/pkgs/applications/audio/aacgain/default.nix
index 2bee147978159..ce0362ba49c03 100644
--- a/pkgs/applications/audio/aacgain/default.nix
+++ b/pkgs/applications/audio/aacgain/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.robbinch ];
+    mainProgram = "aacgain";
   };
 }
diff --git a/pkgs/applications/audio/aeolus/default.nix b/pkgs/applications/audio/aeolus/default.nix
index cca58da4f99e5..b8a2fe7557042 100644
--- a/pkgs/applications/audio/aeolus/default.nix
+++ b/pkgs/applications/audio/aeolus/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ nico202 orivej ];
+    mainProgram = "aeolus";
   };
 }
diff --git a/pkgs/applications/audio/aj-snapshot/default.nix b/pkgs/applications/audio/aj-snapshot/default.nix
index 9143b5f5b08a7..8de68bca477ca 100644
--- a/pkgs/applications/audio/aj-snapshot/default.nix
+++ b/pkgs/applications/audio/aj-snapshot/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.mrVanDalo ];
     platforms = platforms.all;
+    mainProgram = "aj-snapshot";
   };
 }
diff --git a/pkgs/applications/audio/ashuffle/default.nix b/pkgs/applications/audio/ashuffle/default.nix
index a543dbc7691a5..dca87485913d7 100644
--- a/pkgs/applications/audio/ashuffle/default.nix
+++ b/pkgs/applications/audio/ashuffle/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.tcbravo ];
     platforms = platforms.unix;
     license = licenses.mit;
+    mainProgram = "ashuffle";
   };
 }
diff --git a/pkgs/applications/audio/aucatctl/default.nix b/pkgs/applications/audio/aucatctl/default.nix
index d3f814a7db897..2914d3f343884 100644
--- a/pkgs/applications/audio/aucatctl/default.nix
+++ b/pkgs/applications/audio/aucatctl/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.isc;
     maintainers = with maintainers; [ sna ];
     platforms = platforms.unix;
+    mainProgram = "aucatctl";
   };
 })
diff --git a/pkgs/applications/audio/bitmeter/default.nix b/pkgs/applications/audio/bitmeter/default.nix
index 6108d84c3d9a0..9ae4bd7e79fbf 100644
--- a/pkgs/applications/audio/bitmeter/default.nix
+++ b/pkgs/applications/audio/bitmeter/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
+    mainProgram = "bitmeter";
   };
 }
diff --git a/pkgs/applications/audio/brutefir/default.nix b/pkgs/applications/audio/brutefir/default.nix
index 2aefa8bae08e1..8cb54bf410bf0 100644
--- a/pkgs/applications/audio/brutefir/default.nix
+++ b/pkgs/applications/audio/brutefir/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ auchter ];
     platforms = [ "x86_64-linux" "i686-linux" ];
+    mainProgram = "brutefir";
   };
 }
diff --git a/pkgs/applications/audio/calf/default.nix b/pkgs/applications/audio/calf/default.nix
index e4e679e780828..ecc43dd10c470 100644
--- a/pkgs/applications/audio/calf/default.nix
+++ b/pkgs/applications/audio/calf/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
+    mainProgram = "calfjackhost";
   };
 }
diff --git a/pkgs/applications/audio/cdparanoia/default.nix b/pkgs/applications/audio/cdparanoia/default.nix
index 7f699b82aefc8..f32772b4a3923 100644
--- a/pkgs/applications/audio/cdparanoia/default.nix
+++ b/pkgs/applications/audio/cdparanoia/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     description = "A tool and library for reading digital audio from CDs";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
     platforms = platforms.unix;
+    mainProgram = "cdparanoia";
   };
 }
diff --git a/pkgs/applications/audio/chuck/default.nix b/pkgs/applications/audio/chuck/default.nix
index a62337d7d55ac..6b975b3c6b957 100644
--- a/pkgs/applications/audio/chuck/default.nix
+++ b/pkgs/applications/audio/chuck/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ftrvxmtrx ];
+    mainProgram = "chuck";
   };
 }
diff --git a/pkgs/applications/audio/cider/default.nix b/pkgs/applications/audio/cider/default.nix
index c71f6fa0bc788..96f0ab0f706a6 100644
--- a/pkgs/applications/audio/cider/default.nix
+++ b/pkgs/applications/audio/cider/default.nix
@@ -26,5 +26,6 @@ appimageTools.wrapType2 rec {
     license = licenses.agpl3;
     maintainers = [ maintainers.cigrainger ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "cider";
   };
 }
diff --git a/pkgs/applications/audio/cmusfm/default.nix b/pkgs/applications/audio/cmusfm/default.nix
index 8f15b7d611465..5d3a62bd2a562 100644
--- a/pkgs/applications/audio/cmusfm/default.nix
+++ b/pkgs/applications/audio/cmusfm/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ CharlesHD mudri ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "cmusfm";
   };
 }
diff --git a/pkgs/applications/audio/codecserver/default.nix b/pkgs/applications/audio/codecserver/default.nix
index d1bcf82115ef2..0c1bee94cc10f 100644
--- a/pkgs/applications/audio/codecserver/default.nix
+++ b/pkgs/applications/audio/codecserver/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = teams.c3d2.members;
+    mainProgram = "codecserver";
   };
 }
diff --git a/pkgs/applications/audio/dirt/default.nix b/pkgs/applications/audio/dirt/default.nix
index 9d9c5c869f760..4b9be9a080855 100644
--- a/pkgs/applications/audio/dirt/default.nix
+++ b/pkgs/applications/audio/dirt/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     maintainers = with maintainers; [ anderspapitto ];
     platforms = with platforms; linux;
+    mainProgram = "dirt";
   };
 }
diff --git a/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix b/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix
index 5d5c057d724b8..fddbfc117bdaf 100644
--- a/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix
+++ b/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     # I asked upstream to assign a license, so maybe this can be free
     # in the future, but for now let's play it safe and make it unfree.
     license = lib.licenses.unfree;
+    mainProgram = "DolbyBi64";
   };
 }
diff --git a/pkgs/applications/audio/dsf2flac/default.nix b/pkgs/applications/audio/dsf2flac/default.nix
index d47bff7fe8849..2459c1c6929da 100644
--- a/pkgs/applications/audio/dsf2flac/default.nix
+++ b/pkgs/applications/audio/dsf2flac/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ artemist ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "dsf2flac";
   };
 }
diff --git a/pkgs/applications/audio/eflite/default.nix b/pkgs/applications/audio/eflite/default.nix
index 776698a06d0d7..96b604b7c0584 100644
--- a/pkgs/applications/audio/eflite/default.nix
+++ b/pkgs/applications/audio/eflite/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ jhhuh ];
+    mainProgram = "eflite";
   };
 }
diff --git a/pkgs/applications/audio/famistudio/default.nix b/pkgs/applications/audio/famistudio/default.nix
index e243498f129b9..9951f0ccfb078 100644
--- a/pkgs/applications/audio/famistudio/default.nix
+++ b/pkgs/applications/audio/famistudio/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "famistudio";
   };
 }
diff --git a/pkgs/applications/audio/flac123/default.nix b/pkgs/applications/audio/flac123/default.nix
index 5da071805cad6..646e361524d48 100644
--- a/pkgs/applications/audio/flac123/default.nix
+++ b/pkgs/applications/audio/flac123/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     description = "A command-line program for playing FLAC audio files";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
+    mainProgram = "flac123";
   };
 }
diff --git a/pkgs/applications/audio/fluidsynth/default.nix b/pkgs/applications/audio/fluidsynth/default.nix
index 34329fb2ea84d..56f76f6513c77 100644
--- a/pkgs/applications/audio/fluidsynth/default.nix
+++ b/pkgs/applications/audio/fluidsynth/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license     = licenses.lgpl21Plus;
     maintainers = with maintainers; [ goibhniu lovek323 ];
     platforms   = platforms.unix;
+    mainProgram = "fluidsynth";
   };
 }
diff --git a/pkgs/applications/audio/freewheeling/default.nix b/pkgs/applications/audio/freewheeling/default.nix
index 531352d0ed949..976421aee7abc 100644
--- a/pkgs/applications/audio/freewheeling/default.nix
+++ b/pkgs/applications/audio/freewheeling/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.sepi ];
     platforms = lib.platforms.linux;
+    mainProgram = "fweelin";
   };
 }
diff --git a/pkgs/applications/audio/freqtweak/default.nix b/pkgs/applications/audio/freqtweak/default.nix
index 71bb0f6f05c8f..c880fdb113a0e 100644
--- a/pkgs/applications/audio/freqtweak/default.nix
+++ b/pkgs/applications/audio/freqtweak/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
+    mainProgram = "freqtweak";
   };
 }
diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix
index d299148e6ade6..e10dff68777e1 100644
--- a/pkgs/applications/audio/ft2-clone/default.nix
+++ b/pkgs/applications/audio/ft2-clone/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     # From HOW-TO-COMPILE.txt:
     # > This code is NOT big-endian compatible
     platforms = platforms.littleEndian;
+    mainProgram = "ft2-clone";
   };
 }
diff --git a/pkgs/applications/audio/furnace/default.nix b/pkgs/applications/audio/furnace/default.nix
index adb9f16ed9645..d39e49f4b7afd 100644
--- a/pkgs/applications/audio/furnace/default.nix
+++ b/pkgs/applications/audio/furnace/default.nix
@@ -116,5 +116,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.all;
+    mainProgram = "furnace";
   };
 }
diff --git a/pkgs/applications/audio/geonkick/default.nix b/pkgs/applications/audio/geonkick/default.nix
index 0a99edd7b069c..011f06fd3ad5c 100644
--- a/pkgs/applications/audio/geonkick/default.nix
+++ b/pkgs/applications/audio/geonkick/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.magnetophon ];
+    mainProgram = "geonkick";
   };
 }
diff --git a/pkgs/applications/audio/gigedit/default.nix b/pkgs/applications/audio/gigedit/default.nix
index 8c37e8901a333..7a367aa7ba71b 100644
--- a/pkgs/applications/audio/gigedit/default.nix
+++ b/pkgs/applications/audio/gigedit/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
+    mainProgram = "gigedit";
   };
 }
diff --git a/pkgs/applications/audio/gjay/default.nix b/pkgs/applications/audio/gjay/default.nix
index 29d676598203e..514db23fdb4e9 100644
--- a/pkgs/applications/audio/gjay/default.nix
+++ b/pkgs/applications/audio/gjay/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; linux;
+    mainProgram = "gjay";
   };
 }
diff --git a/pkgs/applications/audio/gnaural/default.nix b/pkgs/applications/audio/gnaural/default.nix
index e7753ef28e6b3..75f163ba1e79b 100644
--- a/pkgs/applications/audio/gnaural/default.nix
+++ b/pkgs/applications/audio/gnaural/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     homepage = "https://gnaural.sourceforge.net/";
     maintainers = with maintainers; [ ehmry ];
     license = with licenses; [ gpl2Only ];
+    mainProgram = "gnaural";
   };
 }
diff --git a/pkgs/applications/audio/headset/default.nix b/pkgs/applications/audio/headset/default.nix
index 336d0d391a312..f505bc8c0ecb4 100644
--- a/pkgs/applications/audio/headset/default.nix
+++ b/pkgs/applications/audio/headset/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ muscaln ];
+    mainProgram = "headset";
   };
 }
diff --git a/pkgs/applications/audio/helm/default.nix b/pkgs/applications/audio/helm/default.nix
index 720fd2b11a137..a7dff6a3ab724 100644
--- a/pkgs/applications/audio/helm/default.nix
+++ b/pkgs/applications/audio/helm/default.nix
@@ -70,5 +70,6 @@
     license = lib.licenses.gpl3Plus;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
+    mainProgram = "helm";
   };
 }
diff --git a/pkgs/applications/audio/hybridreverb2/default.nix b/pkgs/applications/audio/hybridreverb2/default.nix
index 003936d74df39..5a677b9cc8809 100644
--- a/pkgs/applications/audio/hybridreverb2/default.nix
+++ b/pkgs/applications/audio/hybridreverb2/default.nix
@@ -83,5 +83,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
+    mainProgram = "HybridReverb2";
   };
 }
diff --git a/pkgs/applications/audio/id3v2/default.nix b/pkgs/applications/audio/id3v2/default.nix
index 7b8ece0e7182f..6129f25236e6b 100644
--- a/pkgs/applications/audio/id3v2/default.nix
+++ b/pkgs/applications/audio/id3v2/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://id3v2.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
+    mainProgram = "id3v2";
   };
 }
diff --git a/pkgs/applications/audio/industrializer/default.nix b/pkgs/applications/audio/industrializer/default.nix
index 80cb8f76981d7..ba7099a0d603d 100644
--- a/pkgs/applications/audio/industrializer/default.nix
+++ b/pkgs/applications/audio/industrializer/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.magnetophon ];
     platforms = lib.platforms.linux;
+    mainProgram = "psindustrializer";
   };
 }
diff --git a/pkgs/applications/audio/infamousPlugins/default.nix b/pkgs/applications/audio/infamousPlugins/default.nix
index 4597add4132d3..38c8663a53c66 100644
--- a/pkgs/applications/audio/infamousPlugins/default.nix
+++ b/pkgs/applications/audio/infamousPlugins/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
+    mainProgram = "infamous-rule";
   };
 }
diff --git a/pkgs/applications/audio/ir.lv2/default.nix b/pkgs/applications/audio/ir.lv2/default.nix
index 90b816d1290d6..d1984170e3acc 100644
--- a/pkgs/applications/audio/ir.lv2/default.nix
+++ b/pkgs/applications/audio/ir.lv2/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
+    mainProgram = "convert4chan";
   };
 }
diff --git a/pkgs/applications/audio/jaaa/default.nix b/pkgs/applications/audio/jaaa/default.nix
index 48ffd5df51573..4cdc2caf150d0 100644
--- a/pkgs/applications/audio/jaaa/default.nix
+++ b/pkgs/applications/audio/jaaa/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
+    mainProgram = "jaaa";
   };
 }
diff --git a/pkgs/applications/audio/jack-passthrough/default.nix b/pkgs/applications/audio/jack-passthrough/default.nix
index 93f41f1b59529..6126257b35e6e 100644
--- a/pkgs/applications/audio/jack-passthrough/default.nix
+++ b/pkgs/applications/audio/jack-passthrough/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.unfree;
     maintainers = [ maintainers.PowerUser64 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "jack-passthru";
   };
 })
diff --git a/pkgs/applications/audio/jackmeter/default.nix b/pkgs/applications/audio/jackmeter/default.nix
index 95fc88a86964d..c7650c5236542 100644
--- a/pkgs/applications/audio/jackmeter/default.nix
+++ b/pkgs/applications/audio/jackmeter/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.marcweber ];
     platforms = lib.platforms.linux;
+    mainProgram = "jack_meter";
   };
 }
diff --git a/pkgs/applications/audio/japa/default.nix b/pkgs/applications/audio/japa/default.nix
index c13b38f7acd57..a6ee28cc1498a 100644
--- a/pkgs/applications/audio/japa/default.nix
+++ b/pkgs/applications/audio/japa/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.magnetophon ];
     platforms = lib.platforms.linux;
+    mainProgram = "japa";
   };
 }
diff --git a/pkgs/applications/audio/jellycli/default.nix b/pkgs/applications/audio/jellycli/default.nix
index 3654eacfbd6c1..ddaa6721dfb7e 100644
--- a/pkgs/applications/audio/jellycli/default.nix
+++ b/pkgs/applications/audio/jellycli/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     homepage = "https://github.com/tryffel/jellycli";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ oxzi ];
+    mainProgram = "jellycli";
   };
 }
diff --git a/pkgs/applications/audio/jmusicbot/default.nix b/pkgs/applications/audio/jmusicbot/default.nix
index 0bdd80a9601ae..6b154ffbb1a67 100644
--- a/pkgs/applications/audio/jmusicbot/default.nix
+++ b/pkgs/applications/audio/jmusicbot/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
     inherit (jre_headless.meta) platforms;
+    mainProgram = "JMusicBot";
   };
 }
diff --git a/pkgs/applications/audio/keyfinder-cli/default.nix b/pkgs/applications/audio/keyfinder-cli/default.nix
index 62db3d7969082..33adb65f5e8ac 100644
--- a/pkgs/applications/audio/keyfinder-cli/default.nix
+++ b/pkgs/applications/audio/keyfinder-cli/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "keyfinder-cli";
   };
 }
diff --git a/pkgs/applications/audio/klick/default.nix b/pkgs/applications/audio/klick/default.nix
index 8faa7410a5394..5db052dd05188 100644
--- a/pkgs/applications/audio/klick/default.nix
+++ b/pkgs/applications/audio/klick/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     description = "Advanced command-line metronome for JACK";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
+    mainProgram = "klick";
   };
 }
diff --git a/pkgs/applications/audio/klystrack/default.nix b/pkgs/applications/audio/klystrack/default.nix
index 9ea5f40be14bb..597ed4bd2cb2b 100644
--- a/pkgs/applications/audio/klystrack/default.nix
+++ b/pkgs/applications/audio/klystrack/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ suhr ];
     platforms = platforms.linux;
+    mainProgram = "klystrack";
   };
 }
diff --git a/pkgs/applications/audio/kmetronome/default.nix b/pkgs/applications/audio/kmetronome/default.nix
index 70b06e72fba80..a7a48b240e2b8 100644
--- a/pkgs/applications/audio/kmetronome/default.nix
+++ b/pkgs/applications/audio/kmetronome/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.linux;
+    mainProgram = "kmetronome";
   };
 }
diff --git a/pkgs/applications/audio/listenbrainz-mpd/default.nix b/pkgs/applications/audio/listenbrainz-mpd/default.nix
index 1042fae93e3bd..9bf9c35d4bd7f 100644
--- a/pkgs/applications/audio/listenbrainz-mpd/default.nix
+++ b/pkgs/applications/audio/listenbrainz-mpd/default.nix
@@ -59,5 +59,6 @@ rustPlatform.buildRustPackage rec {
     description = "ListenBrainz submission client for MPD";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ DeeUnderscore ];
+    mainProgram = "listenbrainz-mpd";
   };
 }
diff --git a/pkgs/applications/audio/littlegptracker/default.nix b/pkgs/applications/audio/littlegptracker/default.nix
index 846936e65f6a7..fe9a117434fb5 100644
--- a/pkgs/applications/audio/littlegptracker/default.nix
+++ b/pkgs/applications/audio/littlegptracker/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     # https://github.com/NixOS/nixpkgs/pull/91766#issuecomment-688751821
     broken = stdenv.isDarwin;
+    mainProgram = "lgpt";
   };
 }
diff --git a/pkgs/applications/audio/losslessaudiochecker/default.nix b/pkgs/applications/audio/losslessaudiochecker/default.nix
index 5ec91f4260f83..cdea7180a73ef 100644
--- a/pkgs/applications/audio/losslessaudiochecker/default.nix
+++ b/pkgs/applications/audio/losslessaudiochecker/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with lib.maintainers; [ p-h ];
+    mainProgram = "LAC";
   };
 }
diff --git a/pkgs/applications/audio/luppp/default.nix b/pkgs/applications/audio/luppp/default.nix
index 36d329bcafd51..23b084bddb573 100644
--- a/pkgs/applications/audio/luppp/default.nix
+++ b/pkgs/applications/audio/luppp/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ prusnak ];
     platforms = platforms.linux;
+    mainProgram = "luppp";
   };
 }
diff --git a/pkgs/applications/audio/lv2bm/default.nix b/pkgs/applications/audio/lv2bm/default.nix
index 553e0e67f8364..033a7c8cfe706 100644
--- a/pkgs/applications/audio/lv2bm/default.nix
+++ b/pkgs/applications/audio/lv2bm/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
+    mainProgram = "lv2bm";
   };
 }
diff --git a/pkgs/applications/audio/lv2lint/default.nix b/pkgs/applications/audio/lv2lint/default.nix
index e643343d8b4ac..cc840722cdb9a 100644
--- a/pkgs/applications/audio/lv2lint/default.nix
+++ b/pkgs/applications/audio/lv2lint/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.artistic2;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.all;
+    mainProgram = "lv2lint";
   };
 }
diff --git a/pkgs/applications/audio/m4acut/default.nix b/pkgs/applications/audio/m4acut/default.nix
index f3ceee9227c4a..f9612dc210090 100644
--- a/pkgs/applications/audio/m4acut/default.nix
+++ b/pkgs/applications/audio/m4acut/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ bsdOriginal zlib ];
     maintainers = [ maintainers.chkno ];
     platforms = platforms.all;
+    mainProgram = "m4acut";
   };
 }
diff --git a/pkgs/applications/audio/master_me/default.nix b/pkgs/applications/audio/master_me/default.nix
index cc45a8fbee452..8d8782eabdcc7 100644
--- a/pkgs/applications/audio/master_me/default.nix
+++ b/pkgs/applications/audio/master_me/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     broken = stdenv.isDarwin; # error: no type or protocol named 'NSPasteboardType'
     license = licenses.gpl3Plus;
+    mainProgram = "master_me";
   };
 }
diff --git a/pkgs/applications/audio/meterbridge/default.nix b/pkgs/applications/audio/meterbridge/default.nix
index 675189f6d1315..93e2bfabd175c 100644
--- a/pkgs/applications/audio/meterbridge/default.nix
+++ b/pkgs/applications/audio/meterbridge/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.nico202 ];
+    mainProgram = "meterbridge";
   };
 }
diff --git a/pkgs/applications/audio/mi2ly/default.nix b/pkgs/applications/audio/mi2ly/default.nix
index 2ba12575543c1..8b03f75b398d9 100644
--- a/pkgs/applications/audio/mi2ly/default.nix
+++ b/pkgs/applications/audio/mi2ly/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     homepage = "https://www.nongnu.org/mi2ly/";
+    mainProgram = "mi2ly";
   };
 }
diff --git a/pkgs/applications/audio/mid2key/default.nix b/pkgs/applications/audio/mid2key/default.nix
index d4af7108c159e..a4794e8a2e901 100644
--- a/pkgs/applications/audio/mid2key/default.nix
+++ b/pkgs/applications/audio/mid2key/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
+    mainProgram = "mid2key";
   };
 }
diff --git a/pkgs/applications/audio/mikmod/default.nix b/pkgs/applications/audio/mikmod/default.nix
index bb604d6bade2f..abe8ac01cce21 100644
--- a/pkgs/applications/audio/mikmod/default.nix
+++ b/pkgs/applications/audio/mikmod/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ ];
     platforms = with lib.platforms; linux;
+    mainProgram = "mikmod";
   };
 }
diff --git a/pkgs/applications/audio/milkytracker/default.nix b/pkgs/applications/audio/milkytracker/default.nix
index a306b2e8c5942..b792c1ad9b498 100644
--- a/pkgs/applications/audio/milkytracker/default.nix
+++ b/pkgs/applications/audio/milkytracker/default.nix
@@ -81,5 +81,6 @@ stdenv.mkDerivation (finalAttrs: {
     # ibtool -> real Xcode -> I can't get that, and Ofborg can't test that
     broken = stdenv.hostPlatform.isDarwin;
     maintainers = with maintainers; [ OPNA2608 ];
+    mainProgram = "milkytracker";
   };
 })
diff --git a/pkgs/applications/audio/mmlgui/default.nix b/pkgs/applications/audio/mmlgui/default.nix
index 98be95b3bf127..aab0acb25019d 100644
--- a/pkgs/applications/audio/mmlgui/default.nix
+++ b/pkgs/applications/audio/mmlgui/default.nix
@@ -95,5 +95,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.all;
+    mainProgram = "mmlgui";
   };
 }
diff --git a/pkgs/applications/audio/mmtc/default.nix b/pkgs/applications/audio/mmtc/default.nix
index ccbe14d767252..8227d12bbcb5b 100644
--- a/pkgs/applications/audio/mmtc/default.nix
+++ b/pkgs/applications/audio/mmtc/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/figsoda/mmtc/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "mmtc";
   };
 }
diff --git a/pkgs/applications/audio/moc/default.nix b/pkgs/applications/audio/moc/default.nix
index ddd868c71ce77..6e408a5d12b54 100644
--- a/pkgs/applications/audio/moc/default.nix
+++ b/pkgs/applications/audio/moc/default.nix
@@ -96,5 +96,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ aethelz pSub jagajaga ];
     platforms = platforms.unix;
+    mainProgram = "mocp";
   };
 }
diff --git a/pkgs/applications/audio/mp3gain/default.nix b/pkgs/applications/audio/mp3gain/default.nix
index a0e6a0527f7d8..a59f2e376db03 100644
--- a/pkgs/applications/audio/mp3gain/default.nix
+++ b/pkgs/applications/audio/mp3gain/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21;
     platforms = platforms.unix;
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "mp3gain";
   };
 }
diff --git a/pkgs/applications/audio/mp3val/default.nix b/pkgs/applications/audio/mp3val/default.nix
index 559f04f919f1b..daa03617824b1 100644
--- a/pkgs/applications/audio/mp3val/default.nix
+++ b/pkgs/applications/audio/mp3val/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.devhell ];
+    mainProgram = "mp3val";
   };
 }
diff --git a/pkgs/applications/audio/museeks/default.nix b/pkgs/applications/audio/museeks/default.nix
index 2db7b9e46df4c..206fee9de709b 100644
--- a/pkgs/applications/audio/museeks/default.nix
+++ b/pkgs/applications/audio/museeks/default.nix
@@ -34,5 +34,6 @@ appimageTools.wrapType2 {
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ zendo ];
+    mainProgram = "museeks";
   };
 }
diff --git a/pkgs/applications/audio/music-player/default.nix b/pkgs/applications/audio/music-player/default.nix
index e44963090a1f6..b28785d9368b3 100644
--- a/pkgs/applications/audio/music-player/default.nix
+++ b/pkgs/applications/audio/music-player/default.nix
@@ -40,5 +40,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/tsirysndr/music-player/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "music-player";
   };
 }
diff --git a/pkgs/applications/audio/musly/default.nix b/pkgs/applications/audio/musly/default.nix
index 1ae6624637a18..43c5fc3365d15 100644
--- a/pkgs/applications/audio/musly/default.nix
+++ b/pkgs/applications/audio/musly/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation {
     license = licenses.mpl20;
     maintainers = with maintainers; [ ggpeti ];
     platforms = with platforms; darwin ++ linux;
+    mainProgram = "musly";
   };
 }
diff --git a/pkgs/applications/audio/ncmpc/default.nix b/pkgs/applications/audio/ncmpc/default.nix
index 7459becc08d0e..db76f3777224d 100644
--- a/pkgs/applications/audio/ncmpc/default.nix
+++ b/pkgs/applications/audio/ncmpc/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license     = licenses.gpl2Plus;
     platforms   = platforms.all;
     maintainers = with maintainers; [ fpletz ];
+    mainProgram = "ncmpc";
   };
 }
diff --git a/pkgs/applications/audio/ncpamixer/default.nix b/pkgs/applications/audio/ncpamixer/default.nix
index b503f5308b821..d33024c0dfbe3 100644
--- a/pkgs/applications/audio/ncpamixer/default.nix
+++ b/pkgs/applications/audio/ncpamixer/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = teams.c3d2.members;
+    mainProgram = "ncpamixer";
   };
 }
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index 553e50f16654f..1135404a43ea9 100644
--- a/pkgs/applications/audio/ncspot/default.nix
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -59,5 +59,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/hrkfdn/ncspot/releases/tag/v${version}";
     license = licenses.bsd2;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "ncspot";
   };
 }
diff --git a/pkgs/applications/audio/ninjas2/default.nix b/pkgs/applications/audio/ninjas2/default.nix
index 8fa5bed306617..8a2cc317c1375 100644
--- a/pkgs/applications/audio/ninjas2/default.nix
+++ b/pkgs/applications/audio/ninjas2/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl3 ];
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
+    mainProgram = "ninjas2";
   };
 }
diff --git a/pkgs/applications/audio/odin2/default.nix b/pkgs/applications/audio/odin2/default.nix
index de89f9aedead4..a6254d8c77e81 100644
--- a/pkgs/applications/audio/odin2/default.nix
+++ b/pkgs/applications/audio/odin2/default.nix
@@ -82,5 +82,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ magnetophon ];
+    mainProgram = "Odin2";
   };
 }
diff --git a/pkgs/applications/audio/open-stage-control/default.nix b/pkgs/applications/audio/open-stage-control/default.nix
index 0e2650b67b2f3..2d446174fb110 100644
--- a/pkgs/applications/audio/open-stage-control/default.nix
+++ b/pkgs/applications/audio/open-stage-control/default.nix
@@ -90,5 +90,6 @@ buildNpmPackage rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lilyinstarlight ];
     platforms = platforms.linux;
+    mainProgram = "open-stage-control";
   };
 }
diff --git a/pkgs/applications/audio/openutau/default.nix b/pkgs/applications/audio/openutau/default.nix
index ca9dd2f550da0..17105558f2d2b 100644
--- a/pkgs/applications/audio/openutau/default.nix
+++ b/pkgs/applications/audio/openutau/default.nix
@@ -85,5 +85,6 @@ buildDotnetModule rec {
     ];
     maintainers = with maintainers; [ lilyinstarlight ];
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    mainProgram = "OpenUtau";
   };
 }
diff --git a/pkgs/applications/audio/opustags/default.nix b/pkgs/applications/audio/opustags/default.nix
index 56ef66642801b..314d475a04ede 100644
--- a/pkgs/applications/audio/opustags/default.nix
+++ b/pkgs/applications/audio/opustags/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     broken = stdenv.isDarwin;
     maintainers = with maintainers; [ kmein ];
     license = licenses.bsd3;
+    mainProgram = "opustags";
   };
 }
diff --git a/pkgs/applications/audio/pamix/default.nix b/pkgs/applications/audio/pamix/default.nix
index 4a2ad9ab779ea..fb1d0bfb3d412 100644
--- a/pkgs/applications/audio/pamix/default.nix
+++ b/pkgs/applications/audio/pamix/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license     = licenses.mit;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ ericsagnes ];
+    mainProgram = "pamix";
   };
 }
diff --git a/pkgs/applications/audio/patchage/default.nix b/pkgs/applications/audio/patchage/default.nix
index 99bbdf693a9c1..c4d1b5ca12c86 100644
--- a/pkgs/applications/audio/patchage/default.nix
+++ b/pkgs/applications/audio/patchage/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.lgpl3;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.nico202 ];
+    mainProgram = "patchage";
   };
 }
diff --git a/pkgs/applications/audio/paulstretch/default.nix b/pkgs/applications/audio/paulstretch/default.nix
index d85b543baed45..c539521f11679 100644
--- a/pkgs/applications/audio/paulstretch/default.nix
+++ b/pkgs/applications/audio/paulstretch/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation {
     homepage = "https://hypermammut.sourceforge.net/paulstretch/";
     platforms = platforms.linux;
     license = licenses.gpl2;
+    mainProgram = "paulstretch";
   };
 }
diff --git a/pkgs/applications/audio/pbpctrl/default.nix b/pkgs/applications/audio/pbpctrl/default.nix
index 0a258b0cb9c1f..1cb18d8318239 100644
--- a/pkgs/applications/audio/pbpctrl/default.nix
+++ b/pkgs/applications/audio/pbpctrl/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ asl20 mit ];
     maintainers = [ maintainers.vanilla ];
     platforms = platforms.linux;
+    mainProgram = "pbpctrl";
   };
 }
diff --git a/pkgs/applications/audio/petrifoo/default.nix b/pkgs/applications/audio/petrifoo/default.nix
index 49ed6dfd98423..10a82bac6edbc 100644
--- a/pkgs/applications/audio/petrifoo/default.nix
+++ b/pkgs/applications/audio/petrifoo/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation  rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.goibhniu ];
+    mainProgram = "petri-foo";
   };
 }
diff --git a/pkgs/applications/audio/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix
index 9949fce8b09c7..3d2d6e1263b0c 100644
--- a/pkgs/applications/audio/pianobar/default.nix
+++ b/pkgs/applications/audio/pianobar/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://6xq.net/pianobar/";
     platforms = platforms.unix;
     license = licenses.mit; # expat version
+    mainProgram = "pianobar";
   };
 }
diff --git a/pkgs/applications/audio/picoloop/default.nix b/pkgs/applications/audio/picoloop/default.nix
index e92319127d7d2..74d2e305b74f3 100644
--- a/pkgs/applications/audio/picoloop/default.nix
+++ b/pkgs/applications/audio/picoloop/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/yoyz/picoloop";
     platforms = platforms.linux;
     license = licenses.bsd3;
+    mainProgram = "picoloop";
   };
 }
diff --git a/pkgs/applications/audio/pmidi/default.nix b/pkgs/applications/audio/pmidi/default.nix
index 43f38ff84ed02..c8725fa9a36a7 100644
--- a/pkgs/applications/audio/pmidi/default.nix
+++ b/pkgs/applications/audio/pmidi/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation {
     description = "A straightforward command line program to play midi files through the ALSA sequencer";
     maintainers = with maintainers; [ lheckemann ];
     license = licenses.gpl2;
+    mainProgram = "pmidi";
   };
 }
diff --git a/pkgs/applications/audio/pms/default.nix b/pkgs/applications/audio/pms/default.nix
index bb6d018efe4ae..d8c7bffcb0f44 100644
--- a/pkgs/applications/audio/pms/default.nix
+++ b/pkgs/applications/audio/pms/default.nix
@@ -18,5 +18,6 @@ buildGoModule {
     homepage = "https://ambientsound.github.io/pms/";
     license = licenses.mit;
     maintainers = with maintainers; [ deejayem ];
+    mainProgram = "pms";
   };
 }
diff --git a/pkgs/applications/audio/proteus/default.nix b/pkgs/applications/audio/proteus/default.nix
index b536af040d784..ab2bdae4ef0fc 100644
--- a/pkgs/applications/audio/proteus/default.nix
+++ b/pkgs/applications/audio/proteus/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ orivej ];
+    mainProgram = "Proteus";
   };
 }
diff --git a/pkgs/applications/audio/psst/default.nix b/pkgs/applications/audio/psst/default.nix
index 58d39e8747201..b1c37bd01b56e 100644
--- a/pkgs/applications/audio/psst/default.nix
+++ b/pkgs/applications/audio/psst/default.nix
@@ -68,5 +68,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jpochyla/psst";
     license = licenses.mit;
     maintainers = with maintainers; [ vbrandl peterhoeg ];
+    mainProgram = "psst-gui";
   };
 }
diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix
index b8775bc235320..7e486f640c93c 100644
--- a/pkgs/applications/audio/pt2-clone/default.nix
+++ b/pkgs/applications/audio/pt2-clone/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
     # From HOW-TO-COMPILE.txt:
     # > This code is NOT big-endian compatible
     platforms = platforms.littleEndian;
+    mainProgram = "pt2-clone";
   };
 }
 
diff --git a/pkgs/applications/audio/rhvoice/default.nix b/pkgs/applications/audio/rhvoice/default.nix
index af2ce6ae25bae..bf7791ca555a6 100644
--- a/pkgs/applications/audio/rhvoice/default.nix
+++ b/pkgs/applications/audio/rhvoice/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ berce ];
     platforms = with lib.platforms; all;
+    mainProgram = "RHVoice-test";
   };
 }
diff --git a/pkgs/applications/audio/roomeqwizard/default.nix b/pkgs/applications/audio/roomeqwizard/default.nix
index 80b5f733ce067..eacee9932ea35 100644
--- a/pkgs/applications/audio/roomeqwizard/default.nix
+++ b/pkgs/applications/audio/roomeqwizard/default.nix
@@ -114,5 +114,6 @@ stdenv.mkDerivation rec {
       REW is free software for room acoustic measurement, loudspeaker
       measurement and audio device measurement.
     '';
+    mainProgram = "roomeqwizard";
   };
 }
diff --git a/pkgs/applications/audio/schismtracker/default.nix b/pkgs/applications/audio/schismtracker/default.nix
index 68e9fcd7e1909..46f6237ce3225 100644
--- a/pkgs/applications/audio/schismtracker/default.nix
+++ b/pkgs/applications/audio/schismtracker/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ftrvxmtrx ];
+    mainProgram = "schismtracker";
   };
 }
diff --git a/pkgs/applications/audio/seq24/default.nix b/pkgs/applications/audio/seq24/default.nix
index f586a1592f9c0..f2858f8f291f1 100644
--- a/pkgs/applications/audio/seq24/default.nix
+++ b/pkgs/applications/audio/seq24/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation  rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ goibhniu ];
+    mainProgram = "seq24";
   };
 }
diff --git a/pkgs/applications/audio/snd/default.nix b/pkgs/applications/audio/snd/default.nix
index 777b452792cc1..52ce5c9b78bcf 100644
--- a/pkgs/applications/audio/snd/default.nix
+++ b/pkgs/applications/audio/snd/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.free;
     maintainers = with maintainers; [ ];
+    mainProgram = "snd";
   };
 }
diff --git a/pkgs/applications/audio/sndpeek/default.nix b/pkgs/applications/audio/sndpeek/default.nix
index 39f706d1f24c0..c65208343aff7 100644
--- a/pkgs/applications/audio/sndpeek/default.nix
+++ b/pkgs/applications/audio/sndpeek/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     homepage = "https://soundlab.cs.princeton.edu/software/sndpeek/";
     license = licenses.gpl2;
     maintainers = [ maintainers.laikq ];
+    mainProgram = "sndpeek";
   };
 }
diff --git a/pkgs/applications/audio/songrec/default.nix b/pkgs/applications/audio/songrec/default.nix
index 6eacb605a70eb..5493418ba1a27 100644
--- a/pkgs/applications/audio/songrec/default.nix
+++ b/pkgs/applications/audio/songrec/default.nix
@@ -44,5 +44,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ tcbravo ];
+    mainProgram = "songrec";
   };
 }
diff --git a/pkgs/applications/audio/sonixd/default.nix b/pkgs/applications/audio/sonixd/default.nix
index d13c398eabd8c..87ceb7b25e0f4 100644
--- a/pkgs/applications/audio/sonixd/default.nix
+++ b/pkgs/applications/audio/sonixd/default.nix
@@ -30,6 +30,7 @@ appimageTools.wrapType2 rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ onny ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "sonixd";
   };
 }
 
diff --git a/pkgs/applications/audio/sonobus/default.nix b/pkgs/applications/audio/sonobus/default.nix
index c99d3c4ca1e55..959c7a9d0623c 100644
--- a/pkgs/applications/audio/sonobus/default.nix
+++ b/pkgs/applications/audio/sonobus/default.nix
@@ -82,5 +82,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with maintainers; [ PowerUser64 ];
     platforms = platforms.unix;
     broken = stdenv.isDarwin;
+    mainProgram = "sonobus";
   };
 })
diff --git a/pkgs/applications/audio/sony-headphones-client/default.nix b/pkgs/applications/audio/sony-headphones-client/default.nix
index b39f7272643f6..24cae82f1b02d 100644
--- a/pkgs/applications/audio/sony-headphones-client/default.nix
+++ b/pkgs/applications/audio/sony-headphones-client/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ stunkymonkey ];
     platforms = platforms.linux;
+    mainProgram = "SonyHeadphonesClient";
   };
 }
diff --git a/pkgs/applications/audio/spectrojack/default.nix b/pkgs/applications/audio/spectrojack/default.nix
index 12bb972398e25..54cb7101e6e8f 100644
--- a/pkgs/applications/audio/spectrojack/default.nix
+++ b/pkgs/applications/audio/spectrojack/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.publicDomain;
     maintainers = with lib.maintainers; [ sleexyz ];
     platforms = with lib.platforms; linux;
+    mainProgram = "spectrojack";
   };
 }
diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix
index d0a77ab064979..0e41bedb2650c 100644
--- a/pkgs/applications/audio/spotifyd/default.nix
+++ b/pkgs/applications/audio/spotifyd/default.nix
@@ -44,5 +44,6 @@ rustPackages.rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ anderslundstedt Br1ght0ne marsam ];
     platforms = platforms.unix;
+    mainProgram = "spotifyd";
   };
 }
diff --git a/pkgs/applications/audio/sptlrx/default.nix b/pkgs/applications/audio/sptlrx/default.nix
index 6743407fa3ed0..b385898202c20 100644
--- a/pkgs/applications/audio/sptlrx/default.nix
+++ b/pkgs/applications/audio/sptlrx/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     changelog = "https://github.com/raitonoberu/sptlrx/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ MoritzBoehme ];
+    mainProgram = "sptlrx";
   };
 }
diff --git a/pkgs/applications/audio/squishyball/default.nix b/pkgs/applications/audio/squishyball/default.nix
index 1d3bb0e0beeb7..af8eb9b373142 100644
--- a/pkgs/applications/audio/squishyball/default.nix
+++ b/pkgs/applications/audio/squishyball/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ michalrus ];
     platforms = platforms.linux;
+    mainProgram = "squishyball";
   };
 }
diff --git a/pkgs/applications/audio/streamripper/default.nix b/pkgs/applications/audio/streamripper/default.nix
index 70ff4dd8605a9..6874d2f420597 100644
--- a/pkgs/applications/audio/streamripper/default.nix
+++ b/pkgs/applications/audio/streamripper/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     homepage = "https://streamripper.sourceforge.net/";
     description = "Application that lets you record streaming mp3 to your hard drive";
     license = licenses.gpl2;
+    mainProgram = "streamripper";
   };
 }
diff --git a/pkgs/applications/audio/subtitlr/default.nix b/pkgs/applications/audio/subtitlr/default.nix
index a62cd3053f7c1..67847f3b91b02 100644
--- a/pkgs/applications/audio/subtitlr/default.nix
+++ b/pkgs/applications/audio/subtitlr/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/yoanbernabeu/Subtitlr/";
     license = licenses.mit;
     maintainers = with maintainers; [ qjoly ];
+    mainProgram = "Subtitlr";
   };
 }
diff --git a/pkgs/applications/audio/svox/default.nix b/pkgs/applications/audio/svox/default.nix
index 044fd176481f9..acd1de1a20c9e 100644
--- a/pkgs/applications/audio/svox/default.nix
+++ b/pkgs/applications/audio/svox/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     platforms = platforms.linux;
     license = licenses.asl20;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "pico2wave";
   };
 }
diff --git a/pkgs/applications/audio/synaesthesia/default.nix b/pkgs/applications/audio/synaesthesia/default.nix
index efdd6f7e73a7e..765e724cd8ecb 100644
--- a/pkgs/applications/audio/synaesthesia/default.nix
+++ b/pkgs/applications/audio/synaesthesia/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.infinisil ];
+    mainProgram = "synaesthesia";
   };
 }
diff --git a/pkgs/applications/audio/tagutil/default.nix b/pkgs/applications/audio/tagutil/default.nix
index 9cd9946be60db..51aaf75cddbcf 100644
--- a/pkgs/applications/audio/tagutil/default.nix
+++ b/pkgs/applications/audio/tagutil/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = platforms.linux;
+    mainProgram = "tagutil";
   };
 }
diff --git a/pkgs/applications/audio/timemachine/default.nix b/pkgs/applications/audio/timemachine/default.nix
index 042e6b4307560..c09a9b1bc0079 100644
--- a/pkgs/applications/audio/timemachine/default.nix
+++ b/pkgs/applications/audio/timemachine/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
     license = lib.licenses.lgpl2;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.nico202 ];
+    mainProgram = "timemachine";
   };
 }
 
diff --git a/pkgs/applications/audio/tone/default.nix b/pkgs/applications/audio/tone/default.nix
index 06529a4b02e43..dc10439ab0fc9 100644
--- a/pkgs/applications/audio/tone/default.nix
+++ b/pkgs/applications/audio/tone/default.nix
@@ -28,5 +28,6 @@ buildDotnetModule rec {
     license = licenses.asl20;
     maintainers = [ maintainers.jvanbruegge ];
     platforms = platforms.linux;
+    mainProgram = "tone";
   };
 }
diff --git a/pkgs/applications/audio/tonelib-gfx/default.nix b/pkgs/applications/audio/tonelib-gfx/default.nix
index e875b80855340..260ebd40872ef 100644
--- a/pkgs/applications/audio/tonelib-gfx/default.nix
+++ b/pkgs/applications/audio/tonelib-gfx/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ dan4ik605743 orivej ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "ToneLib-GFX";
   };
 }
diff --git a/pkgs/applications/audio/tonelib-jam/default.nix b/pkgs/applications/audio/tonelib-jam/default.nix
index 3376ae8ca10f0..289f8b92a189d 100644
--- a/pkgs/applications/audio/tonelib-jam/default.nix
+++ b/pkgs/applications/audio/tonelib-jam/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "ToneLib-Jam";
   };
 }
diff --git a/pkgs/applications/audio/tonelib-metal/default.nix b/pkgs/applications/audio/tonelib-metal/default.nix
index df6890d65da32..aee3c383ae68f 100644
--- a/pkgs/applications/audio/tonelib-metal/default.nix
+++ b/pkgs/applications/audio/tonelib-metal/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "ToneLib-Metal";
   };
 }
diff --git a/pkgs/applications/audio/tonelib-noisereducer/default.nix b/pkgs/applications/audio/tonelib-noisereducer/default.nix
index 20dbe8c19dffc..f2f01b9326bcf 100644
--- a/pkgs/applications/audio/tonelib-noisereducer/default.nix
+++ b/pkgs/applications/audio/tonelib-noisereducer/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ orivej ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "ToneLib-NoiseReducer";
   };
 }
diff --git a/pkgs/applications/audio/tonelib-zoom/default.nix b/pkgs/applications/audio/tonelib-zoom/default.nix
index 74fe8645acf3c..e5adc356b6973 100644
--- a/pkgs/applications/audio/tonelib-zoom/default.nix
+++ b/pkgs/applications/audio/tonelib-zoom/default.nix
@@ -60,5 +60,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "ToneLib-Zoom";
   };
 }
diff --git a/pkgs/applications/audio/transcribe/default.nix b/pkgs/applications/audio/transcribe/default.nix
index 2831dd1f4bafc..0d311adf8799d 100644
--- a/pkgs/applications/audio/transcribe/default.nix
+++ b/pkgs/applications/audio/transcribe/default.nix
@@ -110,5 +110,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ iwanb ];
     platforms = platforms.linux;
+    mainProgram = "transcribe";
   };
 }
diff --git a/pkgs/applications/audio/tree-from-tags/default.nix b/pkgs/applications/audio/tree-from-tags/default.nix
index 4bf4db09ac077..9b81cc250c1b2 100644
--- a/pkgs/applications/audio/tree-from-tags/default.nix
+++ b/pkgs/applications/audio/tree-from-tags/default.nix
@@ -34,5 +34,6 @@ EOF
     platforms = ruby.meta.platforms;
     maintainers = [ maintainers.livnev maintainers.dbrock ];
     license = licenses.gpl2Plus;
+    mainProgram = "tree-from-tags";
   };
 }
diff --git a/pkgs/applications/audio/vimpc/default.nix b/pkgs/applications/audio/vimpc/default.nix
index 7e834efb95249..713f444ef1ea7 100644
--- a/pkgs/applications/audio/vimpc/default.nix
+++ b/pkgs/applications/audio/vimpc/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "vimpc";
   };
 }
diff --git a/pkgs/applications/audio/wavegain/default.nix b/pkgs/applications/audio/wavegain/default.nix
index 4372944080ec0..93dd7bf6fb235 100644
--- a/pkgs/applications/audio/wavegain/default.nix
+++ b/pkgs/applications/audio/wavegain/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation {
     license = lib.licenses.lgpl21;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.robbinch ];
+    mainProgram = "wavegain";
   };
 }
diff --git a/pkgs/applications/audio/wolf-shaper/default.nix b/pkgs/applications/audio/wolf-shaper/default.nix
index 60b1aea19df21..a3c08e92b7234 100644
--- a/pkgs/applications/audio/wolf-shaper/default.nix
+++ b/pkgs/applications/audio/wolf-shaper/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.magnetophon ];
     platforms = [ "i686-linux" "x86_64-linux" ];
+    mainProgram = "wolf-shaper";
   };
 }
diff --git a/pkgs/applications/audio/xmp/default.nix b/pkgs/applications/audio/xmp/default.nix
index 325aa21984ed7..efd5fb9caa60d 100644
--- a/pkgs/applications/audio/xmp/default.nix
+++ b/pkgs/applications/audio/xmp/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://xmp.sourceforge.net/";
     license     = licenses.gpl2Plus;
     platforms   = platforms.unix;
+    mainProgram = "xmp";
   };
 }
diff --git a/pkgs/applications/audio/xtuner/default.nix b/pkgs/applications/audio/xtuner/default.nix
index 1fdb97f6dad46..2db4256ee87fc 100644
--- a/pkgs/applications/audio/xtuner/default.nix
+++ b/pkgs/applications/audio/xtuner/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ magnetophon ];
     platforms = platforms.linux;
+    mainProgram = "xtuner";
   };
 }
diff --git a/pkgs/applications/audio/yasr/default.nix b/pkgs/applications/audio/yasr/default.nix
index d300737ae6d8b..b90b7272b1ab0 100644
--- a/pkgs/applications/audio/yasr/default.nix
+++ b/pkgs/applications/audio/yasr/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ jhhuh ];
+    mainProgram = "yasr";
   };
 }
diff --git a/pkgs/applications/audio/ympd/default.nix b/pkgs/applications/audio/ympd/default.nix
index 83ce36a595816..9921bb6dfada3 100644
--- a/pkgs/applications/audio/ympd/default.nix
+++ b/pkgs/applications/audio/ympd/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.siddharthist ];
     platforms = platforms.unix;
     license = licenses.gpl2Plus;
+    mainProgram = "ympd";
   };
 }
diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix
index 9509f71a78bfd..2fdc579a3d82b 100644
--- a/pkgs/applications/audio/yoshimi/default.nix
+++ b/pkgs/applications/audio/yoshimi/default.nix
@@ -71,5 +71,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.goibhniu ];
+    mainProgram = "yoshimi";
   };
 }
diff --git a/pkgs/applications/audio/zita-at1/default.nix b/pkgs/applications/audio/zita-at1/default.nix
index 8a629e145c407..4e9544e39602d 100644
--- a/pkgs/applications/audio/zita-at1/default.nix
+++ b/pkgs/applications/audio/zita-at1/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.linux;
+    mainProgram = "zita-at1";
   };
 }
diff --git a/pkgs/applications/display-managers/emptty/default.nix b/pkgs/applications/display-managers/emptty/default.nix
index 37ef4ce8460ae..6e9ed91dec215 100644
--- a/pkgs/applications/display-managers/emptty/default.nix
+++ b/pkgs/applications/display-managers/emptty/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ urandom ];
     # many undefined functions
     broken = stdenv.isDarwin;
+    mainProgram = "emptty";
   };
 }
diff --git a/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix
index b0d8ed5152615..87a6560f6f643 100644
--- a/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix
+++ b/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix
@@ -54,5 +54,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ colinsane ];
     platforms = platforms.linux;
     license = licenses.mit;
+    mainProgram = "lightdm-mobile-greeter";
   };
 }
diff --git a/pkgs/applications/display-managers/ly/default.nix b/pkgs/applications/display-managers/ly/default.nix
index 8b387b36205b0..9376dc476dec2 100644
--- a/pkgs/applications/display-managers/ly/default.nix
+++ b/pkgs/applications/display-managers/ly/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/fairyglade/ly";
     maintainers = [ maintainers.vidister ];
     platforms = platforms.linux;
+    mainProgram = "ly";
   };
 }
diff --git a/pkgs/applications/emulators/attract-mode/default.nix b/pkgs/applications/emulators/attract-mode/default.nix
index 0bd1b4b062ab3..9173faf7fe5bb 100644
--- a/pkgs/applications/emulators/attract-mode/default.nix
+++ b/pkgs/applications/emulators/attract-mode/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hrdinka ];
     platforms = with platforms; linux;
+    mainProgram = "attract";
   };
 }
diff --git a/pkgs/applications/emulators/basiliskii/default.nix b/pkgs/applications/emulators/basiliskii/default.nix
index 8546b9c4087f3..a81f50b542113 100644
--- a/pkgs/applications/emulators/basiliskii/default.nix
+++ b/pkgs/applications/emulators/basiliskii/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2;
     maintainers = with maintainers; [ quag ];
     platforms = platforms.linux;
+    mainProgram = "BasiliskII";
   };
 })
diff --git a/pkgs/applications/emulators/caprice32/default.nix b/pkgs/applications/emulators/caprice32/default.nix
index 6c2932f7e10ba..7a4f4b1ab4aed 100644
--- a/pkgs/applications/emulators/caprice32/default.nix
+++ b/pkgs/applications/emulators/caprice32/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ ];
     platforms = platforms.linux;
+    mainProgram = "cap32";
   };
 }
diff --git a/pkgs/applications/emulators/ccemux/default.nix b/pkgs/applications/emulators/ccemux/default.nix
index 9464c1f4575f7..8e00b8281efa2 100644
--- a/pkgs/applications/emulators/ccemux/default.nix
+++ b/pkgs/applications/emulators/ccemux/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
     maintainers = with maintainers; [ CrazedProgrammer viluon ];
+    mainProgram = "ccemux";
   };
 }
diff --git a/pkgs/applications/emulators/cen64/default.nix b/pkgs/applications/emulators/cen64/default.nix
index bd7c84402cfd6..e13adbb71de82 100644
--- a/pkgs/applications/emulators/cen64/default.nix
+++ b/pkgs/applications/emulators/cen64/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/n64dev/cen64";
     maintainers = [ maintainers._414owen ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "cen64";
   };
 }
diff --git a/pkgs/applications/emulators/emu2/default.nix b/pkgs/applications/emulators/emu2/default.nix
index 7949a3f2b0518..a919d644d720c 100644
--- a/pkgs/applications/emulators/emu2/default.nix
+++ b/pkgs/applications/emulators/emu2/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ AndersonTorres ];
     license = licenses.gpl2Plus;
+    mainProgram = "emu2";
   };
 }
diff --git a/pkgs/applications/emulators/gxemul/default.nix b/pkgs/applications/emulators/gxemul/default.nix
index 05f837b187670..88ea01f9d76ef 100644
--- a/pkgs/applications/emulators/gxemul/default.nix
+++ b/pkgs/applications/emulators/gxemul/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "gxemul";
   };
 }
diff --git a/pkgs/applications/emulators/kega-fusion/default.nix b/pkgs/applications/emulators/kega-fusion/default.nix
index f69a9c3206cd5..9bf359b88ccd0 100644
--- a/pkgs/applications/emulators/kega-fusion/default.nix
+++ b/pkgs/applications/emulators/kega-fusion/default.nix
@@ -75,5 +75,6 @@ in stdenv.mkDerivation {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     platforms = [ "i686-linux" ];
+    mainProgram = "kega-fusion";
   };
 }
diff --git a/pkgs/applications/emulators/mednafen/default.nix b/pkgs/applications/emulators/mednafen/default.nix
index bcc58ccb76a0f..816b6c1bd4d7c 100644
--- a/pkgs/applications/emulators/mednafen/default.nix
+++ b/pkgs/applications/emulators/mednafen/default.nix
@@ -94,5 +94,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "mednafen";
   };
 }
diff --git a/pkgs/applications/emulators/oberon-risc-emu/default.nix b/pkgs/applications/emulators/oberon-risc-emu/default.nix
index 749e3549bf80f..331473f59fedf 100644
--- a/pkgs/applications/emulators/oberon-risc-emu/default.nix
+++ b/pkgs/applications/emulators/oberon-risc-emu/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     description = "Emulator for the Oberon RISC machine";
     license     = licenses.isc;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "risc";
   };
 }
diff --git a/pkgs/applications/emulators/openmsx/default.nix b/pkgs/applications/emulators/openmsx/default.nix
index c9f7827d09ab7..1c34c0025c8e1 100644
--- a/pkgs/applications/emulators/openmsx/default.nix
+++ b/pkgs/applications/emulators/openmsx/default.nix
@@ -71,5 +71,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = with licenses; [ bsd2 boost gpl2Plus ];
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "openmsx";
   };
 })
diff --git a/pkgs/applications/emulators/simplenes/default.nix b/pkgs/applications/emulators/simplenes/default.nix
index d073098507ee2..05a00e2c9201b 100644
--- a/pkgs/applications/emulators/simplenes/default.nix
+++ b/pkgs/applications/emulators/simplenes/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ ivar ];
     platforms = platforms.linux;
+    mainProgram = "SimpleNES";
   };
 }
diff --git a/pkgs/applications/emulators/tamatool/default.nix b/pkgs/applications/emulators/tamatool/default.nix
index ce2518031b2e6..cc245ebbe1fae 100644
--- a/pkgs/applications/emulators/tamatool/default.nix
+++ b/pkgs/applications/emulators/tamatool/default.nix
@@ -74,5 +74,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
+    mainProgram = "tamatool";
   };
 })
diff --git a/pkgs/applications/emulators/tilem/default.nix b/pkgs/applications/emulators/tilem/default.nix
index c9ba0067ee746..e6d9a19564658 100644
--- a/pkgs/applications/emulators/tilem/default.nix
+++ b/pkgs/applications/emulators/tilem/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ siraben luc65r ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "tilem2";
   };
 }
diff --git a/pkgs/applications/emulators/tiny8086/default.nix b/pkgs/applications/emulators/tiny8086/default.nix
index a0cc6bd7929b6..c236cd0950f61 100644
--- a/pkgs/applications/emulators/tiny8086/default.nix
+++ b/pkgs/applications/emulators/tiny8086/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
+    mainProgram = "8086tiny";
   };
 }
diff --git a/pkgs/applications/emulators/uae/default.nix b/pkgs/applications/emulators/uae/default.nix
index 105729f628298..bfb8584aa94b4 100644
--- a/pkgs/applications/emulators/uae/default.nix
+++ b/pkgs/applications/emulators/uae/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     homepage = "https://web.archive.org/web/20130901222855/http://www.amigaemulator.org/";
     maintainers = [ lib.maintainers.sander ];
     platforms = lib.platforms.linux;
+    mainProgram = "uae";
   };
 }
diff --git a/pkgs/applications/emulators/wibo/default.nix b/pkgs/applications/emulators/wibo/default.nix
index 102fd324cc29c..f34f8d6b2f0f7 100644
--- a/pkgs/applications/emulators/wibo/default.nix
+++ b/pkgs/applications/emulators/wibo/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ r-burns ];
     platforms = [ "i686-linux" ];
+    mainProgram = "wibo";
   };
 }
diff --git a/pkgs/applications/emulators/xcpc/default.nix b/pkgs/applications/emulators/xcpc/default.nix
index 633d44bb5ae4a..6482f05cf1b11 100644
--- a/pkgs/applications/emulators/xcpc/default.nix
+++ b/pkgs/applications/emulators/xcpc/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ ];
     platforms = platforms.linux;
+    mainProgram = "xcpc";
   };
 }
diff --git a/pkgs/applications/emulators/yapesdl/default.nix b/pkgs/applications/emulators/yapesdl/default.nix
index 136e6ce4eb896..652b2cff3488e 100644
--- a/pkgs/applications/emulators/yapesdl/default.nix
+++ b/pkgs/applications/emulators/yapesdl/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
     broken = stdenv.isDarwin;
+    mainProgram = "yapesdl";
   };
 })
diff --git a/pkgs/applications/emulators/zsnes/default.nix b/pkgs/applications/emulators/zsnes/default.nix
index 8e12d7cd7bb36..ebe7af84d7fcf 100644
--- a/pkgs/applications/emulators/zsnes/default.nix
+++ b/pkgs/applications/emulators/zsnes/default.nix
@@ -70,5 +70,6 @@ in stdenv.mkDerivation {
     maintainers = [ lib.maintainers.sander ];
     homepage = "https://www.zsnes.com";
     platforms = [ "i686-linux" "x86_64-linux" ];
+    mainProgram = "zsnes";
   };
 }
diff --git a/pkgs/applications/file-managers/cfm/default.nix b/pkgs/applications/file-managers/cfm/default.nix
index 0955403e7eb81..640067d527f2d 100644
--- a/pkgs/applications/file-managers/cfm/default.nix
+++ b/pkgs/applications/file-managers/cfm/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl20;
     maintainers = with maintainers; [ lom ];
     platforms = platforms.all;
+    mainProgram = "cfm";
   };
 }
diff --git a/pkgs/applications/file-managers/clifm/default.nix b/pkgs/applications/file-managers/clifm/default.nix
index fdabc61aeb461..50f5e82f182bf 100644
--- a/pkgs/applications/file-managers/clifm/default.nix
+++ b/pkgs/applications/file-managers/clifm/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ nadir-ishiguro ];
     platforms = platforms.unix;
+    mainProgram = "clifm";
   };
 }
diff --git a/pkgs/applications/file-managers/lf/default.nix b/pkgs/applications/file-managers/lf/default.nix
index 9caf29a5a9a4c..1f2b8b908928a 100644
--- a/pkgs/applications/file-managers/lf/default.nix
+++ b/pkgs/applications/file-managers/lf/default.nix
@@ -44,5 +44,6 @@ buildGoModule rec {
     changelog = "https://github.com/gokcehan/lf/releases/tag/r${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "lf";
   };
 }
diff --git a/pkgs/applications/file-managers/mucommander/default.nix b/pkgs/applications/file-managers/mucommander/default.nix
index cf3b1352f488d..308035b094a17 100644
--- a/pkgs/applications/file-managers/mucommander/default.nix
+++ b/pkgs/applications/file-managers/mucommander/default.nix
@@ -105,5 +105,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ jiegec ];
     platforms = platforms.all;
+    mainProgram = "mucommander";
   };
 }
diff --git a/pkgs/applications/file-managers/noice/default.nix b/pkgs/applications/file-managers/noice/default.nix
index 25e93ace7c04e..d41c12faad8d1 100644
--- a/pkgs/applications/file-managers/noice/default.nix
+++ b/pkgs/applications/file-managers/noice/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ iogamaster ];
+    mainProgram = "noice";
   };
 }
diff --git a/pkgs/applications/file-managers/sfm/default.nix b/pkgs/applications/file-managers/sfm/default.nix
index 800ea9419cbe3..8a3aaee4418e9 100644
--- a/pkgs/applications/file-managers/sfm/default.nix
+++ b/pkgs/applications/file-managers/sfm/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sikmir ];
+    mainProgram = "sfm";
   };
 }
diff --git a/pkgs/applications/file-managers/shfm/default.nix b/pkgs/applications/file-managers/shfm/default.nix
index 602151075fc71..47bb6dfdbe8c8 100644
--- a/pkgs/applications/file-managers/shfm/default.nix
+++ b/pkgs/applications/file-managers/shfm/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.all;
+    mainProgram = "shfm";
   };
 }
diff --git a/pkgs/applications/file-managers/xplorer/default.nix b/pkgs/applications/file-managers/xplorer/default.nix
index b4681ab697b21..76edf8ee48328 100644
--- a/pkgs/applications/file-managers/xplorer/default.nix
+++ b/pkgs/applications/file-managers/xplorer/default.nix
@@ -90,5 +90,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://xplorer.space";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "xplorer";
   };
 }
diff --git a/pkgs/applications/finance/irpf/default.nix b/pkgs/applications/finance/irpf/default.nix
index 2d280a41c5df1..6ced017dff6cd 100644
--- a/pkgs/applications/finance/irpf/default.nix
+++ b/pkgs/applications/finance/irpf/default.nix
@@ -72,5 +72,6 @@ stdenvNoCC.mkDerivation rec {
     platforms = platforms.all;
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     maintainers = with maintainers; [ atila ];
+    mainProgram = "irpf";
   };
 }
diff --git a/pkgs/applications/graphics/alchemy/default.nix b/pkgs/applications/graphics/alchemy/default.nix
index c37bc92a4065d..2b61004ed0e7a 100644
--- a/pkgs/applications/graphics/alchemy/default.nix
+++ b/pkgs/applications/graphics/alchemy/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.marcweber ];
     platforms = platforms.linux;
+    mainProgram = "alchemy";
   };
 }
diff --git a/pkgs/applications/graphics/apngasm/default.nix b/pkgs/applications/graphics/apngasm/default.nix
index 085683b5b6434..d75188b36dd61 100644
--- a/pkgs/applications/graphics/apngasm/default.nix
+++ b/pkgs/applications/graphics/apngasm/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     license = licenses.zlib;
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.linux;
+    mainProgram = "apngasm";
   };
 
 }
diff --git a/pkgs/applications/graphics/artem/default.nix b/pkgs/applications/graphics/artem/default.nix
index de6f593fc453e..8a5fb0f66ec64 100644
--- a/pkgs/applications/graphics/artem/default.nix
+++ b/pkgs/applications/graphics/artem/default.nix
@@ -48,5 +48,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/finefindus/artem/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "artem";
   };
 }
diff --git a/pkgs/applications/graphics/ascii-image-converter/default.nix b/pkgs/applications/graphics/ascii-image-converter/default.nix
index c4a63aa4fbebe..d0ae5420bdfec 100644
--- a/pkgs/applications/graphics/ascii-image-converter/default.nix
+++ b/pkgs/applications/graphics/ascii-image-converter/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/TheZoraiz/ascii-image-converter#readme";
     license = licenses.asl20;
     maintainers = [ maintainers.danth ];
+    mainProgram = "ascii-image-converter";
   };
 }
diff --git a/pkgs/applications/graphics/autotrace/default.nix b/pkgs/applications/graphics/autotrace/default.nix
index e611a56a66247..30cf116fed14d 100644
--- a/pkgs/applications/graphics/autotrace/default.nix
+++ b/pkgs/applications/graphics/autotrace/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ hodapp ];
     license = licenses.gpl2;
+    mainProgram = "autotrace";
   };
 }
diff --git a/pkgs/applications/graphics/awesomebump/default.nix b/pkgs/applications/graphics/awesomebump/default.nix
index e7bc474e17d34..a5debbc21b02d 100644
--- a/pkgs/applications/graphics/awesomebump/default.nix
+++ b/pkgs/applications/graphics/awesomebump/default.nix
@@ -59,5 +59,6 @@ in mkDerivation {
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.linux;
+    mainProgram = "AwesomeBump";
   };
 }
diff --git a/pkgs/applications/graphics/azpainter/default.nix b/pkgs/applications/graphics/azpainter/default.nix
index ac52af2a7d4c6..05fb56bb5d7d7 100644
--- a/pkgs/applications/graphics/azpainter/default.nix
+++ b/pkgs/applications/graphics/azpainter/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dtzWill ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "azpainter";
   };
 }
diff --git a/pkgs/applications/graphics/curv/default.nix b/pkgs/applications/graphics/curv/default.nix
index 6725e525c3768..71793b861508f 100644
--- a/pkgs/applications/graphics/curv/default.nix
+++ b/pkgs/applications/graphics/curv/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     broken = stdenv.isDarwin;
     maintainers = with maintainers; [ pbsds ];
+    mainProgram = "curv";
   };
 }
diff --git a/pkgs/applications/graphics/deskew/default.nix b/pkgs/applications/graphics/deskew/default.nix
index ad3a20d2431cd..f43a26f692a34 100644
--- a/pkgs/applications/graphics/deskew/default.nix
+++ b/pkgs/applications/graphics/deskew/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
     license = with licenses; [ mit mpl11 ];
     maintainers = with maintainers; [ryantm];
     platforms = platforms.all;
+    mainProgram = "deskew";
   };
 
 }
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index af64823bb35c7..6c3278af05088 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -112,5 +112,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
     maintainers = with maintainers; [ qyliss darkonion0 ];
     platforms = platforms.darwin ++ platforms.linux;
+    mainProgram = "drawio";
   };
 }
diff --git a/pkgs/applications/graphics/emulsion/default.nix b/pkgs/applications/graphics/emulsion/default.nix
index 4964d258c11a4..f970b7ffc58ff 100644
--- a/pkgs/applications/graphics/emulsion/default.nix
+++ b/pkgs/applications/graphics/emulsion/default.nix
@@ -73,5 +73,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.unix;
     license = licenses.mit;
+    mainProgram = "emulsion";
   };
 }
diff --git a/pkgs/applications/graphics/entwine/default.nix b/pkgs/applications/graphics/entwine/default.nix
index 908d5cc08184a..5a79bc38c553c 100644
--- a/pkgs/applications/graphics/entwine/default.nix
+++ b/pkgs/applications/graphics/entwine/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation {
     license = licenses.lgpl2Only;
     maintainers = with maintainers; [ matthewcroughan ];
     platforms = platforms.linux;
+    mainProgram = "entwine";
   };
 }
diff --git a/pkgs/applications/graphics/epeg/default.nix b/pkgs/applications/graphics/epeg/default.nix
index b4ba26bd015f9..8134771f5688d 100644
--- a/pkgs/applications/graphics/epeg/default.nix
+++ b/pkgs/applications/graphics/epeg/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
       url = "https://github.com/mattes/epeg#license";
     };
     maintainers = with maintainers; [ nh2 ];
+    mainProgram = "epeg";
   };
 }
diff --git a/pkgs/applications/graphics/epick/default.nix b/pkgs/applications/graphics/epick/default.nix
index c27cbf94476b5..dee31abdd29d2 100644
--- a/pkgs/applications/graphics/epick/default.nix
+++ b/pkgs/applications/graphics/epick/default.nix
@@ -57,5 +57,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/vv9k/epick/blob/${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "epick";
   };
 }
diff --git a/pkgs/applications/graphics/f3d/default.nix b/pkgs/applications/graphics/f3d/default.nix
index 2fef95222b5a5..12076557acfb7 100644
--- a/pkgs/applications/graphics/f3d/default.nix
+++ b/pkgs/applications/graphics/f3d/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ bcdarwin pbsds ];
     platforms = with platforms; unix;
+    mainProgram = "f3d";
   };
 }
diff --git a/pkgs/applications/graphics/figma-agent/default.nix b/pkgs/applications/graphics/figma-agent/default.nix
index 36ae271d7e164..a6bf008e82959 100644
--- a/pkgs/applications/graphics/figma-agent/default.nix
+++ b/pkgs/applications/graphics/figma-agent/default.nix
@@ -40,5 +40,6 @@ buildRustPackage {
     description = "Figma Agent for Linux (a.k.a. Font Helper)";
     license = licenses.mit;
     maintainers = with maintainers; [ ercao ];
+    mainProgram = "figma-agent";
   };
 }
diff --git a/pkgs/applications/graphics/flaca/default.nix b/pkgs/applications/graphics/flaca/default.nix
index 0c421618d0943..912887e0e93a9 100644
--- a/pkgs/applications/graphics/flaca/default.nix
+++ b/pkgs/applications/graphics/flaca/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ zzzsy ];
     platforms = platforms.linux;
     license = licenses.wtfpl;
+    mainProgram = "flaca";
   };
 }
diff --git a/pkgs/applications/graphics/focus-stack/default.nix b/pkgs/applications/graphics/focus-stack/default.nix
index 11de5d144452a..6025aa9b7a1be 100644
--- a/pkgs/applications/graphics/focus-stack/default.nix
+++ b/pkgs/applications/graphics/focus-stack/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/PetteriAimonen/focus-stack";
     license = licenses.mit;
     maintainers = with maintainers; [ paperdigits ];
+    mainProgram = "focus-stack";
   };
 }
diff --git a/pkgs/applications/graphics/foxotron/default.nix b/pkgs/applications/graphics/foxotron/default.nix
index 079515b4b2143..c5f2d9c26fccf 100644
--- a/pkgs/applications/graphics/foxotron/default.nix
+++ b/pkgs/applications/graphics/foxotron/default.nix
@@ -97,5 +97,6 @@ stdenv.mkDerivation rec {
     license = licenses.unlicense;
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.all;
+    mainProgram = "Foxotron";
   };
 }
diff --git a/pkgs/applications/graphics/gcolor2/default.nix b/pkgs/applications/graphics/gcolor2/default.nix
index 61a41abac5b05..4ee7b869eea07 100644
--- a/pkgs/applications/graphics/gcolor2/default.nix
+++ b/pkgs/applications/graphics/gcolor2/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ notthemessiah ];
     platforms = with lib.platforms; unix;
+    mainProgram = "gcolor2";
   };
 }
diff --git a/pkgs/applications/graphics/gnuclad/default.nix b/pkgs/applications/graphics/gnuclad/default.nix
index b90735d850837..a263746ef9acb 100644
--- a/pkgs/applications/graphics/gnuclad/default.nix
+++ b/pkgs/applications/graphics/gnuclad/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mog ];
     platforms = platforms.unix;
+    mainProgram = "gnuclad";
   };
 }
diff --git a/pkgs/applications/graphics/gpicview/default.nix b/pkgs/applications/graphics/gpicview/default.nix
index f19c0282b1870..fcef4751eab72 100644
--- a/pkgs/applications/graphics/gpicview/default.nix
+++ b/pkgs/applications/graphics/gpicview/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ lovek323 ];
     platforms = platforms.unix;
+    mainProgram = "gpicview";
   };
 }
diff --git a/pkgs/applications/graphics/gqview/default.nix b/pkgs/applications/graphics/gqview/default.nix
index 847fa9ea5f686..8237473c79b1a 100644
--- a/pkgs/applications/graphics/gqview/default.nix
+++ b/pkgs/applications/graphics/gqview/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
+    mainProgram = "gqview";
   };
 }
diff --git a/pkgs/applications/graphics/guetzli/default.nix b/pkgs/applications/graphics/guetzli/default.nix
index 9f2f050441f1a..945416e3f03d9 100644
--- a/pkgs/applications/graphics/guetzli/default.nix
+++ b/pkgs/applications/graphics/guetzli/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     license = lib.licenses.asl20;
     platforms = lib.platforms.x86_64;
     maintainers = [ lib.maintainers.seppeljordan ];
+    mainProgram = "guetzli";
   };
 }
diff --git a/pkgs/applications/graphics/hello-wayland/default.nix b/pkgs/applications/graphics/hello-wayland/default.nix
index 45c1e6f541635..d2ce6c57cec21 100644
--- a/pkgs/applications/graphics/hello-wayland/default.nix
+++ b/pkgs/applications/graphics/hello-wayland/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ qyliss ];
     license = licenses.mit;
     platforms = platforms.linux;
+    mainProgram = "hello-wayland";
   };
 }
diff --git a/pkgs/applications/graphics/image_optim/default.nix b/pkgs/applications/graphics/image_optim/default.nix
index 94b16d57467d5..1d9048cafaa66 100644
--- a/pkgs/applications/graphics/image_optim/default.nix
+++ b/pkgs/applications/graphics/image_optim/default.nix
@@ -71,5 +71,6 @@ bundlerApp {
     license = licenses.mit;
     maintainers = with maintainers; [ srghma nicknovitski ];
     platforms = platforms.all;
+    mainProgram = "image_optim";
   };
 }
diff --git a/pkgs/applications/graphics/imagej/default.nix b/pkgs/applications/graphics/imagej/default.nix
index 35c8dbf2f19aa..b6396c231b19d 100644
--- a/pkgs/applications/graphics/imagej/default.nix
+++ b/pkgs/applications/graphics/imagej/default.nix
@@ -78,5 +78,6 @@ in stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     platforms = platforms.unix;
     maintainers = with maintainers; [ yuriaisaka ];
+    mainProgram = "imagej";
   };
 }
diff --git a/pkgs/applications/graphics/img-cat/default.nix b/pkgs/applications/graphics/img-cat/default.nix
index 825955c10b9ea..414f4b2a3b332 100644
--- a/pkgs/applications/graphics/img-cat/default.nix
+++ b/pkgs/applications/graphics/img-cat/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/trashhalo/imgcat";
     license = licenses.mit;
     maintainers = with maintainers; [ penguwin ];
+    mainProgram = "imgcat";
   };
 }
diff --git a/pkgs/applications/graphics/imgcat/default.nix b/pkgs/applications/graphics/imgcat/default.nix
index 72167cb2b3fc9..ab3d22531589c 100644
--- a/pkgs/applications/graphics/imgcat/default.nix
+++ b/pkgs/applications/graphics/imgcat/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ jwiegley ];
     platforms = platforms.unix;
+    mainProgram = "imgcat";
   };
 }
 
diff --git a/pkgs/applications/graphics/imlibsetroot/default.nix b/pkgs/applications/graphics/imlibsetroot/default.nix
index 110a7e513e32b..a4059ccba28b7 100644
--- a/pkgs/applications/graphics/imlibsetroot/default.nix
+++ b/pkgs/applications/graphics/imlibsetroot/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation {
     license = licenses.mitAdvertising;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dwarfmaster ];
+    mainProgram = "imlibsetroot";
   };
 }
diff --git a/pkgs/applications/graphics/jpeginfo/default.nix b/pkgs/applications/graphics/jpeginfo/default.nix
index 52f55a629f8a2..c470082a2bb31 100644
--- a/pkgs/applications/graphics/jpeginfo/default.nix
+++ b/pkgs/applications/graphics/jpeginfo/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.bjornfor ];
     platforms = platforms.all;
+    mainProgram = "jpeginfo";
   };
 }
diff --git a/pkgs/applications/graphics/jpegoptim/default.nix b/pkgs/applications/graphics/jpegoptim/default.nix
index d8ec361600ea0..dd5def2a5e309 100644
--- a/pkgs/applications/graphics/jpegoptim/default.nix
+++ b/pkgs/applications/graphics/jpegoptim/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.aristid ];
     platforms = platforms.all;
+    mainProgram = "jpegoptim";
   };
 }
diff --git a/pkgs/applications/graphics/lazpaint/default.nix b/pkgs/applications/graphics/lazpaint/default.nix
index d2d799dadaf6a..1f6a9460a6a48 100644
--- a/pkgs/applications/graphics/lazpaint/default.nix
+++ b/pkgs/applications/graphics/lazpaint/default.nix
@@ -62,5 +62,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "lazpaint";
   };
 }
diff --git a/pkgs/applications/graphics/lightburn/default.nix b/pkgs/applications/graphics/lightburn/default.nix
index c686ed41752ad..f038304d32c73 100644
--- a/pkgs/applications/graphics/lightburn/default.nix
+++ b/pkgs/applications/graphics/lightburn/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ q3k ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "LightBurn";
   };
 }
diff --git a/pkgs/applications/graphics/litemdview/default.nix b/pkgs/applications/graphics/litemdview/default.nix
index ebd830868f6c0..9fedae23069c0 100644
--- a/pkgs/applications/graphics/litemdview/default.nix
+++ b/pkgs/applications/graphics/litemdview/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ WhiteBlackGoose ];
     platforms = platforms.linux;
+    mainProgram = "litemdview";
   };
 }
diff --git a/pkgs/applications/graphics/lorien/default.nix b/pkgs/applications/graphics/lorien/default.nix
index ad7442a93ccbd..8105e3682b591 100644
--- a/pkgs/applications/graphics/lorien/default.nix
+++ b/pkgs/applications/graphics/lorien/default.nix
@@ -129,5 +129,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ hqurve ];
+    mainProgram = "lorien";
   };
 }
diff --git a/pkgs/applications/graphics/meh/default.nix b/pkgs/applications/graphics/meh/default.nix
index d23176c2518db..992a739bb3775 100644
--- a/pkgs/applications/graphics/meh/default.nix
+++ b/pkgs/applications/graphics/meh/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation {
     homepage = "https://www.johnhawthorn.com/meh/";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
+    mainProgram = "meh";
   };
 }
diff --git a/pkgs/applications/graphics/menyoki/default.nix b/pkgs/applications/graphics/menyoki/default.nix
index e1b7087cf73b7..800ede30be429 100644
--- a/pkgs/applications/graphics/menyoki/default.nix
+++ b/pkgs/applications/graphics/menyoki/default.nix
@@ -50,5 +50,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/orhun/menyoki/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "menyoki";
   };
 }
diff --git a/pkgs/applications/graphics/minidjvu/default.nix b/pkgs/applications/graphics/minidjvu/default.nix
index 4a9b91d9c7b84..ca9e77391eb39 100644
--- a/pkgs/applications/graphics/minidjvu/default.nix
+++ b/pkgs/applications/graphics/minidjvu/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.viric ];
     platforms = lib.platforms.unix;
+    mainProgram = "minidjvu";
   };
 }
diff --git a/pkgs/applications/graphics/mtpaint/default.nix b/pkgs/applications/graphics/mtpaint/default.nix
index 740f9c7cb193f..332acf25e498c 100644
--- a/pkgs/applications/graphics/mtpaint/default.nix
+++ b/pkgs/applications/graphics/mtpaint/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.vklquevs ];
+    mainProgram = "mtpaint";
   };
 }
 
diff --git a/pkgs/applications/graphics/ocrad/default.nix b/pkgs/applications/graphics/ocrad/default.nix
index 476d56fb3fe3c..8eae4fda5f8b7 100644
--- a/pkgs/applications/graphics/ocrad/default.nix
+++ b/pkgs/applications/graphics/ocrad/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.unix;
+    mainProgram = "ocrad";
   };
 }
diff --git a/pkgs/applications/graphics/odafileconverter/default.nix b/pkgs/applications/graphics/odafileconverter/default.nix
index 3a089febc3df3..ba1d5bdce0738 100644
--- a/pkgs/applications/graphics/odafileconverter/default.nix
+++ b/pkgs/applications/graphics/odafileconverter/default.nix
@@ -50,5 +50,6 @@ in mkDerivation {
     license = licenses.unfree;
     maintainers = with maintainers; [ nagisa ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "ODAFileConverter";
   };
 }
diff --git a/pkgs/applications/graphics/openboard/default.nix b/pkgs/applications/graphics/openboard/default.nix
index e32e668573132..9eacdc642ce56 100644
--- a/pkgs/applications/graphics/openboard/default.nix
+++ b/pkgs/applications/graphics/openboard/default.nix
@@ -114,5 +114,6 @@ in stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fufexan ];
     platforms = platforms.linux;
+    mainProgram = "OpenBoard";
   };
 })
diff --git a/pkgs/applications/graphics/pdfcpu/default.nix b/pkgs/applications/graphics/pdfcpu/default.nix
index 9fdc77ac745f2..6c15c55d3953b 100644
--- a/pkgs/applications/graphics/pdfcpu/default.nix
+++ b/pkgs/applications/graphics/pdfcpu/default.nix
@@ -64,5 +64,6 @@ buildGoModule rec {
     homepage = "https://pdfcpu.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "pdfcpu";
   };
 }
diff --git a/pkgs/applications/graphics/pixelnuke/default.nix b/pkgs/applications/graphics/pixelnuke/default.nix
index 0666501120e63..c40a41590b70e 100644
--- a/pkgs/applications/graphics/pixelnuke/default.nix
+++ b/pkgs/applications/graphics/pixelnuke/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.unlicense;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mrVanDalo ];
+    mainProgram = "pixelnuke";
   };
 })
diff --git a/pkgs/applications/graphics/pixeluvo/default.nix b/pkgs/applications/graphics/pixeluvo/default.nix
index f3b40b515183a..2c94b4645c562 100644
--- a/pkgs/applications/graphics/pixeluvo/default.nix
+++ b/pkgs/applications/graphics/pixeluvo/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ wolfangaukang ];
+    mainProgram = "pixeluvo";
   };
 }
diff --git a/pkgs/applications/graphics/pqiv/default.nix b/pkgs/applications/graphics/pqiv/default.nix
index f678af7061197..0c56dd70cbb89 100644
--- a/pkgs/applications/graphics/pqiv/default.nix
+++ b/pkgs/applications/graphics/pqiv/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation (rec {
     license = licenses.gpl3Plus;
     maintainers = [];
     platforms = platforms.linux;
+    mainProgram = "pqiv";
   };
 })
diff --git a/pkgs/applications/graphics/qiv/default.nix b/pkgs/applications/graphics/qiv/default.nix
index 96ec02294ffdc..2758148dc1ae3 100644
--- a/pkgs/applications/graphics/qiv/default.nix
+++ b/pkgs/applications/graphics/qiv/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation (rec {
     homepage = "http://spiegl.de/qiv/";
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "qiv";
   };
 })
diff --git a/pkgs/applications/graphics/round/default.nix b/pkgs/applications/graphics/round/default.nix
index a41ecc8db73df..b65567dcab400 100644
--- a/pkgs/applications/graphics/round/default.nix
+++ b/pkgs/applications/graphics/round/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage    = "https://github.com/mingrammer/round";
     license     = licenses.mit;
     maintainers =  with maintainers; [ addict3d ];
+    mainProgram = "round";
   };
 }
diff --git a/pkgs/applications/graphics/swingsane/default.nix b/pkgs/applications/graphics/swingsane/default.nix
index 6d2b6e4bb7a7e..998c3d2110315 100644
--- a/pkgs/applications/graphics/swingsane/default.nix
+++ b/pkgs/applications/graphics/swingsane/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     platforms = platforms.all;
+    mainProgram = "swingsane";
   };
 }
diff --git a/pkgs/applications/graphics/sxiv/default.nix b/pkgs/applications/graphics/sxiv/default.nix
index 65450d515668b..f3d7086d4a098 100644
--- a/pkgs/applications/graphics/sxiv/default.nix
+++ b/pkgs/applications/graphics/sxiv/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
     maintainers = with maintainers; [ h7x4 ];
+    mainProgram = "sxiv";
   };
 }
diff --git a/pkgs/applications/graphics/tesseract/tesseract3.nix b/pkgs/applications/graphics/tesseract/tesseract3.nix
index bf19d0f77eb6f..d796e506a8772 100644
--- a/pkgs/applications/graphics/tesseract/tesseract3.nix
+++ b/pkgs/applications/graphics/tesseract/tesseract3.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ viric erikarvstedt ];
     platforms = with lib.platforms; linux ++ darwin;
+    mainProgram = "tesseract";
   };
 }
diff --git a/pkgs/applications/graphics/tesseract/tesseract4.nix b/pkgs/applications/graphics/tesseract/tesseract4.nix
index 5bd682988526a..88cda12a9c5eb 100644
--- a/pkgs/applications/graphics/tesseract/tesseract4.nix
+++ b/pkgs/applications/graphics/tesseract/tesseract4.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ viric erikarvstedt ];
     platforms = with lib.platforms; linux ++ darwin;
+    mainProgram = "tesseract";
   };
 }
diff --git a/pkgs/applications/graphics/unigine-superposition/default.nix b/pkgs/applications/graphics/unigine-superposition/default.nix
index bc8e128ba44a2..07813cbc415e7 100644
--- a/pkgs/applications/graphics/unigine-superposition/default.nix
+++ b/pkgs/applications/graphics/unigine-superposition/default.nix
@@ -143,5 +143,6 @@ buildFHSEnv {
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.BarinovMaxim ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "Superposition";
   };
 }
diff --git a/pkgs/applications/graphics/upscayl/default.nix b/pkgs/applications/graphics/upscayl/default.nix
index 24b8bc1483b27..024c7f658c213 100644
--- a/pkgs/applications/graphics/upscayl/default.nix
+++ b/pkgs/applications/graphics/upscayl/default.nix
@@ -38,5 +38,6 @@ in
       maintainers = with maintainers; [icy-thought];
       license = licenses.agpl3Plus;
       platforms = platforms.linux;
+      mainProgram = "upscayl";
     };
   }
diff --git a/pkgs/applications/graphics/viewnior/default.nix b/pkgs/applications/graphics/viewnior/default.nix
index 7f90c815837ae..bfd707f55132d 100644
--- a/pkgs/applications/graphics/viewnior/default.nix
+++ b/pkgs/applications/graphics/viewnior/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     homepage = "https://siyanpanayotov.com/project/viewnior/";
     maintainers = with maintainers; [ smironov artturin ];
     platforms = platforms.gnu ++ platforms.linux;
+    mainProgram = "viewnior";
   };
 }
diff --git a/pkgs/applications/graphics/vpv/default.nix b/pkgs/applications/graphics/vpv/default.nix
index 27957a5fa86ff..1bbdbd4a35e7a 100644
--- a/pkgs/applications/graphics/vpv/default.nix
+++ b/pkgs/applications/graphics/vpv/default.nix
@@ -59,5 +59,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = [ lib.maintainers.kidanger ];
     license = lib.licenses.gpl3;
     broken = stdenv.isDarwin; # the CMake expects the SDL2::SDL2main target for darwin
+    mainProgram = "vpv";
   };
 })
diff --git a/pkgs/applications/graphics/wings/default.nix b/pkgs/applications/graphics/wings/default.nix
index 094a483ae7b8d..87e0a47cc5ae1 100644
--- a/pkgs/applications/graphics/wings/default.nix
+++ b/pkgs/applications/graphics/wings/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.tcltk;
     maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux;
+    mainProgram = "wings";
   };
 }
diff --git a/pkgs/applications/graphics/xfractint/default.nix b/pkgs/applications/graphics/xfractint/default.nix
index c43127bfa9932..d4873dd926894 100644
--- a/pkgs/applications/graphics/xfractint/default.nix
+++ b/pkgs/applications/graphics/xfractint/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
     homepage = "https://www.fractint.net/";
+    mainProgram = "xfractint";
   };
 }
diff --git a/pkgs/applications/graphics/xmountains/default.nix b/pkgs/applications/graphics/xmountains/default.nix
index 61020e678c307..d7c70f18b5b62 100644
--- a/pkgs/applications/graphics/xmountains/default.nix
+++ b/pkgs/applications/graphics/xmountains/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://spbooth.github.io/xmountains";
     license = licenses.hpndSellVariant;
     maintainers = with maintainers; [ djanatyn ];
+    mainProgram = "xmountains";
   };
 }
diff --git a/pkgs/applications/graphics/xournal/default.nix b/pkgs/applications/graphics/xournal/default.nix
index 288f0446b34ad..7f618b257387f 100644
--- a/pkgs/applications/graphics/xournal/default.nix
+++ b/pkgs/applications/graphics/xournal/default.nix
@@ -59,5 +59,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.guibert ];
     license = licenses.gpl2;
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "xournal";
   };
 }
diff --git a/pkgs/applications/graphics/xzgv/default.nix b/pkgs/applications/graphics/xzgv/default.nix
index d26f6eccf76a2..1617b6459d331 100644
--- a/pkgs/applications/graphics/xzgv/default.nix
+++ b/pkgs/applications/graphics/xzgv/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.womfoo ];
     platforms = platforms.linux;
+    mainProgram = "xzgv";
   };
 }
diff --git a/pkgs/applications/graphics/yed/default.nix b/pkgs/applications/graphics/yed/default.nix
index ccb6b087215a8..4e70c9d37aba4 100644
--- a/pkgs/applications/graphics/yed/default.nix
+++ b/pkgs/applications/graphics/yed/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     description = "A powerful desktop application that can be used to quickly and effectively generate high-quality diagrams";
     platforms = jre.meta.platforms;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "yed";
   };
 }
diff --git a/pkgs/applications/graphics/yeetgif/default.nix b/pkgs/applications/graphics/yeetgif/default.nix
index d464b56cb2650..6e3b7ecee39fa 100644
--- a/pkgs/applications/graphics/yeetgif/default.nix
+++ b/pkgs/applications/graphics/yeetgif/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://github.com/sgreben/yeetgif";
     license = with licenses; [ mit asl20 cc-by-nc-sa-40 ];
     maintainers = with maintainers; [ ajs124 ];
+    mainProgram = "gif";
   };
 }
diff --git a/pkgs/applications/graphics/zgrviewer/default.nix b/pkgs/applications/graphics/zgrviewer/default.nix
index cf0dd52ee73c2..980e631ad41f5 100644
--- a/pkgs/applications/graphics/zgrviewer/default.nix
+++ b/pkgs/applications/graphics/zgrviewer/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.lgpl21Plus;
     description = "GraphViz graph viewer/navigator";
     platforms = with lib.platforms; unix;
+    mainProgram = "zgrviewer";
   };
 }
diff --git a/pkgs/applications/graphics/zgv/default.nix b/pkgs/applications/graphics/zgv/default.nix
index a4e5e725490f0..0b63f46731902 100644
--- a/pkgs/applications/graphics/zgv/default.nix
+++ b/pkgs/applications/graphics/zgv/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.vrthra ];
     platforms = platforms.linux;
+    mainProgram = "zgv";
   };
 }
diff --git a/pkgs/applications/logging/humioctl/default.nix b/pkgs/applications/logging/humioctl/default.nix
index b0744505d09e1..d9f780c0b3a21 100644
--- a/pkgs/applications/logging/humioctl/default.nix
+++ b/pkgs/applications/logging/humioctl/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     description = "A CLI for managing and sending data to Humio";
     license = licenses.asl20;
     maintainers = with maintainers; [ lucperkins ];
+    mainProgram = "humioctl";
   };
 }
diff --git a/pkgs/applications/misc/HentaiAtHome/default.nix b/pkgs/applications/misc/HentaiAtHome/default.nix
index d5023c64fd1bc..e34c2434a4f53 100644
--- a/pkgs/applications/misc/HentaiAtHome/default.nix
+++ b/pkgs/applications/misc/HentaiAtHome/default.nix
@@ -52,5 +52,6 @@ stdenvNoCC.mkDerivation rec {
       "Hentai@Home is an open-source P2P gallery distribution system which reduces the load on the E-Hentai Galleries";
     license = licenses.gpl3;
     maintainers = with maintainers; [ terrorjack ];
+    mainProgram = "HentaiAtHome";
   };
 }
diff --git a/pkgs/applications/misc/abook/default.nix b/pkgs/applications/misc/abook/default.nix
index e822f869619b9..358ecbcef39ba 100644
--- a/pkgs/applications/misc/abook/default.nix
+++ b/pkgs/applications/misc/abook/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.edwtjo ];
     platforms = with lib.platforms; unix;
+    mainProgram = "abook";
   };
 }
diff --git a/pkgs/applications/misc/anup/default.nix b/pkgs/applications/misc/anup/default.nix
index f7e560a32c521..94c21164184da 100644
--- a/pkgs/applications/misc/anup/default.nix
+++ b/pkgs/applications/misc/anup/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     description = "An anime tracker for AniList featuring a TUI";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ natto1784 ];
+    mainProgram = "anup";
   };
 }
diff --git a/pkgs/applications/misc/ape/default.nix b/pkgs/applications/misc/ape/default.nix
index c359d606a8592..e50d766a88b2b 100644
--- a/pkgs/applications/misc/ape/default.nix
+++ b/pkgs/applications/misc/ape/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = license;
     platforms = platforms.unix;
     maintainers = with maintainers; [ yrashk ];
+    mainProgram = "ape";
   };
 }
diff --git a/pkgs/applications/misc/artha/default.nix b/pkgs/applications/misc/artha/default.nix
index ac3e9c7c5a1d5..0dfc3285c0615 100644
--- a/pkgs/applications/misc/artha/default.nix
+++ b/pkgs/applications/misc/artha/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
+    mainProgram = "artha";
   };
 }
diff --git a/pkgs/applications/misc/avrdudess/default.nix b/pkgs/applications/misc/avrdudess/default.nix
index 4133fd8e5a29d..24a2d9ba95c3c 100644
--- a/pkgs/applications/misc/avrdudess/default.nix
+++ b/pkgs/applications/misc/avrdudess/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "avrdudess";
   };
 }
diff --git a/pkgs/applications/misc/azuredatastudio/default.nix b/pkgs/applications/misc/azuredatastudio/default.nix
index f90bed6390f22..ff441f672a502 100644
--- a/pkgs/applications/misc/azuredatastudio/default.nix
+++ b/pkgs/applications/misc/azuredatastudio/default.nix
@@ -193,5 +193,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfreeRedistributable;
     platforms = [ "x86_64-linux" ];
+    mainProgram = "azuredatastudio";
   };
 }
diff --git a/pkgs/applications/misc/base16-universal-manager/default.nix b/pkgs/applications/misc/base16-universal-manager/default.nix
index 2ecbc5f418099..98a255f873983 100644
--- a/pkgs/applications/misc/base16-universal-manager/default.nix
+++ b/pkgs/applications/misc/base16-universal-manager/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/pinpox/base16-universal-manager";
     license = licenses.mit;
     maintainers = with maintainers; [ jo1gi ];
+    mainProgram = "base16-universal-manager";
   };
 }
diff --git a/pkgs/applications/misc/bb/default.nix b/pkgs/applications/misc/bb/default.nix
index 97bd2a1f21ca1..89a0d75fc2b5b 100644
--- a/pkgs/applications/misc/bb/default.nix
+++ b/pkgs/applications/misc/bb/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license     = licenses.gpl2Plus;
     maintainers = [ maintainers.rnhmjoj ];
     platforms   = platforms.unix;
+    mainProgram = "bb";
   };
 }
diff --git a/pkgs/applications/misc/bklk/default.nix b/pkgs/applications/misc/bklk/default.nix
index 62aeb7c91a5f9..a62eed5f8e1bc 100644
--- a/pkgs/applications/misc/bklk/default.nix
+++ b/pkgs/applications/misc/bklk/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
     platforms = platforms.all;
+    mainProgram = "bklk";
   };
 }
diff --git a/pkgs/applications/misc/blugon/default.nix b/pkgs/applications/misc/blugon/default.nix
index d11a61e440fb8..5aab73ef1467c 100644
--- a/pkgs/applications/misc/blugon/default.nix
+++ b/pkgs/applications/misc/blugon/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jumper149/blugon";
     platforms = platforms.unix;
     maintainers = with maintainers; [ jumper149 ];
+    mainProgram = "blugon";
   };
 }
diff --git a/pkgs/applications/misc/camunda-modeler/default.nix b/pkgs/applications/misc/camunda-modeler/default.nix
index bf9c06efb54f1..3469e8eeb446d 100644
--- a/pkgs/applications/misc/camunda-modeler/default.nix
+++ b/pkgs/applications/misc/camunda-modeler/default.nix
@@ -66,6 +66,7 @@ stdenvNoCC.mkDerivation rec {
     maintainers = teams.wdz.members;
     license = licenses.mit;
     inherit (electron.meta) platforms;
+    mainProgram = "camunda-modeler";
   };
 }
 
diff --git a/pkgs/applications/misc/cardpeek/default.nix b/pkgs/applications/misc/cardpeek/default.nix
index adabcdac9542d..4cf13498be942 100644
--- a/pkgs/applications/misc/cardpeek/default.nix
+++ b/pkgs/applications/misc/cardpeek/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3Plus;
     platforms = with platforms; linux ++ darwin;
     maintainers = with maintainers; [ embr ];
+    mainProgram = "cardpeek";
   };
 }
diff --git a/pkgs/applications/misc/charm/default.nix b/pkgs/applications/misc/charm/default.nix
index eac305bd399e6..bf3520d4634e1 100644
--- a/pkgs/applications/misc/charm/default.nix
+++ b/pkgs/applications/misc/charm/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     changelog = "https://github.com/charmbracelet/charm/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ penguwin ];
+    mainProgram = "charm";
   };
 }
diff --git a/pkgs/applications/misc/cheat/default.nix b/pkgs/applications/misc/cheat/default.nix
index da39da86ef7b8..ef8780f1e88b5 100644
--- a/pkgs/applications/misc/cheat/default.nix
+++ b/pkgs/applications/misc/cheat/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ mic92 ];
     license = with licenses; [ gpl3 mit ];
     inherit (src.meta) homepage;
+    mainProgram = "cheat";
   };
 }
diff --git a/pkgs/applications/misc/clight/default.nix b/pkgs/applications/misc/clight/default.nix
index e198bdc9fc728..3adff5c628878 100644
--- a/pkgs/applications/misc/clight/default.nix
+++ b/pkgs/applications/misc/clight/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [
       eadwu
     ];
+    mainProgram = "clight";
   };
 }
diff --git a/pkgs/applications/misc/clipqr/default.nix b/pkgs/applications/misc/clipqr/default.nix
index d9265b2d1135a..8bbfcc6d42094 100644
--- a/pkgs/applications/misc/clipqr/default.nix
+++ b/pkgs/applications/misc/clipqr/default.nix
@@ -68,5 +68,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ MatthieuBarthel ];
     homepage = "https://gitlab.com/imatt-foss/clipqr";
     broken = stdenv.isDarwin;
+    mainProgram = "clipqr";
   };
 }
diff --git a/pkgs/applications/misc/cloak/default.nix b/pkgs/applications/misc/cloak/default.nix
index 7c362961b4be2..bf3dd3c4a0818 100644
--- a/pkgs/applications/misc/cloak/default.nix
+++ b/pkgs/applications/misc/cloak/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     description = "Command-line OTP authenticator application";
     license = licenses.mit;
     maintainers = with maintainers; [ mvs ];
+    mainProgram = "cloak";
   };
 }
diff --git a/pkgs/applications/misc/cmatrix/default.nix b/pkgs/applications/misc/cmatrix/default.nix
index 8008edf099692..7aca6851df217 100644
--- a/pkgs/applications/misc/cmatrix/default.nix
+++ b/pkgs/applications/misc/cmatrix/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/abishekvashok/cmatrix";
     platforms = ncurses.meta.platforms;
     maintainers = [ maintainers.AndersonTorres ];
+    mainProgram = "cmatrix";
   };
 }
diff --git a/pkgs/applications/misc/cobalt/default.nix b/pkgs/applications/misc/cobalt/default.nix
index 0cdd77b4293c0..feb6a2c80be42 100644
--- a/pkgs/applications/misc/cobalt/default.nix
+++ b/pkgs/applications/misc/cobalt/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ethancedwards8 ];
     platforms = platforms.unix;
+    mainProgram = "cobalt";
   };
 }
diff --git a/pkgs/applications/misc/cointop/default.nix b/pkgs/applications/misc/cointop/default.nix
index 6e22b443a573b..16a59b2fdb710 100644
--- a/pkgs/applications/misc/cointop/default.nix
+++ b/pkgs/applications/misc/cointop/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://cointop.sh";
     maintainers = [ maintainers.marsam ];
     license = licenses.asl20;
+    mainProgram = "cointop";
   };
 }
diff --git a/pkgs/applications/misc/colorstorm/default.nix b/pkgs/applications/misc/colorstorm/default.nix
index 0f78510aa2f6b..ddb429dae33f7 100644
--- a/pkgs/applications/misc/colorstorm/default.nix
+++ b/pkgs/applications/misc/colorstorm/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
     inherit (zig_0_9.meta) platforms;
+    mainProgram = "colorstorm";
   };
 })
diff --git a/pkgs/applications/misc/colort/default.nix b/pkgs/applications/misc/colort/default.nix
index 7a1ae7a9e2f45..2716e2d464bcf 100644
--- a/pkgs/applications/misc/colort/default.nix
+++ b/pkgs/applications/misc/colort/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.neeasade ];
+    mainProgram = "colort";
   };
 }
diff --git a/pkgs/applications/misc/coltrane/default.nix b/pkgs/applications/misc/coltrane/default.nix
index 81d095160e072..5d77f8dd6d567 100644
--- a/pkgs/applications/misc/coltrane/default.nix
+++ b/pkgs/applications/misc/coltrane/default.nix
@@ -19,5 +19,6 @@ bundlerApp rec {
     '';
     license = licenses.mit;
     maintainers = [ maintainers.panaeon ];
+    mainProgram = "coltrane";
   };
 }
diff --git a/pkgs/applications/misc/comodoro/default.nix b/pkgs/applications/misc/comodoro/default.nix
index f03b27ea51cac..2d780d5d514b6 100644
--- a/pkgs/applications/misc/comodoro/default.nix
+++ b/pkgs/applications/misc/comodoro/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/soywod/comodoro/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ soywod ];
+    mainProgram = "comodoro";
   };
 }
diff --git a/pkgs/applications/misc/confetty/default.nix b/pkgs/applications/misc/confetty/default.nix
index 77269ef853541..a9e838c84b014 100644
--- a/pkgs/applications/misc/confetty/default.nix
+++ b/pkgs/applications/misc/confetty/default.nix
@@ -23,5 +23,6 @@ buildGoModule {
     homepage = "https://github.com/maaslalani/confetty";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "confetty";
   };
 }
diff --git a/pkgs/applications/misc/cotp/default.nix b/pkgs/applications/misc/cotp/default.nix
index 054823b86f2a3..301543d481f7b 100644
--- a/pkgs/applications/misc/cotp/default.nix
+++ b/pkgs/applications/misc/cotp/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     description = "Trustworthy, encrypted, command-line TOTP/HOTP authenticator app with import functionality";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ davsanchez ];
+    mainProgram = "cotp";
   };
 }
diff --git a/pkgs/applications/misc/crumbs/default.nix b/pkgs/applications/misc/crumbs/default.nix
index 5bb4220581687..7dbcf74faf7ec 100644
--- a/pkgs/applications/misc/crumbs/default.nix
+++ b/pkgs/applications/misc/crumbs/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
       license     = licenses.wtfpl;
       platforms   = platforms.all;
       maintainers = with maintainers; [ thesola10 ];
+      mainProgram = "crumbs";
     };
 }
diff --git a/pkgs/applications/misc/ctodo/default.nix b/pkgs/applications/misc/ctodo/default.nix
index 224a79881e043..315d5ffc34cf5 100644
--- a/pkgs/applications/misc/ctodo/default.nix
+++ b/pkgs/applications/misc/ctodo/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.unix;
+    mainProgram = "ctodo";
   };
 }
diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix
index 2abe82913a4e2..1155ce8e8e8e1 100644
--- a/pkgs/applications/misc/curaengine/default.nix
+++ b/pkgs/applications/misc/curaengine/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar gebner ];
+    mainProgram = "CuraEngine";
   };
 }
diff --git a/pkgs/applications/misc/ddgr/default.nix b/pkgs/applications/misc/ddgr/default.nix
index 0e7800b9bbb32..04f27117f8e2d 100644
--- a/pkgs/applications/misc/ddgr/default.nix
+++ b/pkgs/applications/misc/ddgr/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ ceedubs markus1189 ];
     platforms = python3.meta.platforms;
+    mainProgram = "ddgr";
   };
 }
diff --git a/pkgs/applications/misc/deadd-notification-center/default.nix b/pkgs/applications/misc/deadd-notification-center/default.nix
index edc1f8ba9e1c8..5551ebe1750f7 100644
--- a/pkgs/applications/misc/deadd-notification-center/default.nix
+++ b/pkgs/applications/misc/deadd-notification-center/default.nix
@@ -60,4 +60,5 @@ in mkDerivation rec {
   license = lib.licenses.bsd3;
   maintainers = with lib.maintainers; [ melkor333 sna ];
   platforms = lib.platforms.linux;
+  mainProgram = "deadd-notification-center";
 }
diff --git a/pkgs/applications/misc/deco/default.nix b/pkgs/applications/misc/deco/default.nix
index b19f3f38dac71..a39f6b4f0bad1 100644
--- a/pkgs/applications/misc/deco/default.nix
+++ b/pkgs/applications/misc/deco/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
+    mainProgram = "deco";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/misc/devdocs-desktop/default.nix b/pkgs/applications/misc/devdocs-desktop/default.nix
index 97ed9ed72962e..55fe2b9e2cf79 100644
--- a/pkgs/applications/misc/devdocs-desktop/default.nix
+++ b/pkgs/applications/misc/devdocs-desktop/default.nix
@@ -35,5 +35,6 @@ in appimageTools.wrapType2 rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ymarkus ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "devdocs-desktop";
   };
 }
diff --git a/pkgs/applications/misc/devilspie2/default.nix b/pkgs/applications/misc/devilspie2/default.nix
index 581a8126cadad..8ea982f6059f9 100644
--- a/pkgs/applications/misc/devilspie2/default.nix
+++ b/pkgs/applications/misc/devilspie2/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.linux;
+    mainProgram = "devilspie2";
   };
 }
diff --git a/pkgs/applications/misc/diff-pdf/default.nix b/pkgs/applications/misc/diff-pdf/default.nix
index f88af3be27213..1d54b57c9b2f1 100644
--- a/pkgs/applications/misc/diff-pdf/default.nix
+++ b/pkgs/applications/misc/diff-pdf/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "diff-pdf";
   };
 }
diff --git a/pkgs/applications/misc/doctave/default.nix b/pkgs/applications/misc/doctave/default.nix
index 454c6bea33156..3ebe50311d575 100644
--- a/pkgs/applications/misc/doctave/default.nix
+++ b/pkgs/applications/misc/doctave/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/doctave/doctave/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "doctave";
   };
 }
diff --git a/pkgs/applications/misc/doing/default.nix b/pkgs/applications/misc/doing/default.nix
index e539cf3ae19e3..c5114eccc77fd 100644
--- a/pkgs/applications/misc/doing/default.nix
+++ b/pkgs/applications/misc/doing/default.nix
@@ -21,5 +21,6 @@ bundlerEnv {
     license     = licenses.mit;
     maintainers = with maintainers; [ ktf nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "doing";
   };
 }
diff --git a/pkgs/applications/misc/downonspot/default.nix b/pkgs/applications/misc/downonspot/default.nix
index 23747102fecb4..5a7c6ce6933b2 100644
--- a/pkgs/applications/misc/downonspot/default.nix
+++ b/pkgs/applications/misc/downonspot/default.nix
@@ -41,5 +41,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ onny ];
+    mainProgram = "down_on_spot";
   };
 }
diff --git a/pkgs/applications/misc/dwmbar/default.nix b/pkgs/applications/misc/dwmbar/default.nix
index 5559f4a6e5af0..0d942eff73d7a 100644
--- a/pkgs/applications/misc/dwmbar/default.nix
+++ b/pkgs/applications/misc/dwmbar/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ baitinq ];
     platforms = platforms.linux;
+    mainProgram = "dwmbar";
   };
 }
diff --git a/pkgs/applications/misc/dwmblocks/default.nix b/pkgs/applications/misc/dwmblocks/default.nix
index c31a1a4b06301..0b7abc7e3dfce 100644
--- a/pkgs/applications/misc/dwmblocks/default.nix
+++ b/pkgs/applications/misc/dwmblocks/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation {
     license = licenses.isc;
     maintainers = with maintainers; [ sophrosyne ];
     platforms = platforms.linux;
+    mainProgram = "dwmblocks";
   };
 }
diff --git a/pkgs/applications/misc/effitask/default.nix b/pkgs/applications/misc/effitask/default.nix
index 50172b9d1cb45..345f87d84a1cf 100644
--- a/pkgs/applications/misc/effitask/default.nix
+++ b/pkgs/applications/misc/effitask/default.nix
@@ -44,5 +44,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/sanpii/effitask";
     maintainers = with maintainers; [ davidak ];
     license = with licenses; [ mit ];
+    mainProgram = "effitask";
   };
 }
diff --git a/pkgs/applications/misc/elfx86exts/default.nix b/pkgs/applications/misc/elfx86exts/default.nix
index cf0711ca64e88..7e11d90f5d2ee 100644
--- a/pkgs/applications/misc/elfx86exts/default.nix
+++ b/pkgs/applications/misc/elfx86exts/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/pkgw/elfx86exts";
     maintainers = with maintainers; [ rmcgibbo ];
     license = with licenses; [ mit ];
+    mainProgram = "elfx86exts";
   };
 }
diff --git a/pkgs/applications/misc/emem/default.nix b/pkgs/applications/misc/emem/default.nix
index 77a8adc692571..ef429ac4c0845 100644
--- a/pkgs/applications/misc/emem/default.nix
+++ b/pkgs/applications/misc/emem/default.nix
@@ -35,5 +35,6 @@ EOF
     license = licenses.epl10;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
+    mainProgram = "emem";
   };
 }
diff --git a/pkgs/applications/misc/epdfview/default.nix b/pkgs/applications/misc/epdfview/default.nix
index 9eea30e74f86f..840165dcedee3 100644
--- a/pkgs/applications/misc/epdfview/default.nix
+++ b/pkgs/applications/misc/epdfview/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.astsmtl ];
     platforms = platforms.linux;
+    mainProgram = "epdfview";
   };
 }
diff --git a/pkgs/applications/misc/evtest/default.nix b/pkgs/applications/misc/evtest/default.nix
index 0e4a0f5be00e3..39f8ea8c0f837 100644
--- a/pkgs/applications/misc/evtest/default.nix
+++ b/pkgs/applications/misc/evtest/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "evtest";
   };
 }
diff --git a/pkgs/applications/misc/exercism/default.nix b/pkgs/applications/misc/exercism/default.nix
index aa54b29dab1c9..b2a75359a3d32 100644
--- a/pkgs/applications/misc/exercism/default.nix
+++ b/pkgs/applications/misc/exercism/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
    description = "A Go based command line tool for exercism.io";
    license     = licenses.mit;
    maintainers = [ maintainers.rbasso maintainers.nobbz ];
+   mainProgram = "exercism";
   };
 }
diff --git a/pkgs/applications/misc/expenses/default.nix b/pkgs/applications/misc/expenses/default.nix
index 220cd1178564f..0bca959b8b04c 100644
--- a/pkgs/applications/misc/expenses/default.nix
+++ b/pkgs/applications/misc/expenses/default.nix
@@ -40,5 +40,6 @@ buildGoModule rec {
    description = "An interactive command line expense logger";
    license = licenses.mit;
    maintainers = [ maintainers.manojkarthick ];
+   mainProgram = "expenses";
   };
 }
diff --git a/pkgs/applications/misc/fead/default.nix b/pkgs/applications/misc/fead/default.nix
index bfd645c433137..73907a1758817 100644
--- a/pkgs/applications/misc/fead/default.nix
+++ b/pkgs/applications/misc/fead/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Plus;
     changelog = "https://git.sr.ht/~cnx/fead/refs/${version}";
     maintainers = with maintainers; [ McSinyx ];
+    mainProgram = "fead";
   };
 }
diff --git a/pkgs/applications/misc/fehlstart/default.nix b/pkgs/applications/misc/fehlstart/default.nix
index 69050ca661f9a..4d3903bbb6ec4 100644
--- a/pkgs/applications/misc/fehlstart/default.nix
+++ b/pkgs/applications/misc/fehlstart/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     maintainers = [ maintainers.mounium ];
     platforms = platforms.all;
+    mainProgram = "fehlstart";
   };
 }
diff --git a/pkgs/applications/misc/ff2mpv/default.nix b/pkgs/applications/misc/ff2mpv/default.nix
index 2a1ff0458a5d1..a87e84ea3892d 100644
--- a/pkgs/applications/misc/ff2mpv/default.nix
+++ b/pkgs/applications/misc/ff2mpv/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/woodruffw/ff2mpv";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ Enzime ];
+    mainProgram = "ff2mpv.py";
   };
 }
diff --git a/pkgs/applications/misc/filet/default.nix b/pkgs/applications/misc/filet/default.nix
index 0ee3f6fb221ae..b13f24be307d0 100644
--- a/pkgs/applications/misc/filet/default.nix
+++ b/pkgs/applications/misc/filet/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl20;
     platforms = platforms.all;
     maintainers = with maintainers; [ buffet ];
+    mainProgram = "filet";
   };
 }
diff --git a/pkgs/applications/misc/firefly-desktop/default.nix b/pkgs/applications/misc/firefly-desktop/default.nix
index f039a31a9eb93..9df2118b02fb7 100644
--- a/pkgs/applications/misc/firefly-desktop/default.nix
+++ b/pkgs/applications/misc/firefly-desktop/default.nix
@@ -30,5 +30,6 @@ in appimageTools.wrapType2 {
     license = licenses.asl20;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "firefly-desktop";
   };
 }
diff --git a/pkgs/applications/misc/firestarter/default.nix b/pkgs/applications/misc/firestarter/default.nix
index 4e8e4ff613068..a8372b643bd36 100644
--- a/pkgs/applications/misc/firestarter/default.nix
+++ b/pkgs/applications/misc/firestarter/default.nix
@@ -105,5 +105,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ astro marenz ];
     license = licenses.gpl3;
+    mainProgram = "FIRESTARTER";
   };
 }
diff --git a/pkgs/applications/misc/flamerobin/default.nix b/pkgs/applications/misc/flamerobin/default.nix
index 5fd805994a6e5..de0f06fa5a008 100644
--- a/pkgs/applications/misc/flamerobin/default.nix
+++ b/pkgs/applications/misc/flamerobin/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ uralbash ];
     platforms = platforms.unix;
+    mainProgram = "flamerobin";
   };
 }
diff --git a/pkgs/applications/misc/flavours/default.nix b/pkgs/applications/misc/flavours/default.nix
index db625793adc7f..ca3c5956e3c23 100644
--- a/pkgs/applications/misc/flavours/default.nix
+++ b/pkgs/applications/misc/flavours/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Misterio77/flavours/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ moni misterio77 ];
+    mainProgram = "flavours";
   };
 }
diff --git a/pkgs/applications/misc/freeplane/default.nix b/pkgs/applications/misc/freeplane/default.nix
index 4c790c5e814f4..77918baff3763 100644
--- a/pkgs/applications/misc/freeplane/default.nix
+++ b/pkgs/applications/misc/freeplane/default.nix
@@ -147,5 +147,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ chaduffy ];
+    mainProgram = "freeplane";
   };
 }
diff --git a/pkgs/applications/misc/fsv/default.nix b/pkgs/applications/misc/fsv/default.nix
index 9ffd520a7d56d..e49610116f71d 100644
--- a/pkgs/applications/misc/fsv/default.nix
+++ b/pkgs/applications/misc/fsv/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation rec {
     license     = licenses.lgpl2;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ rnhmjoj ];
+    mainProgram = "fsv";
   };
 }
diff --git a/pkgs/applications/misc/galculator/default.nix b/pkgs/applications/misc/galculator/default.nix
index a96cbb5661063..9128906fe9c50 100644
--- a/pkgs/applications/misc/galculator/default.nix
+++ b/pkgs/applications/misc/galculator/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
+    mainProgram = "galculator";
   };
 }
diff --git a/pkgs/applications/misc/ganttproject-bin/default.nix b/pkgs/applications/misc/ganttproject-bin/default.nix
index 985a67ab963f8..abf63bece8073 100644
--- a/pkgs/applications/misc/ganttproject-bin/default.nix
+++ b/pkgs/applications/misc/ganttproject-bin/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.vidbina ];
+    mainProgram = "ganttproject";
   };
 }
diff --git a/pkgs/applications/misc/gcfflasher/default.nix b/pkgs/applications/misc/gcfflasher/default.nix
index 917a665760174..076b8c4b1f6d6 100644
--- a/pkgs/applications/misc/gcfflasher/default.nix
+++ b/pkgs/applications/misc/gcfflasher/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/dresden-elektronik/gcfflasher";
     maintainers = with maintainers; [ fleaz ];
     platforms = platforms.all;
+    mainProgram = "GCFFlasher";
   };
 }
diff --git a/pkgs/applications/misc/geek-life/default.nix b/pkgs/applications/misc/geek-life/default.nix
index ae0fa298594d5..0e8e3899bb2a6 100644
--- a/pkgs/applications/misc/geek-life/default.nix
+++ b/pkgs/applications/misc/geek-life/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     description = "The Todo List / Task Manager for Geeks in command line";
     maintainers = with maintainers; [ noisersup ];
     license = licenses.mit;
+    mainProgram = "geek-life";
   };
 }
diff --git a/pkgs/applications/misc/genact/default.nix b/pkgs/applications/misc/genact/default.nix
index c508b3400e24d..1d5c11063c007 100644
--- a/pkgs/applications/misc/genact/default.nix
+++ b/pkgs/applications/misc/genact/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/svenstaro/genact/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "genact";
   };
 }
diff --git a/pkgs/applications/misc/geoipupdate/default.nix b/pkgs/applications/misc/geoipupdate/default.nix
index 2d0bd2ca594c6..939205017fe7b 100644
--- a/pkgs/applications/misc/geoipupdate/default.nix
+++ b/pkgs/applications/misc/geoipupdate/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/maxmind/geoipupdate";
     license = with licenses; [ asl20 ];
     maintainers = teams.helsinki-systems.members;
+    mainProgram = "geoipupdate";
   };
 }
diff --git a/pkgs/applications/misc/ghosttohugo/default.nix b/pkgs/applications/misc/ghosttohugo/default.nix
index 29091a8447c23..5ec5cc6870cae 100644
--- a/pkgs/applications/misc/ghosttohugo/default.nix
+++ b/pkgs/applications/misc/ghosttohugo/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/jbarone/ghostToHugo";
     license = licenses.mit;
     maintainers = with maintainers; [ clerie ];
+    mainProgram = "ghostToHugo";
   };
 }
diff --git a/pkgs/applications/misc/gmnitohtml/default.nix b/pkgs/applications/misc/gmnitohtml/default.nix
index 463d1d50ab54f..837379890b4cb 100644
--- a/pkgs/applications/misc/gmnitohtml/default.nix
+++ b/pkgs/applications/misc/gmnitohtml/default.nix
@@ -42,5 +42,6 @@ buildGoModule rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ jk sikmir ];
+    mainProgram = "gmnitohtml";
   };
 }
diff --git a/pkgs/applications/misc/gmrun/default.nix b/pkgs/applications/misc/gmrun/default.nix
index bd99adf943598..e71b1a6484d38 100644
--- a/pkgs/applications/misc/gmrun/default.nix
+++ b/pkgs/applications/misc/gmrun/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [];
     platforms = platforms.all;
+    mainProgram = "gmrun";
   };
 }
diff --git a/pkgs/applications/misc/go-org/default.nix b/pkgs/applications/misc/go-org/default.nix
index 6ab70d0fe3072..8aa5a3be717b4 100644
--- a/pkgs/applications/misc/go-org/default.nix
+++ b/pkgs/applications/misc/go-org/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://niklasfasching.github.io/go-org";
     license = licenses.mit;
     maintainers = with maintainers; [ payas ];
+    mainProgram = "go-org";
   };
 }
diff --git a/pkgs/applications/misc/gollum/default.nix b/pkgs/applications/misc/gollum/default.nix
index cafebfad39a22..a345896ca8d96 100644
--- a/pkgs/applications/misc/gollum/default.nix
+++ b/pkgs/applications/misc/gollum/default.nix
@@ -19,5 +19,6 @@ bundlerApp rec {
     license = licenses.mit;
     maintainers = with maintainers; [ erictapen jgillich nicknovitski bbenno ];
     platforms = platforms.unix;
+    mainProgram = "gollum";
   };
 }
diff --git a/pkgs/applications/misc/gomatrix/default.nix b/pkgs/applications/misc/gomatrix/default.nix
index 2b9ee3a15553e..001b57d06eec3 100644
--- a/pkgs/applications/misc/gomatrix/default.nix
+++ b/pkgs/applications/misc/gomatrix/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ skykanin ];
     homepage = "https://github.com/GeertJohan/gomatrix";
+    mainProgram = "gomatrix";
   };
 }
diff --git a/pkgs/applications/misc/googler/default.nix b/pkgs/applications/misc/googler/default.nix
index a7cd5ec64abd4..9e204ed636f30 100644
--- a/pkgs/applications/misc/googler/default.nix
+++ b/pkgs/applications/misc/googler/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ koral Br1ght0ne ];
     platforms = python.meta.platforms;
+    mainProgram = "googler";
   };
 }
diff --git a/pkgs/applications/misc/gostatic/default.nix b/pkgs/applications/misc/gostatic/default.nix
index 240df1a913634..b7967f6f4e4ff 100644
--- a/pkgs/applications/misc/gostatic/default.nix
+++ b/pkgs/applications/misc/gostatic/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/piranha/gostatic";
     license = licenses.isc;
     maintainers = with maintainers; [ urandom ];
+    mainProgram = "gostatic";
   };
 }
diff --git a/pkgs/applications/misc/gpa/default.nix b/pkgs/applications/misc/gpa/default.nix
index 0d567dd79a106..cf6a915e29c18 100644
--- a/pkgs/applications/misc/gpa/default.nix
+++ b/pkgs/applications/misc/gpa/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.gnupg.org/related_software/gpa/";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
+    mainProgram = "gpa";
   };
 }
diff --git a/pkgs/applications/misc/gphoto2/default.nix b/pkgs/applications/misc/gphoto2/default.nix
index b659040067516..96eca30a4f491 100644
--- a/pkgs/applications/misc/gphoto2/default.nix
+++ b/pkgs/applications/misc/gphoto2/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.jcumming ];
+    mainProgram = "gphoto2";
   };
 }
diff --git a/pkgs/applications/misc/gpsbabel/default.nix b/pkgs/applications/misc/gpsbabel/default.nix
index 0898c3ccee9a4..fbacfb6984c6e 100644
--- a/pkgs/applications/misc/gpsbabel/default.nix
+++ b/pkgs/applications/misc/gpsbabel/default.nix
@@ -114,5 +114,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sikmir ];
+    mainProgram = "gpsbabel";
   };
 }
diff --git a/pkgs/applications/misc/gpsprune/default.nix b/pkgs/applications/misc/gpsprune/default.nix
index 8ea6091894e8e..293c3c5691ecf 100644
--- a/pkgs/applications/misc/gpsprune/default.nix
+++ b/pkgs/applications/misc/gpsprune/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ rycee ];
     platforms = platforms.all;
+    mainProgram = "gpsprune";
   };
 }
diff --git a/pkgs/applications/misc/gpu-burn/default.nix b/pkgs/applications/misc/gpu-burn/default.nix
index 4d6abb585c304..fe7bcf3dcb71a 100644
--- a/pkgs/applications/misc/gpu-burn/default.nix
+++ b/pkgs/applications/misc/gpu-burn/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation {
     platforms = platforms.linux;
     maintainers = with maintainers; [ elohmeier ];
     license = licenses.bsd2;
+    mainProgram = "gpu_burn";
   };
 }
diff --git a/pkgs/applications/misc/gpu-viewer/default.nix b/pkgs/applications/misc/gpu-viewer/default.nix
index 03ca5ee9ec17e..5d703f7d6e374 100644
--- a/pkgs/applications/misc/gpu-viewer/default.nix
+++ b/pkgs/applications/misc/gpu-viewer/default.nix
@@ -71,5 +71,6 @@ python3.pkgs.buildPythonApplication rec {
     maintainers = with maintainers; [ GaetanLepage ];
     license = licenses.gpl3;
     platforms = platforms.linux;
+    mainProgram = "gpu-viewer";
   };
 }
diff --git a/pkgs/applications/misc/grb/default.nix b/pkgs/applications/misc/grb/default.nix
index 0a3d3dfd83b9d..9d4774b42a2cf 100644
--- a/pkgs/applications/misc/grb/default.nix
+++ b/pkgs/applications/misc/grb/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/LukeSmithxyz/grb";
     license = licenses.publicDomain;
     maintainers = [ maintainers.cafkafk ];
+    mainProgram = "grb";
   };
 }
diff --git a/pkgs/applications/misc/green-pdfviewer/default.nix b/pkgs/applications/misc/green-pdfviewer/default.nix
index fe21631c0d670..9f649b07ff8cc 100644
--- a/pkgs/applications/misc/green-pdfviewer/default.nix
+++ b/pkgs/applications/misc/green-pdfviewer/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation {
     platforms = platforms.unix;
     license  = licenses.gpl3;
     maintainers = [ maintainers.vrthra ];
+    mainProgram = "green";
   };
 }
diff --git a/pkgs/applications/misc/gremlin-console/default.nix b/pkgs/applications/misc/gremlin-console/default.nix
index 367387f54ec86..ee7d7d3a95b95 100644
--- a/pkgs/applications/misc/gremlin-console/default.nix
+++ b/pkgs/applications/misc/gremlin-console/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = [ maintainers.lewo ];
     platforms = platforms.all;
+    mainProgram = "gremlin-console";
   };
 }
diff --git a/pkgs/applications/misc/gremlin-server/default.nix b/pkgs/applications/misc/gremlin-server/default.nix
index 82b7bf1e9fe03..00cd3bf790919 100644
--- a/pkgs/applications/misc/gremlin-server/default.nix
+++ b/pkgs/applications/misc/gremlin-server/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = [ maintainers.jrpotter ];
     platforms = platforms.all;
+    mainProgram = "gremlin-server";
   };
 }
diff --git a/pkgs/applications/misc/grip/default.nix b/pkgs/applications/misc/grip/default.nix
index 281f8dec22720..f993cb387b74a 100644
--- a/pkgs/applications/misc/grip/default.nix
+++ b/pkgs/applications/misc/grip/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
 
     maintainers = with lib.maintainers; [ marcweber ];
     platforms = lib.platforms.linux;
+    mainProgram = "grip";
   };
 }
diff --git a/pkgs/applications/misc/gsctl/default.nix b/pkgs/applications/misc/gsctl/default.nix
index 31f8881127d16..1e88b837f4a8d 100644
--- a/pkgs/applications/misc/gsctl/default.nix
+++ b/pkgs/applications/misc/gsctl/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/giantswarm/gsctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ joesalisbury ];
+    mainProgram = "gsctl";
   };
 }
diff --git a/pkgs/applications/misc/gsimplecal/default.nix b/pkgs/applications/misc/gsimplecal/default.nix
index 2cb72575a4bfb..224f2f359d779 100644
--- a/pkgs/applications/misc/gsimplecal/default.nix
+++ b/pkgs/applications/misc/gsimplecal/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.romildo ];
     platforms = lib.platforms.linux;
+    mainProgram = "gsimplecal";
   };
 }
diff --git a/pkgs/applications/misc/gtk2fontsel/default.nix b/pkgs/applications/misc/gtk2fontsel/default.nix
index 53344338bd03a..83be4fe82393d 100644
--- a/pkgs/applications/misc/gtk2fontsel/default.nix
+++ b/pkgs/applications/misc/gtk2fontsel/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.prikhi ];
     platforms = platforms.linux;
+    mainProgram = "gtk2fontsel";
   };
 }
diff --git a/pkgs/applications/misc/gxkb/default.nix b/pkgs/applications/misc/gxkb/default.nix
index 350e331447605..201cbdb0a11ad 100644
--- a/pkgs/applications/misc/gxkb/default.nix
+++ b/pkgs/applications/misc/gxkb/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.omgbebebe ];
     platforms = platforms.linux;
+    mainProgram = "gxkb";
   };
 }
diff --git a/pkgs/applications/misc/gxmessage/default.nix b/pkgs/applications/misc/gxmessage/default.nix
index fb172eb22b016..ae5c7d1d07a4a 100644
--- a/pkgs/applications/misc/gxmessage/default.nix
+++ b/pkgs/applications/misc/gxmessage/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [jfb];
     platforms = with lib.platforms; linux;
+    mainProgram = "gxmessage";
   };
 }
diff --git a/pkgs/applications/misc/gxneur/default.nix b/pkgs/applications/misc/gxneur/default.nix
index 53873af2b07a3..0bfc3ce91f65d 100644
--- a/pkgs/applications/misc/gxneur/default.nix
+++ b/pkgs/applications/misc/gxneur/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     description = "GUI for XNEUR keyboard layout switcher";
     platforms = platforms.linux;
     license = with licenses; [ gpl2 gpl3 ];
+    mainProgram = "gxneur";
   };
 }
diff --git a/pkgs/applications/misc/harsh/default.nix b/pkgs/applications/misc/harsh/default.nix
index d3790a1618895..6938a11342601 100644
--- a/pkgs/applications/misc/harsh/default.nix
+++ b/pkgs/applications/misc/harsh/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/wakatara/harsh/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ laurailway ];
+    mainProgram = "harsh";
   };
 }
diff --git a/pkgs/applications/misc/has/default.nix b/pkgs/applications/misc/has/default.nix
index 144d8073ff0e2..a18a996f92aa8 100644
--- a/pkgs/applications/misc/has/default.nix
+++ b/pkgs/applications/misc/has/default.nix
@@ -25,5 +25,6 @@ stdenvNoCC.mkDerivation (finalAttrs: rec {
     license = licenses.mit;
     maintainers = with maintainers; [ Freed-Wu ];
     platforms = platforms.unix;
+    mainProgram = "has";
   };
 })
diff --git a/pkgs/applications/misc/hcl2json/default.nix b/pkgs/applications/misc/hcl2json/default.nix
index d2c2bb319f8bc..be6da03f17081 100644
--- a/pkgs/applications/misc/hcl2json/default.nix
+++ b/pkgs/applications/misc/hcl2json/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/tmccombs/hcl2json";
     license = licenses.asl20;
     maintainers = with maintainers; [ jonringer ];
+    mainProgram = "hcl2json";
   };
 }
diff --git a/pkgs/applications/misc/hello-unfree/default.nix b/pkgs/applications/misc/hello-unfree/default.nix
index 5c9a507fc0711..6fae0eca13997 100644
--- a/pkgs/applications/misc/hello-unfree/default.nix
+++ b/pkgs/applications/misc/hello-unfree/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation {
     description = "An example package with unfree license (for testing)";
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.oxij ];
+    mainProgram = "hello-unfree";
   };
 }
diff --git a/pkgs/applications/misc/herbe/default.nix b/pkgs/applications/misc/herbe/default.nix
index 0d05228b63eb3..9ea08f0dc83cd 100644
--- a/pkgs/applications/misc/herbe/default.nix
+++ b/pkgs/applications/misc/herbe/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     # NOTE: Could also work on 'unix'.
     platforms = platforms.linux;
     maintainers = with maintainers; [ wishfort36 ];
+    mainProgram = "herbe";
   };
 }
diff --git a/pkgs/applications/misc/hivemind/default.nix b/pkgs/applications/misc/hivemind/default.nix
index adc6aa3642ef4..589c6fa807367 100644
--- a/pkgs/applications/misc/hivemind/default.nix
+++ b/pkgs/applications/misc/hivemind/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     description = "Process manager for Procfile-based applications";
     license = with licenses; [ mit ];
     maintainers = [ maintainers.sveitser ];
+    mainProgram = "hivemind";
   };
 }
diff --git a/pkgs/applications/misc/hr/default.nix b/pkgs/applications/misc/hr/default.nix
index 7435d02c99c8b..f0a43de700fc3 100644
--- a/pkgs/applications/misc/hr/default.nix
+++ b/pkgs/applications/misc/hr/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.unix;
+    mainProgram = "hr";
   };
 }
diff --git a/pkgs/applications/misc/inlyne/default.nix b/pkgs/applications/misc/inlyne/default.nix
index 01ce66abc7fb4..d9698c04aed57 100644
--- a/pkgs/applications/misc/inlyne/default.nix
+++ b/pkgs/applications/misc/inlyne/default.nix
@@ -65,5 +65,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/trimental/inlyne/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "inlyne";
   };
 }
diff --git a/pkgs/applications/misc/insulator2/default.nix b/pkgs/applications/misc/insulator2/default.nix
index 456ca5d2448e1..65b8cb505f722 100644
--- a/pkgs/applications/misc/insulator2/default.nix
+++ b/pkgs/applications/misc/insulator2/default.nix
@@ -94,6 +94,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/andrewinci/insulator2";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ tc-kaluza ];
+    mainProgram = "insulator-2";
   };
 
 }
diff --git a/pkgs/applications/misc/ipatool/default.nix b/pkgs/applications/misc/ipatool/default.nix
index 6c3ffc5455e52..0b9e7f8a94158 100644
--- a/pkgs/applications/misc/ipatool/default.nix
+++ b/pkgs/applications/misc/ipatool/default.nix
@@ -47,5 +47,6 @@ buildGoModule rec {
     changelog = "https://github.com/majd/ipatool/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ gaelreyrol ];
+    mainProgram = "ipatool";
   };
 }
diff --git a/pkgs/applications/misc/ipmiview/default.nix b/pkgs/applications/misc/ipmiview/default.nix
index d1162052cebb0..ff8db5339f65f 100644
--- a/pkgs/applications/misc/ipmiview/default.nix
+++ b/pkgs/applications/misc/ipmiview/default.nix
@@ -79,5 +79,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ vlaci ];
     platforms = [ "x86_64-linux" "i686-linux" ];
+    mainProgram = "IPMIView";
   };
 }
diff --git a/pkgs/applications/misc/jekyll/default.nix b/pkgs/applications/misc/jekyll/default.nix
index 510e06ab53bf9..2b9f1497b765d 100644
--- a/pkgs/applications/misc/jekyll/default.nix
+++ b/pkgs/applications/misc/jekyll/default.nix
@@ -53,5 +53,6 @@ in bundlerApp {
     license     = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms   = platforms.unix;
+    mainProgram = "jekyll";
   };
 }
diff --git a/pkgs/applications/misc/jetbrains-toolbox/default.nix b/pkgs/applications/misc/jetbrains-toolbox/default.nix
index ca8394e0dbdbc..3021042301892 100644
--- a/pkgs/applications/misc/jetbrains-toolbox/default.nix
+++ b/pkgs/applications/misc/jetbrains-toolbox/default.nix
@@ -72,5 +72,6 @@ stdenv.mkDerivation {
     license = licenses.unfree;
     maintainers = with maintainers; [ AnatolyPopov ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "jetbrains-toolbox";
   };
 }
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index c2ffbc7970dfd..0a7b12cc5b936 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ rycee sikmir ];
     platforms = platforms.all;
+    mainProgram = "josm";
   };
 }
diff --git a/pkgs/applications/misc/jp2a/default.nix b/pkgs/applications/misc/jp2a/default.nix
index bebccc6c1c4cc..5ae33e8264f9d 100644
--- a/pkgs/applications/misc/jp2a/default.nix
+++ b/pkgs/applications/misc/jp2a/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = [ maintainers.FlorianFranzen ];
     platforms = platforms.unix;
+    mainProgram = "jp2a";
   };
 }
diff --git a/pkgs/applications/misc/jquake/default.nix b/pkgs/applications/misc/jquake/default.nix
index ce0ea2ec1c5f4..916a12db31507 100644
--- a/pkgs/applications/misc/jquake/default.nix
+++ b/pkgs/applications/misc/jquake/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.unfree;
     platforms = platforms.linux;
+    mainProgram = "JQuake";
   };
 }
diff --git a/pkgs/applications/misc/kaufkauflist/default.nix b/pkgs/applications/misc/kaufkauflist/default.nix
index b6a99ee0b84f8..e7e462caf791a 100644
--- a/pkgs/applications/misc/kaufkauflist/default.nix
+++ b/pkgs/applications/misc/kaufkauflist/default.nix
@@ -48,5 +48,6 @@ in buildNpmPackage rec {
     description = "A to-do list for shopping or other use cases";
     license = licenses.mit;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "kaufdbclean";
   };
 }
diff --git a/pkgs/applications/misc/kbt/default.nix b/pkgs/applications/misc/kbt/default.nix
index 3960556f4d8ea..c59b5e62c4339 100644
--- a/pkgs/applications/misc/kbt/default.nix
+++ b/pkgs/applications/misc/kbt/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/bloznelis/kbt";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "kbt";
   };
 }
diff --git a/pkgs/applications/misc/keepass-diff/default.nix b/pkgs/applications/misc/keepass-diff/default.nix
index 5e03c0f2cac43..5cee712ae0c61 100644
--- a/pkgs/applications/misc/keepass-diff/default.nix
+++ b/pkgs/applications/misc/keepass-diff/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://keepass-diff.narigo.dev/";
     license = licenses.mit;
     maintainers = with maintainers; [ wamserma ];
+    mainProgram = "keepass-diff";
   };
 }
diff --git a/pkgs/applications/misc/keylight-controller-mschneider82/default.nix b/pkgs/applications/misc/keylight-controller-mschneider82/default.nix
index 9d70e59202e8a..5a9afb42dd15a 100644
--- a/pkgs/applications/misc/keylight-controller-mschneider82/default.nix
+++ b/pkgs/applications/misc/keylight-controller-mschneider82/default.nix
@@ -42,6 +42,7 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://github.com/mschneider82/keylight-control";
     maintainers = with maintainers; [ ];
+    mainProgram = "keylight-control";
   };
 }
 
diff --git a/pkgs/applications/misc/kiln/default.nix b/pkgs/applications/misc/kiln/default.nix
index ed9575ffa0ba1..cafa43fa4f8cf 100644
--- a/pkgs/applications/misc/kiln/default.nix
+++ b/pkgs/applications/misc/kiln/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://kiln.adnano.co/";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
+    mainProgram = "kiln";
   };
 }
diff --git a/pkgs/applications/misc/klipperscreen/default.nix b/pkgs/applications/misc/klipperscreen/default.nix
index e970c25725489..8589991ff522b 100644
--- a/pkgs/applications/misc/klipperscreen/default.nix
+++ b/pkgs/applications/misc/klipperscreen/default.nix
@@ -50,5 +50,6 @@
     homepage = "https://github.com/jordanruthe/KlipperScreen";
     license = licenses.agpl3;
     maintainers = with maintainers; [ cab404 ];
+    mainProgram = "KlipperScreen";
   };
 }
diff --git a/pkgs/applications/misc/kondo/default.nix b/pkgs/applications/misc/kondo/default.nix
index c210c257cc537..eba5799a91727 100644
--- a/pkgs/applications/misc/kondo/default.nix
+++ b/pkgs/applications/misc/kondo/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/tbillington/kondo";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "kondo";
   };
 }
diff --git a/pkgs/applications/misc/krabby/default.nix b/pkgs/applications/misc/krabby/default.nix
index 31880f99a0cba..d006ec00b918f 100644
--- a/pkgs/applications/misc/krabby/default.nix
+++ b/pkgs/applications/misc/krabby/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/yannjor/krabby/releases/tag/v${version}";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ruby0b ];
+    mainProgram = "krabby";
   };
 }
diff --git a/pkgs/applications/misc/kratos/default.nix b/pkgs/applications/misc/kratos/default.nix
index 9031b7d6d566f..961e2289d21b3 100644
--- a/pkgs/applications/misc/kratos/default.nix
+++ b/pkgs/applications/misc/kratos/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://www.ory.sh/kratos/";
     license = licenses.asl20;
     description = "An API-first Identity and User Management system that is built according to cloud architecture best practices";
+    mainProgram = "kratos";
   };
 }
diff --git a/pkgs/applications/misc/lavalauncher/default.nix b/pkgs/applications/misc/lavalauncher/default.nix
index 1e8cb505f4a00..d4556402e21bb 100644
--- a/pkgs/applications/misc/lavalauncher/default.nix
+++ b/pkgs/applications/misc/lavalauncher/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; unix;
+    mainProgram = "lavalauncher";
   };
 }
diff --git a/pkgs/applications/misc/lemonade/default.nix b/pkgs/applications/misc/lemonade/default.nix
index 68622718e0482..c9ca92d364e13 100644
--- a/pkgs/applications/misc/lemonade/default.nix
+++ b/pkgs/applications/misc/lemonade/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/lemonade-command/lemonade/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "lemonade";
   };
 }
diff --git a/pkgs/applications/misc/lenmus/default.nix b/pkgs/applications/misc/lenmus/default.nix
index 80da168cdafef..6736f342e89a8 100644
--- a/pkgs/applications/misc/lenmus/default.nix
+++ b/pkgs/applications/misc/lenmus/default.nix
@@ -94,5 +94,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers;  [ ramkromberg ];
     platforms = with platforms; unix;
+    mainProgram = "lenmus";
   };
 }
diff --git a/pkgs/applications/misc/limesctl/default.nix b/pkgs/applications/misc/limesctl/default.nix
index 119d8488ed475..00323a259db22 100644
--- a/pkgs/applications/misc/limesctl/default.nix
+++ b/pkgs/applications/misc/limesctl/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/sapcc/limesctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "limesctl";
   };
 }
diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix
index 0877b3169014a..ed4a07ec97aed 100644
--- a/pkgs/applications/misc/logseq/default.nix
+++ b/pkgs/applications/misc/logseq/default.nix
@@ -74,5 +74,6 @@ in {
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     maintainers = with lib.maintainers; [ ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "logseq";
   };
 })
diff --git a/pkgs/applications/misc/lscolors/default.nix b/pkgs/applications/misc/lscolors/default.nix
index d61499ed07376..104f1baa037d8 100644
--- a/pkgs/applications/misc/lscolors/default.nix
+++ b/pkgs/applications/misc/lscolors/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sharkdp/lscolors/releases/tag/v${version}";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "lscolors";
   };
 }
diff --git a/pkgs/applications/misc/lswt/default.nix b/pkgs/applications/misc/lswt/default.nix
index 59315ec9b7fd6..98f36028dbc22 100644
--- a/pkgs/applications/misc/lswt/default.nix
+++ b/pkgs/applications/misc/lswt/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ edrex ];
     platforms = platforms.linux;
+    mainProgram = "lswt";
   };
 }
diff --git a/pkgs/applications/misc/ltwheelconf/default.nix b/pkgs/applications/misc/ltwheelconf/default.nix
index 52fac4941562b..b9c53a58b03de 100644
--- a/pkgs/applications/misc/ltwheelconf/default.nix
+++ b/pkgs/applications/misc/ltwheelconf/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.linux;
+    mainProgram = "ltwheelconf";
   };
 }
diff --git a/pkgs/applications/misc/lunatask/default.nix b/pkgs/applications/misc/lunatask/default.nix
index b298992fbf83d..017eb17a40ad1 100644
--- a/pkgs/applications/misc/lunatask/default.nix
+++ b/pkgs/applications/misc/lunatask/default.nix
@@ -37,5 +37,6 @@ appimageTools.wrapType2 rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [ henkery ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "lunatask";
   };
 }
diff --git a/pkgs/applications/misc/madonctl/default.nix b/pkgs/applications/misc/madonctl/default.nix
index 0e204ea838545..203d71a6cc48f 100644
--- a/pkgs/applications/misc/madonctl/default.nix
+++ b/pkgs/applications/misc/madonctl/default.nix
@@ -33,5 +33,6 @@ buildGoModule rec {
     homepage = "https://github.com/McKael/madonctl";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "madonctl";
   };
 }
diff --git a/pkgs/applications/misc/makeself/default.nix b/pkgs/applications/misc/makeself/default.nix
index 3226797ca4be9..7c2d33aebc008 100644
--- a/pkgs/applications/misc/makeself/default.nix
+++ b/pkgs/applications/misc/makeself/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.wmertens ];
     platforms = platforms.all;
+    mainProgram = "makeself";
   };
 }
diff --git a/pkgs/applications/misc/mangal/default.nix b/pkgs/applications/misc/mangal/default.nix
index 6edc9da4f602f..cc485d84e8e08 100644
--- a/pkgs/applications/misc/mangal/default.nix
+++ b/pkgs/applications/misc/mangal/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://github.com/metafates/mangal";
     license = licenses.mit;
     maintainers = [ maintainers.bertof ];
+    mainProgram = "mangal";
   };
 }
diff --git a/pkgs/applications/misc/mdp/default.nix b/pkgs/applications/misc/mdp/default.nix
index 2c13ed4ecc9e7..fd3ab88ff4c82 100644
--- a/pkgs/applications/misc/mdp/default.nix
+++ b/pkgs/applications/misc/mdp/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ matthiasbeyer vrthra ];
     license = licenses.gpl3;
     platforms = with platforms; unix;
+    mainProgram = "mdp";
   };
 }
diff --git a/pkgs/applications/misc/mdzk/default.nix b/pkgs/applications/misc/mdzk/default.nix
index 98bcda9943fcd..e4093295df682 100644
--- a/pkgs/applications/misc/mdzk/default.nix
+++ b/pkgs/applications/misc/mdzk/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/mdzk-rs/mdzk/blob/main/CHANGELOG.md";
     license = licenses.mpl20;
     maintainers = with maintainers; [ bryanasdev000 ratsclub ];
+    mainProgram = "mdzk";
   };
 }
diff --git a/pkgs/applications/misc/memo/default.nix b/pkgs/applications/misc/memo/default.nix
index 885e5466f8b3e..93ef8192f54b4 100644
--- a/pkgs/applications/misc/memo/default.nix
+++ b/pkgs/applications/misc/memo/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.mrVanDalo ];
     platforms = lib.platforms.all;
+    mainProgram = "memo";
   };
 }
diff --git a/pkgs/applications/misc/mencal/default.nix b/pkgs/applications/misc/mencal/default.nix
index c4973b2755348..011db7455fcf2 100644
--- a/pkgs/applications/misc/mencal/default.nix
+++ b/pkgs/applications/misc/mencal/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.mmahut ];
     platforms = platforms.all;
+    mainProgram = "mencal";
   };
 }
diff --git a/pkgs/applications/misc/metamorphose2/default.nix b/pkgs/applications/misc/metamorphose2/default.nix
index 9b2b7bdde8815..c5950e2e9df0a 100644
--- a/pkgs/applications/misc/metamorphose2/default.nix
+++ b/pkgs/applications/misc/metamorphose2/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation {
     license     = with licenses; gpl3Plus;
     maintainers = with maintainers; [ ramkromberg ];
     platforms   = with platforms; linux;
+    mainProgram = "metamorphose2";
   };
 }
diff --git a/pkgs/applications/misc/metar/default.nix b/pkgs/applications/misc/metar/default.nix
index 07ac41f7281eb..d1edfb6a761f1 100644
--- a/pkgs/applications/misc/metar/default.nix
+++ b/pkgs/applications/misc/metar/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation {
     '';
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ zalakain ];
+    mainProgram = "metar";
   };
 }
diff --git a/pkgs/applications/misc/milu/default.nix b/pkgs/applications/misc/milu/default.nix
index a941f6251498f..b05a1c815baad 100644
--- a/pkgs/applications/misc/milu/default.nix
+++ b/pkgs/applications/misc/milu/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation {
     license = lib.licenses.bsd2;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.vrthra ];
+    mainProgram = "milu";
   };
 }
 
diff --git a/pkgs/applications/misc/mkgmap/default.nix b/pkgs/applications/misc/mkgmap/default.nix
index 298aa2ef40f4b..1960c34efa017 100644
--- a/pkgs/applications/misc/mkgmap/default.nix
+++ b/pkgs/applications/misc/mkgmap/default.nix
@@ -83,5 +83,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.all;
+    mainProgram = "mkgmap";
   };
 }
diff --git a/pkgs/applications/misc/mop/default.nix b/pkgs/applications/misc/mop/default.nix
index ddd02d45df0cc..301b5302b022a 100644
--- a/pkgs/applications/misc/mop/default.nix
+++ b/pkgs/applications/misc/mop/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     description = "Simple stock tracker implemented in go";
     homepage = "https://github.com/mop-tracker/mop";
     license = licenses.mit;
+    mainProgram = "mop";
   };
 }
diff --git a/pkgs/applications/misc/mystem/default.nix b/pkgs/applications/misc/mystem/default.nix
index 198d170bd89ca..50c2c35749e0c 100644
--- a/pkgs/applications/misc/mystem/default.nix
+++ b/pkgs/applications/misc/mystem/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ abbradar ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "mystem";
   };
 }
diff --git a/pkgs/applications/misc/natural-docs/default.nix b/pkgs/applications/misc/natural-docs/default.nix
index be4bd5f430fa2..2995eba5787b2 100644
--- a/pkgs/applications/misc/natural-docs/default.nix
+++ b/pkgs/applications/misc/natural-docs/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "https://naturaldocs.org";
     license = licenses.agpl3Only;
     maintainers = [ maintainers.nkpvk ];
+    mainProgram = "NaturalDocs";
   };
 }
diff --git a/pkgs/applications/misc/neo/default.nix b/pkgs/applications/misc/neo/default.nix
index e091a572c2723..27216c381db64 100644
--- a/pkgs/applications/misc/neo/default.nix
+++ b/pkgs/applications/misc/neo/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/st3w/neo";
     platforms = ncurses.meta.platforms;
     maintainers = [ maintainers.abbe ];
+    mainProgram = "neo";
   };
 }
diff --git a/pkgs/applications/misc/neo4j-desktop/default.nix b/pkgs/applications/misc/neo4j-desktop/default.nix
index d3058dbf18341..42cd8067fe326 100644
--- a/pkgs/applications/misc/neo4j-desktop/default.nix
+++ b/pkgs/applications/misc/neo4j-desktop/default.nix
@@ -29,5 +29,6 @@ in appimageTools.wrapType2 {
     license = licenses.unfree;
     maintainers = [ maintainers.bobvanderlinden ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "neo4j-desktop";
   };
 }
diff --git a/pkgs/applications/misc/nix-tour/default.nix b/pkgs/applications/misc/nix-tour/default.nix
index b7485255b8a86..bff2a40e5370b 100644
--- a/pkgs/applications/misc/nix-tour/default.nix
+++ b/pkgs/applications/misc/nix-tour/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     homepage = "https://nixcloud.io/tour";
     license = licenses.gpl2;
     maintainers = with maintainers; [ qknight yuu ];
+    mainProgram = "nix-tour";
   };
 }
diff --git a/pkgs/applications/misc/notesnook/default.nix b/pkgs/applications/misc/notesnook/default.nix
index cb39e26994f58..62788b5a7f13f 100644
--- a/pkgs/applications/misc/notesnook/default.nix
+++ b/pkgs/applications/misc/notesnook/default.nix
@@ -38,6 +38,7 @@ let
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ j0lol ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    mainProgram = "notesnook";
   };
 
   linux = appimageTools.wrapType2 rec {
diff --git a/pkgs/applications/misc/nrsc5/default.nix b/pkgs/applications/misc/nrsc5/default.nix
index e55438f0eb115..2b1a2ff22188a 100644
--- a/pkgs/applications/misc/nrsc5/default.nix
+++ b/pkgs/applications/misc/nrsc5/default.nix
@@ -48,6 +48,7 @@ in stdenv.mkDerivation {
     platforms = lib.platforms.linux;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ markuskowa ];
+    mainProgram = "nrsc5";
   };
 }
 
diff --git a/pkgs/applications/misc/ns-usbloader/default.nix b/pkgs/applications/misc/ns-usbloader/default.nix
index ff16debee7ef2..2a08b24435a28 100644
--- a/pkgs/applications/misc/ns-usbloader/default.nix
+++ b/pkgs/applications/misc/ns-usbloader/default.nix
@@ -100,5 +100,6 @@ maven.buildMavenPackage rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ soupglasses ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
+    mainProgram = "ns-usbloader";
   };
 }
diff --git a/pkgs/applications/misc/nwg-dock/default.nix b/pkgs/applications/misc/nwg-dock/default.nix
index b2154db0d7942..f32873e21a06a 100644
--- a/pkgs/applications/misc/nwg-dock/default.nix
+++ b/pkgs/applications/misc/nwg-dock/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "nwg-dock";
   };
 }
diff --git a/pkgs/applications/misc/obs-cli/default.nix b/pkgs/applications/misc/obs-cli/default.nix
index f62fa6a840137..8ff7e7a48157a 100644
--- a/pkgs/applications/misc/obs-cli/default.nix
+++ b/pkgs/applications/misc/obs-cli/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ flexiondotorg ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "obs-cli";
   };
 }
diff --git a/pkgs/applications/misc/onagre/default.nix b/pkgs/applications/misc/onagre/default.nix
index 1b39cf45eeae7..b6375e6b5955e 100644
--- a/pkgs/applications/misc/onagre/default.nix
+++ b/pkgs/applications/misc/onagre/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = [ maintainers.jfvillablanca ];
     platforms = platforms.linux;
+    mainProgram = "onagre";
   };
 }
diff --git a/pkgs/applications/misc/oneko/default.nix b/pkgs/applications/misc/oneko/default.nix
index 17a94511e3fce..a67bedd42912c 100644
--- a/pkgs/applications/misc/oneko/default.nix
+++ b/pkgs/applications/misc/oneko/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ publicDomain ];
     maintainers = with maintainers; [ xaverdh irenes ];
     platforms = platforms.unix;
+    mainProgram = "oneko";
   };
 }
diff --git a/pkgs/applications/misc/openbox-menu/default.nix b/pkgs/applications/misc/openbox-menu/default.nix
index e9646b9c21d46..de3fc6cd0accc 100644
--- a/pkgs/applications/misc/openbox-menu/default.nix
+++ b/pkgs/applications/misc/openbox-menu/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.romildo ];
     platforms   = platforms.unix;
+    mainProgram = "openbox-menu";
   };
 }
diff --git a/pkgs/applications/misc/openjump/default.nix b/pkgs/applications/misc/openjump/default.nix
index d6b20a7f01e57..e1eceab496471 100644
--- a/pkgs/applications/misc/openjump/default.nix
+++ b/pkgs/applications/misc/openjump/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     maintainers = [lib.maintainers.marcweber];
     platforms = lib.platforms.linux;
+    mainProgram = "OpenJump";
   };
 }
diff --git a/pkgs/applications/misc/openring/default.nix b/pkgs/applications/misc/openring/default.nix
index e311dfbb3b7c4..2f72b8b41cc01 100644
--- a/pkgs/applications/misc/openring/default.nix
+++ b/pkgs/applications/misc/openring/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://sr.ht/~sircmpwn/openring";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sumnerevans ];
+    mainProgram = "openring";
   };
 }
diff --git a/pkgs/applications/misc/oranda/default.nix b/pkgs/applications/misc/oranda/default.nix
index 9e1ff27f651b0..bf84c0782da6c 100644
--- a/pkgs/applications/misc/oranda/default.nix
+++ b/pkgs/applications/misc/oranda/default.nix
@@ -53,5 +53,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/axodotdev/oranda/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "oranda";
   };
 }
diff --git a/pkgs/applications/misc/osm2xmap/default.nix b/pkgs/applications/misc/osm2xmap/default.nix
index 545ea498002a1..bca60b14a34df 100644
--- a/pkgs/applications/misc/osm2xmap/default.nix
+++ b/pkgs/applications/misc/osm2xmap/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.mpickering ];
     platforms = with lib.platforms; linux;
+    mainProgram = "osm2xmap";
   };
 }
diff --git a/pkgs/applications/misc/osmium-tool/default.nix b/pkgs/applications/misc/osmium-tool/default.nix
index cf7c419e40de3..061d579521539 100644
--- a/pkgs/applications/misc/osmium-tool/default.nix
+++ b/pkgs/applications/misc/osmium-tool/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/osmcode/osmium-tool/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ gpl3Plus mit bsd3 ];
     maintainers = with maintainers; [ das-g ];
+    mainProgram = "osmium";
   };
 }
diff --git a/pkgs/applications/misc/osmtogeojson/default.nix b/pkgs/applications/misc/osmtogeojson/default.nix
index 5854d36b1e7a3..07d989d2cc83c 100644
--- a/pkgs/applications/misc/osmtogeojson/default.nix
+++ b/pkgs/applications/misc/osmtogeojson/default.nix
@@ -23,5 +23,6 @@ buildNpmPackage rec {
     homepage = "https://tyrasd.github.io/osmtogeojson/";
     maintainers = with maintainers; [ thibautmarty ];
     license = licenses.mit;
+    mainProgram = "osmtogeojson";
   };
 }
diff --git a/pkgs/applications/misc/otf2bdf/default.nix b/pkgs/applications/misc/otf2bdf/default.nix
index 947957df284cf..6653225b7f448 100644
--- a/pkgs/applications/misc/otf2bdf/default.nix
+++ b/pkgs/applications/misc/otf2bdf/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit0;
     platforms = platforms.all;
     maintainers = with maintainers; [ hzeller ];
+    mainProgram = "otf2bdf";
   };
 }
diff --git a/pkgs/applications/misc/oxker/default.nix b/pkgs/applications/misc/oxker/default.nix
index 7974466a1c2ce..eb93eaa286559 100644
--- a/pkgs/applications/misc/oxker/default.nix
+++ b/pkgs/applications/misc/oxker/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/mrjackwills/oxker/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ siph ];
+    mainProgram = "oxker";
   };
 }
diff --git a/pkgs/applications/misc/p2pool/default.nix b/pkgs/applications/misc/p2pool/default.nix
index 53a05157b9961..9265543ff8f5c 100644
--- a/pkgs/applications/misc/p2pool/default.nix
+++ b/pkgs/applications/misc/p2pool/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/SChernykh/p2pool";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ratsclub ];
+    mainProgram = "p2pool";
   };
 }
diff --git a/pkgs/applications/misc/pagefind/default.nix b/pkgs/applications/misc/pagefind/default.nix
index 1d1a91e9e4b5c..35fe84b22729b 100644
--- a/pkgs/applications/misc/pagefind/default.nix
+++ b/pkgs/applications/misc/pagefind/default.nix
@@ -106,5 +106,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ pbsds ];
     platforms = platforms.unix;
+    mainProgram = "pagefind";
   };
 }
diff --git a/pkgs/applications/misc/pcmanx-gtk2/default.nix b/pkgs/applications/misc/pcmanx-gtk2/default.nix
index 2e75791e30823..6179bbe15fbf5 100644
--- a/pkgs/applications/misc/pcmanx-gtk2/default.nix
+++ b/pkgs/applications/misc/pcmanx-gtk2/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     description = "Telnet BBS browser with GTK interface";
     maintainers = [ maintainers.sifmelcara ];
     platforms = platforms.linux;
+    mainProgram = "pcmanx";
   };
 }
diff --git a/pkgs/applications/misc/peaclock/default.nix b/pkgs/applications/misc/peaclock/default.nix
index 619b6ed9b3754..866d6660910f6 100644
--- a/pkgs/applications/misc/peaclock/default.nix
+++ b/pkgs/applications/misc/peaclock/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ djanatyn ];
+    mainProgram = "peaclock";
   };
 }
diff --git a/pkgs/applications/misc/pell/default.nix b/pkgs/applications/misc/pell/default.nix
index 0b21de1e91e0d..1a11a793f5638 100644
--- a/pkgs/applications/misc/pell/default.nix
+++ b/pkgs/applications/misc/pell/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
+    mainProgram = "pell";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/misc/pgmanage/default.nix b/pkgs/applications/misc/pgmanage/default.nix
index eac927ad3b2ce..e3860ee625840 100644
--- a/pkgs/applications/misc/pgmanage/default.nix
+++ b/pkgs/applications/misc/pgmanage/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/pgManage/pgManage";
     license = licenses.postgresql;
     maintainers = [ maintainers.basvandijk ];
+    mainProgram = "pgmanage";
   };
 }
diff --git a/pkgs/applications/misc/phockup/default.nix b/pkgs/applications/misc/phockup/default.nix
index 319a471f62784..8df388e1f64fd 100644
--- a/pkgs/applications/misc/phockup/default.nix
+++ b/pkgs/applications/misc/phockup/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/ivandokov/phockup";
     license = licenses.mit;
     maintainers = with maintainers; [ aanderse ];
+    mainProgram = "phockup";
   };
 }
diff --git a/pkgs/applications/misc/pinfo/default.nix b/pkgs/applications/misc/pinfo/default.nix
index 179af6ca87dcd..92d892fc9c974 100644
--- a/pkgs/applications/misc/pinfo/default.nix
+++ b/pkgs/applications/misc/pinfo/default.nix
@@ -67,5 +67,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "pinfo";
   };
 }
diff --git a/pkgs/applications/misc/plasma-theme-switcher/default.nix b/pkgs/applications/misc/plasma-theme-switcher/default.nix
index fb8d407ef12f9..f2af3f6e43ab3 100644
--- a/pkgs/applications/misc/plasma-theme-switcher/default.nix
+++ b/pkgs/applications/misc/plasma-theme-switcher/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     description = "A KDE Plasma theme switcher";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ kevink ];
+    mainProgram = "plasma-theme";
   };
 }
diff --git a/pkgs/applications/misc/playonlinux/default.nix b/pkgs/applications/misc/playonlinux/default.nix
index 89fcdfe4f7119..0b4f445c00669 100644
--- a/pkgs/applications/misc/playonlinux/default.nix
+++ b/pkgs/applications/misc/playonlinux/default.nix
@@ -146,5 +146,6 @@ in stdenv.mkDerivation {
     license = licenses.gpl3;
     maintainers = [ maintainers.pasqui23 ];
     platforms = [ "x86_64-linux" "i686-linux" ];
+    mainProgram = "playonlinux";
   };
 }
diff --git a/pkgs/applications/misc/pokemon-colorscripts-mac/default.nix b/pkgs/applications/misc/pokemon-colorscripts-mac/default.nix
index 62c6ed0f4a42e..5205e8ad6eafa 100644
--- a/pkgs/applications/misc/pokemon-colorscripts-mac/default.nix
+++ b/pkgs/applications/misc/pokemon-colorscripts-mac/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.wesleyjrz ];
     platforms = platforms.unix;
+    mainProgram = "pokemon-colorscripts";
   };
 }
diff --git a/pkgs/applications/misc/pomodoro/default.nix b/pkgs/applications/misc/pomodoro/default.nix
index d180c8e436e7a..fe09f5328ee81 100644
--- a/pkgs/applications/misc/pomodoro/default.nix
+++ b/pkgs/applications/misc/pomodoro/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ annaaurora ];
     # error: redefinition of module 'ObjectiveC'
     broken = stdenv.isDarwin;
+    mainProgram = "pomodoro";
   };
 }
diff --git a/pkgs/applications/misc/pop-launcher/default.nix b/pkgs/applications/misc/pop-launcher/default.nix
index 24bcd9ab89e46..b8ba5133904b2 100644
--- a/pkgs/applications/misc/pop-launcher/default.nix
+++ b/pkgs/applications/misc/pop-launcher/default.nix
@@ -57,5 +57,6 @@ rustPlatform.buildRustPackage rec {
     platforms = platforms.linux;
     license = licenses.mpl20;
     maintainers = with maintainers; [ samhug ];
+    mainProgram = "pop-launcher";
   };
 }
diff --git a/pkgs/applications/misc/pop/default.nix b/pkgs/applications/misc/pop/default.nix
index 02ebcaa2fb960..3fbf063e73150 100644
--- a/pkgs/applications/misc/pop/default.nix
+++ b/pkgs/applications/misc/pop/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     changelog = "https://github.com/charmbracelet/pop/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ caarlos0 maaslalani ];
+    mainProgram = "pop";
   };
 }
diff --git a/pkgs/applications/misc/porsmo/default.nix b/pkgs/applications/misc/porsmo/default.nix
index 2e158187e4371..f741ad2d6b482 100644
--- a/pkgs/applications/misc/porsmo/default.nix
+++ b/pkgs/applications/misc/porsmo/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ColorCookie-dev/porsmo";
     license = licenses.mit;
     maintainers = with maintainers; [ MoritzBoehme ];
+    mainProgram = "porsmo";
   };
 }
diff --git a/pkgs/applications/misc/premid/default.nix b/pkgs/applications/misc/premid/default.nix
index df2f0d6b28a1d..f621d510e411d 100644
--- a/pkgs/applications/misc/premid/default.nix
+++ b/pkgs/applications/misc/premid/default.nix
@@ -89,5 +89,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl20;
     maintainers = with maintainers; [ natto1784 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "premid";
   };
 }
diff --git a/pkgs/applications/misc/process-compose/default.nix b/pkgs/applications/misc/process-compose/default.nix
index fa92fbfe3c706..8b52f085f8a12 100644
--- a/pkgs/applications/misc/process-compose/default.nix
+++ b/pkgs/applications/misc/process-compose/default.nix
@@ -62,5 +62,6 @@ buildGoModule rec {
     changelog = "https://github.com/F1bonacc1/process-compose/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ thenonameguy ];
+    mainProgram = "process-compose";
   };
 }
diff --git a/pkgs/applications/misc/psi-notify/default.nix b/pkgs/applications/misc/psi-notify/default.nix
index e086ee01afeda..b984cc5cd5c3d 100644
--- a/pkgs/applications/misc/psi-notify/default.nix
+++ b/pkgs/applications/misc/psi-notify/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/cdown/psi-notify";
     platforms = platforms.linux;
     maintainers = with maintainers; [ eduarrrd ];
+    mainProgram = "psi-notify";
   };
 }
diff --git a/pkgs/applications/misc/pstree/default.nix b/pkgs/applications/misc/pstree/default.nix
index d25e4a6f90baa..7b979d486faa4 100644
--- a/pkgs/applications/misc/pstree/default.nix
+++ b/pkgs/applications/misc/pstree/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.c0bw3b ];
     platforms = platforms.unix;
     priority = 5; # Lower than psmisc also providing pstree on Linux platforms
+    mainProgram = "pstree";
   };
 }
diff --git a/pkgs/applications/misc/pt/default.nix b/pkgs/applications/misc/pt/default.nix
index ef490702a672f..2cbcbdd7faa06 100644
--- a/pkgs/applications/misc/pt/default.nix
+++ b/pkgs/applications/misc/pt/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.mit;
     maintainers = with maintainers; [ ebzzry manveru nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "pt";
   };
 }
diff --git a/pkgs/applications/misc/quicksynergy/default.nix b/pkgs/applications/misc/quicksynergy/default.nix
index d26972d97fb7f..5a93f647291d2 100644
--- a/pkgs/applications/misc/quicksynergy/default.nix
+++ b/pkgs/applications/misc/quicksynergy/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.spinus ];
     platforms = lib.platforms.linux;
+    mainProgram = "quicksynergy";
   };
 }
diff --git a/pkgs/applications/misc/ratt/default.nix b/pkgs/applications/misc/ratt/default.nix
index 15ce7a2e14092..afdc3c231418c 100644
--- a/pkgs/applications/misc/ratt/default.nix
+++ b/pkgs/applications/misc/ratt/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://git.sr.ht/~ghost08/ratt";
     license = licenses.mit;
     maintainers = with maintainers; [ kmein ];
+    mainProgram = "ratt";
   };
 }
diff --git a/pkgs/applications/misc/reddsaver/default.nix b/pkgs/applications/misc/reddsaver/default.nix
index 7bcf774b01165..1c6202eb0deeb 100644
--- a/pkgs/applications/misc/reddsaver/default.nix
+++ b/pkgs/applications/misc/reddsaver/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/manojkarthick/reddsaver";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = [ maintainers.manojkarthick ];
+    mainProgram = "reddsaver";
   };
 
 }
diff --git a/pkgs/applications/misc/resumed/default.nix b/pkgs/applications/misc/resumed/default.nix
index 75ee72a38b7f8..e1f6928dcdbb7 100644
--- a/pkgs/applications/misc/resumed/default.nix
+++ b/pkgs/applications/misc/resumed/default.nix
@@ -18,5 +18,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/rbardini/resumed";
     license = licenses.mit;
     maintainers = with maintainers; [ ambroisie ];
+    mainProgram = "resumed";
   };
 }
diff --git a/pkgs/applications/misc/revanced-cli/default.nix b/pkgs/applications/misc/revanced-cli/default.nix
index 96c8f43a7249e..56923e0ee1959 100644
--- a/pkgs/applications/misc/revanced-cli/default.nix
+++ b/pkgs/applications/misc/revanced-cli/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     maintainers = with maintainers; [ jopejoe1 ];
+    mainProgram = "revanced-cli";
   };
 }
diff --git a/pkgs/applications/misc/river-luatile/default.nix b/pkgs/applications/misc/river-luatile/default.nix
index 6b5c27bab5ae7..8999ea2445e57 100644
--- a/pkgs/applications/misc/river-luatile/default.nix
+++ b/pkgs/applications/misc/river-luatile/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pinpox ];
+    mainProgram = "river-luatile";
   };
 }
diff --git a/pkgs/applications/misc/river-tag-overlay/default.nix b/pkgs/applications/misc/river-tag-overlay/default.nix
index 902f6e8161489..e1652cf70da71 100644
--- a/pkgs/applications/misc/river-tag-overlay/default.nix
+++ b/pkgs/applications/misc/river-tag-overlay/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ edrex ];
     platforms = platforms.linux;
+    mainProgram = "river-tag-overlay";
   };
 }
diff --git a/pkgs/applications/misc/rivercarro/default.nix b/pkgs/applications/misc/rivercarro/default.nix
index 5962b49ffc6a0..93b476973f55f 100644
--- a/pkgs/applications/misc/rivercarro/default.nix
+++ b/pkgs/applications/misc/rivercarro/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kraem ];
     inherit (zig_0_11.meta) platforms;
+    mainProgram = "rivercarro";
   };
 })
diff --git a/pkgs/applications/misc/rlaunch/default.nix b/pkgs/applications/misc/rlaunch/default.nix
index 15f26a24d602b..da90dbe5d74a5 100644
--- a/pkgs/applications/misc/rlaunch/default.nix
+++ b/pkgs/applications/misc/rlaunch/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ danc86 ];
+    mainProgram = "rlaunch";
   };
 }
diff --git a/pkgs/applications/misc/robo3t/default.nix b/pkgs/applications/misc/robo3t/default.nix
index ae32aac267e17..c2ea6a2a25520 100644
--- a/pkgs/applications/misc/robo3t/default.nix
+++ b/pkgs/applications/misc/robo3t/default.nix
@@ -94,5 +94,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ eperuffo ];
+    mainProgram = "robo3t";
   };
 }
diff --git a/pkgs/applications/misc/rsclock/default.nix b/pkgs/applications/misc/rsclock/default.nix
index 8a6c5588494f1..1830a60087269 100644
--- a/pkgs/applications/misc/rsclock/default.nix
+++ b/pkgs/applications/misc/rsclock/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/valebes/rsClock";
     license = licenses.mit;
     maintainers = with maintainers; [valebes];
+    mainProgram = "rsclock";
   };
 }
diff --git a/pkgs/applications/misc/rss-bridge-cli/default.nix b/pkgs/applications/misc/rss-bridge-cli/default.nix
index 05d2bca99b1bc..e7714a21b1293 100644
--- a/pkgs/applications/misc/rss-bridge-cli/default.nix
+++ b/pkgs/applications/misc/rss-bridge-cli/default.nix
@@ -23,5 +23,6 @@ in (writeShellScriptBin "rss-bridge-cli" ''
     homepage = "https://github.com/RSS-Bridge/rss-bridge";
     license = licenses.unlicense;
     maintainers = with maintainers; [ ymeister ];
+    mainProgram = "rss-bridge-cli";
   };
 })
diff --git a/pkgs/applications/misc/rusty-psn/default.nix b/pkgs/applications/misc/rusty-psn/default.nix
index d9e713b0abf79..c9968f7257f80 100644
--- a/pkgs/applications/misc/rusty-psn/default.nix
+++ b/pkgs/applications/misc/rusty-psn/default.nix
@@ -87,5 +87,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ AngryAnt ];
+    mainProgram = "rusty-psn";
   };
 }
diff --git a/pkgs/applications/misc/sampler/default.nix b/pkgs/applications/misc/sampler/default.nix
index e5e090e7da4dc..a111142bbde4b 100644
--- a/pkgs/applications/misc/sampler/default.nix
+++ b/pkgs/applications/misc/sampler/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://sampler.dev";
     license = licenses.gpl3;
     maintainers = with maintainers; [ uvnikita ];
+    mainProgram = "sampler";
   };
 }
diff --git a/pkgs/applications/misc/sdcv/default.nix b/pkgs/applications/misc/sdcv/default.nix
index 3ddef749c568a..206ca96d01002 100644
--- a/pkgs/applications/misc/sdcv/default.nix
+++ b/pkgs/applications/misc/sdcv/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ lovek323 ];
     license = licenses.gpl2;
     platforms = platforms.unix;
+    mainProgram = "sdcv";
   };
 }
diff --git a/pkgs/applications/misc/semver/default.nix b/pkgs/applications/misc/semver/default.nix
index cdafd32027192..53e06a4c406ec 100644
--- a/pkgs/applications/misc/semver/default.nix
+++ b/pkgs/applications/misc/semver/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     description = "A small CLI to fish out the current or next semver version from a git repository";
     maintainers = with maintainers; [ catouc ];
     license = licenses.mit;
+    mainProgram = "semver";
   };
 }
diff --git a/pkgs/applications/misc/senv/default.nix b/pkgs/applications/misc/senv/default.nix
index b45085610d13d..b542966e828a6 100644
--- a/pkgs/applications/misc/senv/default.nix
+++ b/pkgs/applications/misc/senv/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 ];
     broken = stdenv.isDarwin; # needs golang.org/x/sys bump
+    mainProgram = "senv";
   };
 }
diff --git a/pkgs/applications/misc/shavee/default.nix b/pkgs/applications/misc/shavee/default.nix
index e419ccafeb0e7..7854cfbd17f4d 100644
--- a/pkgs/applications/misc/shavee/default.nix
+++ b/pkgs/applications/misc/shavee/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ jasonodoom ];
     platforms = lib.platforms.linux;
+    mainProgram = "shavee";
   };
 }
diff --git a/pkgs/applications/misc/sidequest/default.nix b/pkgs/applications/misc/sidequest/default.nix
index 226bb571b2ce0..c472fdb65ec97 100644
--- a/pkgs/applications/misc/sidequest/default.nix
+++ b/pkgs/applications/misc/sidequest/default.nix
@@ -106,6 +106,7 @@
         license = licenses.mit;
         maintainers = with maintainers; [ joepie91 rvolosatovs ];
         platforms = [ "x86_64-linux" ];
+        mainProgram = "SideQuest";
       };
     };
 
diff --git a/pkgs/applications/misc/sigi/default.nix b/pkgs/applications/misc/sigi/default.nix
index 1528cd31065eb..16df94f4d0f96 100644
--- a/pkgs/applications/misc/sigi/default.nix
+++ b/pkgs/applications/misc/sigi/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/sigi-cli/sigi";
     license = licenses.gpl2;
     maintainers = with maintainers; [ booniepepper ];
+    mainProgram = "sigi";
   };
 }
diff --git a/pkgs/applications/misc/skate/default.nix b/pkgs/applications/misc/skate/default.nix
index 6dc73d74411fc..16849996441fe 100644
--- a/pkgs/applications/misc/skate/default.nix
+++ b/pkgs/applications/misc/skate/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/charmbracelet/skate/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda penguwin ];
+    mainProgram = "skate";
   };
 }
diff --git a/pkgs/applications/misc/slides/default.nix b/pkgs/applications/misc/slides/default.nix
index 55229c206f18d..0c97ff7f14fa9 100644
--- a/pkgs/applications/misc/slides/default.nix
+++ b/pkgs/applications/misc/slides/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     changelog = "https://github.com/maaslalani/slides/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ maaslalani penguwin ];
+    mainProgram = "slides";
   };
 }
diff --git a/pkgs/applications/misc/slippy/default.nix b/pkgs/applications/misc/slippy/default.nix
index f599c4f47cfdb..40de95838ad5b 100644
--- a/pkgs/applications/misc/slippy/default.nix
+++ b/pkgs/applications/misc/slippy/default.nix
@@ -64,5 +64,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/axodotdev/slippy/releases/tag/${src.rev}";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "slippy";
   };
 }
diff --git a/pkgs/applications/misc/slstatus/default.nix b/pkgs/applications/misc/slstatus/default.nix
index 83407f94fcb6e..fcac061de0d14 100644
--- a/pkgs/applications/misc/slstatus/default.nix
+++ b/pkgs/applications/misc/slstatus/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ oxzi ];
     platforms = platforms.linux;
+    mainProgram = "slstatus";
   };
 }
diff --git a/pkgs/applications/misc/slweb/default.nix b/pkgs/applications/misc/slweb/default.nix
index ee5e01b79956a..b1e92cb9a39ce 100644
--- a/pkgs/applications/misc/slweb/default.nix
+++ b/pkgs/applications/misc/slweb/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ GaetanLepage ];
+    mainProgram = "slweb";
   };
 })
diff --git a/pkgs/applications/misc/smpq/default.nix b/pkgs/applications/misc/smpq/default.nix
index 7a6264d96547d..a1879241bd214 100644
--- a/pkgs/applications/misc/smpq/default.nix
+++ b/pkgs/applications/misc/smpq/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ aanderse karolchmist ];
+    mainProgram = "smpq";
   };
 }
diff --git a/pkgs/applications/misc/snixembed/default.nix b/pkgs/applications/misc/snixembed/default.nix
index 71a5837cc1260..21ec5dac81dff 100644
--- a/pkgs/applications/misc/snixembed/default.nix
+++ b/pkgs/applications/misc/snixembed/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.unix;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "snixembed";
   };
 }
diff --git a/pkgs/applications/misc/snowsql/default.nix b/pkgs/applications/misc/snowsql/default.nix
index 634c8367be694..c4af36299895a 100644
--- a/pkgs/applications/misc/snowsql/default.nix
+++ b/pkgs/applications/misc/snowsql/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ andehen ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "snowsql";
   };
 }
diff --git a/pkgs/applications/misc/somebar/default.nix b/pkgs/applications/misc/somebar/default.nix
index 6c595bc8dd66f..4c2545fe9c963 100644
--- a/pkgs/applications/misc/somebar/default.nix
+++ b/pkgs/applications/misc/somebar/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ magnouvean ];
     platforms = platforms.linux;
+    mainProgram = "somebar";
   };
 }
diff --git a/pkgs/applications/misc/spacenav-cube-example/default.nix b/pkgs/applications/misc/spacenav-cube-example/default.nix
index 0073c4a0f81e3..66c16e458b8f6 100644
--- a/pkgs/applications/misc/spacenav-cube-example/default.nix
+++ b/pkgs/applications/misc/spacenav-cube-example/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sohalt ];
+    mainProgram = "spacenav-cube-example";
   };
 }
diff --git a/pkgs/applications/misc/speedread/default.nix b/pkgs/applications/misc/speedread/default.nix
index 451382cda3739..234e6b136feb2 100644
--- a/pkgs/applications/misc/speedread/default.nix
+++ b/pkgs/applications/misc/speedread/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = [ maintainers.oxij ];
+    mainProgram = "speedread";
   };
 }
diff --git a/pkgs/applications/misc/spnavcfg/default.nix b/pkgs/applications/misc/spnavcfg/default.nix
index 6424204c460aa..921947fc1b808 100644
--- a/pkgs/applications/misc/spnavcfg/default.nix
+++ b/pkgs/applications/misc/spnavcfg/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ gebner ];
+    mainProgram = "spnavcfg";
   };
 }
diff --git a/pkgs/applications/misc/spotify-tray/default.nix b/pkgs/applications/misc/spotify-tray/default.nix
index 2ba37830749dc..372e468487fd6 100644
--- a/pkgs/applications/misc/spotify-tray/default.nix
+++ b/pkgs/applications/misc/spotify-tray/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ Enzime ];
+    mainProgram = "spotify-tray";
   };
 }
diff --git a/pkgs/applications/misc/ssocr/default.nix b/pkgs/applications/misc/ssocr/default.nix
index 3605d1a7f8644..4231adb65b410 100644
--- a/pkgs/applications/misc/ssocr/default.nix
+++ b/pkgs/applications/misc/ssocr/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/auerswal/ssocr";
     license = licenses.gpl3;
     maintainers = [ maintainers.kroell ];
+    mainProgram = "ssocr";
   };
 }
diff --git a/pkgs/applications/misc/stag/default.nix b/pkgs/applications/misc/stag/default.nix
index d8360dd7ccf4b..049cee5a830de 100644
--- a/pkgs/applications/misc/stag/default.nix
+++ b/pkgs/applications/misc/stag/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ matthiasbeyer ];
     platforms = platforms.unix;
+    mainProgram = "stag";
   };
 })
diff --git a/pkgs/applications/misc/stepreduce/default.nix b/pkgs/applications/misc/stepreduce/default.nix
index 11e1df4cced47..40e0986c5d01c 100644
--- a/pkgs/applications/misc/stepreduce/default.nix
+++ b/pkgs/applications/misc/stepreduce/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.com/sethhillbrand/stepreduce";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ evils ];
+    mainProgram = "stepreduce";
   };
 }
diff --git a/pkgs/applications/misc/stork/default.nix b/pkgs/applications/misc/stork/default.nix
index 6a97654818121..ab851363d381b 100644
--- a/pkgs/applications/misc/stork/default.nix
+++ b/pkgs/applications/misc/stork/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jameslittle230/stork";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ chuahou ];
+    mainProgram = "stork";
   };
 }
diff --git a/pkgs/applications/misc/stretchly/default.nix b/pkgs/applications/misc/stretchly/default.nix
index 67ffdee86c980..71288ca07c9dd 100644
--- a/pkgs/applications/misc/stretchly/default.nix
+++ b/pkgs/applications/misc/stretchly/default.nix
@@ -75,5 +75,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.bsd2;
     maintainers = with maintainers; [ _1000101 ];
     platforms = platforms.linux;
+    mainProgram = "stretchly";
   };
 })
diff --git a/pkgs/applications/misc/stw/default.nix b/pkgs/applications/misc/stw/default.nix
index e7c11fd4b9a5c..ca46c163128af 100644
--- a/pkgs/applications/misc/stw/default.nix
+++ b/pkgs/applications/misc/stw/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ somasis ];
     platforms = platforms.unix;
     broken = stdenv.isDarwin;
+    mainProgram = "stw";
   };
 }
diff --git a/pkgs/applications/misc/styx/default.nix b/pkgs/applications/misc/styx/default.nix
index 6ef1bb9b95ee7..96278fd9c3222 100644
--- a/pkgs/applications/misc/styx/default.nix
+++ b/pkgs/applications/misc/styx/default.nix
@@ -67,5 +67,6 @@ stdenv.mkDerivation rec {
     downloadPage = "https://github.com/styx-static/styx/";
     platforms    = platforms.all;
     license      = licenses.mit;
+    mainProgram  = "styx";
   };
 }
diff --git a/pkgs/applications/misc/surface-control/default.nix b/pkgs/applications/misc/surface-control/default.nix
index e995f036cddc3..77f3954ed0597 100644
--- a/pkgs/applications/misc/surface-control/default.nix
+++ b/pkgs/applications/misc/surface-control/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "surface";
   };
 }
diff --git a/pkgs/applications/misc/swaynag-battery/default.nix b/pkgs/applications/misc/swaynag-battery/default.nix
index b58758d8a4174..8dc99ca012e92 100644
--- a/pkgs/applications/misc/swaynag-battery/default.nix
+++ b/pkgs/applications/misc/swaynag-battery/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     description = "Shows a message when your battery is discharging ";
     maintainers = with maintainers; [ ];
     license = licenses.mit;
+    mainProgram = "swaynag-battery";
   };
 }
diff --git a/pkgs/applications/misc/synapse/default.nix b/pkgs/applications/misc/synapse/default.nix
index da822f5347bf4..1491a4e812911 100644
--- a/pkgs/applications/misc/synapse/default.nix
+++ b/pkgs/applications/misc/synapse/default.nix
@@ -33,5 +33,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ mahe ];
     platforms = with platforms; all;
+    mainProgram = "synapse";
   };
 }
diff --git a/pkgs/applications/misc/syncthing-tray/default.nix b/pkgs/applications/misc/syncthing-tray/default.nix
index db734bff58787..e9db92df121c4 100644
--- a/pkgs/applications/misc/syncthing-tray/default.nix
+++ b/pkgs/applications/misc/syncthing-tray/default.nix
@@ -23,5 +23,6 @@ buildGoPackage rec {
     homepage = "https://github.com/alex2108/syncthing-tray";
     license = licenses.mit;
     maintainers = with maintainers; [ nickhu ];
+    mainProgram = "syncthing-tray";
   };
 }
diff --git a/pkgs/applications/misc/systembus-notify/default.nix b/pkgs/applications/misc/systembus-notify/default.nix
index 770cd8584010c..f05c8a0aa0746 100644
--- a/pkgs/applications/misc/systembus-notify/default.nix
+++ b/pkgs/applications/misc/systembus-notify/default.nix
@@ -60,5 +60,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
+    mainProgram = "systembus-notify";
   };
 }
diff --git a/pkgs/applications/misc/tabula-java/default.nix b/pkgs/applications/misc/tabula-java/default.nix
index f8d3cc3c54be5..ce402396c97da 100644
--- a/pkgs/applications/misc/tabula-java/default.nix
+++ b/pkgs/applications/misc/tabula-java/default.nix
@@ -45,5 +45,6 @@ maven.buildMavenPackage rec {
     license = licenses.mit;
     maintainers = [ maintainers.jakewaksbaum ];
     platforms = platforms.all;
+    mainProgram = "tabula-java";
   };
 }
diff --git a/pkgs/applications/misc/tagtime/default.nix b/pkgs/applications/misc/tagtime/default.nix
index d21621058bca0..9ec36c26defcf 100644
--- a/pkgs/applications/misc/tagtime/default.nix
+++ b/pkgs/applications/misc/tagtime/default.nix
@@ -75,5 +75,6 @@ stdenv.mkDerivation {
     homepage = "http://messymatters.com/tagtime/";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.Profpatsch ];
+    mainProgram = "tagtimed";
   };
 }
diff --git a/pkgs/applications/misc/tailscale-systray/default.nix b/pkgs/applications/misc/tailscale-systray/default.nix
index 85e927f018f13..842b66ee7cc75 100644
--- a/pkgs/applications/misc/tailscale-systray/default.nix
+++ b/pkgs/applications/misc/tailscale-systray/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     homepage = "https://github.com/mattn/tailscale-systray";
     license = licenses.mit;
     maintainers = with maintainers; [ qbit ];
+    mainProgram = "tailscale-systray";
   };
 }
diff --git a/pkgs/applications/misc/taizen/default.nix b/pkgs/applications/misc/taizen/default.nix
index d39ad206c2dc5..903de3c05c1d4 100644
--- a/pkgs/applications/misc/taizen/default.nix
+++ b/pkgs/applications/misc/taizen/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/nerdypepper/taizen";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "taizen";
   };
 }
diff --git a/pkgs/applications/misc/tandoor-recipes/default.nix b/pkgs/applications/misc/tandoor-recipes/default.nix
index 98c6f8b530f99..dc36156ff4a1b 100644
--- a/pkgs/applications/misc/tandoor-recipes/default.nix
+++ b/pkgs/applications/misc/tandoor-recipes/default.nix
@@ -158,5 +158,6 @@ python.pkgs.pythonPackages.buildPythonPackage rec {
       Application for managing recipes, planning meals, building shopping lists
       and much much more!
     '';
+    mainProgram = "tandoor-recipes";
   };
 }
diff --git a/pkgs/applications/misc/tango/default.nix b/pkgs/applications/misc/tango/default.nix
index d6278c7f79cc9..bd2dca9d790b4 100644
--- a/pkgs/applications/misc/tango/default.nix
+++ b/pkgs/applications/misc/tango/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/masakichi/tango";
     license = licenses.mit;
     maintainers = with maintainers; [ donovanglover ];
+    mainProgram = "tango";
   };
 }
diff --git a/pkgs/applications/misc/tasksh/default.nix b/pkgs/applications/misc/tasksh/default.nix
index 134d1373ad4be..0e169bc998d61 100644
--- a/pkgs/applications/misc/tasksh/default.nix
+++ b/pkgs/applications/misc/tasksh/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer ];
     platforms = platforms.unix;
+    mainProgram = "tasksh";
   };
 }
diff --git a/pkgs/applications/misc/taskwarrior-tui/default.nix b/pkgs/applications/misc/taskwarrior-tui/default.nix
index 153ea4d6d55ca..44b6ccf760956 100644
--- a/pkgs/applications/misc/taskwarrior-tui/default.nix
+++ b/pkgs/applications/misc/taskwarrior-tui/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/kdheepak/taskwarrior-tui";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ matthiasbeyer ];
+    mainProgram = "taskwarrior-tui";
   };
 }
diff --git a/pkgs/applications/misc/terminal-colors/default.nix b/pkgs/applications/misc/terminal-colors/default.nix
index 96df3d1783285..fc196be625e5b 100644
--- a/pkgs/applications/misc/terminal-colors/default.nix
+++ b/pkgs/applications/misc/terminal-colors/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/eikenb/terminal-colors";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kaction ];
+    mainProgram = "terminal-colors";
   };
 }
diff --git a/pkgs/applications/misc/terminal-parrot/default.nix b/pkgs/applications/misc/terminal-parrot/default.nix
index f0b4d20b1a76e..802588e8ef64a 100644
--- a/pkgs/applications/misc/terminal-parrot/default.nix
+++ b/pkgs/applications/misc/terminal-parrot/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/jmhobbs/terminal-parrot";
     license = licenses.mit;
     maintainers = [ maintainers.heel ];
+    mainProgram = "terminal-parrot";
   };
 }
diff --git a/pkgs/applications/misc/terminal-stocks/default.nix b/pkgs/applications/misc/terminal-stocks/default.nix
index 285eb9b744d47..9d1ee035d81a3 100644
--- a/pkgs/applications/misc/terminal-stocks/default.nix
+++ b/pkgs/applications/misc/terminal-stocks/default.nix
@@ -21,5 +21,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/shweshi/terminal-stocks";
     maintainers = with maintainers; [ mislavzanic ];
     license = licenses.mit;
+    mainProgram = "terminal-stocks";
   };
 }
diff --git a/pkgs/applications/misc/thedesk/default.nix b/pkgs/applications/misc/thedesk/default.nix
index faf32c96a19e3..3fb11f883a2a6 100644
--- a/pkgs/applications/misc/thedesk/default.nix
+++ b/pkgs/applications/misc/thedesk/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "thedesk";
   };
 }
diff --git a/pkgs/applications/misc/thokr/default.nix b/pkgs/applications/misc/thokr/default.nix
index 74c5b2ccc712f..cf82a8d6aeb81 100644
--- a/pkgs/applications/misc/thokr/default.nix
+++ b/pkgs/applications/misc/thokr/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/thatvegandev/thokr";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "thokr";
   };
 }
diff --git a/pkgs/applications/misc/ticker/default.nix b/pkgs/applications/misc/ticker/default.nix
index bb3322a278814..fdbc9c2a5cd48 100644
--- a/pkgs/applications/misc/ticker/default.nix
+++ b/pkgs/applications/misc/ticker/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     changelog = "https://github.com/achannarasappa/ticker/releases/tag/v${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ siraben sarcasticadmin ];
+    mainProgram = "ticker";
   };
 }
diff --git a/pkgs/applications/misc/tickrs/default.nix b/pkgs/applications/misc/tickrs/default.nix
index 35d56e8be7dd2..a22f9da07359e 100644
--- a/pkgs/applications/misc/tickrs/default.nix
+++ b/pkgs/applications/misc/tickrs/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/tarkah/tickrs/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ mredaelli ];
+    mainProgram = "tickrs";
   };
 }
diff --git a/pkgs/applications/misc/timew-sync-server/default.nix b/pkgs/applications/misc/timew-sync-server/default.nix
index 8f2420280c9cc..fefc25a487927 100644
--- a/pkgs/applications/misc/timew-sync-server/default.nix
+++ b/pkgs/applications/misc/timew-sync-server/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = [ maintainers.joachimschmidt557 ];
     platforms = platforms.linux;
+    mainProgram = "timew-sync-server";
   };
 }
diff --git a/pkgs/applications/misc/tiramisu/default.nix b/pkgs/applications/misc/tiramisu/default.nix
index 3e8f101f871e5..8624bded6641f 100644
--- a/pkgs/applications/misc/tiramisu/default.nix
+++ b/pkgs/applications/misc/tiramisu/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ wishfort36 moni ];
+    mainProgram = "tiramisu";
   };
 }
diff --git a/pkgs/applications/misc/tmatrix/default.nix b/pkgs/applications/misc/tmatrix/default.nix
index 780a80b5d2c6d..50af143808889 100644
--- a/pkgs/applications/misc/tmatrix/default.nix
+++ b/pkgs/applications/misc/tmatrix/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = with maintainers; [ infinisil Br1ght0ne ];
+    mainProgram = "tmatrix";
   };
 }
diff --git a/pkgs/applications/misc/tnef/default.nix b/pkgs/applications/misc/tnef/default.nix
index 65e07915c760d..4c4b67adf96d4 100644
--- a/pkgs/applications/misc/tnef/default.nix
+++ b/pkgs/applications/misc/tnef/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.all;
+    mainProgram = "tnef";
   };
 }
diff --git a/pkgs/applications/misc/todoist-electron/default.nix b/pkgs/applications/misc/todoist-electron/default.nix
index d9306ce7d187d..351df8c558ad2 100644
--- a/pkgs/applications/misc/todoist-electron/default.nix
+++ b/pkgs/applications/misc/todoist-electron/default.nix
@@ -41,5 +41,6 @@ in appimageTools.wrapAppImage {
     platforms = [ "x86_64-linux" ];
     license = licenses.unfree;
     maintainers = with maintainers; [ kylesferrazza pokon548 ];
+    mainProgram = "todoist-electron";
   };
 }
diff --git a/pkgs/applications/misc/todoist/default.nix b/pkgs/applications/misc/todoist/default.nix
index fc600ab7710cf..0145644de14f3 100644
--- a/pkgs/applications/misc/todoist/default.nix
+++ b/pkgs/applications/misc/todoist/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/sachaos/todoist";
     description = "Todoist CLI Client";
     license = lib.licenses.mit;
+    mainProgram = "todoist";
   };
 }
diff --git a/pkgs/applications/misc/transifex-cli/default.nix b/pkgs/applications/misc/transifex-cli/default.nix
index 59917a4604188..f03ea6eaed367 100644
--- a/pkgs/applications/misc/transifex-cli/default.nix
+++ b/pkgs/applications/misc/transifex-cli/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     homepage = "https://github.com/transifex/transifex-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ thornycrackers ];
+    mainProgram = "tx";
   };
 }
diff --git a/pkgs/applications/misc/ttdl/default.nix b/pkgs/applications/misc/ttdl/default.nix
index 795253aeda2ba..00f3f748593d9 100644
--- a/pkgs/applications/misc/ttdl/default.nix
+++ b/pkgs/applications/misc/ttdl/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/VladimirMarkelov/ttdl/blob/v${version}/changelog";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ _3JlOy-PYCCKUi ];
+    mainProgram = "ttdl";
   };
 }
diff --git a/pkgs/applications/misc/tthsum/default.nix b/pkgs/applications/misc/tthsum/default.nix
index 26508c6d49bf6..2c41c1c300f7f 100644
--- a/pkgs/applications/misc/tthsum/default.nix
+++ b/pkgs/applications/misc/tthsum/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
+    mainProgram = "tthsum";
   };
 }
diff --git a/pkgs/applications/misc/tty-share/default.nix b/pkgs/applications/misc/tty-share/default.nix
index cd741b8338d62..7f2fe8c162a75 100644
--- a/pkgs/applications/misc/tty-share/default.nix
+++ b/pkgs/applications/misc/tty-share/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     description = "Share terminal via browser for remote work or shared sessions";
     license = licenses.mit;
     maintainers = with maintainers; [ andys8 ];
+    mainProgram = "tty-share";
   };
 }
diff --git a/pkgs/applications/misc/ttyper/default.nix b/pkgs/applications/misc/ttyper/default.nix
index db46cae31e9e2..de72638d19ffe 100644
--- a/pkgs/applications/misc/ttyper/default.nix
+++ b/pkgs/applications/misc/ttyper/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/max-niederman/ttyper/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda max-niederman ];
+    mainProgram = "ttyper";
   };
 }
diff --git a/pkgs/applications/misc/tuckr/default.nix b/pkgs/applications/misc/tuckr/default.nix
index d332d4457a4a8..f61f7bea912d6 100644
--- a/pkgs/applications/misc/tuckr/default.nix
+++ b/pkgs/applications/misc/tuckr/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/RaphGL/Tuckr/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mimame ];
+    mainProgram = "tuckr";
   };
 }
diff --git a/pkgs/applications/misc/tut/default.nix b/pkgs/applications/misc/tut/default.nix
index 8033cbfa865de..85f2768cc715f 100644
--- a/pkgs/applications/misc/tut/default.nix
+++ b/pkgs/applications/misc/tut/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/RasmusLindroth/tut";
     license = licenses.mit;
     maintainers = with maintainers; [ equirosa ];
+    mainProgram = "tut";
   };
 }
diff --git a/pkgs/applications/misc/typer/default.nix b/pkgs/applications/misc/typer/default.nix
index ebd274125e6e8..8d41e2168783f 100644
--- a/pkgs/applications/misc/typer/default.nix
+++ b/pkgs/applications/misc/typer/default.nix
@@ -23,5 +23,6 @@ buildGoModule {
     homepage = "https://github.com/maaslalani/typer";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "typer";
   };
 }
diff --git a/pkgs/applications/misc/typioca/default.nix b/pkgs/applications/misc/typioca/default.nix
index acf8b3a341fee..87b499f010bed 100644
--- a/pkgs/applications/misc/typioca/default.nix
+++ b/pkgs/applications/misc/typioca/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     changelog = "https://github.com/bloznelis/typioca/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "typioca";
   };
 }
diff --git a/pkgs/applications/misc/udict/default.nix b/pkgs/applications/misc/udict/default.nix
index 0a8522669e922..62d698cc3a360 100644
--- a/pkgs/applications/misc/udict/default.nix
+++ b/pkgs/applications/misc/udict/default.nix
@@ -40,5 +40,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lsmb/udict";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "udict";
   };
 }
diff --git a/pkgs/applications/misc/ultralist/default.nix b/pkgs/applications/misc/ultralist/default.nix
index 4ca7283631c0c..edcc086dbb88d 100644
--- a/pkgs/applications/misc/ultralist/default.nix
+++ b/pkgs/applications/misc/ultralist/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://ultralist.io";
     license = licenses.mit;
     maintainers = with maintainers; [ uvnikita ];
+    mainProgram = "ultralist";
   };
 }
diff --git a/pkgs/applications/misc/uni/default.nix b/pkgs/applications/misc/uni/default.nix
index 72c4f84ba7334..57f88ab6eafef 100644
--- a/pkgs/applications/misc/uni/default.nix
+++ b/pkgs/applications/misc/uni/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/arp242/uni/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ chvp ];
+    mainProgram = "uni";
   };
 }
diff --git a/pkgs/applications/misc/unipicker/default.nix b/pkgs/applications/misc/unipicker/default.nix
index b488a16015ef3..e13d27ce4408f 100644
--- a/pkgs/applications/misc/unipicker/default.nix
+++ b/pkgs/applications/misc/unipicker/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "unipicker";
    };
 }
diff --git a/pkgs/applications/misc/usb-reset/default.nix b/pkgs/applications/misc/usb-reset/default.nix
index 7b4d67eb065f1..0e924ba5ee671 100644
--- a/pkgs/applications/misc/usb-reset/default.nix
+++ b/pkgs/applications/misc/usb-reset/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.evils ];
     platforms = platforms.all;
+    mainProgram = "usb-reset";
   };
 }
diff --git a/pkgs/applications/misc/usync/default.nix b/pkgs/applications/misc/usync/default.nix
index cf51a53e7139d..1034b3844b130 100644
--- a/pkgs/applications/misc/usync/default.nix
+++ b/pkgs/applications/misc/usync/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
+    mainProgram = "usync";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/misc/vcal/default.nix b/pkgs/applications/misc/vcal/default.nix
index 9519e033473e3..6b882e2710a61 100644
--- a/pkgs/applications/misc/vcal/default.nix
+++ b/pkgs/applications/misc/vcal/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     homepage = "https://waynemorrison.com/software/";
     license = licenses.asl20;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "vcal";
   };
 }
diff --git a/pkgs/applications/misc/vp/default.nix b/pkgs/applications/misc/vp/default.nix
index 5d28029213414..07dbfef2f5f56 100644
--- a/pkgs/applications/misc/vp/default.nix
+++ b/pkgs/applications/misc/vp/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license  = licenses.gpl3;
     maintainers = [ maintainers.vrthra ];
+    mainProgram = "vp";
   };
 }
diff --git a/pkgs/applications/misc/vue/default.nix b/pkgs/applications/misc/vue/default.nix
index db9313b6be614..41ab85bbd5c5d 100644
--- a/pkgs/applications/misc/vue/default.nix
+++ b/pkgs/applications/misc/vue/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     platforms = with lib.platforms; linux;
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license = lib.licenses.free; # Apache License fork, actually
+    mainProgram = "vue";
   };
 }
diff --git a/pkgs/applications/misc/vul/default.nix b/pkgs/applications/misc/vul/default.nix
index 21a9e1f12b9ea..0e9b52e82d312 100644
--- a/pkgs/applications/misc/vul/default.nix
+++ b/pkgs/applications/misc/vul/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/LukeSmithxyz/vul";
     license = licenses.publicDomain;
     maintainers = [ maintainers.j0hax maintainers.cafkafk ];
+    mainProgram = "vul";
   };
 }
diff --git a/pkgs/applications/misc/warpd/default.nix b/pkgs/applications/misc/warpd/default.nix
index e2d5715447f7c..7fa28d41e37bf 100644
--- a/pkgs/applications/misc/warpd/default.nix
+++ b/pkgs/applications/misc/warpd/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ hhydraa ];
     license = licenses.mit;
     platforms = platforms.linux;
+    mainProgram = "warpd";
   };
 }
diff --git a/pkgs/applications/misc/wbg/default.nix b/pkgs/applications/misc/wbg/default.nix
index bf7ce1c1c2291..4501f2c3ffeba 100644
--- a/pkgs/applications/misc/wbg/default.nix
+++ b/pkgs/applications/misc/wbg/default.nix
@@ -61,5 +61,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; linux;
+    mainProgram = "wbg";
   };
 }
diff --git a/pkgs/applications/misc/wcalc/default.nix b/pkgs/applications/misc/wcalc/default.nix
index 30ca1836b7405..62ab0aaa05a50 100644
--- a/pkgs/applications/misc/wcalc/default.nix
+++ b/pkgs/applications/misc/wcalc/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "https://w-calc.sourceforge.net";
     license = licenses.gpl2;
     platforms = platforms.all;
+    mainProgram = "wcalc";
   };
 }
diff --git a/pkgs/applications/misc/wego/default.nix b/pkgs/applications/misc/wego/default.nix
index 4620386b9c271..3ff6a7279ad63 100644
--- a/pkgs/applications/misc/wego/default.nix
+++ b/pkgs/applications/misc/wego/default.nix
@@ -17,5 +17,6 @@ buildGoModule rec {
     homepage = "https://github.com/schachmat/wego";
     description = "Weather app for the terminal";
     license = licenses.isc;
+    mainProgram = "wego";
   };
 }
diff --git a/pkgs/applications/misc/with-shell/default.nix b/pkgs/applications/misc/with-shell/default.nix
index 3674a23e41bd6..acfe547f1470a 100644
--- a/pkgs/applications/misc/with-shell/default.nix
+++ b/pkgs/applications/misc/with-shell/default.nix
@@ -72,5 +72,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "with";
   };
 }
diff --git a/pkgs/applications/misc/wlclock/default.nix b/pkgs/applications/misc/wlclock/default.nix
index cbd7c32bdd370..ad14b24abd29a 100644
--- a/pkgs/applications/misc/wlclock/default.nix
+++ b/pkgs/applications/misc/wlclock/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ nomisiv ];
     platforms = with platforms; linux;
+    mainProgram = "wlclock";
   };
 }
diff --git a/pkgs/applications/misc/wmenu/default.nix b/pkgs/applications/misc/wmenu/default.nix
index 9d068bb61e68a..b0b64d86e45e6 100644
--- a/pkgs/applications/misc/wmenu/default.nix
+++ b/pkgs/applications/misc/wmenu/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ eken ];
+    mainProgram = "wmenu";
   };
 }
 
diff --git a/pkgs/applications/misc/wmname/default.nix b/pkgs/applications/misc/wmname/default.nix
index 45e7cf3d8f1ba..b64e714e081b0 100644
--- a/pkgs/applications/misc/wmname/default.nix
+++ b/pkgs/applications/misc/wmname/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://tools.suckless.org/wmname";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
+    mainProgram = "wmname";
   };
 }
diff --git a/pkgs/applications/misc/wofi-emoji/default.nix b/pkgs/applications/misc/wofi-emoji/default.nix
index bf58b91956585..359853e6624ed 100644
--- a/pkgs/applications/misc/wofi-emoji/default.nix
+++ b/pkgs/applications/misc/wofi-emoji/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.ymarkus ];
     platforms = platforms.all;
+    mainProgram = "wofi-emoji";
   };
 }
diff --git a/pkgs/applications/misc/writefreely/default.nix b/pkgs/applications/misc/writefreely/default.nix
index 9f2d6743c3870..fe1d221bd274c 100644
--- a/pkgs/applications/misc/writefreely/default.nix
+++ b/pkgs/applications/misc/writefreely/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/writefreely/writefreely";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ soopyc ];
+    mainProgram = "writefreely";
   };
 }
diff --git a/pkgs/applications/misc/wthrr/default.nix b/pkgs/applications/misc/wthrr/default.nix
index 0b6ab3f968921..5b3c6d2cd17ab 100644
--- a/pkgs/applications/misc/wthrr/default.nix
+++ b/pkgs/applications/misc/wthrr/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/tobealive/wthrr-the-weathercrab/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "wthrr";
   };
 }
diff --git a/pkgs/applications/misc/xbattbar/default.nix b/pkgs/applications/misc/xbattbar/default.nix
index 93f5d1c2279c0..0ddb06b62acee 100644
--- a/pkgs/applications/misc/xbattbar/default.nix
+++ b/pkgs/applications/misc/xbattbar/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.q3k ];
+    mainProgram = "xbattbar";
   };
 }
diff --git a/pkgs/applications/misc/xchm/default.nix b/pkgs/applications/misc/xchm/default.nix
index e5b3100dac373..8c48388594d44 100644
--- a/pkgs/applications/misc/xchm/default.nix
+++ b/pkgs/applications/misc/xchm/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.linux;
+    mainProgram = "xchm";
   };
 }
diff --git a/pkgs/applications/misc/xcruiser/default.nix b/pkgs/applications/misc/xcruiser/default.nix
index 8144a66fb2ff3..3f1277f24a83a 100644
--- a/pkgs/applications/misc/xcruiser/default.nix
+++ b/pkgs/applications/misc/xcruiser/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ ehmry ];
     platforms = with platforms; linux;
+    mainProgram = "xcruiser";
   };
 }
diff --git a/pkgs/applications/misc/xkbd/default.nix b/pkgs/applications/misc/xkbd/default.nix
index 173ea71fe4075..df7d0f0e61cc5 100644
--- a/pkgs/applications/misc/xkbd/default.nix
+++ b/pkgs/applications/misc/xkbd/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ ];
     platforms = platforms.linux;
+    mainProgram = "xkbd";
   };
 }
diff --git a/pkgs/applications/misc/xkblayout-state/default.nix b/pkgs/applications/misc/xkblayout-state/default.nix
index 539a0f7d1a1d8..c73ff6a607833 100644
--- a/pkgs/applications/misc/xkblayout-state/default.nix
+++ b/pkgs/applications/misc/xkblayout-state/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.jagajaga ];
     platforms = platforms.linux;
+    mainProgram = "xkblayout-state";
   };
 }
diff --git a/pkgs/applications/misc/xkbmon/default.nix b/pkgs/applications/misc/xkbmon/default.nix
index 7c9a24c671734..f9394c45342cb 100644
--- a/pkgs/applications/misc/xkbmon/default.nix
+++ b/pkgs/applications/misc/xkbmon/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
+    mainProgram = "xkbmon";
   };
 }
diff --git a/pkgs/applications/misc/xlights/default.nix b/pkgs/applications/misc/xlights/default.nix
index 459a7fd2d1db7..e878039d0ede2 100644
--- a/pkgs/applications/misc/xlights/default.nix
+++ b/pkgs/applications/misc/xlights/default.nix
@@ -15,5 +15,6 @@ appimageTools.wrapType2 rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ kashw2 ];
     platforms = platforms.linux;
+    mainProgram = "xlights-${version}";
   };
 }
diff --git a/pkgs/applications/misc/xmenu/default.nix b/pkgs/applications/misc/xmenu/default.nix
index 9fe7ddf70b6bd..ae08952af2e85 100644
--- a/pkgs/applications/misc/xmenu/default.nix
+++ b/pkgs/applications/misc/xmenu/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ neonfuz ];
     platforms = platforms.all;
+    mainProgram = "xmenu";
   };
 }
diff --git a/pkgs/applications/misc/xrandr-invert-colors/default.nix b/pkgs/applications/misc/xrandr-invert-colors/default.nix
index 226907afe7e86..6fd521f3cc5cf 100644
--- a/pkgs/applications/misc/xrandr-invert-colors/default.nix
+++ b/pkgs/applications/misc/xrandr-invert-colors/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/zoltanp/xrandr-invert-colors";
     maintainers = [lib.maintainers.magnetophon ];
     platforms = platforms.linux;
+    mainProgram = "xrandr-invert-colors";
   };
 }
diff --git a/pkgs/applications/misc/xrq/default.nix b/pkgs/applications/misc/xrq/default.nix
index 22ad3d789ac97..c37696c5f19d1 100644
--- a/pkgs/applications/misc/xrq/default.nix
+++ b/pkgs/applications/misc/xrq/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/arianon/xrq";
     license = lib.licenses.mit;
     platforms = with lib.platforms; unix;
+    mainProgram = "xrq";
   };
 }
diff --git a/pkgs/applications/misc/xscope/default.nix b/pkgs/applications/misc/xscope/default.nix
index ba798a861a8d1..34425345f3d40 100644
--- a/pkgs/applications/misc/xscope/default.nix
+++ b/pkgs/applications/misc/xscope/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ];
     platforms = with platforms; unix;
+    mainProgram = "xscope";
   };
 }
 
diff --git a/pkgs/applications/misc/xsw/default.nix b/pkgs/applications/misc/xsw/default.nix
index 5248ed2f60401..fac2c6812bd27 100644
--- a/pkgs/applications/misc/xsw/default.nix
+++ b/pkgs/applications/misc/xsw/default.nix
@@ -31,5 +31,6 @@ in stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license  = licenses.gpl3;
     maintainers = [ maintainers.vrthra ];
+    mainProgram = "xsw";
   };
 }
diff --git a/pkgs/applications/misc/xxkb/default.nix b/pkgs/applications/misc/xxkb/default.nix
index 5e76e3a14d537..3fd9eb8a6ecbb 100644
--- a/pkgs/applications/misc/xxkb/default.nix
+++ b/pkgs/applications/misc/xxkb/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = licenses.artistic2;
     maintainers = with maintainers; [ rasendubi ];
     platforms = platforms.linux;
+    mainProgram = "xxkb";
   };
 }
diff --git a/pkgs/applications/misc/yambar/default.nix b/pkgs/applications/misc/yambar/default.nix
index 8feb3995070cd..ee679a630b60b 100644
--- a/pkgs/applications/misc/yambar/default.nix
+++ b/pkgs/applications/misc/yambar/default.nix
@@ -119,5 +119,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.linux;
+    mainProgram = "yambar";
   };
 })
diff --git a/pkgs/applications/misc/zettlr/generic.nix b/pkgs/applications/misc/zettlr/generic.nix
index 671577b61ba75..0b26d57e7c4e9 100644
--- a/pkgs/applications/misc/zettlr/generic.nix
+++ b/pkgs/applications/misc/zettlr/generic.nix
@@ -38,5 +38,6 @@ appimageTools.wrapType2 rec {
     platforms = [ "x86_64-linux" ];
     license = licenses.gpl3;
     maintainers = with maintainers; [ tfmoraes ];
+    mainProgram = "zettlr";
   };
 }
diff --git a/pkgs/applications/misc/zine/default.nix b/pkgs/applications/misc/zine/default.nix
index 863ab7f618ba9..63675fa69abdb 100644
--- a/pkgs/applications/misc/zine/default.nix
+++ b/pkgs/applications/misc/zine/default.nix
@@ -34,5 +34,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/zineland/zine/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya figsoda ];
+    mainProgram = "zine";
   };
 }
diff --git a/pkgs/applications/misc/zktree/default.nix b/pkgs/applications/misc/zktree/default.nix
index 86e12712340a7..c9d4786f05f57 100644
--- a/pkgs/applications/misc/zktree/default.nix
+++ b/pkgs/applications/misc/zktree/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/alirezameskin/zktree";
     license = licenses.unlicense;
     maintainers = with lib.maintainers; [ alirezameskin ];
+    mainProgram = "zktree";
   };
 }
diff --git a/pkgs/applications/office/appflowy/default.nix b/pkgs/applications/office/appflowy/default.nix
index 05b6171a07fc6..184f44294ec85 100644
--- a/pkgs/applications/office/appflowy/default.nix
+++ b/pkgs/applications/office/appflowy/default.nix
@@ -79,5 +79,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/AppFlowy-IO/appflowy/releases/tag/${version}";
     maintainers = with maintainers; [ darkonion0 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "appflowy";
   };
 }
diff --git a/pkgs/applications/office/hledger-check-fancyassertions/default.nix b/pkgs/applications/office/hledger-check-fancyassertions/default.nix
index 9ffac0f312913..366f4fb2ae97e 100644
--- a/pkgs/applications/office/hledger-check-fancyassertions/default.nix
+++ b/pkgs/applications/office/hledger-check-fancyassertions/default.nix
@@ -39,5 +39,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.DamienCassou ];
     platforms = lib.platforms.all; # GHC can cross-compile
+    mainProgram = "hledger-check-fancyassertions";
   };
 }
diff --git a/pkgs/applications/office/jameica/default.nix b/pkgs/applications/office/jameica/default.nix
index 655de5227bb09..e6aa7cb21d14e 100644
--- a/pkgs/applications/office/jameica/default.nix
+++ b/pkgs/applications/office/jameica/default.nix
@@ -83,5 +83,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
     maintainers = with maintainers; [ flokli r3dl3g ];
+    mainProgram = "jameica";
   };
 }
diff --git a/pkgs/applications/office/ledger-web/default.nix b/pkgs/applications/office/ledger-web/default.nix
index ce8b401cb6b92..e19d4492ac918 100644
--- a/pkgs/applications/office/ledger-web/default.nix
+++ b/pkgs/applications/office/ledger-web/default.nix
@@ -19,5 +19,6 @@ bundlerApp {
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg manveru nicknovitski ];
     platforms = platforms.linux;
+    mainProgram = "ledger_web";
   };
 }
diff --git a/pkgs/applications/office/mendeley/default.nix b/pkgs/applications/office/mendeley/default.nix
index 81857f99f37db..d055658b294aa 100644
--- a/pkgs/applications/office/mendeley/default.nix
+++ b/pkgs/applications/office/mendeley/default.nix
@@ -39,6 +39,7 @@ in appimageTools.wrapType2 {
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers  = with maintainers; [ dtzWill atila ];
+    mainProgram = "mendeley-reference-manager";
   };
 
 }
diff --git a/pkgs/applications/office/micropad/default.nix b/pkgs/applications/office/micropad/default.nix
index c693d83c7cfe2..c50e14015f3be 100644
--- a/pkgs/applications/office/micropad/default.nix
+++ b/pkgs/applications/office/micropad/default.nix
@@ -96,5 +96,6 @@ in
       license = licenses.mpl20;
       maintainers = with maintainers; [rhysmdnz];
       inherit (electron.meta) platforms;
+      mainProgram = "micropad";
     };
   }
diff --git a/pkgs/applications/office/notion-app-enhanced/default.nix b/pkgs/applications/office/notion-app-enhanced/default.nix
index 84635f42ee45d..e9206f9e51532 100644
--- a/pkgs/applications/office/notion-app-enhanced/default.nix
+++ b/pkgs/applications/office/notion-app-enhanced/default.nix
@@ -28,5 +28,6 @@ in appimageTools.wrapType2 {
     license = licenses.unfree;
     maintainers = with maintainers; [ sei40kr ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "notion-app-enhanced";
   };
 }
diff --git a/pkgs/applications/office/p3x-onenote/default.nix b/pkgs/applications/office/p3x-onenote/default.nix
index 29e4f90a957ff..c70f3aa52c407 100644
--- a/pkgs/applications/office/p3x-onenote/default.nix
+++ b/pkgs/applications/office/p3x-onenote/default.nix
@@ -47,5 +47,6 @@ appimageTools.wrapType2 rec {
     license = licenses.mit;
     maintainers = with maintainers; [ tiagolobocastro ];
     platforms = [ "x86_64-linux" "aarch64-linux" "armv7l-linux" ];
+    mainProgram = "p3x-onenote";
   };
 }
diff --git a/pkgs/applications/office/pdfmm/default.nix b/pkgs/applications/office/pdfmm/default.nix
index 1a61f786de2fe..08dd9eea9bbd6 100644
--- a/pkgs/applications/office/pdfmm/default.nix
+++ b/pkgs/applications/office/pdfmm/default.nix
@@ -53,5 +53,6 @@ resholve.mkDerivation rec {
     homepage = "https://github.com/jpfleury/pdfmm";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ urandom ];
+    mainProgram = "pdfmm";
   };
 }
diff --git a/pkgs/applications/office/pinpoint/default.nix b/pkgs/applications/office/pinpoint/default.nix
index d7b1984b0d733..99a45371b63c3 100644
--- a/pkgs/applications/office/pinpoint/default.nix
+++ b/pkgs/applications/office/pinpoint/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "pinpoint";
   };
 }
diff --git a/pkgs/applications/office/rime-cli/default.nix b/pkgs/applications/office/rime-cli/default.nix
index 5dd412a450224..a5b989528459d 100644
--- a/pkgs/applications/office/rime-cli/default.nix
+++ b/pkgs/applications/office/rime-cli/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     description = "A command line tool to add customized vocabulary for Rime IME";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
+    mainProgram = "rime-cli";
   };
 }
diff --git a/pkgs/applications/office/roam-research/darwin.nix b/pkgs/applications/office/roam-research/darwin.nix
index 2c736c0c1a7fc..1369a2352b585 100644
--- a/pkgs/applications/office/roam-research/darwin.nix
+++ b/pkgs/applications/office/roam-research/darwin.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-darwin" "aarch64-darwin" ];
+    mainProgram = "roam-research";
   };
 }
diff --git a/pkgs/applications/office/roam-research/linux.nix b/pkgs/applications/office/roam-research/linux.nix
index 5873bcfdd190a..8733ce33026a8 100644
--- a/pkgs/applications/office/roam-research/linux.nix
+++ b/pkgs/applications/office/roam-research/linux.nix
@@ -69,5 +69,6 @@ in stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
+    mainProgram = "roam-research";
   };
 }
diff --git a/pkgs/applications/office/super-productivity/default.nix b/pkgs/applications/office/super-productivity/default.nix
index 60b7b9ba1129c..a50efea6096b9 100644
--- a/pkgs/applications/office/super-productivity/default.nix
+++ b/pkgs/applications/office/super-productivity/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ offline ];
+    mainProgram = "super-productivity";
   };
 }
diff --git a/pkgs/applications/office/teapot/default.nix b/pkgs/applications/office/teapot/default.nix
index 209fa7c4556b8..31ff3c8609874 100644
--- a/pkgs/applications/office/teapot/default.nix
+++ b/pkgs/applications/office/teapot/default.nix
@@ -73,6 +73,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "teapot";
   };
 }
 # TODO: patch/fix FLTK building
diff --git a/pkgs/applications/office/timeular/default.nix b/pkgs/applications/office/timeular/default.nix
index 61b9de8029fec..abe5a5e52ddba 100644
--- a/pkgs/applications/office/timeular/default.nix
+++ b/pkgs/applications/office/timeular/default.nix
@@ -42,5 +42,6 @@ in appimageTools.wrapType2 rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ ktor ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "timeular";
   };
 }
diff --git a/pkgs/applications/office/tudu/default.nix b/pkgs/applications/office/tudu/default.nix
index 57204fe865645..df1c5420164f0 100644
--- a/pkgs/applications/office/tudu/default.nix
+++ b/pkgs/applications/office/tudu/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://code.meskio.net/tudu/";
     license = licenses.gpl3;
     platforms = platforms.unix;
+    mainProgram = "tudu";
   };
 }
diff --git a/pkgs/applications/office/tusk/default.nix b/pkgs/applications/office/tusk/default.nix
index 52bb3eff49b7b..98f00f2ed54c9 100644
--- a/pkgs/applications/office/tusk/default.nix
+++ b/pkgs/applications/office/tusk/default.nix
@@ -48,5 +48,6 @@ in appimageTools.wrapType2 rec {
     license = licenses.mit;
     maintainers = with maintainers; [ tbenst ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "tusk";
   };
 }
diff --git a/pkgs/applications/office/zk/default.nix b/pkgs/applications/office/zk/default.nix
index 066c2d244b722..6cdbb0d63af25 100644
--- a/pkgs/applications/office/zk/default.nix
+++ b/pkgs/applications/office/zk/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     license = licenses.gpl3;
     description = "A zettelkasten plain text note-taking assistant";
     homepage = "https://github.com/mickael-menu/zk";
+    mainProgram = "zk";
   };
 }
diff --git a/pkgs/applications/radio/aldo/default.nix b/pkgs/applications/radio/aldo/default.nix
index cbe906e4672d5..3488ddecde396 100644
--- a/pkgs/applications/radio/aldo/default.nix
+++ b/pkgs/applications/radio/aldo/default.nix
@@ -22,5 +22,6 @@ in stdenv.mkDerivation {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "aldo";
   };
 }
diff --git a/pkgs/applications/radio/anytone-emu/default.nix b/pkgs/applications/radio/anytone-emu/default.nix
index eea51546057e3..5f4731616667e 100644
--- a/pkgs/applications/radio/anytone-emu/default.nix
+++ b/pkgs/applications/radio/anytone-emu/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ janik ];
     platforms = platforms.linux;
+    mainProgram = "anytone-emu";
   };
 }
diff --git a/pkgs/applications/radio/cubicsdr/default.nix b/pkgs/applications/radio/cubicsdr/default.nix
index 2af45d0394cb1..839fc9ceaaa14 100644
--- a/pkgs/applications/radio/cubicsdr/default.nix
+++ b/pkgs/applications/radio/cubicsdr/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ lasandell ];
     platforms = platforms.unix;
+    mainProgram = "CubicSDR";
   };
 }
diff --git a/pkgs/applications/radio/dmrconfig/default.nix b/pkgs/applications/radio/dmrconfig/default.nix
index dab93eabe71c6..292263c0f2691 100644
--- a/pkgs/applications/radio/dmrconfig/default.nix
+++ b/pkgs/applications/radio/dmrconfig/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "dmrconfig";
   };
 }
diff --git a/pkgs/applications/radio/dsd/default.nix b/pkgs/applications/radio/dsd/default.nix
index c98974740667d..72b6f305d3c61 100644
--- a/pkgs/applications/radio/dsd/default.nix
+++ b/pkgs/applications/radio/dsd/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ andrew-d ];
+    mainProgram = "dsd";
   };
 }
diff --git a/pkgs/applications/radio/ebook2cw/default.nix b/pkgs/applications/radio/ebook2cw/default.nix
index 329d87d80f4c0..4c1d2a3424e73 100644
--- a/pkgs/applications/radio/ebook2cw/default.nix
+++ b/pkgs/applications/radio/ebook2cw/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = with maintainers; [ earldouglas ];
+    mainProgram = "ebook2cw";
   };
 }
diff --git a/pkgs/applications/radio/flamp/default.nix b/pkgs/applications/radio/flamp/default.nix
index 6d9c58eb9ab93..4e7326af19326 100644
--- a/pkgs/applications/radio/flamp/default.nix
+++ b/pkgs/applications/radio/flamp/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with maintainers; [ stteague ];
     platforms = platforms.unix;
     broken = stdenv.system == "x86_64-darwin";
+    mainProgram = "flamp";
   };
 })
diff --git a/pkgs/applications/radio/flex-ndax/default.nix b/pkgs/applications/radio/flex-ndax/default.nix
index b1bda9fadce35..d350d481b9f56 100644
--- a/pkgs/applications/radio/flex-ndax/default.nix
+++ b/pkgs/applications/radio/flex-ndax/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     description = "FlexRadio digital audio transport (DAX) connector for PulseAudio";
     license = licenses.mit;
     maintainers = with maintainers; [ mvs ];
+    mainProgram = "nDAX";
   };
 }
diff --git a/pkgs/applications/radio/fllog/default.nix b/pkgs/applications/radio/fllog/default.nix
index b9490e47e5a54..46b99349be4f7 100644
--- a/pkgs/applications/radio/fllog/default.nix
+++ b/pkgs/applications/radio/fllog/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ dysinger ];
     platforms = lib.platforms.linux;
+    mainProgram = "fllog";
   };
 }
diff --git a/pkgs/applications/radio/flmsg/default.nix b/pkgs/applications/radio/flmsg/default.nix
index d4b97e3a29dca..510c6e4b3323c 100644
--- a/pkgs/applications/radio/flmsg/default.nix
+++ b/pkgs/applications/radio/flmsg/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ dysinger ];
     platforms = lib.platforms.linux;
+    mainProgram = "flmsg";
   };
 }
diff --git a/pkgs/applications/radio/flrig/default.nix b/pkgs/applications/radio/flrig/default.nix
index 83c28d47f7bb8..18c4ab1c20526 100644
--- a/pkgs/applications/radio/flrig/default.nix
+++ b/pkgs/applications/radio/flrig/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ dysinger ];
     platforms = lib.platforms.linux;
+    mainProgram = "flrig";
   };
 }
diff --git a/pkgs/applications/radio/flwrap/default.nix b/pkgs/applications/radio/flwrap/default.nix
index 04b96b36c1446..96c3125552d60 100644
--- a/pkgs/applications/radio/flwrap/default.nix
+++ b/pkgs/applications/radio/flwrap/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ dysinger ];
     platforms = lib.platforms.linux;
+    mainProgram = "flwrap";
   };
 }
diff --git a/pkgs/applications/radio/freedv/default.nix b/pkgs/applications/radio/freedv/default.nix
index 13049ba611fc6..a530aa4c7ef0b 100644
--- a/pkgs/applications/radio/freedv/default.nix
+++ b/pkgs/applications/radio/freedv/default.nix
@@ -92,5 +92,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21;
     maintainers = with maintainers; [ mvs wegank ];
     platforms = platforms.unix;
+    mainProgram = "freedv";
   };
 }
diff --git a/pkgs/applications/radio/kalibrate-hackrf/default.nix b/pkgs/applications/radio/kalibrate-hackrf/default.nix
index f10840e1bea96..1d821bba4adfc 100644
--- a/pkgs/applications/radio/kalibrate-hackrf/default.nix
+++ b/pkgs/applications/radio/kalibrate-hackrf/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation {
     license = licenses.bsd2;
     platforms = platforms.linux;
     maintainers = [ maintainers.mog ];
+    mainProgram = "kal-hackrf";
   };
 }
diff --git a/pkgs/applications/radio/kappanhang/default.nix b/pkgs/applications/radio/kappanhang/default.nix
index 41037c5092197..be8fa24a949e4 100644
--- a/pkgs/applications/radio/kappanhang/default.nix
+++ b/pkgs/applications/radio/kappanhang/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mvs ];
+    mainProgram = "kappanhang";
   };
 }
diff --git a/pkgs/applications/radio/minimodem/default.nix b/pkgs/applications/radio/minimodem/default.nix
index c023e76b273ef..a09e62dfd191d 100644
--- a/pkgs/applications/radio/minimodem/default.nix
+++ b/pkgs/applications/radio/minimodem/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     platforms = with lib.platforms; linux;
     maintainers = with lib.maintainers; [ relrod ];
+    mainProgram = "minimodem";
   };
 }
 
diff --git a/pkgs/applications/radio/noaa-apt/default.nix b/pkgs/applications/radio/noaa-apt/default.nix
index 95ab7f9baadd4..65024c24b00eb 100644
--- a/pkgs/applications/radio/noaa-apt/default.nix
+++ b/pkgs/applications/radio/noaa-apt/default.nix
@@ -66,5 +66,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ trepetti tmarkus ];
     platforms = platforms.all;
     changelog = "https://github.com/martinber/noaa-apt/releases/tag/v${version}";
+    mainProgram = "noaa-apt";
   };
 }
diff --git a/pkgs/applications/radio/pat/default.nix b/pkgs/applications/radio/pat/default.nix
index bddb3b986a33c..61cee240e5cfa 100644
--- a/pkgs/applications/radio/pat/default.nix
+++ b/pkgs/applications/radio/pat/default.nix
@@ -41,5 +41,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dotemup sarcasticadmin ];
     platforms = platforms.unix;
+    mainProgram = "pat";
   };
 }
diff --git a/pkgs/applications/radio/rtl_433/default.nix b/pkgs/applications/radio/rtl_433/default.nix
index 8619179efae4c..46b9a9ed2ea33 100644
--- a/pkgs/applications/radio/rtl_433/default.nix
+++ b/pkgs/applications/radio/rtl_433/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ earldouglas markuskowa ];
     platforms = platforms.all;
+    mainProgram = "rtl_433";
   };
 }
diff --git a/pkgs/applications/radio/sdrplay/default.nix b/pkgs/applications/radio/sdrplay/default.nix
index 8e7c14ec5e249..9d9ee298e09c0 100644
--- a/pkgs/applications/radio/sdrplay/default.nix
+++ b/pkgs/applications/radio/sdrplay/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ pmenke zaninime ];
     platforms = platforms.linux;
+    mainProgram = "sdrplay_apiService";
   };
 }
diff --git a/pkgs/applications/radio/sdrpp/default.nix b/pkgs/applications/radio/sdrpp/default.nix
index 76fa70984c20d..1ae5c028d28e8 100644
--- a/pkgs/applications/radio/sdrpp/default.nix
+++ b/pkgs/applications/radio/sdrpp/default.nix
@@ -134,5 +134,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sikmir ];
+    mainProgram = "sdrpp";
   };
 }
diff --git a/pkgs/applications/radio/soapyremote/default.nix b/pkgs/applications/radio/soapyremote/default.nix
index ebb34b0a0ce55..c6e7cddd0903c 100644
--- a/pkgs/applications/radio/soapyremote/default.nix
+++ b/pkgs/applications/radio/soapyremote/default.nix
@@ -27,5 +27,6 @@ in stdenv.mkDerivation {
     license = licenses.boost;
     maintainers = with maintainers; [ markuskowa ];
     platforms = platforms.unix;
+    mainProgram = "SoapySDRServer";
   };
 }
diff --git a/pkgs/applications/radio/tncattach/default.nix b/pkgs/applications/radio/tncattach/default.nix
index 5d88c84f71743..c536112e63a97 100644
--- a/pkgs/applications/radio/tncattach/default.nix
+++ b/pkgs/applications/radio/tncattach/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ sarcasticadmin ];
     platforms = platforms.linux;
+    mainProgram = "tncattach";
   };
 }
diff --git a/pkgs/applications/radio/xlog/default.nix b/pkgs/applications/radio/xlog/default.nix
index fe2b915e93adc..4e492af65600f 100644
--- a/pkgs/applications/radio/xlog/default.nix
+++ b/pkgs/applications/radio/xlog/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.mafo ];
     license = licenses.gpl3;
     platforms = platforms.unix;
+    mainProgram = "xlog";
   };
 }
diff --git a/pkgs/applications/search/doodle/default.nix b/pkgs/applications/search/doodle/default.nix
index 2016d6afff747..fbe5ee56b3193 100644
--- a/pkgs/applications/search/doodle/default.nix
+++ b/pkgs/applications/search/doodle/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux;
+    mainProgram = "doodle";
   };
 }
diff --git a/pkgs/applications/search/grepcidr/default.nix b/pkgs/applications/search/grepcidr/default.nix
index bdc660db45fc5..231718c810eef 100644
--- a/pkgs/applications/search/grepcidr/default.nix
+++ b/pkgs/applications/search/grepcidr/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = [ maintainers.fadenb ];
+    mainProgram = "grepcidr";
   };
 }
diff --git a/pkgs/applications/search/grepm/default.nix b/pkgs/applications/search/grepm/default.nix
index 14ac6ed69ce8b..c3adbb2ab8b05 100644
--- a/pkgs/applications/search/grepm/default.nix
+++ b/pkgs/applications/search/grepm/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation {
     license = licenses.free;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
+    mainProgram = "grepm";
   };
 }
diff --git a/pkgs/applications/system/mgmt/default.nix b/pkgs/applications/system/mgmt/default.nix
index 8a83966308158..bfa85ef566fdf 100644
--- a/pkgs/applications/system/mgmt/default.nix
+++ b/pkgs/applications/system/mgmt/default.nix
@@ -63,5 +63,6 @@ buildGoModule rec {
     homepage = "https://mgmtconfig.com";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ urandom ];
+    mainProgram = "mgmt";
   };
 }
diff --git a/pkgs/applications/system/psitop/default.nix b/pkgs/applications/system/psitop/default.nix
index cfcdf2488f6ac..74edad8b18c0d 100644
--- a/pkgs/applications/system/psitop/default.nix
+++ b/pkgs/applications/system/psitop/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/jamespwilliams/psitop";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "psitop";
   };
 }
diff --git a/pkgs/applications/system/zxfer/default.nix b/pkgs/applications/system/zxfer/default.nix
index b62c1262430ca..855be7bc3be08 100644
--- a/pkgs/applications/system/zxfer/default.nix
+++ b/pkgs/applications/system/zxfer/default.nix
@@ -82,5 +82,6 @@ resholve.mkDerivation rec {
     changelog = "https://github.com/allanjude/zxfer/releases/tag/v${version}";
     license = licenses.bsd2;
     maintainers = with lib.maintainers; [ urandom ];
+    mainProgram = "zxfer";
   };
 }
diff --git a/pkgs/tools/admin/acme-sh/default.nix b/pkgs/tools/admin/acme-sh/default.nix
index ead37f84f0342..6f82567ab02da 100644
--- a/pkgs/tools/admin/acme-sh/default.nix
+++ b/pkgs/tools/admin/acme-sh/default.nix
@@ -74,5 +74,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with lib.maintainers; [ mkaito ] ++ teams.serokell.members;
     inherit (coreutils.meta) platforms;
+    mainProgram = "acme.sh";
   };
 }
diff --git a/pkgs/tools/admin/afterburn/default.nix b/pkgs/tools/admin/afterburn/default.nix
index ddb8d0c9bfd49..bd104a2687d30 100644
--- a/pkgs/tools/admin/afterburn/default.nix
+++ b/pkgs/tools/admin/afterburn/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.asl20;
     maintainers = [ maintainers.arianvp ];
     platforms = platforms.linux;
+    mainProgram = "afterburn";
   };
 }
diff --git a/pkgs/tools/admin/analog/default.nix b/pkgs/tools/admin/analog/default.nix
index 54d863bb958f6..187dc6234cc20 100644
--- a/pkgs/tools/admin/analog/default.nix
+++ b/pkgs/tools/admin/analog/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     description = "Powerful tool to generate web server statistics";
     platforms = lib.platforms.all;
+    mainProgram = "analog";
   };
 
 }
diff --git a/pkgs/tools/admin/aws-env/default.nix b/pkgs/tools/admin/aws-env/default.nix
index 3ec84e80bb947..c16d8374c9b0b 100644
--- a/pkgs/tools/admin/aws-env/default.nix
+++ b/pkgs/tools/admin/aws-env/default.nix
@@ -21,5 +21,6 @@ buildGoPackage rec {
     homepage = "https://github.com/Droplr/aws-env";
     license = licenses.mit;
     maintainers = with maintainers; [ srhb ];
+    mainProgram = "aws-env";
   };
 }
diff --git a/pkgs/tools/admin/aws-nuke/default.nix b/pkgs/tools/admin/aws-nuke/default.nix
index 2529cbc21a6b2..af8acd946fb1b 100644
--- a/pkgs/tools/admin/aws-nuke/default.nix
+++ b/pkgs/tools/admin/aws-nuke/default.nix
@@ -44,5 +44,6 @@ buildGoModule rec {
     changelog = "https://github.com/rebuy-de/aws-nuke/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ grahamc ];
+    mainProgram = "aws-nuke";
   };
 }
diff --git a/pkgs/tools/admin/aws-rotate-key/default.nix b/pkgs/tools/admin/aws-rotate-key/default.nix
index 965c6807803ed..298584ce8d245 100644
--- a/pkgs/tools/admin/aws-rotate-key/default.nix
+++ b/pkgs/tools/admin/aws-rotate-key/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/Fullscreen/aws-rotate-key";
     license = licenses.mit;
     maintainers = [ maintainers.mbode ];
+    mainProgram = "aws-rotate-key";
   };
 }
diff --git a/pkgs/tools/admin/awsls/default.nix b/pkgs/tools/admin/awsls/default.nix
index 973d1f106227e..f65f603e80da8 100644
--- a/pkgs/tools/admin/awsls/default.nix
+++ b/pkgs/tools/admin/awsls/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/jckuester/awsls";
     license = licenses.mit;
     maintainers = [ maintainers.markus1189 ];
+    mainProgram = "awsls";
   };
 }
diff --git a/pkgs/tools/admin/awsrm/default.nix b/pkgs/tools/admin/awsrm/default.nix
index be29737066be4..72fb4454870cc 100644
--- a/pkgs/tools/admin/awsrm/default.nix
+++ b/pkgs/tools/admin/awsrm/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/jckuester/awsrm";
     license = licenses.mit;
     maintainers = [ maintainers.markus1189 ];
+    mainProgram = "awsrm";
   };
 }
diff --git a/pkgs/tools/admin/awsweeper/default.nix b/pkgs/tools/admin/awsweeper/default.nix
index 38a5a01b8b21e..9f0489c4dbb12 100644
--- a/pkgs/tools/admin/awsweeper/default.nix
+++ b/pkgs/tools/admin/awsweeper/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/jckuester/awsweeper";
     license = licenses.mpl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "awsweeper";
   };
 }
diff --git a/pkgs/tools/admin/berglas/default.nix b/pkgs/tools/admin/berglas/default.nix
index 150b5535f1ce9..e35fd2bfe0e0c 100644
--- a/pkgs/tools/admin/berglas/default.nix
+++ b/pkgs/tools/admin/berglas/default.nix
@@ -56,5 +56,6 @@ buildGoModule rec {
     description = "A tool for managing secrets on Google Cloud";
     homepage = "https://github.com/GoogleCloudPlatform/berglas";
     license = licenses.asl20;
+    mainProgram = "berglas";
   };
 }
diff --git a/pkgs/tools/admin/bom/default.nix b/pkgs/tools/admin/bom/default.nix
index 22714565795b9..0ff37c5d2e005 100644
--- a/pkgs/tools/admin/bom/default.nix
+++ b/pkgs/tools/admin/bom/default.nix
@@ -65,5 +65,6 @@ buildGoModule rec {
     description = "A utility to generate SPDX-compliant Bill of Materials manifests";
     license = licenses.asl20;
     maintainers = with maintainers; [ developer-guy ];
+    mainProgram = "bom";
   };
 }
diff --git a/pkgs/tools/admin/certigo/default.nix b/pkgs/tools/admin/certigo/default.nix
index 0fcf8bd8a6958..6274833b26d7a 100644
--- a/pkgs/tools/admin/certigo/default.nix
+++ b/pkgs/tools/admin/certigo/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/square/certigo";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "certigo";
   };
 }
diff --git a/pkgs/tools/admin/cf-vault/default.nix b/pkgs/tools/admin/cf-vault/default.nix
index a9e1e0316d60b..877e4d56d09c8 100644
--- a/pkgs/tools/admin/cf-vault/default.nix
+++ b/pkgs/tools/admin/cf-vault/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/jacobbednarz/cf-vault/";
     license = licenses.mit;
     maintainers = with maintainers; [ viraptor ];
+    mainProgram = "cf-vault";
   };
 }
diff --git a/pkgs/tools/admin/chamber/default.nix b/pkgs/tools/admin/chamber/default.nix
index 3924b76432d3a..2b3975002a167 100644
--- a/pkgs/tools/admin/chamber/default.nix
+++ b/pkgs/tools/admin/chamber/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/segmentio/chamber";
     license = licenses.mit;
     maintainers = with maintainers; [ kalekseev ];
+    mainProgram = "chamber";
   };
 }
diff --git a/pkgs/tools/admin/cjdns-tools/default.nix b/pkgs/tools/admin/cjdns-tools/default.nix
index 7b314e1aa1315..0d21409400176 100644
--- a/pkgs/tools/admin/cjdns-tools/default.nix
+++ b/pkgs/tools/admin/cjdns-tools/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "cjdns-tools";
   };
 }
diff --git a/pkgs/tools/admin/cli53/default.nix b/pkgs/tools/admin/cli53/default.nix
index 2cab2ad4b748e..a6f677b287cfc 100644
--- a/pkgs/tools/admin/cli53/default.nix
+++ b/pkgs/tools/admin/cli53/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     homepage = "https://github.com/barnybug/cli53";
     license = licenses.mit;
     maintainers = with maintainers; [ benley ];
+    mainProgram = "cli53";
   };
 }
diff --git a/pkgs/tools/admin/coldsnap/default.nix b/pkgs/tools/admin/coldsnap/default.nix
index 417bbd14c139a..1178b6a7b81e2 100644
--- a/pkgs/tools/admin/coldsnap/default.nix
+++ b/pkgs/tools/admin/coldsnap/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/awslabs/coldsnap/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = teams.determinatesystems.members;
+    mainProgram = "coldsnap";
   };
 }
diff --git a/pkgs/tools/admin/colmena/default.nix b/pkgs/tools/admin/colmena/default.nix
index 6cb763c88d1eb..b41b8a1457c5e 100644
--- a/pkgs/tools/admin/colmena/default.nix
+++ b/pkgs/tools/admin/colmena/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ zhaofengli ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "colmena";
   };
 }
diff --git a/pkgs/tools/admin/copilot-cli/default.nix b/pkgs/tools/admin/copilot-cli/default.nix
index ed75736224cd1..64fc1b20920ba 100644
--- a/pkgs/tools/admin/copilot-cli/default.nix
+++ b/pkgs/tools/admin/copilot-cli/default.nix
@@ -44,5 +44,6 @@ buildGoModule rec {
     changelog = "https://github.com/aws/copilot-cli/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ jiegec ];
+    mainProgram = "copilot";
   };
 }
diff --git a/pkgs/tools/admin/cw/default.nix b/pkgs/tools/admin/cw/default.nix
index d60db14bd3567..aa1d58e5156ba 100644
--- a/pkgs/tools/admin/cw/default.nix
+++ b/pkgs/tools/admin/cw/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/lucagrulla/cw";
     license = licenses.asl20;
     maintainers = with maintainers; [ onthestairs ];
+    mainProgram = "cw";
   };
 }
diff --git a/pkgs/tools/admin/damon/default.nix b/pkgs/tools/admin/damon/default.nix
index 7ad922d6893d1..861b86985e04a 100644
--- a/pkgs/tools/admin/damon/default.nix
+++ b/pkgs/tools/admin/damon/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     license = licenses.mpl20;
     description = "A terminal UI (TUI) for HashiCorp Nomad";
     maintainers = teams.iog.members;
+    mainProgram = "damon";
   };
 }
diff --git a/pkgs/tools/admin/docker-credential-gcr/default.nix b/pkgs/tools/admin/docker-credential-gcr/default.nix
index 30736215ff84a..3899b2f6dc92f 100644
--- a/pkgs/tools/admin/docker-credential-gcr/default.nix
+++ b/pkgs/tools/admin/docker-credential-gcr/default.nix
@@ -48,5 +48,6 @@ buildGoModule rec {
     homepage = "https://github.com/GoogleCloudPlatform/docker-credential-gcr";
     license = licenses.asl20;
     maintainers = with maintainers; [ suvash ];
+    mainProgram = "docker-credential-gcr";
   };
 }
diff --git a/pkgs/tools/admin/ejson2env/default.nix b/pkgs/tools/admin/ejson2env/default.nix
index 26a1b737d8b69..9675d37756815 100644
--- a/pkgs/tools/admin/ejson2env/default.nix
+++ b/pkgs/tools/admin/ejson2env/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/Shopify/ejson2env";
     maintainers = with maintainers; [ viraptor ];
     license = licenses.mit;
+    mainProgram = "ejson2env";
   };
 }
diff --git a/pkgs/tools/admin/fastlane/default.nix b/pkgs/tools/admin/fastlane/default.nix
index d8d4ffd4f1347..b1ad9fa401c87 100644
--- a/pkgs/tools/admin/fastlane/default.nix
+++ b/pkgs/tools/admin/fastlane/default.nix
@@ -24,5 +24,6 @@ bundlerApp {
       shahrukh330
       marsam
     ];
+    mainProgram = "fastlane";
   };
 }
diff --git a/pkgs/tools/admin/fioctl/default.nix b/pkgs/tools/admin/fioctl/default.nix
index e6207b4402529..06c30bda2be09 100644
--- a/pkgs/tools/admin/fioctl/default.nix
+++ b/pkgs/tools/admin/fioctl/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/foundriesio/fioctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ nixinator matthewcroughan ];
+    mainProgram = "fioctl";
   };
 }
diff --git a/pkgs/tools/admin/gtk-vnc/default.nix b/pkgs/tools/admin/gtk-vnc/default.nix
index 0f649a6948f44..2dfbccc08c50f 100644
--- a/pkgs/tools/admin/gtk-vnc/default.nix
+++ b/pkgs/tools/admin/gtk-vnc/default.nix
@@ -74,5 +74,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ raskin offline ];
     platforms = platforms.unix;
+    mainProgram = "gvnccapture";
   };
 }
diff --git a/pkgs/tools/admin/iamy/default.nix b/pkgs/tools/admin/iamy/default.nix
index 583becb9b4efd..63dc5fe371b07 100644
--- a/pkgs/tools/admin/iamy/default.nix
+++ b/pkgs/tools/admin/iamy/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/99designs/iamy";
     license = licenses.mit;
     maintainers = with maintainers; [ suvash ];
+    mainProgram = "iamy";
   };
 }
diff --git a/pkgs/tools/admin/infra/default.nix b/pkgs/tools/admin/infra/default.nix
index bfb44acc6ed5b..996bb80d98c96 100644
--- a/pkgs/tools/admin/infra/default.nix
+++ b/pkgs/tools/admin/infra/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     changelog = "https://github.com/infrahq/infra/raw/v${version}/CHANGELOG.md";
     license = licenses.elastic20;
     maintainers = with maintainers; [ peterromfeldhk ];
+    mainProgram = "infra";
   };
 }
diff --git a/pkgs/tools/admin/itamae/default.nix b/pkgs/tools/admin/itamae/default.nix
index 8a0f101b9c2d8..d84da4fd97412 100644
--- a/pkgs/tools/admin/itamae/default.nix
+++ b/pkgs/tools/admin/itamae/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license = with licenses; mit;
     maintainers = with maintainers; [ refi64 ];
     platforms = platforms.unix;
+    mainProgram = "itamae";
   };
 }
diff --git a/pkgs/tools/admin/kics/default.nix b/pkgs/tools/admin/kics/default.nix
index d7c4cb79e7416..3b4a8b6859d71 100644
--- a/pkgs/tools/admin/kics/default.nix
+++ b/pkgs/tools/admin/kics/default.nix
@@ -43,5 +43,6 @@ buildGoModule rec {
     homepage = "https://github.com/Checkmarx/kics";
     license = licenses.asl20;
     maintainers = with maintainers; [ patryk4815 ];
+    mainProgram = "kics";
   };
 }
diff --git a/pkgs/tools/admin/lego/default.nix b/pkgs/tools/admin/lego/default.nix
index 8d3954c31deeb..c79b0e0d243a0 100644
--- a/pkgs/tools/admin/lego/default.nix
+++ b/pkgs/tools/admin/lego/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://go-acme.github.io/lego/";
     maintainers = teams.acme.members;
+    mainProgram = "lego";
   };
 
   passthru.tests.lego = nixosTests.acme;
diff --git a/pkgs/tools/admin/meshcentral/default.nix b/pkgs/tools/admin/meshcentral/default.nix
index 745eb1048079f..98993d7e6b779 100644
--- a/pkgs/tools/admin/meshcentral/default.nix
+++ b/pkgs/tools/admin/meshcentral/default.nix
@@ -47,5 +47,6 @@ yarn2nix-moretea.mkYarnPackage {
     homepage = "https://meshcentral.com/";
     maintainers = with maintainers; [ ma27 ];
     license = licenses.asl20;
+    mainProgram = "meshcentral";
   };
 }
diff --git a/pkgs/tools/admin/netbox2netshot/default.nix b/pkgs/tools/admin/netbox2netshot/default.nix
index 76ca3a68cf3de..47b6dc2e293df 100644
--- a/pkgs/tools/admin/netbox2netshot/default.nix
+++ b/pkgs/tools/admin/netbox2netshot/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/scaleway/netbox2netshot";
     license = licenses.asl20;
     maintainers = with maintainers; [ janik ];
+    mainProgram = "netbox2netshot";
   };
 }
diff --git a/pkgs/tools/admin/netplan/default.nix b/pkgs/tools/admin/netplan/default.nix
index 0e048d1468ed0..b44c489100525 100644
--- a/pkgs/tools/admin/netplan/default.nix
+++ b/pkgs/tools/admin/netplan/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ mkg20001 ];
     platforms = platforms.linux;
+    mainProgram = "netplan";
   };
 }
diff --git a/pkgs/tools/admin/okta-aws-cli/default.nix b/pkgs/tools/admin/okta-aws-cli/default.nix
index 805683df8d516..dbd3a7b9f631e 100644
--- a/pkgs/tools/admin/okta-aws-cli/default.nix
+++ b/pkgs/tools/admin/okta-aws-cli/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/okta/okta-aws-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ daniyalsuri6 ];
+    mainProgram = "okta-aws-cli";
   };
 }
diff --git a/pkgs/tools/admin/ossutil/default.nix b/pkgs/tools/admin/ossutil/default.nix
index f8347b2828804..c858b9706b160 100644
--- a/pkgs/tools/admin/ossutil/default.nix
+++ b/pkgs/tools/admin/ossutil/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/aliyun/ossutil/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jpetrucciani ];
+    mainProgram = "ossutil";
   };
 }
diff --git a/pkgs/tools/admin/pbm/default.nix b/pkgs/tools/admin/pbm/default.nix
index 4fe6c95a4893f..e681d6f286dba 100644
--- a/pkgs/tools/admin/pbm/default.nix
+++ b/pkgs/tools/admin/pbm/default.nix
@@ -13,5 +13,6 @@ buildDotnetGlobalTool {
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ anpin mdarocha ];
+    mainProgram = "pbm";
   };
 }
diff --git a/pkgs/tools/admin/qovery-cli/default.nix b/pkgs/tools/admin/qovery-cli/default.nix
index 199d33a8b3233..050b1d988c9bc 100644
--- a/pkgs/tools/admin/qovery-cli/default.nix
+++ b/pkgs/tools/admin/qovery-cli/default.nix
@@ -41,5 +41,6 @@ buildGoModule rec {
     changelog = "https://github.com/Qovery/qovery-cli/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "qovery-cli";
   };
 }
diff --git a/pkgs/tools/admin/realvnc-vnc-viewer/default.nix b/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
index 18ec2a21200bb..9776ececcfd24 100644
--- a/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
+++ b/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
@@ -17,6 +17,7 @@ let
     };
     maintainers = with maintainers; [ emilytrau onedragon ];
     platforms = [ "x86_64-linux" ] ++ platforms.darwin;
+    mainProgram = "vncviewer";
   };
 in
 if stdenv.isDarwin then callPackage ./darwin.nix { inherit pname version meta; }
diff --git a/pkgs/tools/admin/rhoas/default.nix b/pkgs/tools/admin/rhoas/default.nix
index fcad933608d6b..7400558a58875 100644
--- a/pkgs/tools/admin/rhoas/default.nix
+++ b/pkgs/tools/admin/rhoas/default.nix
@@ -42,5 +42,6 @@ buildGoModule rec {
     homepage = "https://github.com/redhat-developer/app-services-cli";
     changelog = "https://github.com/redhat-developer/app-services-cli/releases/v${version}";
     maintainers = with maintainers; [stehessel];
+    mainProgram = "rhoas";
   };
 }
diff --git a/pkgs/tools/admin/sec/default.nix b/pkgs/tools/admin/sec/default.nix
index a611065309ff5..a37f8af5aff18 100644
--- a/pkgs/tools/admin/sec/default.nix
+++ b/pkgs/tools/admin/sec/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     description = "Simple Event Correlator";
     maintainers = [ lib.maintainers.tv ];
     platforms = lib.platforms.all;
+    mainProgram = "sec";
   };
 }
diff --git a/pkgs/tools/admin/ssmsh/default.nix b/pkgs/tools/admin/ssmsh/default.nix
index 4a059e0108fea..e01da8966c3a8 100644
--- a/pkgs/tools/admin/ssmsh/default.nix
+++ b/pkgs/tools/admin/ssmsh/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     description = "An interactive shell for AWS Parameter Store";
     license = licenses.mit;
     maintainers = with maintainers; [ dbirks ];
+    mainProgram = "ssmsh";
   };
 }
diff --git a/pkgs/tools/admin/swapspace/default.nix b/pkgs/tools/admin/swapspace/default.nix
index 49737edf8bf14..27ec7f31f8911 100644
--- a/pkgs/tools/admin/swapspace/default.nix
+++ b/pkgs/tools/admin/swapspace/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ misuzu Luflosi ];
+    mainProgram = "swapspace";
   };
 }
diff --git a/pkgs/tools/admin/syft/default.nix b/pkgs/tools/admin/syft/default.nix
index 5cf4bb92fee3e..a42083f1dd3e3 100644
--- a/pkgs/tools/admin/syft/default.nix
+++ b/pkgs/tools/admin/syft/default.nix
@@ -76,5 +76,6 @@ buildGoModule rec {
     '';
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ jk developer-guy kashw2 ];
+    mainProgram = "syft";
   };
 }
diff --git a/pkgs/tools/admin/triton/default.nix b/pkgs/tools/admin/triton/default.nix
index 3605bd9089f5e..38309e94cdee6 100644
--- a/pkgs/tools/admin/triton/default.nix
+++ b/pkgs/tools/admin/triton/default.nix
@@ -40,5 +40,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/TritonDataCenter/node-triton";
     license = licenses.mpl20;
     maintainers = with maintainers; [ teutat3s ];
+    mainProgram = "triton";
   };
 }
diff --git a/pkgs/tools/admin/wander/default.nix b/pkgs/tools/admin/wander/default.nix
index 14b89311df1a9..8ea0de8ace261 100644
--- a/pkgs/tools/admin/wander/default.nix
+++ b/pkgs/tools/admin/wander/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://github.com/robinovitch61/wander";
     maintainers = teams.c3d2.members;
+    mainProgram = "wander";
   };
 }
diff --git a/pkgs/tools/admin/zbctl/default.nix b/pkgs/tools/admin/zbctl/default.nix
index bfdd5fedc8be1..5dfa089986374 100644
--- a/pkgs/tools/admin/zbctl/default.nix
+++ b/pkgs/tools/admin/zbctl/default.nix
@@ -45,5 +45,6 @@ stdenvNoCC.mkDerivation rec {
       * Updating variables and retries
       * Viewing cluster status
     '';
+    mainProgram = "zbctl";
   };
 }
diff --git a/pkgs/tools/bluetooth/openobex/default.nix b/pkgs/tools/bluetooth/openobex/default.nix
index 5d18319ac603c..ae487fb075fd7 100644
--- a/pkgs/tools/bluetooth/openobex/default.nix
+++ b/pkgs/tools/bluetooth/openobex/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     description = "An open source implementation of the Object Exchange (OBEX) protocol";
     platforms = platforms.linux;
     license = licenses.lgpl2Plus;
+    mainProgram = "obex-check-device";
   };
 }
diff --git a/pkgs/tools/games/er-patcher/default.nix b/pkgs/tools/games/er-patcher/default.nix
index 6e7920bce0a02..084dfdcc10987 100644
--- a/pkgs/tools/games/er-patcher/default.nix
+++ b/pkgs/tools/games/er-patcher/default.nix
@@ -36,5 +36,6 @@ stdenvNoCC.mkDerivation rec {
     '';
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "er-patcher";
   };
 }
diff --git a/pkgs/tools/games/ps3-disc-dumper/default.nix b/pkgs/tools/games/ps3-disc-dumper/default.nix
index 6cf54c9a8f850..e097ebd93d2bd 100644
--- a/pkgs/tools/games/ps3-disc-dumper/default.nix
+++ b/pkgs/tools/games/ps3-disc-dumper/default.nix
@@ -32,5 +32,6 @@ buildDotnetModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ evanjs ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "ps3-disc-dumper";
   };
 }
diff --git a/pkgs/tools/games/slipstream/default.nix b/pkgs/tools/games/slipstream/default.nix
index 4e1a6e09531ac..250ef7c2f3574 100644
--- a/pkgs/tools/games/slipstream/default.nix
+++ b/pkgs/tools/games/slipstream/default.nix
@@ -44,5 +44,6 @@ mavenWithJdk.buildMavenPackage rec {
     homepage = "https://github.com/Vhati/Slipstream-Mod-Manager";
     license = licenses.gpl2;
     maintainers = with maintainers; [ mib ];
+    mainProgram = "slipstream";
   };
 }
diff --git a/pkgs/tools/games/steam-rom-manager/default.nix b/pkgs/tools/games/steam-rom-manager/default.nix
index b9744015fea0d..89af86fe7511d 100644
--- a/pkgs/tools/games/steam-rom-manager/default.nix
+++ b/pkgs/tools/games/steam-rom-manager/default.nix
@@ -24,5 +24,6 @@ appimageTools.wrapType2 rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ squarepear ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "steam-rom-manager";
   };
 }
diff --git a/pkgs/tools/networking/aardvark-dns/default.nix b/pkgs/tools/networking/aardvark-dns/default.nix
index df39d0a98e9e4..f8770612b2537 100644
--- a/pkgs/tools/networking/aardvark-dns/default.nix
+++ b/pkgs/tools/networking/aardvark-dns/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ ] ++ teams.podman.members;
     platforms = platforms.linux;
+    mainProgram = "aardvark-dns";
   };
 }
diff --git a/pkgs/tools/networking/acme-client/default.nix b/pkgs/tools/networking/acme-client/default.nix
index 55f81b7f6b156..2a0baedde7ca0 100644
--- a/pkgs/tools/networking/acme-client/default.nix
+++ b/pkgs/tools/networking/acme-client/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.isc;
     maintainers = with maintainers; [ pmahoney ];
+    mainProgram = "acme-client";
   };
 }
 
diff --git a/pkgs/tools/networking/ahcpd/default.nix b/pkgs/tools/networking/ahcpd/default.nix
index 83647d17ae3cb..f6f483602c1f3 100644
--- a/pkgs/tools/networking/ahcpd/default.nix
+++ b/pkgs/tools/networking/ahcpd/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     description = "Autoconfiguration protocol for IPv6 and dual-stack IPv6/IPv4 networks";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
+    mainProgram = "ahcpd";
   };
 }
diff --git a/pkgs/tools/networking/ain/default.nix b/pkgs/tools/networking/ain/default.nix
index cd8d518c06053..878af2c68211b 100644
--- a/pkgs/tools/networking/ain/default.nix
+++ b/pkgs/tools/networking/ain/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/jonaslu/ain/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "ain";
   };
 }
diff --git a/pkgs/tools/networking/ali/default.nix b/pkgs/tools/networking/ali/default.nix
index 53403b6367854..3b6fef73595cc 100644
--- a/pkgs/tools/networking/ali/default.nix
+++ b/pkgs/tools/networking/ali/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ farcaller ];
+    mainProgram = "ali";
   };
 }
diff --git a/pkgs/tools/networking/altermime/default.nix b/pkgs/tools/networking/altermime/default.nix
index 290b37889977c..812da5f8742ef 100644
--- a/pkgs/tools/networking/altermime/default.nix
+++ b/pkgs/tools/networking/altermime/default.nix
@@ -28,5 +28,6 @@ gccStdenv.mkDerivation rec {
     platforms = platforms.all;
     license.fullName = "alterMIME LICENSE";
     downloadPage = "https://pldaniels.com/altermime/";
+    mainProgram = "altermime";
   };
 }
diff --git a/pkgs/tools/networking/amass/default.nix b/pkgs/tools/networking/amass/default.nix
index d65a38637fe93..cbd6513905055 100644
--- a/pkgs/tools/networking/amass/default.nix
+++ b/pkgs/tools/networking/amass/default.nix
@@ -47,5 +47,6 @@ buildGoModule rec {
     changelog = "https://github.com/OWASP/Amass/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit fab ];
+    mainProgram = "amass";
   };
 }
diff --git a/pkgs/tools/networking/anevicon/default.nix b/pkgs/tools/networking/anevicon/default.nix
index cff22fa71e6ed..346c79dd6f31b 100644
--- a/pkgs/tools/networking/anevicon/default.nix
+++ b/pkgs/tools/networking/anevicon/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rozgo/anevicon";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "anevicon";
   };
 }
diff --git a/pkgs/tools/networking/arping/default.nix b/pkgs/tools/networking/arping/default.nix
index 672ccc2bcdb10..3a08ec85083aa 100644
--- a/pkgs/tools/networking/arping/default.nix
+++ b/pkgs/tools/networking/arping/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ michalrus ];
     platforms = platforms.unix;
+    mainProgram = "arping";
   };
 }
diff --git a/pkgs/tools/networking/arpoison/default.nix b/pkgs/tools/networking/arpoison/default.nix
index 64b3229fad6ba..912636a0e72ad 100644
--- a/pkgs/tools/networking/arpoison/default.nix
+++ b/pkgs/tools/networking/arpoison/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl2 ];
     maintainers = [ maintainers.michalrus ];
     platforms = platforms.unix;
+    mainProgram = "arpoison";
   };
 }
diff --git a/pkgs/tools/networking/atinout/default.nix b/pkgs/tools/networking/atinout/default.nix
index 7ff1b06c3b803..64d13a7b14eaf 100644
--- a/pkgs/tools/networking/atinout/default.nix
+++ b/pkgs/tools/networking/atinout/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.gpl3;
     maintainers = with maintainers; [ bendlas ];
+    mainProgram = "atinout";
   };
 }
diff --git a/pkgs/tools/networking/axel/default.nix b/pkgs/tools/networking/axel/default.nix
index a53f4b70e8f43..b65cc36022bc6 100644
--- a/pkgs/tools/networking/axel/default.nix
+++ b/pkgs/tools/networking/axel/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; unix;
     license = licenses.gpl2;
+    mainProgram = "axel";
   };
 }
diff --git a/pkgs/tools/networking/babeld/default.nix b/pkgs/tools/networking/babeld/default.nix
index 64f6cc4eca44a..4fd86e16f446d 100644
--- a/pkgs/tools/networking/babeld/default.nix
+++ b/pkgs/tools/networking/babeld/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
     platforms = platforms.linux;
+    mainProgram = "babeld";
   };
 }
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index 240fa3e86f8a9..50c58f43ce91e 100644
--- a/pkgs/tools/networking/bandwhich/default.nix
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -41,5 +41,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne figsoda ];
     platforms = platforms.unix;
+    mainProgram = "bandwhich";
   };
 }
diff --git a/pkgs/tools/networking/bgpdump/default.nix b/pkgs/tools/networking/bgpdump/default.nix
index 5e98228da2e56..4ca75a53c254b 100644
--- a/pkgs/tools/networking/bgpdump/default.nix
+++ b/pkgs/tools/networking/bgpdump/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.hpnd;
     maintainers = with lib.maintainers; [ lewo ];
     platforms = with lib.platforms; linux;
+    mainProgram = "bgpdump";
   };
 }
diff --git a/pkgs/tools/networking/bgpq3/default.nix b/pkgs/tools/networking/bgpq3/default.nix
index 1fe2f83f8a184..7d92aa4ee995a 100644
--- a/pkgs/tools/networking/bgpq3/default.nix
+++ b/pkgs/tools/networking/bgpq3/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ b4dm4n ];
     platforms = with platforms; unix;
+    mainProgram = "bgpq3";
   };
 }
diff --git a/pkgs/tools/networking/bgpq4/default.nix b/pkgs/tools/networking/bgpq4/default.nix
index f26b22e7967c9..f37ace1262910 100644
--- a/pkgs/tools/networking/bgpq4/default.nix
+++ b/pkgs/tools/networking/bgpq4/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ vincentbernat ];
     platforms = with platforms; unix;
+    mainProgram = "bgpq4";
   };
 }
diff --git a/pkgs/tools/networking/biosdevname/default.nix b/pkgs/tools/networking/biosdevname/default.nix
index 0f7702acdcc88..fe9ccb3dd20a9 100644
--- a/pkgs/tools/networking/biosdevname/default.nix
+++ b/pkgs/tools/networking/biosdevname/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = ["x86_64-linux" "i686-linux"];
     maintainers = with maintainers; [ ];
+    mainProgram = "biosdevname";
   };
 }
diff --git a/pkgs/tools/networking/bombardier/default.nix b/pkgs/tools/networking/bombardier/default.nix
index 56f179b22ca7a..89f20860836c9 100644
--- a/pkgs/tools/networking/bombardier/default.nix
+++ b/pkgs/tools/networking/bombardier/default.nix
@@ -42,5 +42,6 @@ buildGoModule rec {
     changelog = "https://github.com/codesenberg/bombardier/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "bombardier";
   };
 }
diff --git a/pkgs/tools/networking/bore/default.nix b/pkgs/tools/networking/bore/default.nix
index c3ae784668906..abbbcc414751f 100644
--- a/pkgs/tools/networking/bore/default.nix
+++ b/pkgs/tools/networking/bore/default.nix
@@ -45,5 +45,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://crates.io/crates/bore";
     license = licenses.isc;
     maintainers = [ maintainers.delan ];
+    mainProgram = "bore";
   };
 }
diff --git a/pkgs/tools/networking/boringtun/default.nix b/pkgs/tools/networking/boringtun/default.nix
index 8d3f17268bc10..b1defdcfb1c3f 100644
--- a/pkgs/tools/networking/boringtun/default.nix
+++ b/pkgs/tools/networking/boringtun/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ xrelkd marsam ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "boringtun-cli";
   };
 }
diff --git a/pkgs/tools/networking/boundary/default.nix b/pkgs/tools/networking/boundary/default.nix
index 4d8a30f2df07b..66973b17ccba9 100644
--- a/pkgs/tools/networking/boundary/default.nix
+++ b/pkgs/tools/networking/boundary/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsl11;
     maintainers = with maintainers; [ jk techknowlogick ];
     platforms = platforms.unix;
+    mainProgram = "boundary";
   };
 }
diff --git a/pkgs/tools/networking/brook/default.nix b/pkgs/tools/networking/brook/default.nix
index bdc16874779b8..432b49523e186 100644
--- a/pkgs/tools/networking/brook/default.nix
+++ b/pkgs/tools/networking/brook/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     description = "A cross-platform Proxy/VPN software";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ xrelkd ];
+    mainProgram = "brook";
   };
 }
diff --git a/pkgs/tools/networking/bukubrow/default.nix b/pkgs/tools/networking/bukubrow/default.nix
index 84d2467e6ad8e..8cd005a120aa6 100644
--- a/pkgs/tools/networking/bukubrow/default.nix
+++ b/pkgs/tools/networking/bukubrow/default.nix
@@ -43,6 +43,7 @@ in rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/SamHH/bukubrow-host";
     license = licenses.gpl3;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "bukubrow";
   };
 }
 
diff --git a/pkgs/tools/networking/bully/default.nix b/pkgs/tools/networking/bully/default.nix
index 55ff196154e36..3b2f62281ef19 100644
--- a/pkgs/tools/networking/bully/default.nix
+++ b/pkgs/tools/networking/bully/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.linux;
+    mainProgram = "bully";
   };
 }
diff --git a/pkgs/tools/networking/burpsuite/default.nix b/pkgs/tools/networking/burpsuite/default.nix
index 416d2877e2015..02d0a4ab77c16 100644
--- a/pkgs/tools/networking/burpsuite/default.nix
+++ b/pkgs/tools/networking/burpsuite/default.nix
@@ -84,5 +84,6 @@ buildFHSEnv {
     platforms = jdk.meta.platforms;
     hydraPlatforms = [ ];
     maintainers = with maintainers; [ arcayr bennofs ];
+    mainProgram = "burpsuite";
   };
 }
diff --git a/pkgs/tools/networking/cadaver/default.nix b/pkgs/tools/networking/cadaver/default.nix
index d94c89371b1b8..e164e5bf433ae 100644
--- a/pkgs/tools/networking/cadaver/default.nix
+++ b/pkgs/tools/networking/cadaver/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ianwookim ];
     license = licenses.gpl2Plus;
     platforms = with platforms; linux ++ freebsd ++ openbsd;
+    mainProgram = "cadaver";
   };
 }
diff --git a/pkgs/tools/networking/cassowary/default.nix b/pkgs/tools/networking/cassowary/default.nix
index e14c8e212717f..2fa92e073076d 100644
--- a/pkgs/tools/networking/cassowary/default.nix
+++ b/pkgs/tools/networking/cassowary/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "Modern cross-platform HTTP load-testing tool written in Go";
     license = licenses.mit;
     maintainers = with maintainers; [ hugoreeves ];
+    mainProgram = "cassowary";
   };
 }
diff --git a/pkgs/tools/networking/castnow/default.nix b/pkgs/tools/networking/castnow/default.nix
index 43a15a2c1c108..50bea652eef68 100644
--- a/pkgs/tools/networking/castnow/default.nix
+++ b/pkgs/tools/networking/castnow/default.nix
@@ -23,5 +23,6 @@ buildNpmPackage rec {
     homepage = "commandline chromecast player";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
+    mainProgram = "castnow";
   };
 }
diff --git a/pkgs/tools/networking/cdpr/default.nix b/pkgs/tools/networking/cdpr/default.nix
index 1f9e7b1888d1b..5e86d58cfb311 100644
--- a/pkgs/tools/networking/cdpr/default.nix
+++ b/pkgs/tools/networking/cdpr/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.sgo ];
+    mainProgram = "cdpr";
   };
 }
diff --git a/pkgs/tools/networking/cfspeedtest/default.nix b/pkgs/tools/networking/cfspeedtest/default.nix
index 27889841a2e77..f6b3c59d58640 100644
--- a/pkgs/tools/networking/cfspeedtest/default.nix
+++ b/pkgs/tools/networking/cfspeedtest/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mit ];
     broken = stdenv.isDarwin;
     maintainers = with maintainers; [ colemickens ];
+    mainProgram = "cfspeedtest";
   };
 }
diff --git a/pkgs/tools/networking/chaos/default.nix b/pkgs/tools/networking/chaos/default.nix
index 0cadddb9f4049..3e66ddac7b6c9 100644
--- a/pkgs/tools/networking/chaos/default.nix
+++ b/pkgs/tools/networking/chaos/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     changelog = "https://github.com/projectdiscovery/chaos-client/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "chaos";
   };
 }
diff --git a/pkgs/tools/networking/checkip/default.nix b/pkgs/tools/networking/checkip/default.nix
index d66616cfd7a54..180c08702901e 100644
--- a/pkgs/tools/networking/checkip/default.nix
+++ b/pkgs/tools/networking/checkip/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     changelog = "https://github.com/jreisinger/checkip/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "checkip";
   };
 }
diff --git a/pkgs/tools/networking/cksfv/default.nix b/pkgs/tools/networking/cksfv/default.nix
index f9d9224e91b13..2d5a2b533a615 100644
--- a/pkgs/tools/networking/cksfv/default.nix
+++ b/pkgs/tools/networking/cksfv/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
     license = licenses.gpl2;
+    mainProgram = "cksfv";
   };
 }
diff --git a/pkgs/tools/networking/cnping/default.nix b/pkgs/tools/networking/cnping/default.nix
index 0a7aed4fcb5db..ec3a0e03c2881 100644
--- a/pkgs/tools/networking/cnping/default.nix
+++ b/pkgs/tools/networking/cnping/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ mit bsd3 ]; # dual licensed, MIT-x11 & BSD-3-Clause
     maintainers = with maintainers; [ ckie ];
     platforms = platforms.linux;
+    mainProgram = "cnping";
   };
 }
diff --git a/pkgs/tools/networking/cntlm/default.nix b/pkgs/tools/networking/cntlm/default.nix
index 238b936331973..45fc56f3ba2d0 100644
--- a/pkgs/tools/networking/cntlm/default.nix
+++ b/pkgs/tools/networking/cntlm/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
         maintainers.carlosdagos
       ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "cntlm";
   };
 }
diff --git a/pkgs/tools/networking/cocom/default.nix b/pkgs/tools/networking/cocom/default.nix
index f4a896af7d1e2..6ae004de9b3e8 100644
--- a/pkgs/tools/networking/cocom/default.nix
+++ b/pkgs/tools/networking/cocom/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/LamdaLamdaLamda/cocom";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "cocom";
   };
 }
diff --git a/pkgs/tools/networking/connect/default.nix b/pkgs/tools/networking/connect/default.nix
index 8b8c0018c66ff..408bbbf66708c 100644
--- a/pkgs/tools/networking/connect/default.nix
+++ b/pkgs/tools/networking/connect/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.gnu ++ lib.platforms.linux ++ lib.platforms.darwin;
     maintainers = with lib.maintainers; [ jcumming ];
+    mainProgram = "connect";
   };
 }
diff --git a/pkgs/tools/networking/containerlab/default.nix b/pkgs/tools/networking/containerlab/default.nix
index 43b938ac4a133..a2fb4d8b59d48 100644
--- a/pkgs/tools/networking/containerlab/default.nix
+++ b/pkgs/tools/networking/containerlab/default.nix
@@ -42,5 +42,6 @@ buildGoModule rec {
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "containerlab";
   };
 }
diff --git a/pkgs/tools/networking/corerad/default.nix b/pkgs/tools/networking/corerad/default.nix
index 8535b2e310838..1a3340fcdb14d 100644
--- a/pkgs/tools/networking/corerad/default.nix
+++ b/pkgs/tools/networking/corerad/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ mdlayher ];
     platforms = platforms.linux;
+    mainProgram = "corerad";
   };
 }
diff --git a/pkgs/tools/networking/corkscrew/default.nix b/pkgs/tools/networking/corkscrew/default.nix
index 757a07c919896..882b742ebc768 100644
--- a/pkgs/tools/networking/corkscrew/default.nix
+++ b/pkgs/tools/networking/corkscrew/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     description = "A tool for tunneling SSH through HTTP proxies";
     license = lib.licenses.gpl2;
     platforms = platforms.unix;
+    mainProgram = "corkscrew";
   };
 }
 
diff --git a/pkgs/tools/networking/crackle/default.nix b/pkgs/tools/networking/crackle/default.nix
index ea42e7a0b3208..f84d44ca09178 100644
--- a/pkgs/tools/networking/crackle/default.nix
+++ b/pkgs/tools/networking/crackle/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/mikeryan/crackle";
     maintainers = with maintainers; [ moni ];
     license = licenses.bsd2;
+    mainProgram = "crackle";
   };
 }
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index 68a426d102705..bebdec400e967 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://github.com/schollz/croc";
     license = licenses.mit;
     maintainers = with maintainers; [ hugoreeves equirosa SuperSandro2000 ];
+    mainProgram = "croc";
   };
 }
diff --git a/pkgs/tools/networking/curlie/default.nix b/pkgs/tools/networking/curlie/default.nix
index 68088a03bc203..db70b9a51f0ec 100644
--- a/pkgs/tools/networking/curlie/default.nix
+++ b/pkgs/tools/networking/curlie/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://curlie.io/";
     maintainers = with maintainers; [ ma27 ];
     license = licenses.mit;
+    mainProgram = "curlie";
   };
 }
diff --git a/pkgs/tools/networking/darkstat/default.nix b/pkgs/tools/networking/darkstat/default.nix
index 22fdbb3e6505a..0dc03b0c0db61 100644
--- a/pkgs/tools/networking/darkstat/default.nix
+++ b/pkgs/tools/networking/darkstat/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/emikulic/darkstat/releases/tag/${version}";
     license = licenses.gpl2Only;
     platforms = with platforms; unix;
+    mainProgram = "darkstat";
   };
 }
diff --git a/pkgs/tools/networking/ddns-go/default.nix b/pkgs/tools/networking/ddns-go/default.nix
index 0b4111a90e519..0c5882a1c392b 100644
--- a/pkgs/tools/networking/ddns-go/default.nix
+++ b/pkgs/tools/networking/ddns-go/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     description = "Simple and easy to use DDNS";
     license = licenses.mit;
     maintainers = with maintainers; [ oluceps ];
+    mainProgram = "ddns-go";
   };
 }
diff --git a/pkgs/tools/networking/dhcpcd/default.nix b/pkgs/tools/networking/dhcpcd/default.nix
index 9d4dc1cd7c2c6..158097d7c166b 100644
--- a/pkgs/tools/networking/dhcpcd/default.nix
+++ b/pkgs/tools/networking/dhcpcd/default.nix
@@ -65,5 +65,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.bsd2;
     maintainers = with maintainers; [ eelco ];
+    mainProgram = "dhcpcd";
   };
 }
diff --git a/pkgs/tools/networking/dhcpdump/default.nix b/pkgs/tools/networking/dhcpdump/default.nix
index 38c8bc76967c3..e0e95f26d3d5f 100644
--- a/pkgs/tools/networking/dhcpdump/default.nix
+++ b/pkgs/tools/networking/dhcpdump/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ nickcao ];
     license = licenses.bsd2;
+    mainProgram = "dhcpdump";
   };
 }
diff --git a/pkgs/tools/networking/dhcping/default.nix b/pkgs/tools/networking/dhcping/default.nix
index f1f8cd8b5e4b7..87c84c5795aff 100644
--- a/pkgs/tools/networking/dhcping/default.nix
+++ b/pkgs/tools/networking/dhcping/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.mavetju.org/unix/general.php";
     license = licenses.bsd2;
     platforms = platforms.unix;
+    mainProgram = "dhcping";
   };
 }
diff --git a/pkgs/tools/networking/dnscrypt-wrapper/default.nix b/pkgs/tools/networking/dnscrypt-wrapper/default.nix
index 944fd1b589770..49647153b6668 100644
--- a/pkgs/tools/networking/dnscrypt-wrapper/default.nix
+++ b/pkgs/tools/networking/dnscrypt-wrapper/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ joachifm ];
     platforms = platforms.linux;
+    mainProgram = "dnscrypt-wrapper";
   };
 }
diff --git a/pkgs/tools/networking/dnsmon-go/default.nix b/pkgs/tools/networking/dnsmon-go/default.nix
index c8dbfdeddd43b..2a0dea59c7f94 100644
--- a/pkgs/tools/networking/dnsmon-go/default.nix
+++ b/pkgs/tools/networking/dnsmon-go/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/jonpulsifer/dnsmon-go";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "dnsmon-go";
   };
 }
diff --git a/pkgs/tools/networking/dnsmonster/default.nix b/pkgs/tools/networking/dnsmonster/default.nix
index f36fa1d2d98f0..e4a5d097f04ad 100644
--- a/pkgs/tools/networking/dnsmonster/default.nix
+++ b/pkgs/tools/networking/dnsmonster/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ fab ];
     broken = stdenv.isDarwin;
+    mainProgram = "dnsmonster";
   };
 }
diff --git a/pkgs/tools/networking/dnsproxy/default.nix b/pkgs/tools/networking/dnsproxy/default.nix
index fd1d9606fcf23..7ebc14fc81e3f 100644
--- a/pkgs/tools/networking/dnsproxy/default.nix
+++ b/pkgs/tools/networking/dnsproxy/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/AdguardTeam/dnsproxy";
     license = licenses.asl20;
     maintainers = with maintainers; [ contrun ];
+    mainProgram = "dnsproxy";
   };
 }
diff --git a/pkgs/tools/networking/dnstake/default.nix b/pkgs/tools/networking/dnstake/default.nix
index ccb5d2e597dfc..37e5e0c38af7d 100644
--- a/pkgs/tools/networking/dnstake/default.nix
+++ b/pkgs/tools/networking/dnstake/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/pwnesia/dnstake";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "dnstake";
   };
 }
diff --git a/pkgs/tools/networking/dnstop/default.nix b/pkgs/tools/networking/dnstop/default.nix
index 7669f6eec8f95..05cd8f67d8697 100644
--- a/pkgs/tools/networking/dnstop/default.nix
+++ b/pkgs/tools/networking/dnstop/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     homepage = "http://dns.measurement-factory.com/tools/dnstop";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
+    mainProgram = "dnstop";
   };
 }
diff --git a/pkgs/tools/networking/dnstracer/default.nix b/pkgs/tools/networking/dnstracer/default.nix
index d52a6d4fc73cd..c4e5fc18e6e6f 100644
--- a/pkgs/tools/networking/dnstracer/default.nix
+++ b/pkgs/tools/networking/dnstracer/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
+    mainProgram = "dnstracer";
   };
 }
diff --git a/pkgs/tools/networking/driftnet/default.nix b/pkgs/tools/networking/driftnet/default.nix
index ccf6da31be28e..7957d90f05d3d 100644
--- a/pkgs/tools/networking/driftnet/default.nix
+++ b/pkgs/tools/networking/driftnet/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ offline ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "driftnet";
   };
 }
diff --git a/pkgs/tools/networking/drill/default.nix b/pkgs/tools/networking/drill/default.nix
index 032ce0be5e22e..005d24ac323ff 100644
--- a/pkgs/tools/networking/drill/default.nix
+++ b/pkgs/tools/networking/drill/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/fcsonline/drill";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "drill";
   };
 }
diff --git a/pkgs/tools/networking/ebpf-verifier/default.nix b/pkgs/tools/networking/ebpf-verifier/default.nix
index 8605db55bba82..79a29cee8be31 100644
--- a/pkgs/tools/networking/ebpf-verifier/default.nix
+++ b/pkgs/tools/networking/ebpf-verifier/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ gaelreyrol ];
+    mainProgram = "ebpf-verifier";
   };
 }
diff --git a/pkgs/tools/networking/edgedb/default.nix b/pkgs/tools/networking/edgedb/default.nix
index 1ace10486dea5..c785488337543 100644
--- a/pkgs/tools/networking/edgedb/default.nix
+++ b/pkgs/tools/networking/edgedb/default.nix
@@ -69,5 +69,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://www.edgedb.com/docs/cli/index";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ ahirner kirillrdy ];
+    mainProgram = "edgedb";
   };
 }
diff --git a/pkgs/tools/networking/email/default.nix b/pkgs/tools/networking/email/default.nix
index 8848068d0dea1..c4ef390e6b817 100644
--- a/pkgs/tools/networking/email/default.nix
+++ b/pkgs/tools/networking/email/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation {
     license = with lib.licenses; [ gpl2 ];
     homepage = "https://deanproxy.com/code";
     platforms = lib.platforms.unix;
+    mainProgram = "email";
   };
 }
diff --git a/pkgs/tools/networking/fakeroute/default.nix b/pkgs/tools/networking/fakeroute/default.nix
index fc07b1d9f66c3..533f21e0f5f21 100644
--- a/pkgs/tools/networking/fakeroute/default.nix
+++ b/pkgs/tools/networking/fakeroute/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "https://maxwell.ydns.eu/git/rnhmjoj/fakeroute";
     license = licenses.bsd3;
     platforms = platforms.linux;
+    mainProgram = "fakeroute";
   };
 }
diff --git a/pkgs/tools/networking/fast-ssh/default.nix b/pkgs/tools/networking/fast-ssh/default.nix
index 5d899fa541840..3fb812a38ee74 100644
--- a/pkgs/tools/networking/fast-ssh/default.nix
+++ b/pkgs/tools/networking/fast-ssh/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/julien-r44/fast-ssh";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "fast-ssh";
   };
 }
diff --git a/pkgs/tools/networking/fastd/default.nix b/pkgs/tools/networking/fastd/default.nix
index 47007e1646ee1..20f8adf71cf8d 100644
--- a/pkgs/tools/networking/fastd/default.nix
+++ b/pkgs/tools/networking/fastd/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ bsd2 bsd3 ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ fpletz ];
+    mainProgram = "fastd";
   };
 }
diff --git a/pkgs/tools/networking/filegive/default.nix b/pkgs/tools/networking/filegive/default.nix
index 2fafc90fcf019..9d85c168c5ce9 100644
--- a/pkgs/tools/networking/filegive/default.nix
+++ b/pkgs/tools/networking/filegive/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     description = "Easy p2p file sending program";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ viric ];
+    mainProgram = "filegive";
   };
 }
diff --git a/pkgs/tools/networking/findomain/default.nix b/pkgs/tools/networking/findomain/default.nix
index 636dcc7094620..deb9bb32fe0a8 100644
--- a/pkgs/tools/networking/findomain/default.nix
+++ b/pkgs/tools/networking/findomain/default.nix
@@ -54,5 +54,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Findomain/Findomain/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ Br1ght0ne figsoda ];
+    mainProgram = "findomain";
   };
 }
diff --git a/pkgs/tools/networking/flannel/default.nix b/pkgs/tools/networking/flannel/default.nix
index 54b481fc37739..9bd20bb090f3c 100644
--- a/pkgs/tools/networking/flannel/default.nix
+++ b/pkgs/tools/networking/flannel/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/flannel-io/flannel";
     maintainers = with maintainers; [ johanot offline ];
     platforms = with platforms; linux;
+    mainProgram = "flannel";
   };
 }
diff --git a/pkgs/tools/networking/fping/default.nix b/pkgs/tools/networking/fping/default.nix
index f04bae13ce096..df36d80925798 100644
--- a/pkgs/tools/networking/fping/default.nix
+++ b/pkgs/tools/networking/fping/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     description = "Send ICMP echo probes to network hosts";
     license = licenses.bsd0;
     platforms = platforms.all;
+    mainProgram = "fping";
   };
 }
diff --git a/pkgs/tools/networking/gemget/default.nix b/pkgs/tools/networking/gemget/default.nix
index 84f4894d51bca..b31d4491b5994 100644
--- a/pkgs/tools/networking/gemget/default.nix
+++ b/pkgs/tools/networking/gemget/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/makeworld-the-better-one/gemget";
     license = licenses.mit;
     maintainers = with maintainers; [ amfl ];
+    mainProgram = "gemget";
   };
 }
diff --git a/pkgs/tools/networking/ghostunnel/default.nix b/pkgs/tools/networking/ghostunnel/default.nix
index 88afb472b77be..c6322ba2b5b64 100644
--- a/pkgs/tools/networking/ghostunnel/default.nix
+++ b/pkgs/tools/networking/ghostunnel/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     changelog = "https://github.com/ghostunnel/ghostunnel/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ roberth ];
+    mainProgram = "ghostunnel";
   };
 }
diff --git a/pkgs/tools/networking/go-shadowsocks2/default.nix b/pkgs/tools/networking/go-shadowsocks2/default.nix
index 94763df92b278..ac6bbc1663aaa 100644
--- a/pkgs/tools/networking/go-shadowsocks2/default.nix
+++ b/pkgs/tools/networking/go-shadowsocks2/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/shadowsocks/go-shadowsocks2/";
     license = licenses.asl20;
     maintainers = with maintainers; [ oxzi ];
+    mainProgram = "go-shadowsocks2";
   };
 }
diff --git a/pkgs/tools/networking/gobgp/default.nix b/pkgs/tools/networking/gobgp/default.nix
index 8304f15ba960d..ab2ae59950cbd 100644
--- a/pkgs/tools/networking/gobgp/default.nix
+++ b/pkgs/tools/networking/gobgp/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     homepage = "https://osrg.github.io/gobgp/";
     license = licenses.asl20;
     maintainers = with maintainers; [ higebu ];
+    mainProgram = "gobgp";
   };
 }
diff --git a/pkgs/tools/networking/godns/default.nix b/pkgs/tools/networking/godns/default.nix
index c50fa68a068b2..a41d1993270b9 100644
--- a/pkgs/tools/networking/godns/default.nix
+++ b/pkgs/tools/networking/godns/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     changelog = "https://github.com/TimothyYe/godns/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ yinfeng ];
+    mainProgram = "godns";
   };
 }
diff --git a/pkgs/tools/networking/godspeed/default.nix b/pkgs/tools/networking/godspeed/default.nix
index 2ffb1afed06a0..64441c1674dd2 100644
--- a/pkgs/tools/networking/godspeed/default.nix
+++ b/pkgs/tools/networking/godspeed/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     homepage = "https://github.com/redcode-labs/GodSpeed";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
+    mainProgram = "godspeed";
   };
 }
diff --git a/pkgs/tools/networking/gof5/default.nix b/pkgs/tools/networking/gof5/default.nix
index 4c9ab25cc7881..ead38427816c6 100644
--- a/pkgs/tools/networking/gof5/default.nix
+++ b/pkgs/tools/networking/gof5/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/kayrus/gof5";
     license = licenses.asl20;
     maintainers = with maintainers; [ leixb ];
+    mainProgram = "gof5";
   };
 }
diff --git a/pkgs/tools/networking/goreplay/default.nix b/pkgs/tools/networking/goreplay/default.nix
index 25e98b787c5a0..71081713c70d2 100644
--- a/pkgs/tools/networking/goreplay/default.nix
+++ b/pkgs/tools/networking/goreplay/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     license = lib.licenses.lgpl3Only;
     description = "Open-source tool for capturing and replaying live HTTP traffic";
     maintainers = with lib.maintainers; [ lovek323 ];
+    mainProgram = "goreplay";
   };
 }
diff --git a/pkgs/tools/networking/gost/default.nix b/pkgs/tools/networking/gost/default.nix
index 6e7743fb990ca..4c31ce88cbf51 100644
--- a/pkgs/tools/networking/gost/default.nix
+++ b/pkgs/tools/networking/gost/default.nix
@@ -56,5 +56,6 @@ buildGoModule rec {
     homepage = "https://github.com/ginuerzh/gost";
     license = licenses.mit;
     maintainers = with maintainers; [ pmy ];
+    mainProgram = "gost";
   };
 }
diff --git a/pkgs/tools/networking/gping/default.nix b/pkgs/tools/networking/gping/default.nix
index 4a31bb1494b79..226d58af96c0c 100644
--- a/pkgs/tools/networking/gping/default.nix
+++ b/pkgs/tools/networking/gping/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/orf/gping/releases/tag/gping-v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ andrew-d ];
+    mainProgram = "gping";
   };
 }
diff --git a/pkgs/tools/networking/grpc_cli/default.nix b/pkgs/tools/networking/grpc_cli/default.nix
index 844d315f5eb5f..ff7579fbb44a7 100644
--- a/pkgs/tools/networking/grpc_cli/default.nix
+++ b/pkgs/tools/networking/grpc_cli/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ doriath ];
     platforms = platforms.linux;
+    mainProgram = "grpc_cli";
   };
 }
diff --git a/pkgs/tools/networking/grpcui/default.nix b/pkgs/tools/networking/grpcui/default.nix
index eb7400b41890a..f4bca5a299113 100644
--- a/pkgs/tools/networking/grpcui/default.nix
+++ b/pkgs/tools/networking/grpcui/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ pradyuman ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "grpcui";
   };
 }
diff --git a/pkgs/tools/networking/grpcurl/default.nix b/pkgs/tools/networking/grpcurl/default.nix
index 02ad218cbf17a..252a148f6fc7b 100644
--- a/pkgs/tools/networking/grpcurl/default.nix
+++ b/pkgs/tools/networking/grpcurl/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/fullstorydev/grpcurl";
     license = licenses.mit;
     maintainers = with maintainers; [ knl ];
+    mainProgram = "grpcurl";
   };
 }
diff --git a/pkgs/tools/networking/hans/default.nix b/pkgs/tools/networking/hans/default.nix
index 86855cf6034f3..ac591c200fe22 100644
--- a/pkgs/tools/networking/hans/default.nix
+++ b/pkgs/tools/networking/hans/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     homepage = "https://code.gerade.org/hans/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "hans";
   };
 }
diff --git a/pkgs/tools/networking/hey/default.nix b/pkgs/tools/networking/hey/default.nix
index fc086eeeafff9..b5d565d84743c 100644
--- a/pkgs/tools/networking/hey/default.nix
+++ b/pkgs/tools/networking/hey/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/rakyll/hey";
     license = licenses.asl20;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "hey";
   };
 }
diff --git a/pkgs/tools/networking/horst/default.nix b/pkgs/tools/networking/horst/default.nix
index 5e4568914d840..2e220a171cc27 100644
--- a/pkgs/tools/networking/horst/default.nix
+++ b/pkgs/tools/networking/horst/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.fpletz ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "horst";
   };
 }
diff --git a/pkgs/tools/networking/hss/default.nix b/pkgs/tools/networking/hss/default.nix
index 77f96113decf4..e2535395971a7 100644
--- a/pkgs/tools/networking/hss/default.nix
+++ b/pkgs/tools/networking/hss/default.nix
@@ -30,5 +30,6 @@ buildRubyGem rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ nixy ];
     platforms   = platforms.unix;
+    mainProgram = "hss";
   };
 }
diff --git a/pkgs/tools/networking/htpdate/default.nix b/pkgs/tools/networking/htpdate/default.nix
index 936e582a1a4f7..60934216a2ef2 100644
--- a/pkgs/tools/networking/htpdate/default.nix
+++ b/pkgs/tools/networking/htpdate/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ julienmalka ];
+    mainProgram = "htpdate";
   };
 }
diff --git a/pkgs/tools/networking/httperf/default.nix b/pkgs/tools/networking/httperf/default.nix
index 975b050de7e33..dca67e7c39a15 100644
--- a/pkgs/tools/networking/httperf/default.nix
+++ b/pkgs/tools/networking/httperf/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
     platforms = platforms.all;
+    mainProgram = "httperf";
   };
 
 }
diff --git a/pkgs/tools/networking/httping/default.nix b/pkgs/tools/networking/httping/default.nix
index 5a3b8e76c271e..1933dc41de0f1 100644
--- a/pkgs/tools/networking/httping/default.nix
+++ b/pkgs/tools/networking/httping/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Only;
     maintainers = [];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "httping";
   };
 }
diff --git a/pkgs/tools/networking/httplab/default.nix b/pkgs/tools/networking/httplab/default.nix
index 2fe0f15b38525..6e1be43ac5f56 100644
--- a/pkgs/tools/networking/httplab/default.nix
+++ b/pkgs/tools/networking/httplab/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     description = "Interactive WebServer";
     license = licenses.mit;
     maintainers = with maintainers; [ pradeepchhetri ];
+    mainProgram = "httplab";
   };
 }
diff --git a/pkgs/tools/networking/httprobe/default.nix b/pkgs/tools/networking/httprobe/default.nix
index 8400a7d12d142..b1a03ed6b488a 100644
--- a/pkgs/tools/networking/httprobe/default.nix
+++ b/pkgs/tools/networking/httprobe/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/tomnomnom/httprobe";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "httprobe";
   };
 }
diff --git a/pkgs/tools/networking/hue-cli/default.nix b/pkgs/tools/networking/hue-cli/default.nix
index f2ea6b37c8101..76f7dc8e25c7a 100644
--- a/pkgs/tools/networking/hue-cli/default.nix
+++ b/pkgs/tools/networking/hue-cli/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ manveru nicknovitski ];
+    mainProgram = "hue";
   };
 }
diff --git a/pkgs/tools/networking/hysteria/default.nix b/pkgs/tools/networking/hysteria/default.nix
index 649a5b074a78d..705d8025742be 100644
--- a/pkgs/tools/networking/hysteria/default.nix
+++ b/pkgs/tools/networking/hysteria/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ oluceps ];
+    mainProgram = "hysteria";
   };
 }
diff --git a/pkgs/tools/networking/i2p/default.nix b/pkgs/tools/networking/i2p/default.nix
index c160dfd2e7a9e..6958a12cdf3dd 100644
--- a/pkgs/tools/networking/i2p/default.nix
+++ b/pkgs/tools/networking/i2p/default.nix
@@ -81,5 +81,6 @@ stdenv.mkDerivation (finalAttrs: {
     ];
     platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ];
     maintainers = with maintainers; [ joelmo ];
+    mainProgram = "i2prouter-plain";
   };
 })
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index ffcf397ea1a17..01c07c0436a52 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.unix;
+    mainProgram = "i2pd";
   };
 }
diff --git a/pkgs/tools/networking/ifstat-legacy/default.nix b/pkgs/tools/networking/ifstat-legacy/default.nix
index 014cce5ea4f1b..ff36f83ef8dc4 100644
--- a/pkgs/tools/networking/ifstat-legacy/default.nix
+++ b/pkgs/tools/networking/ifstat-legacy/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ peterhoeg ];
     platforms   = platforms.unix;
     license     = licenses.gpl2;
+    mainProgram = "ifstat-legacy";
   };
 }
diff --git a/pkgs/tools/networking/iftop/default.nix b/pkgs/tools/networking/iftop/default.nix
index 100164ff3db7e..c40a8ee51238b 100644
--- a/pkgs/tools/networking/iftop/default.nix
+++ b/pkgs/tools/networking/iftop/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     homepage = "http://ex-parrot.com/pdw/iftop/";
     platforms = platforms.unix;
     maintainers = [ ];
+    mainProgram = "iftop";
   };
 }
diff --git a/pkgs/tools/networking/igmpproxy/default.nix b/pkgs/tools/networking/igmpproxy/default.nix
index 73d47c14177f1..252f9dd056091 100644
--- a/pkgs/tools/networking/igmpproxy/default.nix
+++ b/pkgs/tools/networking/igmpproxy/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     # The maintainer is using this on linux, but if you test it on other platforms
     # please add them here!
     platforms = platforms.linux;
+    mainProgram = "igmpproxy";
   };
 }
diff --git a/pkgs/tools/networking/inadyn/default.nix b/pkgs/tools/networking/inadyn/default.nix
index c5a13f04cade8..68e1483e7a923 100644
--- a/pkgs/tools/networking/inadyn/default.nix
+++ b/pkgs/tools/networking/inadyn/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "inadyn";
   };
 }
diff --git a/pkgs/tools/networking/ip2location/default.nix b/pkgs/tools/networking/ip2location/default.nix
index df5d26b4f5dbd..6fa9345b3f01f 100644
--- a/pkgs/tools/networking/ip2location/default.nix
+++ b/pkgs/tools/networking/ip2location/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.ip2location.com/free/applications";
     license = with licenses; [ gpl3Plus lgpl3Plus ];
     platforms = platforms.linux;
+    mainProgram = "ip2location";
   };
 }
diff --git a/pkgs/tools/networking/ip2unix/default.nix b/pkgs/tools/networking/ip2unix/default.nix
index a214d302e126c..b37d5b1272c8a 100644
--- a/pkgs/tools/networking/ip2unix/default.nix
+++ b/pkgs/tools/networking/ip2unix/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     license = lib.licenses.lgpl3;
     maintainers = [ lib.maintainers.aszlig ];
+    mainProgram = "ip2unix";
   };
 }
diff --git a/pkgs/tools/networking/ipcalc/default.nix b/pkgs/tools/networking/ipcalc/default.nix
index 454f595e8e642..e45a2162dd3af 100644
--- a/pkgs/tools/networking/ipcalc/default.nix
+++ b/pkgs/tools/networking/ipcalc/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
+    mainProgram = "ipcalc";
   };
 }
diff --git a/pkgs/tools/networking/ivpn/default.nix b/pkgs/tools/networking/ivpn/default.nix
index f5df7e6c38459..62ac14812aadf 100644
--- a/pkgs/tools/networking/ivpn/default.nix
+++ b/pkgs/tools/networking/ivpn/default.nix
@@ -41,6 +41,7 @@ builtins.mapAttrs (pname: attrs: buildGoModule (attrs // rec {
     changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ urandom ataraxiasjel ];
+    mainProgram = "ivpn";
   };
 })) {
   ivpn = {
diff --git a/pkgs/tools/networking/jnettop/default.nix b/pkgs/tools/networking/jnettop/default.nix
index 2c002843eca1f..0be765028635a 100644
--- a/pkgs/tools/networking/jnettop/default.nix
+++ b/pkgs/tools/networking/jnettop/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     homepage = "https://sourceforge.net/projects/jnettop/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
+    mainProgram = "jnettop";
   };
 }
diff --git a/pkgs/tools/networking/kail/default.nix b/pkgs/tools/networking/kail/default.nix
index 55217ee33c3ad..809aa6a757b5b 100644
--- a/pkgs/tools/networking/kail/default.nix
+++ b/pkgs/tools/networking/kail/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/boz/kail";
     license = licenses.mit;
     maintainers = with maintainers; [ offline vdemeester ];
+    mainProgram = "kail";
   };
 }
diff --git a/pkgs/tools/networking/kapp/default.nix b/pkgs/tools/networking/kapp/default.nix
index c068c4ac1f420..c74a0a8cd47b7 100644
--- a/pkgs/tools/networking/kapp/default.nix
+++ b/pkgs/tools/networking/kapp/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     homepage = "https://carvel.dev/kapp/";
     license = licenses.asl20;
     maintainers = with maintainers; [ brodes ];
+    mainProgram = "kapp";
   };
 }
diff --git a/pkgs/tools/networking/keama/default.nix b/pkgs/tools/networking/keama/default.nix
index 0b1e8c91aa151..c00f7d63f1f91 100644
--- a/pkgs/tools/networking/keama/default.nix
+++ b/pkgs/tools/networking/keama/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ blitz ];
+    mainProgram = "keama";
   };
 }
diff --git a/pkgs/tools/networking/labctl/default.nix b/pkgs/tools/networking/labctl/default.nix
index b8139fe731cb3..00cb63b31d1d0 100644
--- a/pkgs/tools/networking/labctl/default.nix
+++ b/pkgs/tools/networking/labctl/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://labctl.net";
     license = licenses.asl20;
     maintainers = with maintainers; [ janik ];
+    mainProgram = "labctl";
   };
 }
diff --git a/pkgs/tools/networking/libreswan/default.nix b/pkgs/tools/networking/libreswan/default.nix
index 49e4df298bc78..12bd432c7329c 100644
--- a/pkgs/tools/networking/libreswan/default.nix
+++ b/pkgs/tools/networking/libreswan/default.nix
@@ -157,5 +157,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux ++ platforms.freebsd;
     license = with licenses; [ gpl2Plus mpl20 ] ;
     maintainers = with maintainers; [ afranchuk rnhmjoj ];
+    mainProgram = "ipsec";
   };
 }
diff --git a/pkgs/tools/networking/linux-router/default.nix b/pkgs/tools/networking/linux-router/default.nix
index 997546403fd3d..b5cc9ef6f5dd9 100644
--- a/pkgs/tools/networking/linux-router/default.nix
+++ b/pkgs/tools/networking/linux-router/default.nix
@@ -94,5 +94,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ x3ro ];
     platforms = platforms.linux;
+    mainProgram = "lnxrouter";
   };
 }
diff --git a/pkgs/tools/networking/lxi-tools/default.nix b/pkgs/tools/networking/lxi-tools/default.nix
index 6f94988c2c589..5a5db2a970942 100644
--- a/pkgs/tools/networking/lxi-tools/default.nix
+++ b/pkgs/tools/networking/lxi-tools/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = [ maintainers.vq ];
+    mainProgram = "lxi";
   };
 }
diff --git a/pkgs/tools/networking/lychee/default.nix b/pkgs/tools/networking/lychee/default.nix
index 2566f6386832d..e7b7ab53d4dc2 100644
--- a/pkgs/tools/networking/lychee/default.nix
+++ b/pkgs/tools/networking/lychee/default.nix
@@ -47,5 +47,6 @@ rustPlatform.buildRustPackage rec {
     downloadPage = "https://github.com/lycheeverse/lychee/releases/tag/v${version}";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ totoroot tuxinaut ];
+    mainProgram = "lychee";
   };
 }
diff --git a/pkgs/tools/networking/mailsend/default.nix b/pkgs/tools/networking/mailsend/default.nix
index ab1717da651a4..d009e09ac3662 100644
--- a/pkgs/tools/networking/mailsend/default.nix
+++ b/pkgs/tools/networking/mailsend/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     homepage = "https://github.com/muquit/mailsend";
     downloadPage = "https://github.com/muquit/mailsend/releases";
+    mainProgram = "mailsend";
   };
 }
diff --git a/pkgs/tools/networking/maphosts/default.nix b/pkgs/tools/networking/maphosts/default.nix
index 6632485b70919..9b0aa5cb899b8 100644
--- a/pkgs/tools/networking/maphosts/default.nix
+++ b/pkgs/tools/networking/maphosts/default.nix
@@ -25,5 +25,6 @@ in stdenv.mkDerivation {
     license     = licenses.mit;
     maintainers = with maintainers; [ mpscholten nicknovitski ];
     platforms   = platforms.all;
+    mainProgram = "maphosts";
   };
 }
diff --git a/pkgs/tools/networking/mbidled/default.nix b/pkgs/tools/networking/mbidled/default.nix
index 1b5c1c3dc3d4d..9e07d1afbe213 100644
--- a/pkgs/tools/networking/mbidled/default.nix
+++ b/pkgs/tools/networking/mbidled/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     license = licenses.unlicense;
     maintainers = with maintainers; [ laalsaas ];
     platforms = platforms.linux;
+    mainProgram = "mbidled";
   };
 }
diff --git a/pkgs/tools/networking/mcrcon/default.nix b/pkgs/tools/networking/mcrcon/default.nix
index 713a3dbfd91ba..c9f9f81a3ddfb 100644
--- a/pkgs/tools/networking/mcrcon/default.nix
+++ b/pkgs/tools/networking/mcrcon/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     '';
     maintainers = with lib.maintainers; [ dermetfan ];
     license = with lib.licenses; [ zlib libpng ];
+    mainProgram = "mcrcon";
   };
 }
diff --git a/pkgs/tools/networking/mdk4/default.nix b/pkgs/tools/networking/mdk4/default.nix
index 979584db432d7..53713f473a169 100644
--- a/pkgs/tools/networking/mdk4/default.nix
+++ b/pkgs/tools/networking/mdk4/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/aircrack-ng/mdk4";
     maintainers = with maintainers; [ moni ];
     license = licenses.gpl2Plus;
+    mainProgram = "mdk4";
   };
 }
diff --git a/pkgs/tools/networking/memtier-benchmark/default.nix b/pkgs/tools/networking/memtier-benchmark/default.nix
index f4ecbb9863145..d77ef2d417d5a 100644
--- a/pkgs/tools/networking/memtier-benchmark/default.nix
+++ b/pkgs/tools/networking/memtier-benchmark/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license     = lib.licenses.gpl2;
     platforms   = lib.platforms.linux;
     maintainers = with lib.maintainers; [ thoughtpolice ];
+    mainProgram = "memtier_benchmark";
   };
 }
diff --git a/pkgs/tools/networking/minidlna/default.nix b/pkgs/tools/networking/minidlna/default.nix
index 2a1eeb0fa4b57..6bdea670c13b9 100644
--- a/pkgs/tools/networking/minidlna/default.nix
+++ b/pkgs/tools/networking/minidlna/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation {
     homepage = "https://sourceforge.net/projects/minidlna/";
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "minidlnad";
   };
 }
diff --git a/pkgs/tools/networking/minissdpd/default.nix b/pkgs/tools/networking/minissdpd/default.nix
index 088645705f626..b2a95972613b5 100644
--- a/pkgs/tools/networking/minissdpd/default.nix
+++ b/pkgs/tools/networking/minissdpd/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     downloadPage = "http://miniupnp.free.fr/files/";
     license = licenses.bsd3;
     platforms = platforms.linux;
+    mainProgram = "minissdpd";
   };
 }
diff --git a/pkgs/tools/networking/mmsd-tng/default.nix b/pkgs/tools/networking/mmsd-tng/default.nix
index eaf1226375196..8d82867745957 100644
--- a/pkgs/tools/networking/mmsd-tng/default.nix
+++ b/pkgs/tools/networking/mmsd-tng/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ julm ];
     platforms = platforms.linux;
+    mainProgram = "mmsdtng";
   };
 }
diff --git a/pkgs/tools/networking/mockoon/default.nix b/pkgs/tools/networking/mockoon/default.nix
index f100239a61dd6..0a2670009cced 100644
--- a/pkgs/tools/networking/mockoon/default.nix
+++ b/pkgs/tools/networking/mockoon/default.nix
@@ -36,5 +36,6 @@ appimageTools.wrapType2 {
     homepage = "https://mockoon.com";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "mockoon";
   };
 }
diff --git a/pkgs/tools/networking/mole/default.nix b/pkgs/tools/networking/mole/default.nix
index 39d109118d95a..e5585be469fcd 100644
--- a/pkgs/tools/networking/mole/default.nix
+++ b/pkgs/tools/networking/mole/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
     broken = stdenv.isDarwin; # build fails with go > 1.17
+    mainProgram = "mole";
   };
 }
diff --git a/pkgs/tools/networking/motrix/default.nix b/pkgs/tools/networking/motrix/default.nix
index 828c236494b39..2270034ce5de2 100644
--- a/pkgs/tools/networking/motrix/default.nix
+++ b/pkgs/tools/networking/motrix/default.nix
@@ -35,5 +35,6 @@ appimageTools.wrapType2 {
     platforms = [ "x86_64-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "motrix";
   };
 }
diff --git a/pkgs/tools/networking/mozwire/default.nix b/pkgs/tools/networking/mozwire/default.nix
index d0e59e1fd8384..40c6d3ec7827b 100644
--- a/pkgs/tools/networking/mozwire/default.nix
+++ b/pkgs/tools/networking/mozwire/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/NilsIrl/MozWire";
     license = licenses.gpl3;
     maintainers = with maintainers; [ siraben nilsirl ];
+    mainProgram = "mozwire";
   };
 }
diff --git a/pkgs/tools/networking/mqtt-benchmark/default.nix b/pkgs/tools/networking/mqtt-benchmark/default.nix
index a2ab1b61520e8..bc755247c40c0 100644
--- a/pkgs/tools/networking/mqtt-benchmark/default.nix
+++ b/pkgs/tools/networking/mqtt-benchmark/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/krylovsk/mqtt-benchmark/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "mqtt-benchmark";
   };
 }
diff --git a/pkgs/tools/networking/mqttui/default.nix b/pkgs/tools/networking/mqttui/default.nix
index b090b19ba8fa2..e457fa7479b1f 100644
--- a/pkgs/tools/networking/mqttui/default.nix
+++ b/pkgs/tools/networking/mqttui/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/EdJoPaTo/mqttui/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "mqttui";
   };
 }
diff --git a/pkgs/tools/networking/mtr-exporter/default.nix b/pkgs/tools/networking/mtr-exporter/default.nix
index 4dc276c023fca..9c7c9bec41ea9 100644
--- a/pkgs/tools/networking/mtr-exporter/default.nix
+++ b/pkgs/tools/networking/mtr-exporter/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/mgumz/mtr-exporter";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jakubgs ];
+    mainProgram = "mtr-exporter";
   };
 }
diff --git a/pkgs/tools/networking/mubeng/default.nix b/pkgs/tools/networking/mubeng/default.nix
index 8e50188ec814c..ea431c3eea985 100644
--- a/pkgs/tools/networking/mubeng/default.nix
+++ b/pkgs/tools/networking/mubeng/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/kitabisa/mubeng/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "mubeng";
   };
 }
diff --git a/pkgs/tools/networking/muffet/default.nix b/pkgs/tools/networking/muffet/default.nix
index 133eaf3b27ba3..c363df34e8f75 100644
--- a/pkgs/tools/networking/muffet/default.nix
+++ b/pkgs/tools/networking/muffet/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/raviqqe/muffet/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "muffet";
   };
 }
diff --git a/pkgs/tools/networking/nat-traverse/default.nix b/pkgs/tools/networking/nat-traverse/default.nix
index a1c1337a216bb..39e74f215159b 100644
--- a/pkgs/tools/networking/nat-traverse/default.nix
+++ b/pkgs/tools/networking/nat-traverse/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.iblech ];
+    mainProgram = "nat-traverse";
   };
 }
diff --git a/pkgs/tools/networking/netassert/default.nix b/pkgs/tools/networking/netassert/default.nix
index 1351c255e9436..d226b5345681f 100644
--- a/pkgs/tools/networking/netassert/default.nix
+++ b/pkgs/tools/networking/netassert/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
+    mainProgram = "netassert";
   };
 }
diff --git a/pkgs/tools/networking/netdiscover/default.nix b/pkgs/tools/networking/netdiscover/default.nix
index 471dd55c4e17c..3aec143b3a56d 100644
--- a/pkgs/tools/networking/netdiscover/default.nix
+++ b/pkgs/tools/networking/netdiscover/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vdot0x23 ];
     platforms = platforms.unix;
+    mainProgram = "netdiscover";
   };
 }
diff --git a/pkgs/tools/networking/nethogs/default.nix b/pkgs/tools/networking/nethogs/default.nix
index 2c7347defdd3b..8c2d4ba84291e 100644
--- a/pkgs/tools/networking/nethogs/default.nix
+++ b/pkgs/tools/networking/nethogs/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/raboof/nethogs#readme";
     platforms = platforms.linux;
     maintainers = [ maintainers.rycee ];
+    mainProgram = "nethogs";
   };
 }
diff --git a/pkgs/tools/networking/nethoscope/default.nix b/pkgs/tools/networking/nethoscope/default.nix
index 478220210b3d8..2b450cf7b8aa5 100644
--- a/pkgs/tools/networking/nethoscope/default.nix
+++ b/pkgs/tools/networking/nethoscope/default.nix
@@ -53,6 +53,7 @@ rustPlatform.buildRustPackage rec {
     license = licenses.isc;
     maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
+    mainProgram = "nethoscope";
   };
 
 }
diff --git a/pkgs/tools/networking/netifd/default.nix b/pkgs/tools/networking/netifd/default.nix
index 59b2e47329801..6fd90f6082c97 100644
--- a/pkgs/tools/networking/netifd/default.nix
+++ b/pkgs/tools/networking/netifd/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation {
     license = licenses.lgpl21Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mkg20001 ];
+    mainProgram = "netifd";
   };
 }
diff --git a/pkgs/tools/networking/netmask/default.nix b/pkgs/tools/networking/netmask/default.nix
index c1613fcf92063..f564e09ba032e 100644
--- a/pkgs/tools/networking/netmask/default.nix
+++ b/pkgs/tools/networking/netmask/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.jensbin ];
+    mainProgram = "netmask";
   };
 }
diff --git a/pkgs/tools/networking/nettee/default.nix b/pkgs/tools/networking/nettee/default.nix
index c5cbcb19a971b..b281d6b296804 100644
--- a/pkgs/tools/networking/nettee/default.nix
+++ b/pkgs/tools/networking/nettee/default.nix
@@ -19,6 +19,7 @@ in stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ Profpatsch ];
     platforms = lib.platforms.linux;
+    mainProgram = "nettee";
   };
 
   outputs = [ "bin" "man" "doc" "out" ];
diff --git a/pkgs/tools/networking/nexttrace/default.nix b/pkgs/tools/networking/nexttrace/default.nix
index 1bbd4e3685f00..2ad7764b1452a 100644
--- a/pkgs/tools/networking/nexttrace/default.nix
+++ b/pkgs/tools/networking/nexttrace/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
     homepage = "https://mtr.moe";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sharzy ];
+    mainProgram = "nexttrace";
   };
 }
 
diff --git a/pkgs/tools/networking/nfstrace/default.nix b/pkgs/tools/networking/nfstrace/default.nix
index 297ada3cc2aad..1a0268f960d25 100644
--- a/pkgs/tools/networking/nfstrace/default.nix
+++ b/pkgs/tools/networking/nfstrace/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     description = "NFS and CIFS tracing/monitoring/capturing/analyzing tool";
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "nfstrace";
   };
 }
diff --git a/pkgs/tools/networking/ngrep/default.nix b/pkgs/tools/networking/ngrep/default.nix
index c44f6e1eb8328..31707ce00d5a8 100644
--- a/pkgs/tools/networking/ngrep/default.nix
+++ b/pkgs/tools/networking/ngrep/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     };
     platforms = with platforms; linux ++ darwin;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "ngrep";
   };
 }
diff --git a/pkgs/tools/networking/ngrok/default.nix b/pkgs/tools/networking/ngrok/default.nix
index fb1574bfdc1ea..ac5b19ab4c3f8 100644
--- a/pkgs/tools/networking/ngrok/default.nix
+++ b/pkgs/tools/networking/ngrok/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation {
     license = licenses.unfree;
     platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
     maintainers = with maintainers; [ bobvanderlinden brodes ];
+    mainProgram = "ngrok";
   };
 }
diff --git a/pkgs/tools/networking/noip/default.nix b/pkgs/tools/networking/noip/default.nix
index 4b57ef7731ed9..85614001342f7 100644
--- a/pkgs/tools/networking/noip/default.nix
+++ b/pkgs/tools/networking/noip/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.iand675 ];
     platforms = platforms.linux;
+    mainProgram = "noip2";
   };
 }
diff --git a/pkgs/tools/networking/norouter/default.nix b/pkgs/tools/networking/norouter/default.nix
index e76cc4544e329..3513cb0cdfbc8 100644
--- a/pkgs/tools/networking/norouter/default.nix
+++ b/pkgs/tools/networking/norouter/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/norouter/norouter";
     license = licenses.asl20;
     maintainers = with maintainers; [ blaggacao ];
+    mainProgram = "norouter";
   };
 }
diff --git a/pkgs/tools/networking/ntopng/default.nix b/pkgs/tools/networking/ntopng/default.nix
index cc9bc701d8f04..18cb68cba4078 100644
--- a/pkgs/tools/networking/ntopng/default.nix
+++ b/pkgs/tools/networking/ntopng/default.nix
@@ -89,5 +89,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Plus;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "ntopng";
   };
 })
diff --git a/pkgs/tools/networking/ntttcp/default.nix b/pkgs/tools/networking/ntttcp/default.nix
index 662e4d32fb726..cc816b737bdbb 100644
--- a/pkgs/tools/networking/ntttcp/default.nix
+++ b/pkgs/tools/networking/ntttcp/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ delroth ];
     platforms = platforms.linux;
+    mainProgram = "ntttcp";
   };
 }
diff --git a/pkgs/tools/networking/nuttcp/default.nix b/pkgs/tools/networking/nuttcp/default.nix
index 9483c3ce756d8..467159e8c2750 100644
--- a/pkgs/tools/networking/nuttcp/default.nix
+++ b/pkgs/tools/networking/nuttcp/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     homepage = "http://nuttcp.net/";
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "nuttcp";
   };
 }
diff --git a/pkgs/tools/networking/nylon/default.nix b/pkgs/tools/networking/nylon/default.nix
index b519db4b55b9a..37c6d14dfa278 100644
--- a/pkgs/tools/networking/nylon/default.nix
+++ b/pkgs/tools/networking/nylon/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.linux;
+    mainProgram = "nylon";
   };
 }
diff --git a/pkgs/tools/networking/nzbget/default.nix b/pkgs/tools/networking/nzbget/default.nix
index 4e67e81a7de83..2c698ae6c8316 100644
--- a/pkgs/tools/networking/nzbget/default.nix
+++ b/pkgs/tools/networking/nzbget/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation (finalAttrs: {
     description = "A command line tool for downloading files from news servers";
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; unix;
+    mainProgram = "nzbget";
   };
 })
diff --git a/pkgs/tools/networking/oapi-codegen/default.nix b/pkgs/tools/networking/oapi-codegen/default.nix
index e2d406b9691b7..05098a828a113 100644
--- a/pkgs/tools/networking/oapi-codegen/default.nix
+++ b/pkgs/tools/networking/oapi-codegen/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     changelog = "https://github.com/deepmap/oapi-codegen/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ j4m3s ];
+    mainProgram = "oapi-codegen";
   };
 }
diff --git a/pkgs/tools/networking/ofono/default.nix b/pkgs/tools/networking/ofono/default.nix
index 33cb492b21492..e87f8a707361d 100644
--- a/pkgs/tools/networking/ofono/default.nix
+++ b/pkgs/tools/networking/ofono/default.nix
@@ -62,5 +62,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "ofonod";
   };
 }
diff --git a/pkgs/tools/networking/oha/default.nix b/pkgs/tools/networking/oha/default.nix
index 7a2f0fc3d25e8..2ba7a62152db3 100644
--- a/pkgs/tools/networking/oha/default.nix
+++ b/pkgs/tools/networking/oha/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/hatoo/oha/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "oha";
   };
 }
diff --git a/pkgs/tools/networking/onetun/default.nix b/pkgs/tools/networking/onetun/default.nix
index 5200cff7076f7..87a9b0bfc82f2 100644
--- a/pkgs/tools/networking/onetun/default.nix
+++ b/pkgs/tools/networking/onetun/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/aramperes/onetun";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "onetun";
   };
 }
diff --git a/pkgs/tools/networking/openconnect/common.nix b/pkgs/tools/networking/openconnect/common.nix
index e35c8d71cce9d..fa54eecb89e15 100644
--- a/pkgs/tools/networking/openconnect/common.nix
+++ b/pkgs/tools/networking/openconnect/common.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ pradeepchhetri tricktron alyaeanyx ];
     platforms = lib.platforms.unix;
+    mainProgram = "openconnect";
   };
 }
diff --git a/pkgs/tools/networking/openfortivpn/default.nix b/pkgs/tools/networking/openfortivpn/default.nix
index d69f591cab08f..17c0d1390f31a 100644
--- a/pkgs/tools/networking/openfortivpn/default.nix
+++ b/pkgs/tools/networking/openfortivpn/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ madjar ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "openfortivpn";
   };
 }
diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 46fa0be29c701..87fdfd63e3e4b 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -63,5 +63,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ viric peterhoeg ];
     platforms = platforms.unix;
+    mainProgram = "openvpn";
   };
 })
diff --git a/pkgs/tools/networking/oui/default.nix b/pkgs/tools/networking/oui/default.nix
index 517eb06507b45..9fd613a295e7f 100644
--- a/pkgs/tools/networking/oui/default.nix
+++ b/pkgs/tools/networking/oui/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/thatmattlove/oui";
     license = with licenses; [ bsd3 ];
     maintainers = teams.wdz.members;
+    mainProgram = "oui";
   };
 }
diff --git a/pkgs/tools/networking/owl/default.nix b/pkgs/tools/networking/owl/default.nix
index 5a726c25a0272..568eeca0afff7 100644
--- a/pkgs/tools/networking/owl/default.nix
+++ b/pkgs/tools/networking/owl/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "owl";
   };
 }
diff --git a/pkgs/tools/networking/pacparser/default.nix b/pkgs/tools/networking/pacparser/default.nix
index d4b81928498c8..dc45aaac58fab 100644
--- a/pkgs/tools/networking/pacparser/default.nix
+++ b/pkgs/tools/networking/pacparser/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "pactester";
   };
 }
diff --git a/pkgs/tools/networking/pathvector/default.nix b/pkgs/tools/networking/pathvector/default.nix
index f8560793e9dc6..e9ca6f90e5a55 100644
--- a/pkgs/tools/networking/pathvector/default.nix
+++ b/pkgs/tools/networking/pathvector/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://pathvector.io";
     license = licenses.gpl3;
     maintainers = with maintainers; [ matthewpi ];
+    mainProgram = "pathvector";
   };
 }
diff --git a/pkgs/tools/networking/pcapc/default.nix b/pkgs/tools/networking/pcapc/default.nix
index e0cef54020898..35b338a5f63a8 100644
--- a/pkgs/tools/networking/pcapc/default.nix
+++ b/pkgs/tools/networking/pcapc/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     description = "Compile libpcap filter expressions into BPF opcodes";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
+    mainProgram = "pcapc";
   };
 }
diff --git a/pkgs/tools/networking/pcapfix/default.nix b/pkgs/tools/networking/pcapfix/default.nix
index 5a8f24355c26a..3f7a5be86ce0f 100644
--- a/pkgs/tools/networking/pcapfix/default.nix
+++ b/pkgs/tools/networking/pcapfix/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.ehmry ];
     platforms = platforms.all;
+    mainProgram = "pcapfix";
   };
 }
diff --git a/pkgs/tools/networking/pgrok/default.nix b/pkgs/tools/networking/pgrok/default.nix
index ab1c6d9f0a613..e5c9610521ce2 100644
--- a/pkgs/tools/networking/pgrok/default.nix
+++ b/pkgs/tools/networking/pgrok/default.nix
@@ -51,5 +51,6 @@ buildGoModule rec {
     homepage = "https://github.com/pgrok/pgrok";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ marie ];
+    mainProgram = "pgrok";
   };
 }
diff --git a/pkgs/tools/networking/phantomsocks/default.nix b/pkgs/tools/networking/phantomsocks/default.nix
index 6f3c3ad9a3362..7bb053c680f77 100644
--- a/pkgs/tools/networking/phantomsocks/default.nix
+++ b/pkgs/tools/networking/phantomsocks/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     '';
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ oluceps ];
+    mainProgram = "phantomsocks";
   };
 }
diff --git a/pkgs/tools/networking/photon/default.nix b/pkgs/tools/networking/photon/default.nix
index 543d9f1a5b964..8a69bd70c1495 100644
--- a/pkgs/tools/networking/photon/default.nix
+++ b/pkgs/tools/networking/photon/default.nix
@@ -31,5 +31,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/s0md3v/Photon";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
+    mainProgram = "photon";
   };
 }
diff --git a/pkgs/tools/networking/piknik/default.nix b/pkgs/tools/networking/piknik/default.nix
index 7b5b1a5e04c37..d3b2a8266b886 100644
--- a/pkgs/tools/networking/piknik/default.nix
+++ b/pkgs/tools/networking/piknik/default.nix
@@ -33,5 +33,6 @@ buildGoModule rec {
     changelog = "https://github.com/jedisct1/piknik/blob/${src.rev}/ChangeLog";
     license = licenses.bsd2;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "piknik";
   };
 }
diff --git a/pkgs/tools/networking/pingtcp/default.nix b/pkgs/tools/networking/pingtcp/default.nix
index 5b4cbf10321f5..88476ab856869 100644
--- a/pkgs/tools/networking/pingtcp/default.nix
+++ b/pkgs/tools/networking/pingtcp/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/LanetNetwork/pingtcp";
     license = licenses.gpl3;
     platforms = platforms.linux;
+    mainProgram = "pingtcp";
   };
 }
diff --git a/pkgs/tools/networking/pingu/default.nix b/pkgs/tools/networking/pingu/default.nix
index ca33e4862478c..5fcaa0af5fefc 100644
--- a/pkgs/tools/networking/pingu/default.nix
+++ b/pkgs/tools/networking/pingu/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/sheepla/pingu/";
     license = licenses.mit;
     maintainers = with maintainers; [ CactiChameleon9 ];
+    mainProgram = "pingu";
   };
 }
diff --git a/pkgs/tools/networking/pixiecore/default.nix b/pkgs/tools/networking/pixiecore/default.nix
index f1249cfb8286f..e73999d446890 100644
--- a/pkgs/tools/networking/pixiecore/default.nix
+++ b/pkgs/tools/networking/pixiecore/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/danderson/netboot/tree/master/pixiecore";
     license =  lib.licenses.asl20;
     maintainers = with lib.maintainers; [ bbigras danderson ];
+    mainProgram = "pixiecore";
   };
 }
diff --git a/pkgs/tools/networking/pixiewps/default.nix b/pkgs/tools/networking/pixiewps/default.nix
index 82d420755d032..d3a7f0bc69d1e 100644
--- a/pkgs/tools/networking/pixiewps/default.nix
+++ b/pkgs/tools/networking/pixiewps/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.nico202 ];
     platforms = lib.platforms.all;
+    mainProgram = "pixiewps";
   };
 }
diff --git a/pkgs/tools/networking/privoxy/default.nix b/pkgs/tools/networking/privoxy/default.nix
index 048ee085a6f2e..5f394db354c01 100644
--- a/pkgs/tools/networking/privoxy/default.nix
+++ b/pkgs/tools/networking/privoxy/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ ];
+    mainProgram = "privoxy";
   };
 
 }
diff --git a/pkgs/tools/networking/proxychains/default.nix b/pkgs/tools/networking/proxychains/default.nix
index 56778defe335a..e78b1b0fcd6c6 100644
--- a/pkgs/tools/networking/proxychains/default.nix
+++ b/pkgs/tools/networking/proxychains/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ fab ];
     platforms = platforms.linux;
+    mainProgram = "proxychains4";
   };
 }
diff --git a/pkgs/tools/networking/pwnat/default.nix b/pkgs/tools/networking/pwnat/default.nix
index ab123973c0a1b..c0ead5468b509 100644
--- a/pkgs/tools/networking/pwnat/default.nix
+++ b/pkgs/tools/networking/pwnat/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license     = lib.licenses.gpl3Plus;
     maintainers = with maintainers; [viric];
     platforms   = with platforms; linux;
+    mainProgram = "pwnat";
   };
 }
diff --git a/pkgs/tools/networking/q/default.nix b/pkgs/tools/networking/q/default.nix
index ed3a1a57fc36d..fdeddef65460e 100644
--- a/pkgs/tools/networking/q/default.nix
+++ b/pkgs/tools/networking/q/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/natesales/q";
     license = lib.licenses.gpl3Only;
     maintainers = [ lib.maintainers.das_j ];
+    mainProgram = "q";
   };
 }
diff --git a/pkgs/tools/networking/qrcp/default.nix b/pkgs/tools/networking/qrcp/default.nix
index 0d8a344cbd6d0..edd2a9b216336 100644
--- a/pkgs/tools/networking/qrcp/default.nix
+++ b/pkgs/tools/networking/qrcp/default.nix
@@ -43,5 +43,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
     broken = stdenv.isDarwin; # needs golang.org/x/sys bump
+    mainProgram = "qrcp";
   };
 }
diff --git a/pkgs/tools/networking/quickserve/default.nix b/pkgs/tools/networking/quickserve/default.nix
index f23bbcd25371b..ca175f5f2a911 100644
--- a/pkgs/tools/networking/quickserve/default.nix
+++ b/pkgs/tools/networking/quickserve/default.nix
@@ -31,5 +31,6 @@ in stdenv.mkDerivation {
     homepage = "https://xyne.archlinux.ca/projects/quickserve/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ lassulus ];
+    mainProgram = "quickserve";
   };
 }
diff --git a/pkgs/tools/networking/rathole/default.nix b/pkgs/tools/networking/rathole/default.nix
index b6338e262f635..1f12ed46b1476 100644
--- a/pkgs/tools/networking/rathole/default.nix
+++ b/pkgs/tools/networking/rathole/default.nix
@@ -40,5 +40,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/rapiz1/rathole/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "rathole";
   };
 }
diff --git a/pkgs/tools/networking/rcon/default.nix b/pkgs/tools/networking/rcon/default.nix
index 03c2a1ae1a37e..e51dc3fac3717 100644
--- a/pkgs/tools/networking/rcon/default.nix
+++ b/pkgs/tools/networking/rcon/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ f4814n ];
     platforms = with platforms; linux ++ darwin;
     license = licenses.bsd2;
+    mainProgram = "rcon";
   };
 }
diff --git a/pkgs/tools/networking/rconc/default.nix b/pkgs/tools/networking/rconc/default.nix
index 613c4a8a31b0a..5934dd7e88937 100644
--- a/pkgs/tools/networking/rconc/default.nix
+++ b/pkgs/tools/networking/rconc/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     description = "Simple cross-platform RCON client written in rust";
     homepage = "https://github.com/klemens/rconc";
     license = licenses.gpl3Only;
+    mainProgram = "rconc";
   };
 }
diff --git a/pkgs/tools/networking/rdap/default.nix b/pkgs/tools/networking/rdap/default.nix
index d6ecc8d595707..3ea80e07dabbf 100644
--- a/pkgs/tools/networking/rdap/default.nix
+++ b/pkgs/tools/networking/rdap/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     description = "Command line client for the Registration Data Access Protocol (RDAP)";
     license = licenses.mit;
     maintainers = with maintainers; [ sebastianblunt ];
+    mainProgram = "rdap";
   };
 }
diff --git a/pkgs/tools/networking/rdrview/default.nix b/pkgs/tools/networking/rdrview/default.nix
index 24ba1d35e9afc..e4d56be3ffb9a 100644
--- a/pkgs/tools/networking/rdrview/default.nix
+++ b/pkgs/tools/networking/rdrview/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/eafer/rdrview";
     license = licenses.asl20;
     maintainers = with maintainers; [ djanatyn ];
+    mainProgram = "rdrview";
   };
 }
diff --git a/pkgs/tools/networking/redfang/default.nix b/pkgs/tools/networking/redfang/default.nix
index a4ba12b29489d..a6447c19576cd 100644
--- a/pkgs/tools/networking/redfang/default.nix
+++ b/pkgs/tools/networking/redfang/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.com/kalilinux/packages/redfang";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ moni ];
+    mainProgram = "fang";
   };
 }
diff --git a/pkgs/tools/networking/redir/default.nix b/pkgs/tools/networking/redir/default.nix
index 83d52fdf10d22..17975521de161 100644
--- a/pkgs/tools/networking/redir/default.nix
+++ b/pkgs/tools/networking/redir/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.unix;
+    mainProgram = "redir";
   };
 }
diff --git a/pkgs/tools/networking/redli/default.nix b/pkgs/tools/networking/redli/default.nix
index a9d590e056971..41bc3d9265e63 100644
--- a/pkgs/tools/networking/redli/default.nix
+++ b/pkgs/tools/networking/redli/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/IBM-Cloud/redli";
     license = licenses.asl20;
     maintainers = with maintainers; [ tchekda ];
+    mainProgram = "redli";
   };
 }
diff --git a/pkgs/tools/networking/redsocks/default.nix b/pkgs/tools/networking/redsocks/default.nix
index cebec2cb2b60c..f97dd01e074d3 100644
--- a/pkgs/tools/networking/redsocks/default.nix
+++ b/pkgs/tools/networking/redsocks/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.ekleog ];
     platforms = lib.platforms.linux;
+    mainProgram = "redsocks";
   };
 }
diff --git a/pkgs/tools/networking/requestly/default.nix b/pkgs/tools/networking/requestly/default.nix
index 671d084b8ecbd..20e877563afa9 100644
--- a/pkgs/tools/networking/requestly/default.nix
+++ b/pkgs/tools/networking/requestly/default.nix
@@ -30,5 +30,6 @@ appimageTools.wrapType2 {
     homepage = "https://requestly.io";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "requestly";
   };
 }
diff --git a/pkgs/tools/networking/restish/default.nix b/pkgs/tools/networking/restish/default.nix
index 807b8e4a9bdf7..f8a1cfd466eaa 100644
--- a/pkgs/tools/networking/restish/default.nix
+++ b/pkgs/tools/networking/restish/default.nix
@@ -52,5 +52,6 @@ buildGoModule rec {
     changelog = "https://github.com/danielgtaylor/restish/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "restish";
   };
 }
diff --git a/pkgs/tools/networking/rewrk/default.nix b/pkgs/tools/networking/rewrk/default.nix
index 6b48ce95b4239..58aa3f46185b1 100644
--- a/pkgs/tools/networking/rewrk/default.nix
+++ b/pkgs/tools/networking/rewrk/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/lnx-search/rewrk/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "rewrk";
   };
 }
diff --git a/pkgs/tools/networking/ripmime/default.nix b/pkgs/tools/networking/ripmime/default.nix
index 7cfb31ff9858b..70ff2cbe7305b 100644
--- a/pkgs/tools/networking/ripmime/default.nix
+++ b/pkgs/tools/networking/ripmime/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin ];
     homepage = "https://pldaniels.com/ripmime/";
     platforms = platforms.all;
+    mainProgram = "ripmime";
   };
 
   passthru = {
diff --git a/pkgs/tools/networking/routedns/default.nix b/pkgs/tools/networking/routedns/default.nix
index 22a0a82667133..0b6f6822bb8d0 100644
--- a/pkgs/tools/networking/routedns/default.nix
+++ b/pkgs/tools/networking/routedns/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     description = "DNS stub resolver, proxy and router";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jsimonetti ];
+    mainProgram = "routedns";
   };
 }
diff --git a/pkgs/tools/networking/rshijack/default.nix b/pkgs/tools/networking/rshijack/default.nix
index 150502572e642..b2f32bbd54346 100644
--- a/pkgs/tools/networking/rshijack/default.nix
+++ b/pkgs/tools/networking/rshijack/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ xrelkd ];
     platforms = platforms.unix;
+    mainProgram = "rshijack";
   };
 }
diff --git a/pkgs/tools/networking/s3rs/default.nix b/pkgs/tools/networking/s3rs/default.nix
index cb73eaf6b59da..2e72c7cb45bff 100644
--- a/pkgs/tools/networking/s3rs/default.nix
+++ b/pkgs/tools/networking/s3rs/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/yanganto/s3rs";
     license = licenses.mit;
     maintainers = with maintainers; [ yanganto ];
+    mainProgram = "s3rs";
   };
 }
diff --git a/pkgs/tools/networking/s5cmd/default.nix b/pkgs/tools/networking/s5cmd/default.nix
index 8d3b97c0d3168..292169d77f772 100644
--- a/pkgs/tools/networking/s5cmd/default.nix
+++ b/pkgs/tools/networking/s5cmd/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     description = "Parallel S3 and local filesystem execution tool";
     license = licenses.mit;
     maintainers = with maintainers; [ tomberek ];
+    mainProgram = "s5cmd";
   };
 }
diff --git a/pkgs/tools/networking/saldl/default.nix b/pkgs/tools/networking/saldl/default.nix
index fb373fb5029e0..b7281d3a20a7b 100644
--- a/pkgs/tools/networking/saldl/default.nix
+++ b/pkgs/tools/networking/saldl/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3;
     maintainers = with maintainers; [ zowoq ];
     platforms = platforms.all;
+    mainProgram = "saldl";
   };
 }
diff --git a/pkgs/tools/networking/shncpd/default.nix b/pkgs/tools/networking/shncpd/default.nix
index 8cfd1f94252a1..ed724c24cf790 100644
--- a/pkgs/tools/networking/shncpd/default.nix
+++ b/pkgs/tools/networking/shncpd/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.fpletz ];
+    mainProgram = "shncpd";
   };
 }
diff --git a/pkgs/tools/networking/simpleproxy/default.nix b/pkgs/tools/networking/simpleproxy/default.nix
index 6c110be05da37..7f9ccd1c98653 100644
--- a/pkgs/tools/networking/simpleproxy/default.nix
+++ b/pkgs/tools/networking/simpleproxy/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     description = "A simple TCP proxy";
     license = licenses.gpl2;
     maintainers = [ maintainers.montag451 ];
+    mainProgram = "simpleproxy";
   };
 }
diff --git a/pkgs/tools/networking/sipcalc/default.nix b/pkgs/tools/networking/sipcalc/default.nix
index c9470cd5b8b33..1ba4db5bc0d25 100644
--- a/pkgs/tools/networking/sipcalc/default.nix
+++ b/pkgs/tools/networking/sipcalc/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = [ maintainers.globin ];
+    mainProgram = "sipcalc";
   };
 }
diff --git a/pkgs/tools/networking/sipexer/default.nix b/pkgs/tools/networking/sipexer/default.nix
index d88faee09f0fe..d1be5e9f7770d 100644
--- a/pkgs/tools/networking/sipexer/default.nix
+++ b/pkgs/tools/networking/sipexer/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/miconda/sipexer/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ astro janik ];
+    mainProgram = "sipexer";
   };
 }
diff --git a/pkgs/tools/networking/sipsak/default.nix b/pkgs/tools/networking/sipsak/default.nix
index c2aeaaa18e00b..4d1cf08a11b8d 100644
--- a/pkgs/tools/networking/sipsak/default.nix
+++ b/pkgs/tools/networking/sipsak/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with maintainers; [ sheenobu ];
     platforms = with platforms; unix;
+    mainProgram = "sipsak";
   };
 
 }
diff --git a/pkgs/tools/networking/sish/default.nix b/pkgs/tools/networking/sish/default.nix
index d1913e5dff412..afac612d0604c 100644
--- a/pkgs/tools/networking/sish/default.nix
+++ b/pkgs/tools/networking/sish/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     changelog = "https://github.com/antoniomika/sish/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "sish";
   };
 }
diff --git a/pkgs/tools/networking/sleep-on-lan/default.nix b/pkgs/tools/networking/sleep-on-lan/default.nix
index de4831ddeaddf..bd55711830bc2 100644
--- a/pkgs/tools/networking/sleep-on-lan/default.nix
+++ b/pkgs/tools/networking/sleep-on-lan/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ devusb ];
+    mainProgram = "sleep-on-lan";
   };
 }
diff --git a/pkgs/tools/networking/slirp4netns/default.nix b/pkgs/tools/networking/slirp4netns/default.nix
index 0daf91ae14d5c..2b2091d85b27c 100644
--- a/pkgs/tools/networking/slirp4netns/default.nix
+++ b/pkgs/tools/networking/slirp4netns/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ orivej ] ++ teams.podman.members;
     platforms = platforms.linux;
+    mainProgram = "slirp4netns";
   };
 }
diff --git a/pkgs/tools/networking/slowlorust/default.nix b/pkgs/tools/networking/slowlorust/default.nix
index bcfdfc7769eb7..c48257130b2d6 100644
--- a/pkgs/tools/networking/slowlorust/default.nix
+++ b/pkgs/tools/networking/slowlorust/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/MJVL/slowlorust";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "slowlorust";
   };
 }
diff --git a/pkgs/tools/networking/smartdns/default.nix b/pkgs/tools/networking/smartdns/default.nix
index 79b089e8e16ab..e7355eb07a75c 100644
--- a/pkgs/tools/networking/smartdns/default.nix
+++ b/pkgs/tools/networking/smartdns/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.lexuge ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "smartdns";
   };
 }
diff --git a/pkgs/tools/networking/snabb/default.nix b/pkgs/tools/networking/snabb/default.nix
index 00bc41f69e772..16c6a40bb347d 100644
--- a/pkgs/tools/networking/snabb/default.nix
+++ b/pkgs/tools/networking/snabb/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" ];
     license = licenses.asl20;
     maintainers = [ maintainers.lukego ];
+    mainProgram = "snabb";
   };
 }
diff --git a/pkgs/tools/networking/snet/default.nix b/pkgs/tools/networking/snet/default.nix
index 4775d789d7c1c..47f70a21d33b9 100644
--- a/pkgs/tools/networking/snet/default.nix
+++ b/pkgs/tools/networking/snet/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/monsterxx03/snet";
     license = licenses.mit;
     maintainers = with maintainers; [ azuwis ];
+    mainProgram = "snet";
   };
 }
diff --git a/pkgs/tools/networking/snmpcheck/default.nix b/pkgs/tools/networking/snmpcheck/default.nix
index e27ead59e9716..b365ccc5f1911 100644
--- a/pkgs/tools/networking/snmpcheck/default.nix
+++ b/pkgs/tools/networking/snmpcheck/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.nothink.org/codes/snmpcheck/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ elohmeier ];
+    mainProgram = "snmp-check";
   };
 }
diff --git a/pkgs/tools/networking/sockperf/default.nix b/pkgs/tools/networking/sockperf/default.nix
index 8f7bcc65d1cae..ed071322f2f88 100644
--- a/pkgs/tools/networking/sockperf/default.nix
+++ b/pkgs/tools/networking/sockperf/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ emilytrau ];
     platforms = platforms.all;
+    mainProgram = "sockperf";
   };
 }
diff --git a/pkgs/tools/networking/speedtest-go/default.nix b/pkgs/tools/networking/speedtest-go/default.nix
index 39c92fcb40d18..9570442345ece 100644
--- a/pkgs/tools/networking/speedtest-go/default.nix
+++ b/pkgs/tools/networking/speedtest-go/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     changelog = "https://github.com/showwin/speedtest-go/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ aleksana ];
+    mainProgram = "speedtest-go";
   };
 }
diff --git a/pkgs/tools/networking/speedtest-rs/default.nix b/pkgs/tools/networking/speedtest-rs/default.nix
index 182f041d29774..eda7e36afa4d6 100644
--- a/pkgs/tools/networking/speedtest-rs/default.nix
+++ b/pkgs/tools/networking/speedtest-rs/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/nelsonjchen/speedtest-rs/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ GaetanLepage ];
+    mainProgram = "speedtest-rs";
   };
 }
diff --git a/pkgs/tools/networking/spoofer/default.nix b/pkgs/tools/networking/spoofer/default.nix
index 905a28b1b3d02..bf969ae5d1f51 100644
--- a/pkgs/tools/networking/spoofer/default.nix
+++ b/pkgs/tools/networking/spoofer/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ leenaars];
+    mainProgram = "spoofer-prober";
   };
 }
diff --git a/pkgs/tools/networking/srelay/default.nix b/pkgs/tools/networking/srelay/default.nix
index a609328220f3c..784aca8fe4316 100644
--- a/pkgs/tools/networking/srelay/default.nix
+++ b/pkgs/tools/networking/srelay/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3;
     # never built on aarch64-linux since first introduction in nixpkgs
     broken = stdenv.isLinux && stdenv.isAarch64;
+    mainProgram = "srelay";
   };
 }
diff --git a/pkgs/tools/networking/ssh-agents/default.nix b/pkgs/tools/networking/ssh-agents/default.nix
index a4e930281a508..f9414d9835d36 100644
--- a/pkgs/tools/networking/ssh-agents/default.nix
+++ b/pkgs/tools/networking/ssh-agents/default.nix
@@ -39,5 +39,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.unix;
+    mainProgram = "ssh-agents";
   };
 }
diff --git a/pkgs/tools/networking/ssh-ident/default.nix b/pkgs/tools/networking/ssh-ident/default.nix
index 1822eda26278d..3886828c52210 100644
--- a/pkgs/tools/networking/ssh-ident/default.nix
+++ b/pkgs/tools/networking/ssh-ident/default.nix
@@ -27,5 +27,6 @@ stdenvNoCC.mkDerivation {
     license = licenses.bsd2;
     maintainers = with maintainers; [ telotortium ];
     platforms = with platforms; unix;
+    mainProgram = "ssh-ident";
   };
 }
diff --git a/pkgs/tools/networking/ssh-key-confirmer/default.nix b/pkgs/tools/networking/ssh-key-confirmer/default.nix
index ed8b9cac734bd..408719f746534 100644
--- a/pkgs/tools/networking/ssh-key-confirmer/default.nix
+++ b/pkgs/tools/networking/ssh-key-confirmer/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/benjojo/ssh-key-confirmer";
     license = licenses.mit;
     maintainers = with maintainers; [ oxzi ];
+    mainProgram = "ssh-key-confirmer";
   };
 }
diff --git a/pkgs/tools/networking/sshed/default.nix b/pkgs/tools/networking/sshed/default.nix
index cedb7bf0bc688..ac221f49ed2b4 100644
--- a/pkgs/tools/networking/sshed/default.nix
+++ b/pkgs/tools/networking/sshed/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/trntv/sshed";
     license = licenses.asl20;
     maintainers = with maintainers; [ ocfox ];
+    mainProgram = "sshed";
   };
 }
diff --git a/pkgs/tools/networking/sshpass/default.nix b/pkgs/tools/networking/sshpass/default.nix
index a3948aed08f48..6818fe33a94de 100644
--- a/pkgs/tools/networking/sshpass/default.nix
+++ b/pkgs/tools/networking/sshpass/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.madjar ];
     platforms = platforms.unix;
+    mainProgram = "sshpass";
   };
 }
diff --git a/pkgs/tools/networking/sshping/default.nix b/pkgs/tools/networking/sshping/default.nix
index 13abba539ac5d..608c8125f0d2b 100644
--- a/pkgs/tools/networking/sshping/default.nix
+++ b/pkgs/tools/networking/sshping/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ jqueiroz ];
+    mainProgram = "sshping";
   };
 }
diff --git a/pkgs/tools/networking/ssldump/default.nix b/pkgs/tools/networking/ssldump/default.nix
index 478d2785ad3f5..a855315a565cf 100644
--- a/pkgs/tools/networking/ssldump/default.nix
+++ b/pkgs/tools/networking/ssldump/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = "BSD-style";
     maintainers = with maintainers; [ aycanirican ];
     platforms = platforms.unix;
+    mainProgram = "ssldump";
   };
 }
diff --git a/pkgs/tools/networking/sslsplit/default.nix b/pkgs/tools/networking/sslsplit/default.nix
index 6712d44569c42..ca8a96d3321f4 100644
--- a/pkgs/tools/networking/sslsplit/default.nix
+++ b/pkgs/tools/networking/sslsplit/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = with maintainers; [ contrun ];
     license = with licenses; [ bsd2 mit unlicense free ];
+    mainProgram = "sslsplit";
   };
 }
diff --git a/pkgs/tools/networking/sstp/default.nix b/pkgs/tools/networking/sstp/default.nix
index b93d6cbd9cfb0..72745114a26e9 100644
--- a/pkgs/tools/networking/sstp/default.nix
+++ b/pkgs/tools/networking/sstp/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
     license = licenses.gpl2Plus;
+    mainProgram = "sstpc";
   };
 }
diff --git a/pkgs/tools/networking/stun/default.nix b/pkgs/tools/networking/stun/default.nix
index c74c73ec6a0e8..de4787eca63a5 100644
--- a/pkgs/tools/networking/stun/default.nix
+++ b/pkgs/tools/networking/stun/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license     = licenses.vsl10;
     maintainers = with maintainers; [ marcweber obadz ];
     platforms   = platforms.linux;
+    mainProgram = "stun";
   };
 }
diff --git a/pkgs/tools/networking/stunnel/default.nix b/pkgs/tools/networking/stunnel/default.nix
index cf23252b2e96c..219b728546164 100644
--- a/pkgs/tools/networking/stunnel/default.nix
+++ b/pkgs/tools/networking/stunnel/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.thoughtpolice ];
     platforms = lib.platforms.unix;
+    mainProgram = "stunnel";
   };
 })
diff --git a/pkgs/tools/networking/subfinder/default.nix b/pkgs/tools/networking/subfinder/default.nix
index 73fe59095a0c6..3cc7c51199de4 100644
--- a/pkgs/tools/networking/subfinder/default.nix
+++ b/pkgs/tools/networking/subfinder/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     homepage = "https://github.com/projectdiscovery/subfinder";
     license = licenses.mit;
     maintainers = with maintainers; [ fpletz Br1ght0ne Misaka13514 ];
+    mainProgram = "subfinder";
   };
 }
diff --git a/pkgs/tools/networking/suckit/default.nix b/pkgs/tools/networking/suckit/default.nix
index c6f18b26b8c41..3bd9f825469a4 100644
--- a/pkgs/tools/networking/suckit/default.nix
+++ b/pkgs/tools/networking/suckit/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/skallwar/suckit";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "suckit";
   };
 }
diff --git a/pkgs/tools/networking/swagger-cli/default.nix b/pkgs/tools/networking/swagger-cli/default.nix
index 5a20ce93cc7cc..8658ad45520a4 100644
--- a/pkgs/tools/networking/swagger-cli/default.nix
+++ b/pkgs/tools/networking/swagger-cli/default.nix
@@ -25,5 +25,6 @@ buildNpmPackage rec {
     homepage = "https://apitools.dev/swagger-cli/";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "swagger-cli";
   };
 }
diff --git a/pkgs/tools/networking/swagger-codegen/default.nix b/pkgs/tools/networking/swagger-codegen/default.nix
index 27ea4ff2d517a..15e125f64fb9d 100644
--- a/pkgs/tools/networking/swagger-codegen/default.nix
+++ b/pkgs/tools/networking/swagger-codegen/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     maintainers = [ maintainers.jraygauthier ];
+    mainProgram = "swagger-codegen";
   };
 }
diff --git a/pkgs/tools/networking/tayga/default.nix b/pkgs/tools/networking/tayga/default.nix
index 382b010515e8f..1fa1d8dd5610e 100644
--- a/pkgs/tools/networking/tayga/default.nix
+++ b/pkgs/tools/networking/tayga/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
+    mainProgram = "tayga";
   };
 }
diff --git a/pkgs/tools/networking/tcp-cutter/default.nix b/pkgs/tools/networking/tcp-cutter/default.nix
index ade825dbe103c..71075cc5dd1c5 100644
--- a/pkgs/tools/networking/tcp-cutter/default.nix
+++ b/pkgs/tools/networking/tcp-cutter/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.offline ];
+    mainProgram = "tcp-cutter";
   };
 }
diff --git a/pkgs/tools/networking/tcpflow/default.nix b/pkgs/tools/networking/tcpflow/default.nix
index 46fda22959438..73de0acef4e61 100644
--- a/pkgs/tools/networking/tcpflow/default.nix
+++ b/pkgs/tools/networking/tcpflow/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license     = licenses.gpl3;
     maintainers = with maintainers; [ raskin obadz ];
     platforms   = platforms.unix;
+    mainProgram = "tcpflow";
   };
 }
diff --git a/pkgs/tools/networking/tcptraceroute/default.nix b/pkgs/tools/networking/tcptraceroute/default.nix
index 379caedaaf1bf..cc5594afd5a50 100644
--- a/pkgs/tools/networking/tcptraceroute/default.nix
+++ b/pkgs/tools/networking/tcptraceroute/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mct/tcptraceroute";
     license = lib.licenses.gpl2;
     maintainers = [ ];
+    mainProgram = "tcptraceroute";
   };
 }
diff --git a/pkgs/tools/networking/tendermint/default.nix b/pkgs/tools/networking/tendermint/default.nix
index a861ab0b0ed91..858a306e95bb3 100644
--- a/pkgs/tools/networking/tendermint/default.nix
+++ b/pkgs/tools/networking/tendermint/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ alexfmpe ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "tendermint";
   };
 }
diff --git a/pkgs/tools/networking/termscp/default.nix b/pkgs/tools/networking/termscp/default.nix
index e7fef14cec59f..101a38e4f5dd3 100644
--- a/pkgs/tools/networking/termscp/default.nix
+++ b/pkgs/tools/networking/termscp/default.nix
@@ -60,5 +60,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/veeso/termscp/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "termscp";
   };
 }
diff --git a/pkgs/tools/networking/tinyfecvpn/default.nix b/pkgs/tools/networking/tinyfecvpn/default.nix
index 71e5dea12be68..8e609a886b306 100644
--- a/pkgs/tools/networking/tinyfecvpn/default.nix
+++ b/pkgs/tools/networking/tinyfecvpn/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "tinyvpn";
   };
 }
diff --git a/pkgs/tools/networking/tox-node/default.nix b/pkgs/tools/networking/tox-node/default.nix
index 4056321c93457..10a823f287362 100644
--- a/pkgs/tools/networking/tox-node/default.nix
+++ b/pkgs/tools/networking/tox-node/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = [ licenses.gpl3Plus ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ suhr kurnevsky ];
+    mainProgram = "tox-node";
   };
 }
diff --git a/pkgs/tools/networking/traceroute/default.nix b/pkgs/tools/networking/traceroute/default.nix
index 90e53b184a56c..e0c7fd61a75a9 100644
--- a/pkgs/tools/networking/traceroute/default.nix
+++ b/pkgs/tools/networking/traceroute/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ koral ];
     platforms = platforms.linux;
+    mainProgram = "traceroute";
   };
 }
diff --git a/pkgs/tools/networking/tran/default.nix b/pkgs/tools/networking/tran/default.nix
index 3a9a78a55e974..767211a7e532d 100644
--- a/pkgs/tools/networking/tran/default.nix
+++ b/pkgs/tools/networking/tran/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://github.com/abdfnx/tran";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "tran";
   };
 }
diff --git a/pkgs/tools/networking/transmission-rss/default.nix b/pkgs/tools/networking/transmission-rss/default.nix
index 095ccfb91a5aa..19df133e40284 100644
--- a/pkgs/tools/networking/transmission-rss/default.nix
+++ b/pkgs/tools/networking/transmission-rss/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/herlon214/transmission-rss";
     maintainers = with maintainers; [ icewind1991 ];
     license = licenses.mit;
+    mainProgram = "transmission-rss";
   };
 }
diff --git a/pkgs/tools/networking/trurl/default.nix b/pkgs/tools/networking/trurl/default.nix
index 50b70e3f574b3..b709c2a2b1053 100644
--- a/pkgs/tools/networking/trurl/default.nix
+++ b/pkgs/tools/networking/trurl/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.curl;
     maintainers = with maintainers; [ christoph-heiss ];
     platforms = platforms.all;
+    mainProgram = "trurl";
   };
 }
diff --git a/pkgs/tools/networking/tun2socks/default.nix b/pkgs/tools/networking/tun2socks/default.nix
index 37019a38b348b..dc7cdd243fec5 100644
--- a/pkgs/tools/networking/tun2socks/default.nix
+++ b/pkgs/tools/networking/tun2socks/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     description = "tun2socks - powered by gVisor TCP/IP stack";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ nickcao ];
+    mainProgram = "tun2socks";
   };
 }
diff --git a/pkgs/tools/networking/tunwg/default.nix b/pkgs/tools/networking/tunwg/default.nix
index dfcbbff907b72..1b36709baa489 100644
--- a/pkgs/tools/networking/tunwg/default.nix
+++ b/pkgs/tools/networking/tunwg/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/ntnj/tunwg";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "tunwg";
   };
 }
diff --git a/pkgs/tools/networking/udpreplay/default.nix b/pkgs/tools/networking/udpreplay/default.nix
index 73bbe79334998..53147a9fe7a44 100644
--- a/pkgs/tools/networking/udpreplay/default.nix
+++ b/pkgs/tools/networking/udpreplay/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.considerate ];
     platforms = platforms.linux;
+    mainProgram = "udpreplay";
   };
 }
diff --git a/pkgs/tools/networking/udptunnel/default.nix b/pkgs/tools/networking/udptunnel/default.nix
index 362f6fbbc2cf5..396d105ca287f 100644
--- a/pkgs/tools/networking/udptunnel/default.nix
+++ b/pkgs/tools/networking/udptunnel/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
+    mainProgram = "udptunnel";
   };
 }
diff --git a/pkgs/tools/networking/uqmi/default.nix b/pkgs/tools/networking/uqmi/default.nix
index 83500191b71e6..6fd830435aa1f 100644
--- a/pkgs/tools/networking/uqmi/default.nix
+++ b/pkgs/tools/networking/uqmi/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ fpletz mkg20001 ];
+    mainProgram = "uqmi";
   };
 }
diff --git a/pkgs/tools/networking/vegeta/default.nix b/pkgs/tools/networking/vegeta/default.nix
index caa420cbfa7a9..a7b71272e9a20 100644
--- a/pkgs/tools/networking/vegeta/default.nix
+++ b/pkgs/tools/networking/vegeta/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     changelog = "https://github.com/tsenart/vegeta/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
+    mainProgram = "vegeta";
   };
 }
diff --git a/pkgs/tools/networking/vlan/default.nix b/pkgs/tools/networking/vlan/default.nix
index aff4ebd09f370..d93c61bda547b 100644
--- a/pkgs/tools/networking/vlan/default.nix
+++ b/pkgs/tools/networking/vlan/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     description = "User mode programs to enable VLANs on Ethernet devices";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
+    mainProgram = "vconfig";
   };
 }
diff --git a/pkgs/tools/networking/vopono/default.nix b/pkgs/tools/networking/vopono/default.nix
index b8dbed5a02fa2..f540d59d9a013 100644
--- a/pkgs/tools/networking/vopono/default.nix
+++ b/pkgs/tools/networking/vopono/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
+    mainProgram = "vopono";
   };
 }
diff --git a/pkgs/tools/networking/wakelan/default.nix b/pkgs/tools/networking/wakelan/default.nix
index 3416b33281d3a..2b18d5fd60ae4 100644
--- a/pkgs/tools/networking/wakelan/default.nix
+++ b/pkgs/tools/networking/wakelan/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.viric ];
     platforms = lib.platforms.unix;
+    mainProgram = "wakelan";
   };
 }
diff --git a/pkgs/tools/networking/wakeonlan/default.nix b/pkgs/tools/networking/wakeonlan/default.nix
index b15aadcb3ee3c..4a9f0936f9408 100644
--- a/pkgs/tools/networking/wakeonlan/default.nix
+++ b/pkgs/tools/networking/wakeonlan/default.nix
@@ -33,5 +33,6 @@ perlPackages.buildPerlPackage rec {
     homepage = "https://github.com/jpoliv/wakeonlan";
     license = licenses.artistic1;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "wakeonlan";
   };
 }
diff --git a/pkgs/tools/networking/wavemon/default.nix b/pkgs/tools/networking/wavemon/default.nix
index 8db0ed674b4f9..259996d93540e 100644
--- a/pkgs/tools/networking/wavemon/default.nix
+++ b/pkgs/tools/networking/wavemon/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ raskin fpletz ];
     platforms = platforms.linux;
+    mainProgram = "wavemon";
   };
 }
diff --git a/pkgs/tools/networking/wbox/default.nix b/pkgs/tools/networking/wbox/default.nix
index 3a5fce6808f8a..16f0883cd1d9d 100644
--- a/pkgs/tools/networking/wbox/default.nix
+++ b/pkgs/tools/networking/wbox/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.hping.org/wbox/";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
+    mainProgram = "wbox";
   };
 }
diff --git a/pkgs/tools/networking/wg-netmanager/default.nix b/pkgs/tools/networking/wg-netmanager/default.nix
index 2f74cd86e736f..ed86813153656 100644
--- a/pkgs/tools/networking/wg-netmanager/default.nix
+++ b/pkgs/tools/networking/wg-netmanager/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mit asl20 bsd3 mpl20 ];
     maintainers = with maintainers; [ gin66 ];
     platforms = platforms.linux;
+    mainProgram = "wg_netmanager";
   };
 }
diff --git a/pkgs/tools/networking/wget2/default.nix b/pkgs/tools/networking/wget2/default.nix
index 27d1a659029ba..017e6303ab2c4 100644
--- a/pkgs/tools/networking/wget2/default.nix
+++ b/pkgs/tools/networking/wget2/default.nix
@@ -102,5 +102,6 @@ stdenv.mkDerivation rec {
     # wget2 GPLv3+; libwget LGPLv3+
     license = with licenses; [ gpl3Plus lgpl3Plus ];
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "wget2";
   };
 }
diff --git a/pkgs/tools/networking/whois/default.nix b/pkgs/tools/networking/whois/default.nix
index 992303ec60721..1fd5cb97383ed 100644
--- a/pkgs/tools/networking/whois/default.nix
+++ b/pkgs/tools/networking/whois/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ fpletz ];
     platforms = platforms.unix;
+    mainProgram = "whois";
   };
 }
diff --git a/pkgs/tools/networking/wireguard-go/default.nix b/pkgs/tools/networking/wireguard-go/default.nix
index 0812726ab0e81..867de41d48166 100644
--- a/pkgs/tools/networking/wireguard-go/default.nix
+++ b/pkgs/tools/networking/wireguard-go/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     homepage = "https://git.zx2c4.com/wireguard-go/about/";
     license = licenses.mit;
     maintainers = with maintainers; [ kirelagin yana zx2c4 ];
+    mainProgram = "wireguard-go";
   };
 }
diff --git a/pkgs/tools/networking/wireguard-vanity-address/default.nix b/pkgs/tools/networking/wireguard-vanity-address/default.nix
index 74975e52b633f..cc7ebc557faf5 100644
--- a/pkgs/tools/networking/wireguard-vanity-address/default.nix
+++ b/pkgs/tools/networking/wireguard-vanity-address/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/warner/wireguard-vanity-address";
     license = licenses.mit;
     maintainers = with maintainers; [ bcc32 ];
+    mainProgram = "wireguard-vanity-address";
   };
 }
diff --git a/pkgs/tools/networking/wireproxy/default.nix b/pkgs/tools/networking/wireproxy/default.nix
index 7a12e477c0505..d7bdafacb7552 100644
--- a/pkgs/tools/networking/wireproxy/default.nix
+++ b/pkgs/tools/networking/wireproxy/default.nix
@@ -35,5 +35,6 @@ buildGo120Module rec {
     homepage = "https://github.com/octeep/wireproxy";
     license = licenses.isc;
     maintainers = with maintainers; [ _3JlOy-PYCCKUi ];
+    mainProgram = "wireproxy";
   };
 }
diff --git a/pkgs/tools/networking/wormhole-william/default.nix b/pkgs/tools/networking/wormhole-william/default.nix
index af439b7413059..e08c0e51a58aa 100644
--- a/pkgs/tools/networking/wormhole-william/default.nix
+++ b/pkgs/tools/networking/wormhole-william/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     changelog = "https://github.com/psanford/wormhole-william/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ psanford ];
+    mainProgram = "wormhole-william";
   };
 }
diff --git a/pkgs/tools/networking/wrk/default.nix b/pkgs/tools/networking/wrk/default.nix
index 20efd6f0182aa..082497ad7d28d 100644
--- a/pkgs/tools/networking/wrk/default.nix
+++ b/pkgs/tools/networking/wrk/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ ragge ];
     platforms = platforms.unix;
+    mainProgram = "wrk";
   };
 }
diff --git a/pkgs/tools/networking/wrk2/default.nix b/pkgs/tools/networking/wrk2/default.nix
index 62d4cd5dd6782..6d2988705129f 100644
--- a/pkgs/tools/networking/wrk2/default.nix
+++ b/pkgs/tools/networking/wrk2/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ thoughtpolice ];
     # never built on aarch64-linux since first introduction in nixpkgs
     broken = stdenv.isLinux && stdenv.isAarch64;
+    mainProgram = "wrk2";
   };
 }
diff --git a/pkgs/tools/networking/wsl-vpnkit/default.nix b/pkgs/tools/networking/wsl-vpnkit/default.nix
index 39152cbab2058..b9b25747a50f5 100644
--- a/pkgs/tools/networking/wsl-vpnkit/default.nix
+++ b/pkgs/tools/networking/wsl-vpnkit/default.nix
@@ -80,5 +80,6 @@ resholve.mkDerivation {
     changelog = "https://github.com/sakai135/wsl-vpnkit/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ terlar ];
+    mainProgram = "wsl-vpnkit";
   };
 }
diff --git a/pkgs/tools/networking/wuzz/default.nix b/pkgs/tools/networking/wuzz/default.nix
index 6f1a5eeccae74..0ee71eb1e6519 100644
--- a/pkgs/tools/networking/wuzz/default.nix
+++ b/pkgs/tools/networking/wuzz/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     description = "Interactive cli tool for HTTP inspection";
     license = licenses.agpl3;
     maintainers = with maintainers; [ pradeepchhetri ];
+    mainProgram = "wuzz";
   };
 }
diff --git a/pkgs/tools/networking/zap/default.nix b/pkgs/tools/networking/zap/default.nix
index f763c609aae80..9bb63cf37e7cb 100644
--- a/pkgs/tools/networking/zap/default.nix
+++ b/pkgs/tools/networking/zap/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ mog rafael ];
     platforms = platforms.linux;
     license = licenses.asl20;
+    mainProgram = "zap";
   };
 }
diff --git a/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix b/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix
index 44dc0bdd3a098..d832a102f33be 100644
--- a/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix
+++ b/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.fogti ];
     platforms = platforms.linux;
+    mainProgram = "zs-apc-spdu-ctl";
   };
 }