FreeBSD Manual Pages
ICEWM-MENU-FDO(1) User Commands ICEWM-MENU-FDO(1)
NAME
icewm-menu-fdo - menu generator for .desktop files
SYNOPSIS
icewm-menu-fdo [OPTIONS] [FILENAME]
DESCRIPTION
icewm-menu-fdo generates a menu for the IceWM window manager from XDG menu
descriptors (aka FreeDesktop.Org .desktop files). By including this in the
icewm-menu(1), the system applications become available in the icewm start
menu.
ARGUMENTS
[FILENAME]
The optional FILENAME argument is the location of a .desktop file.
When given, icewm-menu-fdo launches the application using the "Exec"
line from the desktop file.
OPTIONS
-g, --generic
Include the generic name in parentheses in the title of prog entries.
--seps
Print a leading and a trailing separator.
--sep-before
Print a leading separator.
--sep-after
Print a trailing separator.
--no-sub-cats
Don't nest subcategories in submenus. The correctness of the pigeonhol-
ing depends on correct application description which shall always spec-
ify a main category. Incorrectly tagged descriptions will be sorted
into the "Other" menu.
-o, --output=FILE
Write the output to FILE.
-t, --terminal=NAME
Use NAME to start a terminal emulator that supports the '-e' option.
-s, --no-lone-app
Attempt to detect a single application with no other content in lower
submenus and move this one to the parent submenu. This also detects
menus with just one submenu inside, attempting to move it's application
items to the parent menu where possible.
-S, --no-lone-hint
Decorate app entries moved by the -s option with a hint about the orig-
inal menu where it would be displayed otherwise. Implies -s.
-d TIMEOUT, --deadline-apps=TIMEOUT
Specifies a certain timeout value in milliseconds, so that the reading
of *.desktop files (for applications) is aborted by that time (or soon
after). This can help to avoid extended blocking of the caller. Also
see -D for the subsequent operation.
-D TIMEOUT, --deadline-all=TIMEOUT
Specifies a total timeout in milliseconds after which the application
has to terminate, regardless of the final menu construction and decora-
tion reading (applied after *.desktop file reading) was finished or
not. This would cause a printing of menu contents which were calculated
so far, therefore the timeout should be set a certain time before the
actual hard deadline by which the program should be terminated. The
output may lack translations and icons.
-l LANGUAGE, --lang=LANGUAGE
Instead of the environment variable "LANG" use LANGUAGE for the locale.
-L MAX, --limit-max-len=MAX
Cut the calculated program titles (after translation and adding hints,
see "-C" and "-g") at "MAX" characters, followed by an ellipsis. This
can help to restrict the width of the menus in cases where some entry
length might get out of hand.
--flat
Display apps from all categories in one level with the title containing
the category information as prefix.
-F sep, --flat-sep=sep
When used with "--flat", the specified character sequence is used as
separator between the section titles.
-m filter, --match=filter
Specifies a filter to show only apps that contain this as substring
within their title.
-M filter, --imatch=filter
Like "--match" but applied with any letter case. Might deliver incor-
rect results with some locale settings.
--match-sec
Apply the filter from "--match" or "--imatch" to both, apps and section
titles.
--match-osec
Apply the filter from "--match" or "--imatch" to only to section ti-
tles.
-h, --help
Print a brief usage statement to stdout and exit.
-V, --version
Print the program version to stdout and exit.
-C, --copying
Print copying permissions to stdout for the program and exit.
USAGE
This utility is not normally used directly. It is used as the executable in
a menuprog entry in a icewm-menu(5).
EXAMPLES
The following line in a icewm-menu(5) file will dynamically generate a com-
prehensive set of menus for easy access to .desktop files, added in a sub-
menu called "Desktop Apps".
menuprog "Desktop Apps" folder icewm-menu-fdo
It can also be embedded directly into the loading menu like in the follow-
ing example. There could be a separator line added before or after (or
both) in case where the program could generate useful content.
includeprog icewm-menu-fdo --seps
ENVIRONMENT
XDG_DATA_HOME or XDG_DATA_DIRS are considered as suggested by XDG Base Di-
rectory Specification.
TERMINAL may define a terminal emulator that supports the '-e' option. The
option is ignored if the specified command could not be found and a default
is used instead.
CONFORMING TO
icewm-menu-fdo complies roughly to the XDG .desktop file and menu specifi-
cation, see "Desktop Entry Specification" (Date: 2020-04-27, Version: Ver-
sion 1.5) and "Desktop Menu Specification" (Date: 20 August 2016, Version:
Version 1.1).
CAVEATS
The icewm-menu-fdo program is only built when the icewm(1) package is con-
figured with the --enable-menus-fdo option and only works with --en-
able-i18n option.
Integration of XDG menu files is somewhat of varying quality, heavily de-
pending on the correctness of metadata like translations and sections (menu
category) hints.
SEE ALSO
Base Directory Specification, Desktop Entry Specification, Desktop Menu
Specification, icewm(1), icewm-menu(5), icewm-preferences(5), icewm-pro-
grams(5).
BUGS
Please report bugs at <https://github.com/ice-wm/icewm/issues>.
AUTHOR
Eduard Bloch <mailto:edi@gmx.de>.
See --copying for full copyright notice and copying permissions.
LICENSE
IceWM is licensed under the GNU Library General Public License. See the
COPYING file in the distribution or use the --copying flag to display copy-
ing permissions.
icewm 4.0.0 2026-01-01 ICEWM-MENU-FDO(1)
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=icewm-menu-fdo&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>
