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 insideicewm(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 tomenuprog, 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 therunoncekeyword. 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 themenuprogkeyword, 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 theicewm(1)configuration directories, or the full path to a file. the file is used with themenufilekeyword 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/icewmor in$HOME/.icewmsince 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
- arch rolling: icewm 4.1.0-1 Β· LGPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms