ICEWM-MENU-FDO(1)
πΈ icewm-menu-fdo(1) β the manual, but make it group chat πΈ
okay so bestie, you're reading the User Commands page for icewm-menu-fdo, section 1 of the manual. buckle up, it's actually a slay little utility π
β¨ NAME β¨
icewm-menu-fdo β menu generator for .desktop files. literally what it says on the tin, no cap π
β¨ SYNOPSIS β¨
icewm-menu-fdo [OPTIONS] [FILENAME]
β¨ DESCRIPTION β¨
So icewm-menu-fdo β¨generatesβ¨ a menu for the IceWM window manager out of XDG menu descriptors (you may know them as FreeDesktop.Org .desktop files, iykyk). And the whole vibe is: you include this thing in the icewm-menu(1), and boom β all your system applications just show up in the icewm start menu. iconic behavior honestly π
β¨ ARGUMENTS β¨
[FILENAME]β this optional argument is the location of a.desktopfile. when you give it one,icewm-menu-fdolaunches the application using the"Exec"line from that desktop file. it's giving "just run the app please" π«Ά
β¨ OPTIONS β¨
-g,--genericβ include the generic name in parentheses in the title of prog entries. cute little extra context π--sepsβ print a leading and a trailing separator. both. yes. periodt.--sep-beforeβ print a leading separator only.--sep-afterβ print a trailing separator only.--no-sub-catsβ don't nest subcategories in submenus. heads up tho: 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 π so likeβ¦ tag your stuff right bestie.-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. lowkey a cleanup queen π§-S,--no-lone-hintβ decorate app entries moved by the-soption 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*.desktopfiles (for applications) is aborted by that time (or soon after). this can help to avoid extended blocking of the caller. also see-Dfor the subsequent operation β³-D TIMEOUT,--deadline-all=TIMEOUTβ specifies a total timeout in milliseconds after which the application has to terminate, regardless of whether the final menu construction and decoration reading (applied after*.desktopfile 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 π¬ so like, plan ahead.-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 π (she warned us, fr fr)--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. your emergency exit π-V,--versionβ print the program version to stdout and exit.-C,--copyingβ print copying permissions to stdout for the program and exit.
β¨ USAGE β¨
okay so real talk: this utility is not normally used directly. it's used as the executable in a menuprog entry in a icewm-menu(5). it's a behind-the-scenes main character, not a front-facing one π
β¨ 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_HOMEorXDG_DATA_DIRSare considered as suggested by XDG Base Directory Specification. πTERMINALmay 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. (so if it's not there, she just picks a default, nbd π)
β¨ 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). "roughly" is doing a lot of work there and I respect it π
β¨ CAVEATS β¨
β οΈ bestie listen: theicewm-menu-fdoprogram is only built when theicewm(1)package is configured with the--enable-menus-fdooption and only works with--enable-i18noption. no flags, no program, that's the rule π
Integration of XDG menu files is somewhat of varying quality, heavily depending on the correctness of metadata like translations and sections (menu category) hints. so likeβ¦ it's giving "depends on your data being cute" π
β¨ 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/ice-wm/icewm/issues>. π go off, tell them everything.
β¨ 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. πβ¨
okay that's the whole page, you ate that honestly π«Ά this was icewm 4.1.0, dated 2026-08-06 β manual page number one and everything, ICEWM-MENU-FDO(1). mwah, go read your .desktop files π
π¦ 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