When a new program is installed, IceWM doesn’t automatically add the program to the menu. That’s not much of a problem, though.
It’s possible to manage the menu using manual editing but that doesn’t seem like the right solution. The method I use is to rebuild the menu based on the current desktop files.
In Arch Linux, I installed package archlinux-xdg-menu. The menu can then be rebuilt with the following command:
$ xdg_menu --format icewm --fullmenu --root-menu /etc/xdg/menus/arch-applications.menu > ~/.icewm/menu
I put this command in a shell script and execute the script after installing a new program.
The menu may contain unwanted entries. My solution to remove a menu entry is to disable the associated desktop file and then rebuild the menu. I do the following to disable a desktop file:
# cd /usr/share/applications/ # gzip program.desktop
where program.desktop is the name of the desktop file to be excluded from the menu.
I haven’t had the case where a new program did not have a desktop file, but should that ever happen it’s possible to create the file. See http://standards.freedesktop.org/desktop-entry-spec/latest/ for the spec, or duplicate an existing desktop file and edit it as desired.
I had issues with icons not appearing on the menu for some programs (e.g., for PCManFM). This situation improved after I installed package gnome-icon-theme. For any entry that still didn’t have an icon I edited its desktop file to set the full path to the icon and then rebuilt the menu.