about summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorMartin Weinelt <hexa@darmstadt.ccc.de>2024-03-19 04:00:19 +0100
committerMartin Weinelt <hexa@darmstadt.ccc.de>2024-03-19 04:00:32 +0100
commit3321e63b12183eadf7f9004aa0c9e79a2c471986 (patch)
treeb201e4f8ae10b396ec6405c49f3c3e5eb7ec79cb /pkgs/desktops
parent7c0bd382c72689b24a726b03b3436963e911c787 (diff)
parentafa65506cb0b4bed7191223bc693e6779c690a5b (diff)
Merge remote-tracking branch 'origin/master' into staging-next
Conflicts:
- pkgs/development/python-modules/sphinx-autobuild/default.nix
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/cinnamon/bulky/default.nix1
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-control-center/default.nix1
-rw-r--r--pkgs/desktops/cinnamon/muffin/default.nix1
-rw-r--r--pkgs/desktops/cinnamon/pix/default.nix1
-rw-r--r--pkgs/desktops/cinnamon/xviewer/default.nix1
-rw-r--r--pkgs/desktops/deepin/apps/deepin-calculator/default.nix1
-rw-r--r--pkgs/desktops/deepin/apps/deepin-compressor/default.nix1
-rw-r--r--pkgs/desktops/deepin/apps/deepin-draw/default.nix1
-rw-r--r--pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix1
-rw-r--r--pkgs/desktops/deepin/apps/deepin-music/default.nix1
-rw-r--r--pkgs/desktops/deepin/apps/deepin-picker/default.nix1
-rw-r--r--pkgs/desktops/deepin/apps/deepin-reader/default.nix1
-rw-r--r--pkgs/desktops/deepin/apps/deepin-screensaver/default.nix1
-rw-r--r--pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix1
-rw-r--r--pkgs/desktops/deepin/apps/deepin-terminal/default.nix1
-rw-r--r--pkgs/desktops/deepin/apps/deepin-voice-note/default.nix1
-rw-r--r--pkgs/desktops/deepin/core/dde-application-manager/default.nix1
-rw-r--r--pkgs/desktops/deepin/core/dde-calendar/default.nix1
-rw-r--r--pkgs/desktops/deepin/core/dde-control-center/default.nix1
-rw-r--r--pkgs/desktops/deepin/core/dde-dock/default.nix1
-rw-r--r--pkgs/desktops/deepin/core/dde-launchpad/default.nix1
-rw-r--r--pkgs/desktops/deepin/core/dde-widgets/default.nix1
-rw-r--r--pkgs/desktops/deepin/core/deepin-service-manager/default.nix1
-rw-r--r--pkgs/desktops/deepin/go-package/dde-api/default.nix1
-rw-r--r--pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix1
-rw-r--r--pkgs/desktops/deepin/go-package/go-gir-generator/default.nix1
-rw-r--r--pkgs/desktops/deepin/library/dtkdeclarative/default.nix1
-rw-r--r--pkgs/desktops/deepin/tools/dde-device-formatter/default.nix1
-rw-r--r--pkgs/desktops/enlightenment/econnman/default.nix1
-rw-r--r--pkgs/desktops/enlightenment/ecrire/default.nix1
-rw-r--r--pkgs/desktops/enlightenment/ephoto/default.nix1
-rw-r--r--pkgs/desktops/enlightenment/evisum/default.nix1
-rw-r--r--pkgs/desktops/enlightenment/rage/default.nix1
-rw-r--r--pkgs/desktops/gnome-2/platform/libIDL/default.nix1
-rw-r--r--pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix1
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnome/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/accerciser/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/cheese/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/ghex/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-boxes/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-calendar/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-characters/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-clocks/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-connections/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-logs/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-maps/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-music/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-nettool/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-notes/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-power-manager/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-text-editor/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/gnome-weather/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/polari/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/seahorse/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/vinagre/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/baobab/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/caribou/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/dconf-editor/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/epiphany/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-bluetooth/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-contacts/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-control-center/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-dictionary/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-screenshot/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-software/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-system-monitor/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-terminal/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-tour/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gucharmap/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/mutter/43/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/mutter/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/simple-scan/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/sushi/default.nix1
-rw-r--r--pkgs/desktops/gnome/devtools/devhelp/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/aisleriot/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/atomix/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/five-or-more/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/four-in-a-row/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/gnome-2048/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/gnome-chess/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/gnome-klotski/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/gnome-mahjongg/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/gnome-mines/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/gnome-nibbles/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/gnome-robots/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/gnome-sudoku/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/gnome-taquin/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/gnome-tetravex/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/hitori/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/iagno/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/lightsoff/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/quadrapassel/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/swell-foop/default.nix1
-rw-r--r--pkgs/desktops/gnome/games/tali/default.nix1
-rw-r--r--pkgs/desktops/gnome/misc/gitg/default.nix1
-rw-r--r--pkgs/desktops/gnome/misc/gnome-applets/default.nix1
-rw-r--r--pkgs/desktops/gnome/misc/gnome-flashback/default.nix1
-rw-r--r--pkgs/desktops/gnome/misc/gnome-panel/default.nix1
-rw-r--r--pkgs/desktops/gnome/misc/gnome-tweaks/default.nix1
-rw-r--r--pkgs/desktops/gnome/misc/gpaste/default.nix1
-rw-r--r--pkgs/desktops/gnome/misc/pomodoro/default.nix1
-rw-r--r--pkgs/desktops/gnustep/back/default.nix1
-rw-r--r--pkgs/desktops/lomiri/development/geonames/default.nix1
-rw-r--r--pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix1
-rw-r--r--pkgs/desktops/lumina/lumina-calculator/default.nix1
-rw-r--r--pkgs/desktops/lumina/lumina-pdf/default.nix1
-rw-r--r--pkgs/desktops/lxde/core/lxappearance/default.nix1
-rw-r--r--pkgs/desktops/lxde/core/lxrandr/default.nix1
-rw-r--r--pkgs/desktops/lxde/core/lxtask/default.nix1
-rw-r--r--pkgs/desktops/lxqt/compton-conf/default.nix1
-rw-r--r--pkgs/desktops/lxqt/liblxqt/default.nix1
-rw-r--r--pkgs/desktops/lxqt/lximage-qt/default.nix1
-rw-r--r--pkgs/desktops/lxqt/lxqt-about/default.nix1
-rw-r--r--pkgs/desktops/lxqt/lxqt-archiver/default.nix1
-rw-r--r--pkgs/desktops/lxqt/lxqt-build-tools/default.nix1
-rw-r--r--pkgs/desktops/lxqt/lxqt-panel/default.nix1
-rw-r--r--pkgs/desktops/lxqt/lxqt-runner/default.nix1
-rw-r--r--pkgs/desktops/lxqt/obconf-qt/default.nix1
-rw-r--r--pkgs/desktops/lxqt/pavucontrol-qt/default.nix1
-rw-r--r--pkgs/desktops/lxqt/pcmanfm-qt/default.nix1
-rw-r--r--pkgs/desktops/lxqt/qlipper/default.nix1
-rw-r--r--pkgs/desktops/lxqt/qps/default.nix1
-rw-r--r--pkgs/desktops/lxqt/qterminal/default.nix1
-rw-r--r--pkgs/desktops/lxqt/qtxdg-tools/default.nix1
-rw-r--r--pkgs/desktops/lxqt/screengrab/default.nix1
-rw-r--r--pkgs/desktops/mate/caja-extensions/default.nix1
-rw-r--r--pkgs/desktops/mate/engrampa/default.nix1
-rw-r--r--pkgs/desktops/mate/eom/default.nix1
-rw-r--r--pkgs/desktops/mate/mate-applets/default.nix1
-rw-r--r--pkgs/desktops/mate/mate-netbook/default.nix1
-rw-r--r--pkgs/desktops/mate/mate-notification-daemon/default.nix1
-rw-r--r--pkgs/desktops/mate/mate-system-monitor/default.nix1
-rw-r--r--pkgs/desktops/mate/mate-user-share/default.nix1
-rw-r--r--pkgs/desktops/mate/mozo/default.nix1
-rw-r--r--pkgs/desktops/mate/pluma/default.nix1
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix1
-rw-r--r--pkgs/desktops/plasma-5/plasma-browser-integration.nix1
-rw-r--r--pkgs/desktops/rox/rox-filer/default.nix1
-rw-r--r--pkgs/desktops/surf-display/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/catfish/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/gigolo/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/mousepad/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/orage/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/parole/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/ristretto/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/xfburn/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-dict/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix1
-rw-r--r--pkgs/desktops/xfce/core/libxfce4ui/default.nix1
-rw-r--r--pkgs/desktops/xfce/core/libxfce4util/default.nix1
-rw-r--r--pkgs/desktops/xfce/core/xfconf/default.nix1
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix1
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix1
160 files changed, 160 insertions, 0 deletions
diff --git a/pkgs/desktops/cinnamon/bulky/default.nix b/pkgs/desktops/cinnamon/bulky/default.nix
index 2d34ffbc1a187..21cd43601924c 100644
--- a/pkgs/desktops/cinnamon/bulky/default.nix
+++ b/pkgs/desktops/cinnamon/bulky/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bulk rename app";
+    mainProgram = "bulky";
     homepage = "https://github.com/linuxmint/bulky";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index bf13651d1746f..e0aee4bde6403 100644
