icewm-menu-fdo - menu generator for .desktop files
icewm-menu-fdo [OPTIONS] [FILENAME]
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.
- [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.
- -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.
This utility is not normally used directly. It is used as the
executable in a menuprog entry in a icewm-menu(5).
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
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.
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).
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.
Base Directory Specification, Desktop Entry Specification, Desktop
Menu Specification, icewm(1), icewm-menu(5),
icewm-preferences(5), icewm-programs(5).
Please report bugs at
<https://github.com/bbidulock/icewm/issues>.
Eduard Bloch <mailto:edi@gmx.de>.
See --copying for full copyright notice and copying
permissions.
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.