.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "ICEWM-MENU-FDO 1" .TH ICEWM-MENU-FDO 1 2026-08-06 "icewm\ 4.1.0" "User Commands" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SS NAME .IX Subsection "NAME" .Vb 1 \& icewm\-menu\-fdo \- menu generator for .desktop files .Ve .SS SYNOPSIS .IX Subsection "SYNOPSIS" \&\fBicewm\-menu\-fdo\fR [\fIOPTIONS\fR] [\fIFILENAME\fR] .SS DESCRIPTION .IX Subsection "DESCRIPTION" \&\fBicewm\-menu\-fdo\fR generates a menu for the \fBIceWM\fR window manager from XDG menu descriptors (aka FreeDesktop.Org \fI.desktop\fR files). By including this in the \fBicewm\-menu\fR\|(1), the system applications become available in the icewm start menu. .SS ARGUMENTS .IX Subsection "ARGUMENTS" .IP [\fIFILENAME\fR] 4 .IX Item "[FILENAME]" The optional \fIFILENAME\fR argument is the location of a \fI.desktop\fR file. When given, \fBicewm\-menu\-fdo\fR launches the application using the \f(CW\*(C`Exec\*(C'\fR line from the desktop file. .SS OPTIONS .IX Subsection "OPTIONS" .IP "\fB\-g\fR, \fB\-\-generic\fR" 4 .IX Item "-g, --generic" Include the generic name in parentheses in the title of \fBprog\fR entries. .IP \fB\-\-seps\fR 4 .IX Item "--seps" Print a leading and a trailing separator. .IP \fB\-\-sep\-before\fR 4 .IX Item "--sep-before" Print a leading separator. .IP \fB\-\-sep\-after\fR 4 .IX Item "--sep-after" Print a trailing separator. .IP \fB\-\-no\-sub\-cats\fR 4 .IX Item "--no-sub-cats" Don\*(Aqt 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 \f(CW\*(C`Other\*(C'\fR menu. .IP "\fB\-o\fR, \fB\-\-output=FILE\fR" 4 .IX Item "-o, --output=FILE" Write the output to \fIFILE\fR. .IP "\fB\-t\fR, \fB\-\-terminal=NAME\fR" 4 .IX Item "-t, --terminal=NAME" Use \fINAME\fR to start a terminal emulator that supports the \*(Aq\-e\*(Aq option. .IP "\fB\-s\fR, \fB\-\-no\-lone\-app\fR" 4 .IX Item "-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\*(Aqs application items to the parent menu where possible. .IP "\fB\-S\fR, \fB\-\-no\-lone\-hint\fR" 4 .IX Item "-S, --no-lone-hint" Decorate app entries moved by the \fB\-s\fR option with a hint about the original menu where it would be displayed otherwise. Implies \fB\-s\fR. .IP "\fB\-d TIMEOUT\fR, \fB\-\-deadline\-apps=TIMEOUT\fR" 4 .IX Item "-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 \fB\-D\fR for the subsequent operation. .IP "\fB\-D TIMEOUT\fR, \fB\-\-deadline\-all=TIMEOUT\fR" 4 .IX Item "-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. .IP "\fB\-l LANGUAGE\fR, \fB\-\-lang=LANGUAGE\fR" 4 .IX Item "-l LANGUAGE, --lang=LANGUAGE" Instead of the environment variable \f(CW\*(C`LANG\*(C'\fR use LANGUAGE for the locale. .IP "\fB\-L MAX\fR, \fB\-\-limit\-max\-len=MAX\fR" 4 .IX Item "-L MAX, --limit-max-len=MAX" Cut the calculated program titles (after translation and adding hints, see \f(CW\*(C`\-C\*(C'\fR and \f(CW\*(C`\-g\*(C'\fR) at \f(CW\*(C`MAX\*(C'\fR 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. .IP \fB\-\-flat\fR 4 .IX Item "--flat" Display apps from all categories in one level with the title containing the category information as prefix. .IP "\fB\-F sep\fR, \fB\-\-flat\-sep=sep\fR" 4 .IX Item "-F sep, --flat-sep=sep" When used with \f(CW\*(C`\-\-flat\*(C'\fR, the specified character sequence is used as separator between the section titles. .IP "\fB\-m filter\fR, \fB\-\-match=filter\fR" 4 .IX Item "-m filter, --match=filter" Specifies a filter to show only apps that contain this as substring within their title. .IP "\fB\-M filter\fR, \fB\-\-imatch=filter\fR" 4 .IX Item "-M filter, --imatch=filter" Like \f(CW\*(C`\-\-match\*(C'\fR but applied with any letter case. Might deliver incorrect results with some locale settings. .IP \fB\-\-match\-sec\fR 4 .IX Item "--match-sec" Apply the filter from \f(CW\*(C`\-\-match\*(C'\fR or \f(CW\*(C`\-\-imatch\*(C'\fR to both, apps and section titles. .IP \fB\-\-match\-osec\fR 4 .IX Item "--match-osec" Apply the filter from \f(CW\*(C`\-\-match\*(C'\fR or \f(CW\*(C`\-\-imatch\*(C'\fR to only to section titles. .IP "\fB\-h\fR, \fB\-\-help\fR" 4 .IX Item "-h, --help" Print a brief usage statement to \fIstdout\fR and exit. .IP "\fB\-V\fR, \fB\-\-version\fR" 4 .IX Item "-V, --version" Print the program version to \fIstdout\fR and exit. .IP "\fB\-C\fR, \fB\-\-copying\fR" 4 .IX Item "-C, --copying" Print copying permissions to \fIstdout\fR for the program and exit. .SS USAGE .IX Subsection "USAGE" This utility is not normally used directly. It is used as the executable in a \fBmenuprog\fR entry in a \fBicewm\-menu\fR\|(5). .SS EXAMPLES .IX Subsection "EXAMPLES" The following line in a \fBicewm\-menu\fR\|(5) file will dynamically generate a comprehensive set of menus for easy access to \fI.desktop\fR files, added in a submenu called \f(CW\*(C`Desktop Apps\*(C'\fR. .PP .Vb 1 \& menuprog "Desktop Apps" folder icewm\-menu\-fdo .Ve .PP 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. .PP .Vb 1 \& includeprog icewm\-menu\-fdo \-\-seps .Ve .SS ENVIRONMENT .IX Subsection "ENVIRONMENT" \&\fBXDG_DATA_HOME\fR or \fBXDG_DATA_DIRS\fR are considered as suggested by XDG Base Directory Specification. .PP \&\fBTERMINAL\fR may define a terminal emulator that supports the \*(Aq\-e\*(Aq option. The option is ignored if the specified command could not be found and a default is used instead. .SS "CONFORMING TO" .IX Subsection "CONFORMING TO" \&\fBicewm\-menu\-fdo\fR complies roughly to the XDG \fI.desktop\fR 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). .SS CAVEATS .IX Subsection "CAVEATS" The \fBicewm\-menu\-fdo\fR program is only built when the \fBicewm\fR\|(1) package is configured with the \fB\-\-enable\-menus\-fdo\fR option and only works with \&\fB\-\-enable\-i18n\fR option. .PP Integration of XDG menu files is somewhat of varying quality, heavily depending on the correctness of metadata like translations and sections (menu category) hints. .SS "SEE ALSO" .IX Subsection "SEE ALSO" Base Directory Specification, Desktop Entry Specification, Desktop Menu Specification, \&\fBicewm\fR\|(1), \&\fBicewm\-menu\fR\|(5), \&\fBicewm\-preferences\fR\|(5), \&\fBicewm\-programs\fR\|(5). .SS BUGS .IX Subsection "BUGS" Please report bugs at . .SS AUTHOR .IX Subsection "AUTHOR" Eduard Bloch . .PP See \fB\-\-copying\fR for full copyright notice and copying permissions. .SS LICENSE .IX Subsection "LICENSE" \&\fBIceWM\fR is licensed under the GNU Library General Public License. See the \fICOPYING\fR file in the distribution or use the \fB\-\-copying\fR flag to display copying permissions.