--- a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -99,6 +99,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/linuxmint/cinnamon-control-center";
     description = "A collection of configuration plugins used in cinnamon-settings";
+    mainProgram = "cinnamon-control-center";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
diff --git a/pkgs/desktops/cinnamon/muffin/default.nix b/pkgs/desktops/cinnamon/muffin/default.nix
index 893ddf0653335..f00a92ddc6d48 100644
--- a/pkgs/desktops/cinnamon/muffin/default.nix
+++ b/pkgs/desktops/cinnamon/muffin/default.nix
@@ -115,6 +115,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/linuxmint/muffin";
     description = "The window management library for the Cinnamon desktop (libmuffin) and its sample WM binary (muffin)";
+    mainProgram = "muffin";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
diff --git a/pkgs/desktops/cinnamon/pix/default.nix b/pkgs/desktops/cinnamon/pix/default.nix
index 219a0216437d6..d1272f431389c 100644
--- a/pkgs/desktops/cinnamon/pix/default.nix
+++ b/pkgs/desktops/cinnamon/pix/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A generic image viewer from Linux Mint";
+    mainProgram = "pix";
     homepage = "https://github.com/linuxmint/pix";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/cinnamon/xviewer/default.nix b/pkgs/desktops/cinnamon/xviewer/default.nix
index 5a2bb2264d293..47e4e331da8bd 100644
--- a/pkgs/desktops/cinnamon/xviewer/default.nix
+++ b/pkgs/desktops/cinnamon/xviewer/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A generic image viewer from Linux Mint";
+    mainProgram = "xviewer";
     homepage = "https://github.com/linuxmint/xviewer";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-calculator/default.nix b/pkgs/desktops/deepin/apps/deepin-calculator/default.nix
index c8915e3f354c9..fa5c80d4a0719 100644
--- a/pkgs/desktops/deepin/apps/deepin-calculator/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-calculator/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An easy to use calculator for ordinary users";
+    mainProgram = "deepin-calculator";
     homepage = "https://github.com/linuxdeepin/deepin-calculator";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-compressor/default.nix b/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
index 9be79853b5fe9..60a02851b95a4 100644
--- a/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A fast and lightweight application for creating and extracting archives";
+    mainProgram = "deepin-compressor";
     homepage = "https://github.com/linuxdeepin/deepin-compressor";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-draw/default.nix b/pkgs/desktops/deepin/apps/deepin-draw/default.nix
index c07ca9e0b8806..980c7b3d1934f 100644
--- a/pkgs/desktops/deepin/apps/deepin-draw/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-draw/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lightweight drawing tool for users to freely draw and simply edit images";
+    mainProgram = "deepin-draw";
     homepage = "https://github.com/linuxdeepin/deepin-draw";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix b/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
index 7794d5b50d0b9..d9f810c951846 100644
--- a/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
@@ -123,6 +123,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Full-featured video player supporting playing local and streaming media in multiple video formats";
+    mainProgram = "deepin-movie";
     homepage = "https://github.com/linuxdeepin/deepin-movie-reborn";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-music/default.nix b/pkgs/desktops/deepin/apps/deepin-music/default.nix
index 64e5ee8577452..e5cbca387efbe 100644
--- a/pkgs/desktops/deepin/apps/deepin-music/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-music/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Awesome music player with brilliant and tweakful UI Deepin-UI based";
+    mainProgram = "deepin-music";
     homepage = "https://github.com/linuxdeepin/deepin-music";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-picker/default.nix b/pkgs/desktops/deepin/apps/deepin-picker/default.nix
index cafd235fc9f4d..cbb3d8e66a74b 100644
--- a/pkgs/desktops/deepin/apps/deepin-picker/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-picker/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Color picker application";
+    mainProgram = "deepin-picker";
     homepage = "https://github.com/linuxdeepin/deepin-picker";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-reader/default.nix b/pkgs/desktops/deepin/apps/deepin-reader/default.nix
index 0d95349bf56e4..39045e0e2a614 100644
--- a/pkgs/desktops/deepin/apps/deepin-reader/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-reader/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple memo software with texts and voice recordings";
+    mainProgram = "deepin-reader";
     homepage = "https://github.com/linuxdeepin/deepin-reader";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix b/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix
index 544e8e32b2491..daadb5a863d35 100644
--- a/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A screensaver service developed by deepin";
+    mainProgram = "deepin-screensaver";
     homepage = "https://github.com/linuxdeepin/deepin-screensaver";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix b/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix
index a9e1f8d7e977a..fc0fd4eab8e18 100644
--- a/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Deepin Shortcut Viewer";
+    mainProgram = "deepin-shortcut-viewer";
     homepage = "https://github.com/linuxdeepin/deepin-shortcut-viewer";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-terminal/default.nix b/pkgs/desktops/deepin/apps/deepin-terminal/default.nix
index 275f3935b41fb..5142b8d354ee5 100644
--- a/pkgs/desktops/deepin/apps/deepin-terminal/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-terminal/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Terminal emulator with workspace, multiple windows, remote management, quake mode and other features";
+    mainProgram = "deepin-terminal";
     homepage = "https://github.com/linuxdeepin/deepin-terminal";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix b/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix
index 13124f82b7aa7..766d4962fc708 100644
--- a/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple memo software with texts and voice recordings";
+    mainProgram = "deepin-voice-note";
     homepage = "https://github.com/linuxdeepin/deepin-voice-note";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/core/dde-application-manager/default.nix b/pkgs/desktops/deepin/core/dde-application-manager/default.nix
index 865352f924756..b386d0bbeabf5 100644
--- a/pkgs/desktops/deepin/core/dde-application-manager/default.nix
+++ b/pkgs/desktops/deepin/core/dde-application-manager/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Application manager for DDE";
+    mainProgram = "dde-application-manager";
     homepage = "https://github.com/linuxdeepin/dde-application-manager";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/core/dde-calendar/default.nix b/pkgs/desktops/deepin/core/dde-calendar/default.nix
index 930b75a656446..b244898566e9e 100644
--- a/pkgs/desktops/deepin/core/dde-calendar/default.nix
+++ b/pkgs/desktops/deepin/core/dde-calendar/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Calendar for Deepin Desktop Environment";
+    mainProgram = "dde-calendar";
     homepage = "https://github.com/linuxdeepin/dde-calendar";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/core/dde-control-center/default.nix b/pkgs/desktops/deepin/core/dde-control-center/default.nix
index cca8a03e771f3..cbfbb34f33cef 100644
--- a/pkgs/desktops/deepin/core/dde-control-center/default.nix
+++ b/pkgs/desktops/deepin/core/dde-control-center/default.nix
@@ -91,6 +91,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Control panel of Deepin Desktop Environment";
+    mainProgram = "dde-control-center";
     homepage = "https://github.com/linuxdeepin/dde-control-center";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/core/dde-dock/default.nix b/pkgs/desktops/deepin/core/dde-dock/default.nix
index 39aa5492a44d1..9c827e96a7457 100644
--- a/pkgs/desktops/deepin/core/dde-dock/default.nix
+++ b/pkgs/desktops/deepin/core/dde-dock/default.nix
@@ -81,6 +81,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Deepin desktop-environment - dock module";
+    mainProgram = "dde-dock";
     homepage = "https://github.com/linuxdeepin/dde-dock";
     platforms = platforms.linux;
     license = licenses.lgpl3Plus;
diff --git a/pkgs/desktops/deepin/core/dde-launchpad/default.nix b/pkgs/desktops/deepin/core/dde-launchpad/default.nix
index d57609bea9454..3e3b15f3a250f 100644
--- a/pkgs/desktops/deepin/core/dde-launchpad/default.nix
+++ b/pkgs/desktops/deepin/core/dde-launchpad/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The 'launcher' or 'start menu' component for DDE";
+    mainProgram = "dde-launchpad";
     homepage = "https://github.com/linuxdeepin/dde-launchpad";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/core/dde-widgets/default.nix b/pkgs/desktops/deepin/core/dde-widgets/default.nix
index f071d4f63fc00..f7455a92e0b72 100644
--- a/pkgs/desktops/deepin/core/dde-widgets/default.nix
+++ b/pkgs/desktops/deepin/core/dde-widgets/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Desktop widgets service/implementation for DDE";
+    mainProgram = "dde-widgets";
     homepage = "https://github.com/linuxdeepin/dde-widgets";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/core/deepin-service-manager/default.nix b/pkgs/desktops/deepin/core/deepin-service-manager/default.nix
index 3d657ef338694..a11f7717b6466 100644
--- a/pkgs/desktops/deepin/core/deepin-service-manager/default.nix
+++ b/pkgs/desktops/deepin/core/deepin-service-manager/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Manage DBus service on Deepin";
+    mainProgram = "deepin-service-manager";
     homepage = "https://github.com/linuxdeepin/deepin-service-manager";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/go-package/dde-api/default.nix b/pkgs/desktops/deepin/go-package/dde-api/default.nix
