| J4-DMENU-DESKTOP(1) | General Commands Manual | J4-DMENU-DESKTOP(1) |
j4-dmenu-desktop —
fast desktop menu
j4-dmenu-desktop |
[OPTIONS] |
j4-dmenu-desktop is a faster replacement
for i3-dmenu-desktop.
It's purpose is to find .desktop files and offer you a menu to start an application using dmenu.
The arguments are as follows:
-b,
--display-binary-f,
--display-binary-base-d,
--dmenu command$SHELL) or /bin/sh.--no-exec--no-generic-t,
--term command--term-mode
modej4-dmenu-desktop on how it should execute
terminal emulator. This flag also changes the default value of
--term flag.
Possible values are:
default |
xterm |
alacritty
|
kitty
|
terminator
|
gnome-terminal
|
custom
See TERM MODE for more info.
--usage-log
file--prune-bad-usage-log-entriesj4-dmenu-desktop was unable to find a desktop
file. This can happen when an app marked in usage log no longer exists
because it was uninstalled.-x,
--use-xdg-de$XDG_CURRENT_DESKTOP to determine
the desktop environment.--wait-on
pathecho >
path’). Every time this happens a menu will be shown.
Desktop files are parsed ahead of time. Performing
‘echo -n q > path’ will exit the
program.--wrapper
wrapper--wrapper "i3
exec"’ and ‘--wrapper
"sway exec"’ is deprecated, use
--i3-ipc instead.-I,
--i3-ipc--skip-i3-exec-check--wrapper "i3
exec" or --wrapper "sway exec".
j4-dmenu-desktop has direct support for i3/Sway through the
-I flag which should be used instead of the
--wrapper option. j4-dmenu-desktop detects this
and exits. This flag overrides this behaviour.-i,
--case-insensitive-vINFO is
used, when twice, DEBUG is used. See
LOG LEVELS.--log-level
ERROR | WARNING |
INFO | DEBUG-v. This flag takes
precedence over -v.--log-file
fileINFO loglevel is used.--log-file-level
ERROR | WARNING |
INFO | DEBUG--desktop-file-quirks
ARGSj4-dmenu-desktop's desktop file parsing
mechanism to accommodate desktop files not conforming to the Desktop Entry
Specification. Several modes may be specified. They shall be separated by
a comma (,). Each mode has a
nomode counterpart, which disables the named mode.
To disable all modes, use --strict-parsing. A
warning is printed when a desktop file makes use of an enabled quirk.
ARGS can contain the following modes:
Exec key of
desktop files. Enabled by default.Exec key of desktop files. Useful for desktop
files generated by distrobox. Enabled by default.If this flag is specified multiple times, only the last one takes effect. They are not merged nor combined in any way.
This flag is mutually exclusive with
--strict-parsing.
--strict-parsingThis flag is mutually exclusive with
--desktop-file-quirks.
--version-h,
--helpSome arguments support setting the log level.
j4-dmenu-desktop uses the following log levels:
ERROR, WARNING,
INFO and DEBUG. The
WARNING (and ERROR)
loglevels are displayed by default. Lower loglevels automatically enable
higher ones.
There are several modes available for the
--term-mode flag:
defaultj4-dmenu-desktop never deletes it itself. It sets
the title of terminal emulator using OSC escape sequences (see
console_codes(4)). Terminal emulator is executed as
follows:
[terminal emulator]
-e
[generated temporary script]Other modes should be preferred. This approach is universal but fragile.
Default value of --term is
i3-sensible-terminal.
xtermxterm calling convention:
[terminal emulator]
-title
[desktop app Name]
-e
[command line]Default value of --term is
xterm. Other compatible terminal emulators
include: rxvt-unicode.
alacrittyalacritty calling convention:
[terminal emulator]
-T
[desktop app Name]
-e
[command line]Default value of --term is
alacritty. Other compatible terminal emulators
include: st, foot.
kittykitty calling convention:
[terminal emulator]
-T
[desktop app Name]
[command line]Default value of --term is
kitty. Other compatible terminal emulators
include: foot.
terminatorterminator calling convention:
[terminal emulator]
-T
[desktop app Name]
-x
[command line]Default value of --term is
terminator. Other compatible terminal emulators
include: xfce4-terminal.
gnome-terminalgnome-terminal calling convention:
[terminal emulator]
--title
[desktop app Name]
--
[command line]Default value of --term is
gnome-terminal.
custom--term.
When --term-mode custom is
passed, an alternative system for handling --term
is used. It is handled as a list of arguments separated by space ( ). No
other whitespace characters act as an argument separator (this behavior
differs from the shell).
Multiple consecutive space characters will be treated as a
single space (except for escaped spaces). Leading and trailing spaces in
--term will be ignored. This means that it is
not possible to pass zero-length arguments to
--term.
The contents of --term are
not executed through a shell. This means that shell
constructs like redirection, && and
|| chaining and more will not work. If you need
this, you can either create a wrapper shell script and call it from
--term or you can call /bin/sh
-c or some other shell directly from
--term (although using a wrapper script should
be preferred, because it is clearer and simpler to use).
The following placeholders are recognised:
name}cmdline@}j4-dmenu-desktop
--term-mode custom
--term
"-e={cmdline@}"’ is
invalid.cmdline*}cmdline@} should be preferred over
{cmdline*}. Arguments will be escaped;
Contents of {cmdline*} can be passed to
/bin/sh -c safely.script}j4-dmenu-desktop. This is the same script used
by --term-mode
default. The script will be generated only if
this placeholder is specified at least once in
--term. The script sets terminal title itself,
it shouldn't be necessary to set it manually.
{cmdline@} and
{cmdline*} should be preferred over
{script}.
The following escape sequences are recognised:
Undefined escape sequences and placeholders will result in an error message and program termination.
Default value of --term is same as of
default term mode.
This is how other modes look when written using
custom mode:
defaultj4-dmenu-desktop --term-mode custom --term
"i3-sensible-terminal -e {script}"’xtermj4-dmenu-desktop --term-mode custom --term
"xterm -title {name} -e {cmdline@}"’alacrittyj4-dmenu-desktop --term-mode custom --term
"alacritty -T {name} -e {cmdline@}"’kittyj4-dmenu-desktop --term-mode custom --term
"kitty -T {name} {cmdline@}"’terminatorj4-dmenu-desktop --term-mode custom --term
"terminator -T {name} -x {cmdline@}"’gnome-terminalj4-dmenu-desktop --term-mode custom --term
"gnome-terminal --title {name} --
{cmdline@}"’This is how the deprecated -e flag of gnome-terminal could be used:
j4-dmenu-desktop --term-mode
custom --term "gnome-terminal --title {name} -e
{cmdline*}"This is how placeholders can be escaped:
j4-dmenu-desktop --term-mode
custom --term "echo \{name}\ \{cmdline*}"--term receives two arguments:
‘echo’ and
‘{name} {cmdline*}’, no
placeholders are replaced. j4-dmenu-desktop
would see three arguments instead of two if the second
\ had not been passed.
I3SOCKXDG_DATA_HOMEXDG_DATA_DIRSXDG_CURRENT_DESKTOP--use-xdg-de.Standard environmental variables for locales are acknowledged in
addition to those listed above. The exact environmental variables used are
implementation-dependent, but setting LC_MESSAGES,
LC_ALL or LANG should
generally work.
Copyright (C) 2013 enkore <public+j4-dmenu-desktop@enkore.de>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
| January 10, 2024 | Debian |