---
name: "icewm-menu"
section: "5"
platform: "linux"
package: "icewm"
version: "4.1.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/icewm-menu"
---

# icewm-menu(5)

### NAME

```
 icewm-menu - icewm menu configuration file
```

### SYNOPSIS

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

### DESCRIPTION

The *menu* file is responsible for configuring most of the [**icewm**(1)](/icewm/1.md) root menu and the start menu.

A menu that gives access to applications; usually customized by the user. The [**icewm-menu-fdo**(1)](/icewm-menu-fdo/1.md) program generates a default menu that contains most of the systems desktop applications. Similar programs are **xdg\_menu**(1), **mmaker**(1), **xde-menu**(1) and **xdgmenumaker**(1).

### FORMAT

The file contains lines with the following syntax:

- **prog** **"***title***"** *icon* *program* *options*

  Specifies a program to execute when the menu item is selected.

- **restart** **"***title***"** *icon* *program* *options*

  Specifies a program to replace the window manager when the menu item is selected.  This is for launching other window managers from within [**icewm**(1)](/icewm/1.md).

- **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 present, the program will not be run again.

- **menu** **"***title***"** *icon* **{** # contained items **}**

  Specifies a sub-menu.  The lines that appear between the braces can be any menu item described here.

- **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.

- **menuprogreload** **"***title***"** *icon* *timeout* *program* *options*

  Similar to **menuprog**, but after at least *timeout* seconds the menu is regenerated.

- **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.

Where

- **prog**, **restart**, **runonce**, **menu**, **menufile**, **menuprog**, **menuprogreload**, **include**, **includeprog**, **separator**

  These are literal string keywords.

- **"***title***"**

  This is the *title* string associated with the menu item that is displayed in the menu.  When the *title* contains spaces, the title must be surrounded by double quotes (`""`).

- *icon*

  Is the name of the icon file (with or without extension) or the full path to an icon file.

- **"**\[*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 is used with the **runonce** keyword.

- *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 is used for dynamic menus.

  *options* are the options and arguments passed to the *program* verbatim.

- *filename*

  *filename* is the name of the file relative to one of the [**icewm**(1)](/icewm/1.md) 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)](/icewm/1.md):

```
 # 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
```

### 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.

### SEE ALSO

[**icewm**(1)](/icewm/1.md), [**icewm-menu-fdo**(1)](/icewm-menu-fdo/1.md).

### AUTHOR

Brian Bidulock \<mailto:bidulock@openss7.org\>.

### LICENSE

**IceWM** is licensed under the GNU Library General Public License. See the *COPYING* file in the distribution.
