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
pigeonholing depends on correct application description which
shall always specify 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
original 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 decoration 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
incorrect 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
titles.
-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 comprehensive set of menus for easy access to
.desktop files, added
in a submenu called "Desktop Apps".
menuprog "Desktop Apps" folder icewm-menu-fdo
It can also be embedded directly into the loading menu like in the
following 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 Directory 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
specification, see "Desktop Entry Specification" (Date: 2020-04-27,
Version: Version 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
configured with the
--enable-menus-fdo option and only works with
--enable-i18n option.
Integration of XDG menu files is somewhat of varying quality, heavily
depending 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-programs(5).
BUGS
Please report bugs at <https://github.com/bbidulock/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 copying permissions.
icewm 3.8.0 2025-06-22 ICEWM-MENU-FDO(1)