diff -urN --no-dereference icewm-3.5.0/icewm.spec.in icewm-3.5.0_new/icewm.spec.in
--- icewm-3.5.0/icewm.spec.in	2024-05-20 17:47:21.000000000 +0300
+++ icewm-3.5.0_new/icewm.spec.in	2024-05-28 20:47:14.335469987 +0300
@@ -98,7 +98,6 @@
 %{pkgdata}/themes/default/*
 
 /usr/share/xsessions/icewm-session.desktop
-/usr/share/applications/icewm.desktop
 
 %if %{?_with_menus_gnome2:1}%{!?_with_menus_gnome2:0}
 
diff -urN --no-dereference icewm-3.5.0/lib/CMakeLists.txt icewm-3.5.0_new/lib/CMakeLists.txt
--- icewm-3.5.0/lib/CMakeLists.txt	2024-05-20 17:47:21.000000000 +0300
+++ icewm-3.5.0_new/lib/CMakeLists.txt	2024-05-28 20:47:40.750972820 +0300
@@ -19,7 +19,7 @@
     endif()
 endforeach()
 
-foreach (dtop icewm.desktop icewm-session.desktop)
+foreach (dtop icewm-session.desktop)
     FILE(READ ${CMAKE_CURRENT_SOURCE_DIR}/${dtop} text)
     STRING(REGEX REPLACE "Exec=/[a-z/]*/" "Exec=${BINDIR}/" text "${text}")
     FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${dtop} "${text}")
diff -urN --no-dereference icewm-3.5.0/lib/icewm.desktop icewm-3.5.0_new/lib/icewm.desktop
--- icewm-3.5.0/lib/icewm.desktop	2024-05-20 17:47:21.000000000 +0300
+++ icewm-3.5.0_new/lib/icewm.desktop	1970-01-01 03:00:00.000000000 +0300
@@ -1,43 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Type=XSession
-Name=IceWM
-GenericName=Window Manager
-GenericName[da]=Vindueshåndtering
-GenericName[sv]=Fönsterhanterare
-GenericName[es]=Administrador de ventanas
-GenericName[fr]=Gestionnaire de Fenêtres
-GenericName[id]=Pengelola Jendela
-GenericName[lt]=Langų tvarkytuvė
-GenericName[pt]=Gestor de Janelas
-GenericName[pt_BR]=Gerenciador de Janelas
-GenericName[tr]=Pencere Yöneticisi
-GenericName[uk]=Менеджер вікон IceWM
-Comment=Simple and fast window manager
-Comment[da]=Simpel og hurtig vindueshåndtering
-Comment[sv]=Simpel och snabb fönsterhanterare
-Comment[es]=Administrador de ventanas simple y rápido
-Comment[id]=Pengelola jendela sederhana dan cepat
-Comment[lt]=Paprasta ir greita langų tvarkytuvė
-Comment[pt]=Gestor de janelas simples e rápido
-Comment[pt_BR]=Gerenciador simples e rápido de janelas
-Comment[tr]=Basit ve hızlı bir pencere yöneticisi
-Comment[uk]=Простий та швидкий менеджер вікон
-Icon=icewm
-TryExec=/usr/bin/icewm
-Exec=/usr/bin/icewm
-NoDisplay=false
-Hidden=false
-Categories=WindowManager;Application;System;
-StartupNotify=false
-X-GNOME-Autostart-Notify=false
-X-GNOME-Autostart-Phase=WindowManager
-X-GNOME-Provides=windowmanager
-X-GNOME-WMName=icewm
-DesktopNames=ICEWM
-X-LightDM-DesktopName=icewm
-
-[Window Manager]
-Name=icewm
-SessionManaged=false
-StartupNotification=false
diff -urN --no-dereference icewm-3.5.0/lib/Makefile.am icewm-3.5.0_new/lib/Makefile.am
--- icewm-3.5.0/lib/Makefile.am	2024-05-20 17:47:21.000000000 +0300
+++ icewm-3.5.0_new/lib/Makefile.am	2024-05-28 20:47:53.750728259 +0300
@@ -2,12 +2,10 @@
 xsessiondir = $(datadir)/xsessions
 
 dist_xsession_DATA = \
