ICEWM-MENU(5)

πŸ’– ICEWM-MENU(5) πŸ’–

okay so bestie, welcome to the ICEWM-MENU page, living in section 5, aka Standards, Environments and Macros β€” yes that's the whole vibe of this lil corner of the manual, and we're gonna get through it together 🫢


✨ NAME ✨

icewm-menu β€” the icewm menu configuration file, like the actual blueprint of your whole right-click situation πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

$ICEWM_PRIVCFG/menu
$XDG_CONFIG_HOME/icewm/menu
$HOME/.icewm/menu
/usr/etc/icewm/menu
/usr/share/icewm/menu

that's it, that's the list, those are the places it looks, slay ✨


🌸 DESCRIPTION 🌸

okay so the menu file is literally responsible for configuring most of the icewm(1) root menu and the start menu. like, the whole thing. main character file fr.

it's a menu that gives you access to your applications β€” and usually the user customizes it themselves πŸ’–

also!! the icewm-menu-fdo(1) program generates a default menu that contains most of the system's desktop applications, which is iconic of it. and there are similar programs out there doing similar things: xdg_menu(1), mmaker(1), xde-menu(1) and xdgmenumaker(1). bestie buffet, honestly πŸ“


πŸ¦‹ FORMAT πŸ¦‹

the file contains lines with the following syntax, and this is the part you actually came here for, so let's go πŸ‘‘

  • prog "title" icon program options β€” specifies a program to execute when the menu item is selected. simple as that, no cap.
  • restart "title" icon program options β€” specifies a program to replace the window manager when the menu item is selected. this one's for launching other window managers from inside icewm(1), so like... a whole personality switch 😭
  • runonce "title" icon "[name][.class]" program options β€” specifies a program to execute when the menu item is selected; however, if a window of the specified name and class is already present, the program will not be run again. it checks first. considerate king behavior πŸ‘‘
  • menu "title" icon { # contained items } β€” specifies a sub-menu! the lines that appear between the braces can be any menu item described here. nesting era πŸ’…
  • menufile "title" icon "filename" β€” specifies a file from which to collect sub-menu items (lines) and place them at this point in the menu πŸŽ€
  • menuprog "title" icon program options β€” specifies a program that will print sub-menu items on standard output, which will be collected and placed in the sub-menu at this point. dynamic menu moment ✨
  • menuprogreload "title" icon timeout program options β€” similar to menuprog, but after at least timeout seconds the menu is regenerated. refresh era πŸ”₯
  • include "filename" β€” read additional entries from the file filename.
  • includeprog program options β€” read additional entries from the output of program options.
  • separator β€” a separator for menu items. the little line. the divider. the pause for breath 🫢

πŸ’œ Where πŸ’œ

like, what do all these words mean, bestie:

  • prog, restart, runonce, menu, menufile, menuprog, menuprogreload, include, includeprog, separator β€” these are literal string keywords. type them exactly, they're not vibes, they're syntax.
  • "title" β€” this is the title string associated with the menu item that is displayed in the menu. and listen: when the title contains spaces, the title must be surrounded by double quotes (""). non-negotiable πŸ™ˆ
  • icon β€” is the name of the icon file (with or without extension) or the full path to an icon file. cute either way πŸŽ€
  • "[name][.class]" β€” name is the resource name of a window launched by program and class is the resource class of the window. only one of name or class need be specified. this is used to determine whether the program is already running, and it's used with the runonce keyword. iykyk πŸ’…
  • program options β€” program is the name of the executable or full path to the executable file that will be run in response to selecting the menu item. when used with the menuprog keyword, the program must print on standard output the contents of the menu, and it's used for dynamic menus. options are the options and arguments passed to the program verbatim β€” no editing, no filtering, no "improving", literally verbatim fr fr.
  • filename β€” filename is the name of the file relative to one of the icewm(1) configuration directories, or the full path to a file. the file is used with the menufile keyword and specifies the file from which to read further menu items 🌈

⭐ EXAMPLES ⭐

following is the example menu file that ships with icewm(1) β€” actual real shipped content, look at her go:

# This is an example for IceWM's menu definition file.
#
# Place your variants in /usr/etc/icewm or in $HOME/.icewm
# since modifications to this file will be discarded when you
# (re)install icewm.
#
prog xterm xterm xterm
prog rxvt xterm rxvt -bg black -cr green -fg white -C -fn 9x15 -sl 500
prog fte fte fte
prog NEdit nedit nedit
prog Mozilla mozilla mozilla
prog XChat xchat xchat
prog Gimp gimp gimp
separator
menuprog "Desktop Apps" folder icewm-menu-fdo
menufile Programs folder programs
menufile Tool_bar folder toolbar

see how there's a separator in the middle? that's the little break between the apps and the generated stuff. chef's kiss πŸ‘‘

also lowkey important: the comment in that file says place your variants in /usr/etc/icewm or in $HOME/.icewm since modifications to this file will be discarded when you (re)install icewm. so don't edit the shipped one, bestie 😭

🧚 FILES 🧚

locations for the menu file are as follows:

$ICEWM_PRIVCFG/menu
$XDG_CONFIG_HOME/icewm/menu
$HOME/.icewm/menu
/usr/etc/icewm/menu
/usr/share/icewm/menu

the locations are searched in the order listed; the first file found is read and the remainder ignored. first come, first served, periodt πŸ’…


🌈 SEE ALSO 🌈

icewm(1), icewm-menu-fdo(1) β€” go read those next, they're the supporting cast and they ate πŸ’–


πŸ‘‘ AUTHOR πŸ‘‘

Brian Bidulock <mailto:bidulock@openss7.org>. icon behavior, honestly 🫢


πŸ’€ LICENSE πŸ’€

IceWM is licensed under the GNU Library General Public License. see the COPYING file in the distribution β€” like, actually see it, it's right there πŸ“„βœ¨


okay that's the whole page bestie, you're officially a menu file expert now πŸŒΈπŸ¦‹

sign-off: this was icewm 4.1.0, dated 2026-08-06, page ICEWM-MENU(5) β€” mwah, go make a gorgeous menu πŸ’œ

πŸ“¦ where this page comes from