index 9b1f6f080818f..d86c369763023 100644
--- a/pkgs/desktops/deepin/go-package/dde-api/default.nix
+++ b/pkgs/desktops/deepin/go-package/dde-api/default.nix
@@ -98,6 +98,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Dbus interfaces used for screen zone detecting, thumbnail generating, sound playing, etc";
+    mainProgram = "dde-open";
     homepage = "https://github.com/linuxdeepin/dde-api";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix b/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix
index f745c8d942beb..d01c45c654d21 100644
--- a/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix
+++ b/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix
@@ -62,6 +62,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to verify the validity of the password";
+    mainProgram = "pwd-conf-update";
     homepage = "https://github.com/linuxdeepin/deepin-pw-check";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix b/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix
index eecdbeb990ba2..45c486d606d33 100644
--- a/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix
+++ b/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Generate static golang bindings for GObject";
+    mainProgram = "gir-generator";
     homepage = "https://github.com/linuxdeepin/go-gir-generator";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/library/dtkdeclarative/default.nix b/pkgs/desktops/deepin/library/dtkdeclarative/default.nix
index b2df4d42790f5..32e499ad242ac 100644
--- a/pkgs/desktops/deepin/library/dtkdeclarative/default.nix
+++ b/pkgs/desktops/deepin/library/dtkdeclarative/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A widget development toolkit based on QtQuick/QtQml";
+    mainProgram = "dtk-exhibition";
     homepage = "https://github.com/linuxdeepin/dtkdeclarative";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix b/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix
index 7bc12672472dd..f090c6feefa84 100644
--- a/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix
+++ b/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple graphical interface for creating file system in a block device";
+    mainProgram = "dde-device-formatter";
     homepage = "https://github.com/linuxdeepin/dde-device-formatter";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/enlightenment/econnman/default.nix b/pkgs/desktops/enlightenment/econnman/default.nix
index 228957de4ad1f..c71f28576055f 100644
--- a/pkgs/desktops/enlightenment/econnman/default.nix
+++ b/pkgs/desktops/enlightenment/econnman/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A user interface for the connman network connection manager";
+    mainProgram = "econnman-bin";
     homepage = "https://enlightenment.org/";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/enlightenment/ecrire/default.nix b/pkgs/desktops/enlightenment/ecrire/default.nix
index 25238ca59ab77..3f511c3a79d08 100644
--- a/pkgs/desktops/enlightenment/ecrire/default.nix
+++ b/pkgs/desktops/enlightenment/ecrire/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "EFL simple text editor";
+    mainProgram = "ecrire";
     homepage = "https://www.enlightenment.org/";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/enlightenment/ephoto/default.nix b/pkgs/desktops/enlightenment/ephoto/default.nix
index c7681bfe0e47a..1fff72fdb7bd6 100644
--- a/pkgs/desktops/enlightenment/ephoto/default.nix
+++ b/pkgs/desktops/enlightenment/ephoto/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Image viewer and editor written using the Enlightenment Foundation Libraries";
+    mainProgram = "ephoto";
     homepage = "https://www.smhouston.us/ephoto/";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/enlightenment/evisum/default.nix b/pkgs/desktops/enlightenment/evisum/default.nix
index 438b68902813f..af38f526f5ad8 100644
--- a/pkgs/desktops/enlightenment/evisum/default.nix
+++ b/pkgs/desktops/enlightenment/evisum/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "System and process monitor written with EFL";
+    mainProgram = "evisum";
     homepage = "https://www.enlightenment.org";
     license = with licenses; [ isc ];
     platforms = platforms.linux;
diff --git a/pkgs/desktops/enlightenment/rage/default.nix b/pkgs/desktops/enlightenment/rage/default.nix
index 814887491438a..2ed7384ca0e00 100644
--- a/pkgs/desktops/enlightenment/rage/default.nix
+++ b/pkgs/desktops/enlightenment/rage/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Video and audio player along the lines of mplayer";
+    mainProgram = "rage";
     homepage = "https://enlightenment.org/";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-2/platform/libIDL/default.nix b/pkgs/desktops/gnome-2/platform/libIDL/default.nix
index c8c40de9d44cf..81f8e6d08e170 100644
--- a/pkgs/desktops/gnome-2/platform/libIDL/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libIDL/default.nix
@@ -20,4 +20,5 @@ stdenv.mkDerivation rec {
     # the result was always ll https://lists.openembedded.org/g/openembedded-core/topic/85775262?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3A%2C%2C%2C0%2C0%2C0%2C85775262
     "libIDL_cv_long_long_format=ll"
   ];
+  meta.mainProgram = "libIDL-config-2";
 }
diff --git a/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix b/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix
index 80ea3d02d939c..5f21e59a4c523 100644
--- a/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix
@@ -7,4 +7,5 @@ stdenv.mkDerivation rec {
     url = "mirror://gnome/sources/libart_lgpl/${lib.versions.majorMinor version}/libart_lgpl-${version}.tar.bz2";
     sha256 = "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx";
   };
+  meta.mainProgram = "libart2-config";
 }
diff --git a/pkgs/desktops/gnome-2/platform/libgnome/default.nix b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
index 56145980a5d26..c265b2ea6993f 100644
--- a/pkgs/desktops/gnome-2/platform/libgnome/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
@@ -20,4 +20,5 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config intltool ];
   buildInputs = [ popt zlib GConf gnome_vfs libcanberra-gtk2 libtool ];
   propagatedBuildInputs = [ glib libbonobo libogg ];
+  meta.mainProgram = "gnome-open";
 }
diff --git a/pkgs/desktops/gnome/apps/accerciser/default.nix b/pkgs/desktops/gnome/apps/accerciser/default.nix
index 4e88c2779f2d0..e486a3b283f1a 100644
--- a/pkgs/desktops/gnome/apps/accerciser/default.nix
+++ b/pkgs/desktops/gnome/apps/accerciser/default.nix
@@ -70,6 +70,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Accerciser";
     description = "Interactive Python accessibility explorer";
+    mainProgram = "accerciser";
     maintainers = teams.gnome.members;
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/apps/cheese/default.nix b/pkgs/desktops/gnome/apps/cheese/default.nix
index 8d041b5511435..ce5d841c9dd81 100644
--- a/pkgs/desktops/gnome/apps/cheese/default.nix
+++ b/pkgs/desktops/gnome/apps/cheese/default.nix
@@ -100,6 +100,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Cheese";
     description = "Take photos and videos with your webcam, with fun graphical effects";
+    mainProgram = "cheese";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/apps/ghex/default.nix b/pkgs/desktops/gnome/apps/ghex/default.nix
index 787f5c4f446e8..b2abd36af2123 100644
--- a/pkgs/desktops/gnome/apps/ghex/default.nix
+++ b/pkgs/desktops/gnome/apps/ghex/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Ghex";
     description = "Hex editor for GNOME desktop environment";
+    mainProgram = "ghex";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
index cac407d971afb..24b889fb58c34 100644
--- a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
@@ -129,6 +129,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple GNOME 3 application to access remote or virtual systems";
+    mainProgram = "gnome-boxes";
     homepage = "https://wiki.gnome.org/Apps/Boxes";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
index 410c631583e27..78829cfd74e28 100644
--- a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Calendar";
     description = "Simple and beautiful calendar application for GNOME";
+    mainProgram = "gnome-calendar";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/apps/gnome-characters/default.nix b/pkgs/desktops/gnome/apps/gnome-characters/default.nix
index 8283d001132c8..570bdccafd82b 100644
--- a/pkgs/desktops/gnome/apps/gnome-characters/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-characters/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Characters";
     description = "Simple utility application to find and insert unusual characters";
+    mainProgram = "gnome-characters";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
index be7896f6b11a5..3e719ef12218e 100644
--- a/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Clocks";
     description = "Clock application designed for GNOME 3";
+    mainProgram = "gnome-clocks";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/apps/gnome-connections/default.nix b/pkgs/desktops/gnome/apps/gnome-connections/default.nix
index fcc8a67bb0c9b..933c80a9ffe92 100644
--- a/pkgs/desktops/gnome/apps/gnome-connections/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-connections/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/connections";
     description = "A remote desktop client for the GNOME desktop environment";
+    mainProgram = "gnome-connections";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/apps/gnome-logs/default.nix b/pkgs/desktops/gnome/apps/gnome-logs/default.nix
index dc55df0e175e8..e2dc57d67088c 100644
--- a/pkgs/desktops/gnome/apps/gnome-logs/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-logs/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Logs";
     description = "A log viewer for the systemd journal";
+    mainProgram = "gnome-logs";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index f378e221eb5f1..730a98e192df3 100644
--- a/pkgs/desktops/gnome/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -92,6 +92,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Maps";
     description = "A map application for GNOME 3";
+    mainProgram = "gnome-maps";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/apps/gnome-music/default.nix b/pkgs/desktops/gnome/apps/gnome-music/default.nix
index 823d90a49af61..5275e6e9de6a3 100644
--- a/pkgs/desktops/gnome/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-music/default.nix
@@ -104,6 +104,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Music";
     description = "Music player and management application for the GNOME desktop environment";