-	icewm.desktop \
 	icewm-session.desktop
 
 install-data-hook:
 	$(AM_V_GEN)sed -i 's|Exec=/.*/|Exec=$(bindir)/|' \
-	    $(DESTDIR)$(xsessiondir)/icewm.desktop \
 	    $(DESTDIR)$(xsessiondir)/icewm-session.desktop
 
 dist_pkgdata_DATA = \
diff -urN --no-dereference icewm-3.5.0/lib/Makefile.in icewm-3.5.0_new/lib/Makefile.in
--- icewm-3.5.0/lib/Makefile.in	2024-06-02 07:48:10.614173966 +0300
+++ icewm-3.5.0_new/lib/Makefile.in	2024-06-02 07:53:45.898010054 +0300
@@ -372,7 +372,6 @@
 top_srcdir = @top_srcdir@
 xsessiondir = $(datadir)/xsessions
 dist_xsession_DATA = \
-	icewm.desktop \
 	icewm-session.desktop
 
 dist_pkgdata_DATA = \
@@ -1240,7 +1239,6 @@
 
 install-data-hook:
 	$(AM_V_GEN)sed -i 's|Exec=/.*/|Exec=$(bindir)/|' \
-	    $(DESTDIR)$(xsessiondir)/icewm.desktop \
 	    $(DESTDIR)$(xsessiondir)/icewm-session.desktop
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff -urN --no-dereference icewm-3.5.0/src/appnames.h icewm-3.5.0_new/src/appnames.h
--- icewm-3.5.0/src/appnames.h	2024-05-20 17:47:21.000000000 +0300
+++ icewm-3.5.0_new/src/appnames.h	2024-05-29 07:23:18.590110719 +0300
@@ -36,6 +36,10 @@
 #define ICESOUNDEXE "icesound" QUOTE(EXEEXT)
 #endif
 
+#ifndef GORG64EXE
+#define GORG64EXE "gorg64" QUOTE(EXEEXT)
+#endif
+
 #ifndef ICESPLASH
 #define ICESPLASH nullptr
 #endif
diff -urN --no-dereference icewm-3.5.0/src/icesm.cc icewm-3.5.0_new/src/icesm.cc
--- icewm-3.5.0/src/icesm.cc	2024-05-20 17:47:21.000000000 +0300
+++ icewm-3.5.0_new/src/icesm.cc	2024-05-29 07:32:40.406604752 +0300
@@ -205,6 +205,7 @@
         tray_pid = -1;
         term_pid = -1;
         sound_pid = -1;
+        gorg64_pid = -1;
         rescue_pid = -1;
         crashtime = zerotime();
 
@@ -351,6 +352,22 @@
         }
     }
 
+    void rungorg64(bool quit = false) {
+        const char *args[12] = { GORG64EXE, "", nullptr };
+        if (quit) {
+            if (gorg64_pid != -1) {
+                kill(gorg64_pid, SIGTERM);
+                int status;
+                waitpid(gorg64_pid, &status, 0);
+            }
+            gorg64_pid = -1;
+        }
+        else {
+            appendOptions(args, 2, ACOUNT(args));
+            gorg64_pid = runProgram(args[0], args);
+        }
+    }
+
     void runWM(bool quit = false) {
         if (rescue_pid != -1) {
             kill(rescue_pid, SIGTERM);
@@ -655,6 +672,7 @@
     int tray_pid;
     int term_pid;
     int sound_pid;
+    int gorg64_pid;
     int rescue_pid;
     timeval crashtime;
     mstring wmoptions;
@@ -773,6 +791,7 @@
     xapp.runWM();
     xapp.runIcesound();
     xapp.runIcewmbg();
+    xapp.rungorg64();
 
     int status = xapp.mainLoop();
 
@@ -781,6 +800,7 @@
     xapp.runWM(true);
     xapp.runIcewmbg(true);
     xapp.runIcesound(true);
+    xapp.rungorg64(true);
 
     return status;
 }
