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-entries
j4-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
-v
INFO
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-parsing
This flag is mutually exclusive with
--desktop-file-quirks
.
--version
-h
,
--help
Some 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:
default
j4-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
.
xterm
xterm
calling convention:
[terminal emulator
]
-title
[desktop app Name
]
-e
[command line
]
Default value of --term
is
xterm
. Other compatible terminal emulators
include: rxvt-unicode
.
alacritty
alacritty
calling convention:
[terminal emulator
]
-T
[desktop app Name
]
-e
[command line
]
Default value of --term
is
alacritty
. Other compatible terminal emulators
include: st
, foot
.
kitty
kitty
calling convention:
[terminal emulator
]
-T
[desktop app Name
]
[command line
]
Default value of --term
is
kitty
. Other compatible terminal emulators
include: foot
.
terminator
terminator
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-terminal
gnome-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:
default
j4-dmenu-desktop --term-mode custom --term
"i3-sensible-terminal -e {script}"
’xterm
j4-dmenu-desktop --term-mode custom --term
"xterm -title {name} -e {cmdline@}"
’alacritty
j4-dmenu-desktop --term-mode custom --term
"alacritty -T {name} -e {cmdline@}"
’kitty
j4-dmenu-desktop --term-mode custom --term
"kitty -T {name} {cmdline@}"
’terminator
j4-dmenu-desktop --term-mode custom --term
"terminator -T {name} -x {cmdline@}"
’gnome-terminal
j4-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.
I3SOCK
XDG_DATA_HOME
XDG_DATA_DIRS
XDG_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 |