+    mainProgram = "gnome-music";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/apps/gnome-nettool/default.nix b/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
index b738aa87666f6..761d55a4036c1 100644
--- a/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-nettool";
     description = "A collection of networking tools";
+    mainProgram = "gnome-nettool";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/apps/gnome-notes/default.nix b/pkgs/desktops/gnome/apps/gnome-notes/default.nix
index 0ecd1e2ef6fd5..86d7253ae5604 100644
--- a/pkgs/desktops/gnome/apps/gnome-notes/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-notes/default.nix
@@ -90,6 +90,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Note editor designed to remain simple to use";
+    mainProgram = "bijiben";
     homepage = "https://wiki.gnome.org/Apps/Notes";
     license = licenses.gpl3;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix b/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
index eb0070344bd78..3797f9df6f9bb 100644
--- a/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-power-manager";
     description = "View battery and power statistics provided by UPower";
+    mainProgram = "gnome-power-statistics";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix b/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
index c8d455ae216ab..81bec81cb41e2 100644
--- a/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple and modern sound recorder";
+    mainProgram = "gnome-sound-recorder";
     homepage = "https://wiki.gnome.org/Apps/SoundRecorder";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
index 72ccdffd374aa..3dd7b2f4decb2 100644
--- a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-text-editor";
     description = "A Text Editor for GNOME";
+    mainProgram = "gnome-text-editor";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/apps/gnome-weather/default.nix b/pkgs/desktops/gnome/apps/gnome-weather/default.nix
index acee410487048..c4b5743cb516e 100644
--- a/pkgs/desktops/gnome/apps/gnome-weather/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-weather/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Weather";
     description = "Access current weather conditions and forecasts";
+    mainProgram = "gnome-weather";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/apps/polari/default.nix b/pkgs/desktops/gnome/apps/polari/default.nix
index 6ab83b064b32b..31ad6c94a6a9b 100644
--- a/pkgs/desktops/gnome/apps/polari/default.nix
+++ b/pkgs/desktops/gnome/apps/polari/default.nix
@@ -92,6 +92,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Polari";
     description = "IRC chat client designed to integrate with the GNOME desktop";
+    mainProgram = "polari";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/apps/seahorse/default.nix b/pkgs/desktops/gnome/apps/seahorse/default.nix
index 1207d79696107..c3c1aa020ad20 100644
--- a/pkgs/desktops/gnome/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome/apps/seahorse/default.nix
@@ -107,6 +107,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Seahorse";
     description = "Application for managing encryption keys and passwords in the GnomeKeyring";
+    mainProgram = "seahorse";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/apps/vinagre/default.nix b/pkgs/desktops/gnome/apps/vinagre/default.nix
index f8d20291a1fa8..5ef01e04fce50 100644
--- a/pkgs/desktops/gnome/apps/vinagre/default.nix
+++ b/pkgs/desktops/gnome/apps/vinagre/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Remote desktop viewer for GNOME";
+    mainProgram = "vinagre";
     homepage = "https://wiki.gnome.org/Apps/Vinagre";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/core/baobab/default.nix b/pkgs/desktops/gnome/core/baobab/default.nix
index b459677a3e36f..aad394c2d9603 100644
--- a/pkgs/desktops/gnome/core/baobab/default.nix
+++ b/pkgs/desktops/gnome/core/baobab/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical application to analyse disk usage in any GNOME environment";
+    mainProgram = "baobab";
     homepage = "https://wiki.gnome.org/Apps/DiskUsageAnalyzer";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/core/caribou/default.nix b/pkgs/desktops/gnome/core/caribou/default.nix
index 2afb65d528e10..a0d6623b597e8 100644
--- a/pkgs/desktops/gnome/core/caribou/default.nix
+++ b/pkgs/desktops/gnome/core/caribou/default.nix
@@ -61,6 +61,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An input assistive technology intended for switch and pointer users";
+    mainProgram = "caribou-preferences";
     homepage = "https://wiki.gnome.org/Projects/Caribou";
     license = licenses.lgpl21;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/core/dconf-editor/default.nix b/pkgs/desktops/gnome/core/dconf-editor/default.nix
index 4da661748c95a..4189063c1419a 100644
--- a/pkgs/desktops/gnome/core/dconf-editor/default.nix
+++ b/pkgs/desktops/gnome/core/dconf-editor/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GSettings editor for GNOME";
+    mainProgram = "dconf-editor";
     homepage = "https://wiki.gnome.org/Apps/DconfEditor";
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/core/epiphany/default.nix b/pkgs/desktops/gnome/core/epiphany/default.nix
index 31d78e60e6aa4..efac41be7ce57 100644
--- a/pkgs/desktops/gnome/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -101,6 +101,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Epiphany";
     description = "WebKit based web browser for GNOME";
+    mainProgram = "epiphany";
     maintainers = teams.gnome.members ++ teams.pantheon.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix b/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
index 38bb96980dcad..9389127e578c2 100644
--- a/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
@@ -90,6 +90,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en";
     description = "Application that let you manage Bluetooth in the GNOME destkop";
+    mainProgram = "bluetooth-sendto";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
index 6482ba231f77e..b9701f3d5e11e 100644
--- a/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-bluetooth";
     description = "Application that lets you manage Bluetooth in the GNOME desktop";
+    mainProgram = "bluetooth-sendto";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gnome-contacts/default.nix b/pkgs/desktops/gnome/core/gnome-contacts/default.nix
index 469e601b03374..9e41193c03c56 100644
--- a/pkgs/desktops/gnome/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-contacts/default.nix
@@ -73,6 +73,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Contacts";
     description = "GNOME’s integrated address book";
+    mainProgram = "gnome-contacts";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index 1bbdc1f8df7b9..eafbc79545f32 100644
--- a/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -208,6 +208,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Utilities to configure the GNOME desktop";
+    mainProgram = "gnome-control-center";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome/core/gnome-dictionary/default.nix
index ebd9b58fd96a6..d5dfce9f7ed0f 100644
--- a/pkgs/desktops/gnome/core/gnome-dictionary/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-dictionary/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Dictionary";
     description = "Dictionary is the GNOME application to look up definitions";
+    mainProgram = "gnome-dictionary";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index 9b2f0876d7f55..58fbbc0cfc1fe 100644
--- a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -77,6 +77,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Projects/Mutter/RemoteDesktop";
     description = "GNOME Remote Desktop server";
+    mainProgram = "grdctl";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
index 3904f1443f7d5..0a345fe0d8c9a 100644
--- a/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-screenshot";
     description = "Utility used in the GNOME desktop environment for taking screenshots";
+    mainProgram = "gnome-screenshot";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gnome-software/default.nix b/pkgs/desktops/gnome/core/gnome-software/default.nix
index 34b3ac6098822..f45f643cb57d8 100644
--- a/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -129,6 +129,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Software store that lets you install and update applications and system extensions";
+    mainProgram = "gnome-software";
     homepage = "https://wiki.gnome.org/Apps/Software";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
index 60de20502b377..eef86a4603714 100644
--- a/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/SystemMonitor";
     description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used";
+    mainProgram = "gnome-system-monitor";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index bc524bc800dba..92d1a7a37ecfc 100644
--- a/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The GNOME Terminal Emulator";
+    mainProgram = "gnome-terminal";
     homepage = "https://wiki.gnome.org/Apps/Terminal";
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/gnome/core/gnome-tour/default.nix b/pkgs/desktops/gnome/core/gnome-tour/default.nix
index 9ded6a3326547..c6d58c480581e 100644
--- a/pkgs/desktops/gnome/core/gnome-tour/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-tour/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-tour";
     description = "GNOME Greeter & Tour";
+    mainProgram = "gnome-tour";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gucharmap/default.nix b/pkgs/desktops/gnome/core/gucharmap/default.nix
index 91bea357d251d..83706f36ab4b9 100644
--- a/pkgs/desktops/gnome/core/gucharmap/default.nix
+++ b/pkgs/desktops/gnome/core/gucharmap/default.nix
@@ -105,6 +105,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GNOME Character Map, based on the Unicode Character Database";
+    mainProgram = "gucharmap";
     homepage = "https://wiki.gnome.org/Apps/Gucharmap";
     license = licenses.gpl3;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/core/mutter/43/default.nix b/pkgs/desktops/gnome/core/mutter/43/default.nix
index e565603ae5762..63110d9d90d3e 100644
--- a/pkgs/desktops/gnome/core/mutter/43/default.nix
+++ b/pkgs/desktops/gnome/core/mutter/43/default.nix
@@ -185,6 +185,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A window manager for GNOME";
+    mainProgram = "mutter";
     homepage = "https://gitlab.gnome.org/GNOME/mutter";
     license = licenses.gpl2Plus;
     maintainers = teams.pantheon.members;
