about summary refs log tree commit diff
path: root/pkgs/applications/misc
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/misc')
-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
289 files changed, 289 insertions, 0 deletions
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";
   };
 }