diff --git a/pkgs/desktops/gnome/core/mutter/default.nix b/pkgs/desktops/gnome/core/mutter/default.nix
index 8722c95f2386a..570d954766a08 100644
--- a/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/pkgs/desktops/gnome/core/mutter/default.nix
@@ -201,6 +201,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A window manager for GNOME";
+    mainProgram = "mutter";
     homepage = "https://gitlab.gnome.org/GNOME/mutter";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/core/simple-scan/default.nix b/pkgs/desktops/gnome/core/simple-scan/default.nix
index 9d7e60eed64dc..3aea02678a837 100644
--- a/pkgs/desktops/gnome/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome/core/simple-scan/default.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple scanning utility";
+    mainProgram = "simple-scan";
     longDescription = ''
       A really easy way to scan both documents and photos. You can crop out the
       bad parts of a photo and rotate it if it is the wrong way round. You can
diff --git a/pkgs/desktops/gnome/core/sushi/default.nix b/pkgs/desktops/gnome/core/sushi/default.nix
index 5c54f03d7d538..0765b7af0be72 100644
--- a/pkgs/desktops/gnome/core/sushi/default.nix
+++ b/pkgs/desktops/gnome/core/sushi/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://en.wikipedia.org/wiki/Sushi_(software)";
     description = "A quick previewer for Nautilus";
+    mainProgram = "sushi";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/devtools/devhelp/default.nix b/pkgs/desktops/gnome/devtools/devhelp/default.nix
index 55330921e2671..6a1bbde4f4c27 100644
--- a/pkgs/desktops/gnome/devtools/devhelp/default.nix
+++ b/pkgs/desktops/gnome/devtools/devhelp/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "API documentation browser for GNOME";
+    mainProgram = "devhelp";
     homepage = "https://wiki.gnome.org/Apps/Devhelp";
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/games/aisleriot/default.nix b/pkgs/desktops/gnome/games/aisleriot/default.nix
index a56d9e4569b15..e0a3722727810 100644
--- a/pkgs/desktops/gnome/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome/games/aisleriot/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Aisleriot";
     description = "A collection of patience games written in guile scheme";
+    mainProgram = "sol";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/games/atomix/default.nix b/pkgs/desktops/gnome/games/atomix/default.nix
index 0d43c8e2ee7d0..2e72d4300970d 100644
--- a/pkgs/desktops/gnome/games/atomix/default.nix
+++ b/pkgs/desktops/gnome/games/atomix/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Puzzle game where you move atoms to build a molecule";
+    mainProgram = "atomix";
     homepage = "https://wiki.gnome.org/Apps/Atomix";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/games/five-or-more/default.nix b/pkgs/desktops/gnome/games/five-or-more/default.nix
index 2b264442eab1c..749f0de9ac36b 100644
--- a/pkgs/desktops/gnome/games/five-or-more/default.nix
+++ b/pkgs/desktops/gnome/games/five-or-more/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Five_or_more";
     description = "Remove colored balls from the board by forming lines";
+    mainProgram = "five-or-more";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/four-in-a-row/default.nix b/pkgs/desktops/gnome/games/four-in-a-row/default.nix
index a85da0499215a..cc866abde2243 100644
--- a/pkgs/desktops/gnome/games/four-in-a-row/default.nix
+++ b/pkgs/desktops/gnome/games/four-in-a-row/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Four-in-a-row";
     description = "Make lines of the same color to win";
+    mainProgram = "four-in-a-row";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/gnome-2048/default.nix b/pkgs/desktops/gnome/games/gnome-2048/default.nix
index 137521c8bba3a..563d298883ca1 100644
--- a/pkgs/desktops/gnome/games/gnome-2048/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-2048/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/2048";
     description = "Obtain the 2048 tile";
+    mainProgram = "gnome-2048";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/games/gnome-chess/default.nix b/pkgs/desktops/gnome/games/gnome-chess/default.nix
index 43b4628d2bb6d..41599e6cf0feb 100644
--- a/pkgs/desktops/gnome/games/gnome-chess/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-chess/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Chess";
     description = "Play the classic two-player boardgame of chess";
+    mainProgram = "gnome-chess";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/gnome-klotski/default.nix b/pkgs/desktops/gnome/games/gnome-klotski/default.nix
index bdfa9f8ed8f70..8545fefaa539b 100644
--- a/pkgs/desktops/gnome/games/gnome-klotski/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-klotski/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Klotski";
     description = "Slide blocks to solve the puzzle";
+    mainProgram = "gnome-klotski";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix b/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix
index 4ca1a535f186e..381af6c0d2a6e 100644
--- a/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Mahjongg";
     description = "Disassemble a pile of tiles by removing matching pairs";
+    mainProgram = "gnome-mahjongg";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/gnome-mines/default.nix b/pkgs/desktops/gnome/games/gnome-mines/default.nix
index 4640c5842493b..7594b94c7aa7e 100644
--- a/pkgs/desktops/gnome/games/gnome-mines/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-mines/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Mines";
     description = "Clear hidden mines from a minefield";
+    mainProgram = "gnome-mines";
     maintainers = teams.gnome.members;
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/gnome-nibbles/default.nix b/pkgs/desktops/gnome/games/gnome-nibbles/default.nix
index cf7a0038c1459..c0a9e3d2692a0 100644
--- a/pkgs/desktops/gnome/games/gnome-nibbles/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-nibbles/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Guide a worm around a maze";
+    mainProgram = "gnome-nibbles";
     homepage = "https://wiki.gnome.org/Apps/Nibbles";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/games/gnome-robots/default.nix b/pkgs/desktops/gnome/games/gnome-robots/default.nix
index e8b5d48efca1a..75f86f2c8842e 100644
--- a/pkgs/desktops/gnome/games/gnome-robots/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-robots/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Robots";
     description = "Avoid the robots and make them crash into each other";
+    mainProgram = "gnome-robots";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/gnome-sudoku/default.nix b/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
index 36378775c69d5..8cd6201b16d7d 100644
--- a/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Sudoku";
     description = "Test your logic skills in this number grid puzzle";
+    mainProgram = "gnome-sudoku";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/gnome-taquin/default.nix b/pkgs/desktops/gnome/games/gnome-taquin/default.nix
index e982f83f3ff71..b2c65ecb6c2d7 100644
--- a/pkgs/desktops/gnome/games/gnome-taquin/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-taquin/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Taquin";
     description = "Move tiles so that they reach their places";
+    mainProgram = "gnome-taquin";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/gnome-tetravex/default.nix b/pkgs/desktops/gnome/games/gnome-tetravex/default.nix
index 46e512ad316a2..3527f8b54115d 100644
--- a/pkgs/desktops/gnome/games/gnome-tetravex/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-tetravex/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Tetravex";
     description = "Complete the puzzle by matching numbered tiles";
+    mainProgram = "gnome-tetravex";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/hitori/default.nix b/pkgs/desktops/gnome/games/hitori/default.nix
index e416a7f0343fd..d22ded0e5bf4a 100644
--- a/pkgs/desktops/gnome/games/hitori/default.nix
+++ b/pkgs/desktops/gnome/games/hitori/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Hitori";
     description = "GTK application to generate and let you play games of Hitori";
+    mainProgram = "hitori";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/iagno/default.nix b/pkgs/desktops/gnome/games/iagno/default.nix
index eb27430be4e90..e409b04c0a9af 100644
--- a/pkgs/desktops/gnome/games/iagno/default.nix
+++ b/pkgs/desktops/gnome/games/iagno/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Iagno";
     description = "Computer version of the game Reversi, more popularly called Othello";
+    mainProgram = "iagno";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/lightsoff/default.nix b/pkgs/desktops/gnome/games/lightsoff/default.nix
index fa9eb5d20812f..52b2cec7e105a 100644
--- a/pkgs/desktops/gnome/games/lightsoff/default.nix
+++ b/pkgs/desktops/gnome/games/lightsoff/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Lightsoff";
     description = "Puzzle game, where the objective is to turn off all of the tiles on the board";
+    mainProgram = "lightsoff";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/games/quadrapassel/default.nix b/pkgs/desktops/gnome/games/quadrapassel/default.nix
index 956f9f842d3d3..c3a883306bd56 100644
--- a/pkgs/desktops/gnome/games/quadrapassel/default.nix
+++ b/pkgs/desktops/gnome/games/quadrapassel/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Classic falling-block game, Tetris";
+    mainProgram = "quadrapassel";
     homepage = "https://wiki.gnome.org/Apps/Quadrapassel";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/games/swell-foop/default.nix b/pkgs/desktops/gnome/games/swell-foop/default.nix
index 61d3e2c0bb675..98a01140fd8e6 100644
--- a/pkgs/desktops/gnome/games/swell-foop/default.nix
+++ b/pkgs/desktops/gnome/games/swell-foop/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Swell%20Foop";
     description = "Puzzle game, previously known as Same GNOME";
+    mainProgram = "swell-foop";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/games/tali/default.nix b/pkgs/desktops/gnome/games/tali/default.nix
index f5c1e83ee4d06..baac54eab9c17 100644
--- a/pkgs/desktops/gnome/games/tali/default.nix
+++ b/pkgs/desktops/gnome/games/tali/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Tali";
     description = "Sort of poker with dice and less money";
+    mainProgram = "tali";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/gnome/misc/gitg/default.nix b/pkgs/desktops/gnome/misc/gitg/default.nix
index e2d008a8697ed..d454a26058930 100644
--- a/pkgs/desktops/gnome/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome/misc/gitg/default.nix
@@ -98,6 +98,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Gitg";
     description = "GNOME GUI client to view git repositories";
+    mainProgram = "gitg";
     maintainers = with maintainers; [ domenkozar ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/misc/gnome-applets/default.nix b/pkgs/desktops/gnome/misc/gnome-applets/default.nix
index f59bce79728e2..194ad991c5b3c 100644
--- a/pkgs/desktops/gnome/misc/gnome-applets/default.nix
+++ b/pkgs/desktops/gnome/misc/gnome-applets/default.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Applets for use with the GNOME panel";
+    mainProgram = "cpufreq-selector";
     homepage = "https://wiki.gnome.org/Projects/GnomeApplets";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
index f1930830938c8..baf25a27b948d 100644
--- a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
+++ b/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
@@ -184,6 +184,7 @@ let
 
     meta = with lib; {
       description = "GNOME 2.x-like session for GNOME 3";
+      mainProgram = "gnome-flashback";
       homepage = "https://wiki.gnome.org/Projects/GnomeFlashback";
       license = licenses.gpl2;
       maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/misc/gnome-panel/default.nix b/pkgs/desktops/gnome/misc/gnome-panel/default.nix
index 3e84f442d6a39..4d988de173a2c 100644
--- a/pkgs/desktops/gnome/misc/gnome-panel/default.nix
+++ b/pkgs/desktops/gnome/misc/gnome-panel/default.nix
@@ -99,6 +99,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Component of Gnome Flashback that provides panels and default applets for the desktop";
+    mainProgram = "gnome-panel";
     homepage = "https://wiki.gnome.org/Projects/GnomePanel";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix b/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
index 54c0a89d30a8e..8489198b23156 100644
--- a/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
+++ b/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
@@ -82,6 +82,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Tweaks";
     description = "A tool to customize advanced GNOME 3 options";
+    mainProgram = "gnome-tweaks";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/misc/gpaste/default.nix b/pkgs/desktops/gnome/misc/gpaste/default.nix
index 2f66d742f969c..e98c861f1267c 100644
--- a/pkgs/desktops/gnome/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome/misc/gpaste/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Keruspe/GPaste";
     description = "Clipboard management system with GNOME 3 integration";
+    mainProgram = "gpaste-client";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/misc/pomodoro/default.nix b/pkgs/desktops/gnome/misc/pomodoro/default.nix
index ab1513305197d..9a1697c2332b6 100644
--- a/pkgs/desktops/gnome/misc/pomodoro/default.nix
+++ b/pkgs/desktops/gnome/misc/pomodoro/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gnomepomodoro.org/";
     description = "Time management utility for GNOME based on the pomodoro technique";
+    mainProgram = "gnome-pomodoro";
     longDescription = ''
       This GNOME utility helps to manage time according to Pomodoro Technique.
       It intends to improve productivity and focus by taking short breaks.
diff --git a/pkgs/desktops/gnustep/back/default.nix b/pkgs/desktops/gnustep/back/default.nix
index 370143e1269f0..fc3bc9bed928e 100644
--- a/pkgs/desktops/gnustep/back/default.nix
+++ b/pkgs/desktops/gnustep/back/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "A generic backend for GNUstep";
+    mainProgram = "gpbs";
     homepage = "https://gnustep.github.io/";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
diff --git a/pkgs/desktops/lomiri/development/geonames/default.nix b/pkgs/desktops/lomiri/development/geonames/default.nix
index 035837b1c47cf..ce77bca6bc41c 100644
--- a/pkgs/desktops/lomiri/development/geonames/default.nix
+++ b/pkgs/desktops/lomiri/development/geonames/default.nix
@@ -99,6 +99,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Parse and query the geonames database dump";
+    mainProgram = "geonames-demo";
     homepage = "https://gitlab.com/ubports/development/core/geonames";
     changelog = "https://gitlab.com/ubports/development/core/geonames/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.gpl3Only;
diff --git a/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix b/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix
index 6300cc52545b0..e400b73a25ab3 100644
--- a/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix
+++ b/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix
@@ -205,6 +205,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "D-Bus service for out of process thumbnailing";
+    mainProgram = "lomiri-thumbnailer-admin";
     homepage = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer";
     changelog = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/blob/${finalAttrs.version}/ChangeLog";
     license = with licenses; [ gpl3Only lgpl3Only ];
diff --git a/pkgs/desktops/lumina/lumina-calculator/default.nix b/pkgs/desktops/lumina/lumina-calculator/default.nix
index a8769e3d26ee7..758bbf70d851f 100644
--- a/pkgs/desktops/lumina/lumina-calculator/default.nix
+++ b/pkgs/desktops/lumina/lumina-calculator/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Scientific calculator for the Lumina Desktop";
+    mainProgram = "lumina-calculator";
     homepage = "https://github.com/lumina-desktop/lumina-calculator";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/lumina/lumina-pdf/default.nix b/pkgs/desktops/lumina/lumina-pdf/default.nix
index 0464287b96747..cc9bd48c9de15 100644
--- a/pkgs/desktops/lumina/lumina-pdf/default.nix
+++ b/pkgs/desktops/lumina/lumina-pdf/default.nix
@@ -30,6 +30,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "PDF viewer for the Lumina Desktop";
+    mainProgram = "lumina-pdf";
     homepage = "https://github.com/lumina-desktop/lumina-pdf";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/lxde/core/lxappearance/default.nix b/pkgs/desktops/lxde/core/lxappearance/default.nix
index 6e341681cba3a..3dc93a0f3386a 100644
--- a/pkgs/desktops/lxde/core/lxappearance/default.nix
+++ b/pkgs/desktops/lxde/core/lxappearance/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lightweight program for configuring the theme and fonts of gtk applications";
+    mainProgram = "lxappearance";
     homepage = "https://lxde.org/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lxde/core/lxrandr/default.nix b/pkgs/desktops/lxde/core/lxrandr/default.nix
index b6358cadeadde..791540468f3aa 100644
--- a/pkgs/desktops/lxde/core/lxrandr/default.nix
+++ b/pkgs/desktops/lxde/core/lxrandr/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Standard screen manager of LXDE";
+    mainProgram = "lxrandr";
     homepage = "https://lxde.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ rawkode ];
diff --git a/pkgs/desktops/lxde/core/lxtask/default.nix b/pkgs/desktops/lxde/core/lxtask/default.nix
index d2a560afd0654..2daece75cbd4a 100644
--- a/pkgs/desktops/lxde/core/lxtask/default.nix
+++ b/pkgs/desktops/lxde/core/lxtask/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.lxde.org/en/LXTask";
     description = "Lightweight and desktop independent task manager";
+    mainProgram = "lxtask";
     longDescription = ''
       LXTask is a lightweight task manager derived from xfce4 task manager
       with all xfce4 dependencies removed, some bugs fixed, and some
diff --git a/pkgs/desktops/lxqt/compton-conf/default.nix b/pkgs/desktops/lxqt/compton-conf/default.nix
index 4a9a878d31c77..f54fbd92bd35b 100644
--- a/pkgs/desktops/lxqt/compton-conf/default.nix
+++ b/pkgs/desktops/lxqt/compton-conf/default.nix
@@ -45,6 +45,7 @@ mkDerivation rec {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/lxqt/compton-conf";
     description = "GUI configuration tool for compton X composite manager";
+    mainProgram = "compton-conf";
     license = licenses.lgpl21Plus;
     platforms = with platforms; unix;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/liblxqt/default.nix b/pkgs/desktops/lxqt/liblxqt/default.nix
index f7fba687bb868..8a5316d73f53f 100644
--- a/pkgs/desktops/lxqt/liblxqt/default.nix
+++ b/pkgs/desktops/lxqt/liblxqt/default.nix
@@ -54,6 +54,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Core utility library for all LXQt components";
+    mainProgram = "lxqt-backlight_backend";
     homepage = "https://github.com/lxqt/liblxqt";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lxqt/lximage-qt/default.nix b/pkgs/desktops/lxqt/lximage-qt/default.nix
index ec95c19b0c5a7..2e49678f80f9c 100644
--- a/pkgs/desktops/lxqt/lximage-qt/default.nix
+++ b/pkgs/desktops/lxqt/lximage-qt/default.nix
@@ -51,6 +51,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lximage-qt";
     description = "The image viewer and screenshot tool for lxqt";
+    mainProgram = "lximage-qt";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/lxqt-about/default.nix b/pkgs/desktops/lxqt/lxqt-about/default.nix
index fd20c68ba863e..e78f0ba4e233d 100644
--- a/pkgs/desktops/lxqt/lxqt-about/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-about/default.nix
@@ -42,6 +42,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-about";
     description = "Dialogue window providing information about LXQt and the system it's running on";
+    mainProgram = "lxqt-about";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/lxqt-archiver/default.nix b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
index 40cad3cb60826..0adf8a0859654 100644
--- a/pkgs/desktops/lxqt/lxqt-archiver/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
@@ -48,6 +48,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-archiver/";
     description = "Archive tool for the LXQt desktop environment";
+    mainProgram = "lxqt-archiver";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     maintainers = with maintainers; [ jchw ] ++ teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/lxqt-build-tools/default.nix b/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
index b3874abfa576d..4398dd3427749 100644
--- a/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
@@ -63,6 +63,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-build-tools";
     description = "Various packaging tools and scripts for LXQt applications";
+    mainProgram = "lxqt-transupdate";
     license = licenses.lgpl21Plus;
     platforms = with platforms; unix;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/lxqt-panel/default.nix b/pkgs/desktops/lxqt/lxqt-panel/default.nix
index 16895a1aa9563..5b141e7962d53 100644
--- a/pkgs/desktops/lxqt/lxqt-panel/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-panel/default.nix
@@ -76,6 +76,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-panel";
     description = "The LXQt desktop panel";
+    mainProgram = "lxqt-panel";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/lxqt-runner/default.nix b/pkgs/desktops/lxqt/lxqt-runner/default.nix
index 3d5bdf0a01b8c..465a844c451ff 100644
--- a/pkgs/desktops/lxqt/lxqt-runner/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-runner/default.nix
@@ -54,6 +54,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-runner";
     description = "Tool used to launch programs quickly by typing their names";
+    mainProgram = "lxqt-runner";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/obconf-qt/default.nix b/pkgs/desktops/lxqt/obconf-qt/default.nix
index d44077db4fcf1..fc0a0ddd076d4 100644
--- a/pkgs/desktops/lxqt/obconf-qt/default.nix
+++ b/pkgs/desktops/lxqt/obconf-qt/default.nix
@@ -46,6 +46,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/obconf-qt";
     description = "The Qt port of obconf, the Openbox configuration tool";
+    mainProgram = "obconf-qt";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/pavucontrol-qt/default.nix b/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
index f5b69b2e85faa..6703ed1154fc4 100644
--- a/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
+++ b/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
@@ -38,6 +38,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/pavucontrol-qt";
     description = "A Pulseaudio mixer in Qt (port of pavucontrol)";
+    mainProgram = "pavucontrol-qt";
     license = licenses.gpl2Plus;
     platforms = with platforms; linux;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/pcmanfm-qt/default.nix b/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
index 82868794e7d29..3d8efb1e9f0a0 100644
--- a/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
+++ b/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
@@ -52,6 +52,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/pcmanfm-qt";
     description = "File manager and desktop icon manager (Qt port of PCManFM and libfm)";
+    mainProgram = "pcmanfm-qt";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/qlipper/default.nix b/pkgs/desktops/lxqt/qlipper/default.nix
index 91f11e8d13748..5ebb69a861c05 100644
--- a/pkgs/desktops/lxqt/qlipper/default.nix
+++ b/pkgs/desktops/lxqt/qlipper/default.nix
@@ -31,6 +31,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Cross-platform clipboard history applet";
+    mainProgram = "qlipper";
     homepage = "https://github.com/pvanek/qlipper";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
diff --git a/pkgs/desktops/lxqt/qps/default.nix b/pkgs/desktops/lxqt/qps/default.nix
index 0b6b81a4e39f0..f04b2e595862d 100644
--- a/pkgs/desktops/lxqt/qps/default.nix
+++ b/pkgs/desktops/lxqt/qps/default.nix
@@ -42,6 +42,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/qps";
     description = "Qt based process manager";
+    mainProgram = "qps";
     license = licenses.gpl2Plus;
     platforms = with platforms; linux; # does not build on darwin
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/qterminal/default.nix b/pkgs/desktops/lxqt/qterminal/default.nix
index 0a1bf1f82d124..8a47980d67b72 100644
--- a/pkgs/desktops/lxqt/qterminal/default.nix
+++ b/pkgs/desktops/lxqt/qterminal/default.nix
@@ -41,6 +41,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/qterminal";
     description = "A lightweight Qt-based terminal emulator";
+    mainProgram = "qterminal";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     maintainers = with maintainers; teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/qtxdg-tools/default.nix b/pkgs/desktops/lxqt/qtxdg-tools/default.nix
index 10476a00cf731..06374affdaacc 100644
--- a/pkgs/desktops/lxqt/qtxdg-tools/default.nix
+++ b/pkgs/desktops/lxqt/qtxdg-tools/default.nix
@@ -34,6 +34,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/qtxdg-tools";
     description = "libqtxdg user tools";
+    mainProgram = "qtxdg-mat";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/screengrab/default.nix b/pkgs/desktops/lxqt/screengrab/default.nix
index 59513dfebfdad..d2c00bebef011 100644
--- a/pkgs/desktops/lxqt/screengrab/default.nix
+++ b/pkgs/desktops/lxqt/screengrab/default.nix
@@ -49,6 +49,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/screengrab";
     description = "Crossplatform tool for fast making screenshots";
+    mainProgram = "screengrab";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/mate/caja-extensions/default.nix b/pkgs/desktops/mate/caja-extensions/default.nix
index a73b892c56497..d3bc563f0729a 100644
--- a/pkgs/desktops/mate/caja-extensions/default.nix
+++ b/pkgs/desktops/mate/caja-extensions/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Set of extensions for Caja file manager";
+    mainProgram = "caja-sendto";
     homepage = "https://mate-desktop.org";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/mate/engrampa/default.nix b/pkgs/desktops/mate/engrampa/default.nix
index d8ec65de6b9d4..d5fb1aea2bbe7 100644
--- a/pkgs/desktops/mate/engrampa/default.nix
+++ b/pkgs/desktops/mate/engrampa/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Archive Manager for MATE";
+    mainProgram = "engrampa";
     homepage = "https://mate-desktop.org";
     license = with licenses; [ gpl2Plus lgpl2Plus fdl11Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/desktops/mate/eom/default.nix b/pkgs/desktops/mate/eom/default.nix
index 0ca00c27b92b7..98475acb3cd04 100644
--- a/pkgs/desktops/mate/eom/default.nix
+++ b/pkgs/desktops/mate/eom/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An image viewing and cataloging program for the MATE desktop";
+    mainProgram = "eom";
     homepage = "https://mate-desktop.org";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/mate/mate-applets/default.nix b/pkgs/desktops/mate/mate-applets/default.nix
index 3e20dc74da43c..8e358fe29ae0b 100644
--- a/pkgs/desktops/mate/mate-applets/default.nix
+++ b/pkgs/desktops/mate/mate-applets/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Applets for use with the MATE panel";
+    mainProgram = "mate-cpufreq-selector";
     homepage = "https://mate-desktop.org";
     license = with licenses; [ gpl2Plus lgpl2Plus ];
     platforms = platforms.linux;
diff --git a/pkgs/desktops/mate/mate-netbook/default.nix b/pkgs/desktops/mate/mate-netbook/default.nix
index 6d7af4148b4ff..af4e7bebf9b37 100644
--- a/pkgs/desktops/mate/mate-netbook/default.nix
+++ b/pkgs/desktops/mate/mate-netbook/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "MATE utilities for netbooks";
+    mainProgram = "mate-maximus";
     longDescription = ''
       MATE utilities for netbooks are an applet and a daemon to maximize
       windows and move their titles on the panel.
diff --git a/pkgs/desktops/mate/mate-notification-daemon/default.nix b/pkgs/desktops/mate/mate-notification-daemon/default.nix
index ca1fa2e172892..4299f98d4ccc7 100644
--- a/pkgs/desktops/mate/mate-notification-daemon/default.nix
+++ b/pkgs/desktops/mate/mate-notification-daemon/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Notification daemon for MATE Desktop";
+    mainProgram = "mate-notification-properties";
     homepage = "https://github.com/mate-desktop/mate-notification-daemon";
     license = with licenses; [ gpl2Plus gpl3Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/desktops/mate/mate-system-monitor/default.nix b/pkgs/desktops/mate/mate-system-monitor/default.nix
index 9408e65293656..665d062dc2461 100644
--- a/pkgs/desktops/mate/mate-system-monitor/default.nix
+++ b/pkgs/desktops/mate/mate-system-monitor/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "System monitor for the MATE desktop";
+    mainProgram = "mate-system-monitor";
     homepage = "https://mate-desktop.org";
     license = [ licenses.gpl2Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/desktops/mate/mate-user-share/default.nix b/pkgs/desktops/mate/mate-user-share/default.nix
index 3e33e4fd47a47..6156a7450fa1e 100644
--- a/pkgs/desktops/mate/mate-user-share/default.nix
+++ b/pkgs/desktops/mate/mate-user-share/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "User level public file sharing for the MATE desktop";
+    mainProgram = "mate-file-share-properties";
     homepage = "https://github.com/mate-desktop/mate-user-share";
     license = with licenses; [ gpl2Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/desktops/mate/mozo/default.nix b/pkgs/desktops/mate/mozo/default.nix
index 94426da241788..66b7048ffecfb 100644
--- a/pkgs/desktops/mate/mozo/default.nix
+++ b/pkgs/desktops/mate/mozo/default.nix
@@ -46,6 +46,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "MATE Desktop menu editor";
+    mainProgram = "mozo";
     homepage = "https://github.com/mate-desktop/mozo";
     license = with licenses; [ lgpl2Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/desktops/mate/pluma/default.nix b/pkgs/desktops/mate/pluma/default.nix
index 98985a28564fd..f6bfe6eb2ba19 100644
--- a/pkgs/desktops/mate/pluma/default.nix
+++ b/pkgs/desktops/mate/pluma/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Powerful text editor for the MATE desktop";
+    mainProgram = "pluma";
     homepage = "https://mate-desktop.org";
     license = with licenses; [ gpl2Plus lgpl2Plus fdl11Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 81604c472446b..a1422ec183542 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bluetooth Indicator for Wingpanel";
+    mainProgram = "io.elementary.bluetooth";
     homepage = "https://github.com/elementary/wingpanel-indicator-bluetooth";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/plasma-5/plasma-browser-integration.nix b/pkgs/desktops/plasma-5/plasma-browser-integration.nix
index 06325911a9df5..c951f359c5482 100644
--- a/pkgs/desktops/plasma-5/plasma-browser-integration.nix
+++ b/pkgs/desktops/plasma-5/plasma-browser-integration.nix
@@ -36,6 +36,7 @@ mkDerivation {
 
   meta = {
     description = "Components necessary to integrate browsers into the Plasma Desktop";
+    mainProgram = "plasma-browser-integration-host";
     homepage = "https://community.kde.org/Plasma/Browser_Integration";
   };
 }
diff --git a/pkgs/desktops/rox/rox-filer/default.nix b/pkgs/desktops/rox/rox-filer/default.nix
index 676e99b1a9036..64c658d04a94d 100644
--- a/pkgs/desktops/rox/rox-filer/default.nix
+++ b/pkgs/desktops/rox/rox-filer/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast, lightweight, gtk2 file manager";
+    mainProgram = "rox";
     homepage = "http://rox.sourceforge.net/desktop";
     license = with licenses; [ gpl2 lgpl2 ];
     platforms = platforms.linux;
diff --git a/pkgs/desktops/surf-display/default.nix b/pkgs/desktops/surf-display/default.nix
index 918f715341a17..8e06e36db4649 100644
--- a/pkgs/desktops/surf-display/default.nix
+++ b/pkgs/desktops/surf-display/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Kiosk browser session manager based on the surf browser";
+    mainProgram = "surf-display";
     homepage = "https://code.it-zukunft-schule.de/cgit/surf-display/";
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
diff --git a/pkgs/desktops/xfce/applications/catfish/default.nix b/pkgs/desktops/xfce/applications/catfish/default.nix
index 0cec370e1acc6..24148731291af 100644
--- a/pkgs/desktops/xfce/applications/catfish/default.nix
+++ b/pkgs/desktops/xfce/applications/catfish/default.nix
@@ -75,6 +75,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://docs.xfce.org/apps/catfish/start";
     description = "Handy file search tool";
+    mainProgram = "catfish";
     longDescription = ''
       Catfish is a handy file searching tool. The interface is
       intentionally lightweight and simple, using only GTK 3.
diff --git a/pkgs/desktops/xfce/applications/gigolo/default.nix b/pkgs/desktops/xfce/applications/gigolo/default.nix
index 393e6a8c5b244..e63053deedf66 100644
--- a/pkgs/desktops/xfce/applications/gigolo/default.nix
+++ b/pkgs/desktops/xfce/applications/gigolo/default.nix
@@ -12,6 +12,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "A frontend to easily manage connections to remote filesystems";
+    mainProgram = "gigolo";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
diff --git a/pkgs/desktops/xfce/applications/mousepad/default.nix b/pkgs/desktops/xfce/applications/mousepad/default.nix
index 0247ed3b2dc3a..f72a08729bc99 100644
--- a/pkgs/desktops/xfce/applications/mousepad/default.nix
+++ b/pkgs/desktops/xfce/applications/mousepad/default.nix
@@ -33,6 +33,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Simple text editor for Xfce";
+    mainProgram = "mousepad";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/orage/default.nix b/pkgs/desktops/xfce/applications/orage/default.nix
index 00c2d5f85d91a..130eb8464aeb2 100644
--- a/pkgs/desktops/xfce/applications/orage/default.nix
+++ b/pkgs/desktops/xfce/applications/orage/default.nix
@@ -30,6 +30,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Simple calendar application for Xfce";
+    mainProgram = "orage";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/parole/default.nix b/pkgs/desktops/xfce/applications/parole/default.nix
index eeadfe793a7cd..41286052db41a 100644
--- a/pkgs/desktops/xfce/applications/parole/default.nix
+++ b/pkgs/desktops/xfce/applications/parole/default.nix
@@ -44,6 +44,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Modern simple media player";
+    mainProgram = "parole";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/ristretto/default.nix b/pkgs/desktops/xfce/applications/ristretto/default.nix
index ff12d00e4a5c3..e5ee18d85da0c 100644
--- a/pkgs/desktops/xfce/applications/ristretto/default.nix
+++ b/pkgs/desktops/xfce/applications/ristretto/default.nix
@@ -29,6 +29,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
+    mainProgram = "ristretto";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfburn/default.nix b/pkgs/desktops/xfce/applications/xfburn/default.nix
index 3bd58caee9c0e..d2ba14d27dff0 100644
--- a/pkgs/desktops/xfce/applications/xfburn/default.nix
+++ b/pkgs/desktops/xfce/applications/xfburn/default.nix
@@ -13,6 +13,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Disc burner and project creator for Xfce";
+    mainProgram = "xfburn";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-dict/default.nix b/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
index 5b79911e0b6ee..1ed27991c4434 100644
--- a/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
@@ -33,6 +33,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "A Dictionary Client for the Xfce desktop environment";
+    mainProgram = "xfce4-dict";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix b/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
index 0c1e255cdb2d8..c7a1f94177e8a 100644
--- a/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
@@ -46,6 +46,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Simple notification daemon for Xfce";
+    mainProgram = "xfce4-notifyd-config";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix b/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix
index f4a2a4ef0d448..e223f8bc66632 100644
--- a/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix
@@ -25,6 +25,7 @@ in mkXfceDerivation {
 
   meta = with lib; {
     description = "Simple application to manage Xfce panel layouts";
+    mainProgram = "xfce4-panel-profiles";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix b/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
index 50601451a8d4c..4a3f85ea0ce32 100644
--- a/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
@@ -41,6 +41,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Screenshot utility for the Xfce desktop";
+    mainProgram = "xfce4-screenshooter";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix b/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
index 5336d5ce41f39..f6dfcec8be7fc 100644
--- a/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
@@ -34,6 +34,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Easy to use task manager for Xfce";
+    mainProgram = "xfce4-taskmanager";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix b/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
index 9f1373d7d926a..878975cebb1c6 100644
--- a/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
@@ -11,6 +11,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "A volume keys control daemon for Xfce using pulseaudio";
+    mainProgram = "xfce4-volumed-pulse";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ abbradar ] ++ teams.xfce.members;
   };
diff --git a/pkgs/desktops/xfce/core/libxfce4ui/default.nix b/pkgs/desktops/xfce/core/libxfce4ui/default.nix
index fb2013e529bfc..862d4f8cbc949 100644
--- a/pkgs/desktops/xfce/core/libxfce4ui/default.nix
+++ b/pkgs/desktops/xfce/core/libxfce4ui/default.nix
@@ -18,6 +18,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Widgets library for Xfce";
+    mainProgram = "xfce4-about";
     license = with licenses; [ lgpl2Plus lgpl21Plus ];
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
diff --git a/pkgs/desktops/xfce/core/libxfce4util/default.nix b/pkgs/desktops/xfce/core/libxfce4util/default.nix
index d3cbc9f323d86..02a4b98309a32 100644
--- a/pkgs/desktops/xfce/core/libxfce4util/default.nix
+++ b/pkgs/desktops/xfce/core/libxfce4util/default.nix
@@ -11,6 +11,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Extension library for Xfce";
+    mainProgram = "xfce4-kiosk-query";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
diff --git a/pkgs/desktops/xfce/core/xfconf/default.nix b/pkgs/desktops/xfce/core/xfconf/default.nix
index 459044eb2a5df..45873f7ef2489 100644
--- a/pkgs/desktops/xfce/core/xfconf/default.nix
+++ b/pkgs/desktops/xfce/core/xfconf/default.nix
@@ -18,6 +18,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Simple client-server configuration storage and query system for Xfce";
+    mainProgram = "xfconf-query";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
index fbc40f1902553..4a3148962efde 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://docs.xfce.org/panel-plugins/xfce4-sensors-plugin";
     description = "A panel plug-in for different sensors using acpi, lm_sensors and hddtemp";
+    mainProgram = "xfce4-sensors";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
index 7ef0fb79ebbe0..b1b068eaa55ff 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
@@ -42,6 +42,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Alternate application launcher for Xfce";
+    mainProgram = "xfce4-popup-whiskermenu";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }