Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
fuzzel(1)		    General Commands Manual		     fuzzel(1)

NAME
       fuzzel -	Wayland	app launcher and picker

SYNOPSIS
       fuzzel [OPTIONS]...

DESCRIPTION
       As a launcher, fuzzel lists all available XDG applications in a search-
       able window.

       With  the --dmenu flag, fuzzel works like a general-purpose picker like
       dmenu, rofi or fzf. Options to choose from are provided	on  the	 STDIN
       and the selected	option is printed to STDOUT.

       The search box supports Emacs-like key bindings.

       Many  things  can  be configured	with fuzzel.ini(5) or command line op-
       tions:

       --config=PATH
	   Path	to configuration file, see fuzzel.ini(5) for details.

       --check-config
	   Verify configuration	and then exit with 0  if  ok,  otherwise  exit
	   with	1.

       -n,--namespace=NAMESPACE
	   Specifies the namespace for the spawned layer shell surface.	Useful
	   for	blocking  fuzzel out from screencasts in your compositor if it
	   shows sensitive information,	such as	passwords.

	   Default: launcher

       --cache=PATH
	   Use a custom	cache location.	Fuzzel uses this  file	to  cache  the
	   most	commonly launched applications (to be able to sort them	at the
	   top).

	   You can also	use this option	to enable caching of dmenu entries. It
	   is  recommended  that you use a separate cache file for each	"type"
	   of dmenu invocation;	i.e. one for the browser history, another  for
	   emojis etc.

	   Set to /dev/null to disable caching.

	   Default: XDG_CACHE_HOME/fuzzel

       -o,--output=OUTPUT
	   Specifies  the  monitor to display the window on. Autocompletion is
	   available for zsh and fish, or you can list the  available  outputs
	   with	wlr-randr or with Sway using swaymsg -t	get_outputs.

	   Example: DP-1

	   Default: Let	the compositor choose output.

       -f,--font=FONT[,FALLBACK1,FALLBACK2,...]
	   Comma  separated list of primary font, and fallback fonts, in Font-
	   Config format. See FONT FORMAT. Default: monospace.

       --use-bold
	   Allow fuzzel	to use bold fonts.

       -D,--dpi-aware=no|yes|auto
	   When	set to yes, fonts are sized using the monitor's	DPI, making  a
	   font	 of a given point size have the	same physical size, regardless
	   of monitor.

	   In this mode, the monitor's scaling factor is ignored; doubling the
	   scaling factor will not double the font size.

	   When	set to no, the monitor's DPI is	ignored. The font  is  instead
	   sized using the monitor's scaling factor; doubling the scaling fac-
	   tor does double the font size.

	   Finally,  if	 set  to auto, fonts will be sized using the monitor's
	   DPI if all monitors have a scaling factor of	1.  If	at  least  one
	   monitor  as	a  scaling factor larger than 1	(regardless of whether
	   the fuzzel window is	mapped on that monitor or not),	fonts will  be
	   scaled using	the scaling factor.

	   Note	 that  this  option typically does not work with bitmap	fonts,
	   which only contains a pre-defined set of sizes, and cannot  be  dy-
	   namically  scaled. Whichever	size (of the available ones) that best
	   matches the DPI or scaling factor, will be used.

	   Also	note that if the font size has been specified in pixels	(:pix-
	   elsize=N, instead of	:size=N),  DPI	scaling	 (dpi-aware=yes)  will
	   have	 no effect (the	specified pixel	size will be used as is). But,
	   if the monitor's scaling factor is used  to	size  the  font	 (dpi-
	   aware=no),  the font's pixel	size will be multiplied	with the scal-
	   ing factor.

	   Default: auto

       --gamma-correct
	   Do gamma-correct blending in	linear color space. This is  how  font
	   glyphs  are	supposed  to be	rendered, but since nearly no applica-
	   tions or toolkits are doing it on Linux, the	result	may  not  look
	   like	you are	used to.

	   Compared  to	 the default (disabled), bright	glyphs on a dark back-
	   ground will appear thicker, and dark	glyphs on a  light  background
	   will	appear thinner.

	   FreeType  can  limit	 the  effect  of  the latter, with a technique
	   called stem darkening. It is	only available for  CFF	 fonts	(Open-
	   Type,  .otf)	 and disabled by default (in FreeType).	You can	enable
	   it by setting the environment variable FREETYPE_PROPERTIES="cff:no-
	   stem-darkening=0" before starting fuzzel.

	   Also	be aware that many fonts have been developed on	 systems  that
	   do  not  do	gamma-correct blending,	and may	therefore look thicker
	   than	intended when rendered with gamma-correct blending, since  the
	   font	designer set the font weight based on incorrect	rendering.

	   In  order  to  represent  colors faithfully,	higher precision image
	   buffers are required. For this reason,  fuzzel  uses	 16-bit	 image
	   buffers (instead of 8-bit) when gamma-correct blending is enabled.

	   It  is  not	possible to enable gamma-correct blending in cairo en-
	   abled builds	of fuzzel, since cairo does not	support	 16-bit	 image
	   buffers.

       -p,--prompt=PROMPT
	   Prompt to use. Default: > .

       --prompt-only=PROMPT
	   Same	as --prompt, but in --dmenu mode it also:
	      does not	read anything from STDIN
	      sets --lines to 0

	   In non-dmenu	mode it	behaves	exactly	like --prompt.

       --hide-prompt
	   Hide	the prompt line, making	the window smaller. Input is still ac-
	   cepted, but the prompt line is not displayed. This option cannot be
	   used	at the same time with --prompt-only.

       --placeholder=TEXT
	   Text	to display as placeholder in the input box. Default: empty.

       --search=TEXT
	   Initial  search/filter  string. This	option pre-fills the input box
	   with	the specified string, letting you pre-filter the result.

       -i
	   Ignored; for	compatibility with other, similar utilities (where  -i
	   means "case insensitive search").

       --icon-theme=NAME
	   Icon	 theme	to  use.  Note that this option	is case	sensitive; the
	   name	must match the theme's folder name.

	   Example: Adwaita.

	   Default: default.

       -I,--no-icons
	   Do not render any icons.

       --hide-before-typing
	   Hide	application list until something is typed.

       -F,--fields=FIELDS
	   Comma separated list	of XDG Desktop entry fields to match against:

	      filename: the .desktop file's filename
	      name: the application's name (title)
	      generic:	the application's generic name
	      exec: the applications's	executable, as specified in the	 desk-
	       top file. Note: may include command line	options	as well.
	      keywords: the application's keywords
	      categories: the application's categories
	      comment:	the application's comment

	   Default: filename,name,generic

       --password=[CHARACTER]
	   Password input. Render all typed text as CHARACTER. If CHARACTER is
	   omitted, a *	will be	used.

       -T,--terminal=TERMINAL ARGS
	   Command  to launch XDG applications with the	property Terminal=true
	   (htop, for example).

	   The command may contain the placeholder {cmd}  which	 will  be  re-
	   placed  with	 the  actual command to	be run.	When {cmd} is present,
	   the command is only substituted in those locations and is  not  ap-
	   pended at the end.

	   Examples:
	      foot  -a	 '{cmd}' -T '{cmd}' {cmd} sets app-id and title	to the
	       command name, then executes it
	      xterm -e	{cmd} executes the command in xterm
	      xterm -e	(no {cmd}) uses	old behavior:  appends	command	 after
	       terminal	args

	   Default: not	set.

       -a,--anchor=ANCHOR
	   Set	window	anchor,	 i.e.  where on	screen the window will be dis-
	   played.  You	can choose one from:

	      top-left
	      top
	      top-right
	      left
	      center
	      right
	      bottom-left
	      bottom
	      bottom-right

	   Default: center

       --x-margin=MARGIN
	   Horizontal margin away from the anchor point	in pixels. Default: 0.

	   Note: this option has no effect when	anchor=center, top or bottom.

       --y-margin=MARGIN
	   Vertical margin away	from the anchor	point in pixels. Default: 0.

	   Note: this option has no effect when	anchor=center, left or right.

       --select=STRING
	   Select the first entry that matches the given string	(case insensi-
	   tive).

       --auto-select
	   Automatically select	when only one match remains.

       --select-index=INDEX
	   Select the entry with index,	not compatible with --select.

       -l,--lines=COUNT
	   The (maximum) number	of matches to display. This dictates the  win-
	   dow height. Default:	15.

       --minimal-lines
	   Adjust the number of	lines to display to the	minimum	of --lines and
	   the	number	of input lines.	Only effective in dmenu	mode. This al-
	   lows	fuzzel to size itself to the  actual  number  of  input	 lines
	   rather than always showing the full --lines rows.

       -w,--width
	   Window  width, in characters. Margins and borders not included. For
	   variable width fonts	this is	an estimate, as	the  exact  number  of
	   characters that will	fit depends on which characters	are being dis-
	   played. Default: 30.

       --tabs=COUNT
	   Number of spaces a tab is expanded to. Default: 8.

       -x,--horizontal-pad=PAD
	   Horizontal  padding	between	 border	and icons and text. In pixels,
	   subject to output scaling. Default: 40.

       -y,--vertical-pad=PAD
	   Vertical padding between border and text.  In  pixels,  subject  to
	   output scaling. Default: 8.

       -P,--inner-pad=PAD
	   Vertical  padding between prompt and	match list. In pixels, subject
	   to output scaling. Default: 0.

       -b,--background=HEX
	   Background color. See COLORS. Default: fdf6e3ff.

       -t,--text-color=HEX
	   Text	color. See COLORS. Default: 657b83ff.

       --prompt-color=HEX
	   Text	(foreground) color of prompt  character(s).  See  COLORS.  De-
	   fault: 586e75ff.

       --placeholder-color=HEX
	   Text	 (foreground) color of the placeholder string. See COLORS. De-
	   fault: 93a1a1ff.

       --input-color=HEX
	   Text	(foreground) color  of	input  string.	See  COLORS.  Default:
	   657b83ff.

       -m,--match-color=HEX
	   The	color  of  matching  substring(s).  As you start typing	in the
	   search box, the matching part in each application's name  is	 high-
	   lighted with	this color. See	COLORS.	Default: cb4b16ff.

       -s,--selection-color=HEX
	   The	color  to use as background of the currently selected applica-
	   tion. See COLORS. Default: eee8d5ff.

       -S,--selection-text-color=HEX
	   The text color of the currently selected application.  See  COLORS.
	   Default: 586e75ff.

       -M,--selection-match-color=HEX
	   The color of	matching substring(s) of the currently selected	appli-
	   cation. As you start	typing in the search box, the matching part in
	   each	application's name is highlighted with this color. See COLORS.
	   Default: cb4b16ff.

       --selection-radius=INT
	   The	border radius of the selection entry. Like border-radius, this
	   is subjected	to output scaling. A larger value means	a rounder cor-
	   ner.	0 disables rounded corner. Default: 0.

       --counter-color=HEX
	   The color of	the match count	stats printed at the  right-hand  side
	   of the input	prompt.	See COLORS. Default: 93a1a1ff.

       -B,--border-width=INT
	   The	width  of the surrounding border, in pixels (subject to	output
	   scaling). Default: 1.

       -r,--border-radius=INT
	   The corner curvature, subject to output scaling. Larger means  more
	   rounded corners. 0 disables rounded corners.	Default: 10.

       -C,--border-color=HEX
	   The color of	the border. See	COLORS.	Default: 002b36ff.

       --show-actions
	   Include  desktop  actions in	the list. Desktop actions are alterna-
	   tive	actions	some desktop entries have. Examples include "New  Win-
	   dow", "New Document", etc.

       --match-mode=exact|fzf|fuzzy
	   Defines  how	 what  you  type is matched. See fuzzel.ini(5) for de-
	   tails. The default is fzf.

       --no-sort
	   Do not sort the result.

       --counter
	   Display the match count.

       --filter-desktop=[no]
	   Filter the visible desktop entries based on the value  of  XDG_CUR-
	   RENT_DESKTOP.  If  the  optional parameter is "no", explicitly dis-
	   ables filtering (that is, it	overrides the value in the config).

       --fuzzy-min-length=VALUE
	   Search strings shorter than this will not  by  fuzzy	 matched.  De-
	   fault: 3.

       --fuzzy-max-length-discrepancy=VALUE
	   Maximum  allowed length difference between the search string, and a
	   fuzzy match.	Larger values result in	more fuzzy  matches.  Default:
	   2.

       --fuzzy-max-distance=VALUE
	   Maximum allowed levenshtein distance	between	the search string, and
	   a fuzzy match. Larger values	result in more fuzzy matches. Default:
	   1.

       --line-height=HEIGHT
	   Override  line  height from font metrics. In	points by default, but
	   can	be  specified  as  pixels  by  appending  'px'	(i.e.  --line-
	   height=16px). Default: not set.

       --letter-spacing=AMOUNT
	   Additional  space between letters. In points	by default, but	can be
	   specified as	pixels by appending  'px'  (i.e.  letter-spacing=5px).
	   Negative values are supported. Default: 0.

       --layer=top|overlay
	   Which  layer	 to  render the	fuzzel window on. Valid	values are top
	   and overlay.

	   top renders above normal windows, but  typically  below  fullscreen
	   windows and lock screens.

	   overlay  renders  on	top of both normal windows and fullscreen win-
	   dows. Note that the order is	undefined if several windows  use  the
	   same	 layer.	 Since	e.g.  lock screens typically use overlay, that
	   means fuzzel	may or may not appear on top of	a lock screen.

	   Default: overlay

       --keyboard-focus=exclusive|on-demand
	   Keyboard focusing mode, valid modes are exclusive and on-demand.

	   exclusive locks keyboard focus to fuzzel,  receiving	 all  keyboard
	   input until closed.

	   on-demand  makes fuzzel focus like a	regular	window,	allowing other
	   windows to take keyboard focus by e.g. clicking on them. By default
	   switching keyboard focus will immediately close fuzzel, using --no-
	   exit-on-keyboard-focus-loss allows interacting with	other  windows
	   while fuzzel	is open.

	   Default: exclusive

       --no-exit-on-keyboard-focus-loss
	   Do  not exit	when losing keyboard focus. This can be	useful on com-
	   positors where enabling "focus-follows-mouse" causes	fuzzel to exit
	   as soon as the mouse	is moved over another window. Sway  (at	 least
	   up to, and including	1.7) exhibits this behavior.

       --launch-prefix=COMMAND
	   Command  to	launch XDG applications	with. If set, fuzzel will pass
	   the Desktop File ID of the chosen application (see the Desktop  En-
	   try	specification) in the FUZZEL_DESKTOP_FILE_ID environment vari-
	   ables. Default: not set.

       --list-executables-in-path
	   Include executables from the	PATH environment variable. Applies  to
	   the normal application mode,	not the	dmenu mode.

       --render-workers=COUNT
	   Number  of threads to use for rendering. Set	to 0 to	disable	multi-
	   threading. Default: the number of available logical CPUs (including
	   SMT). Note that this	is not always the best value. In  some	cases,
	   the number of physical cores	is better.

       --match-workers=COUNT
	   Number  of  threads to use for matching. Set	to 0 to	disable	multi-
	   threading. Default: the number of available logical CPUs (including
	   SMT). Note that this	is not always the best value. In  some	cases,
	   the number of physical cores	is better.

       --delayed-filter-ms=TIME_MS
	   Time,  in  milliseconds,  to	 delay refiltering when	there are more
	   matches than	--delayed-filter-limit.	Default: 300.

       --delayed-filter-limit=N
	   When	there are more matches than this, switch  from	immediate  re-
	   filtering  to  delayed  refiltering	(see --delayed-filter-ms). De-
	   fault: 20000.

       --scaling-filter=FILTER
	   Scaling filter to use when down scaling PNGs. One of	none, nearest,
	   bilinear,  box,  linear,  cubic,  lanczos2,	lanczos3   and	 lanc-
	   zos3-stretched.

	   none,  nearest  and bilinear	are the	fastest	options, but also have
	   the worst looking results.

	   cubic, lanczos2, lanczos3 and lanczos3-stretched  are  the  slowest
	   options, with the best looking results.

	   box,	 and  to  some	degree,	linear,	are in the middle, performance
	   wise, while in most cases still being just as, or close to, as good
	   as cubic and	the lanczos filters.

	   Default: box

       -d,--dmenu
	   dmenu compatibility mode. In	this mode, the list entries  are  read
	   from	 stdin	(newline  separated). The selected entry is printed to
	   stdout. If the input	string does not	match any of the entries,  the
	   input string	is printed as is on stdout.

	   Alternatively,  you	can symlink the	fuzzel binary to dmenu.	Fuzzel
	   will	then start in dmenu mode, without the --dmenu argument.

	   Fuzzel also supports	PNG and	SVG icons, using Rofi's	extended dmenu
	   protocol. To	set an icon  for  an  entry,  append  \0icon\x1f<icon-
	   name>. Example:

	       echo -en	"Firefox\0icon\x1ffirefox" | fuzzel --dmenu

	   Fallback  icons  using  comma-separated  values are also supported.
	   When	the primary icon is not	found, subsequent icons	 in  the  list
	   will	be tried until one is successfully loaded. Example:

	       echo  -en  "Firefox\0icon\x1ffirefox,web-browser,application-x-
	       executable" | fuzzel --dmenu

       --dmenu0
	   Like	--dmenu, but input is NUL separated instead of	newline	 sepa-
	   rated. Note that in this mode, icons	are not	supported.

       --index
	   Print  selected  entry's  index  instead  of	its text. Index	values
	   start with zero for the first entry.	dmenu mode only.

       --with-nth=N|FMT
	   Display the N:th column (1-based, tab  separated  by	 default,  see
	   --nth-delimiter)  of	each input line. When selected,	the full input
	   line	is printed on stdout. dmenu mode only.

	   The argument	can also be a format string  (i.e  free-format	text),
	   where {N} expands to	the N:th column. Ranges	on the form {N..M} and
	   {N..} (open-ended) are also supported.

	   Example:
	       printf "1\tFirst\n2\tSecond" | fuzzel -d	--with-nth=2

	   This	will display the entries First and Second. When	one of them is
	   selected,  the  full	input line (tabs included) are printed on std-
	   out.

	   Setting it to 0 is the same as not specifying --with-nth at all.

       --accept-nth=N|FMT
	   Output the N:th column (1-based,  tab  separated  by	 default,  see
	   --nth-delimiter) of each input line to stdout.  dmenu mode only.

	   The	argument  can  also be a format	string (i.e free-format	text),
	   where {N} expands to	the N:th column. Ranges	on the form {N..M} and
	   {N..} (open-ended) are also supported.

	   Example:
	       printf "1\tFirst\n2\tSecond" | fuzzel -d	--accept-nth=2

	   This	will display the entries 1   First and 2    Second.  Depending
	   on  which  one is selected, First or	Second will be printed to std-
	   out.

	   Setting it to 0 is the same as not specifying --accept-nth at all.

       --nth-delimiter=CHARACTER
	   Field (column) delimiter for	--with-nth and --accept-nth. Must be a
	   single ASCII	character.

	   Default: \t (tab)

       -R,--no-run-if-empty
	   Exit	immediately, without showing the UI, if	stdin is empty.	 dmenu
	   mode	only.

       --log-level={info,warning,error,none}
	   Log	level,	used  both for log output on stderr as well as syslog.
	   Default: warning.

       --log-colorize=[{never,always,auto}]
	   Enables or disables colorization of log output on stderr.

       --log-no-syslog
	   Disables syslog logging. Logging is only done on stderr.

       --print-timing-info
	   Print timing	information to help debug performance issues.

       --no-mouse
	   Disable mouse input.

       -v,--version
	   Show	the version number and quit

SEARCH PATHS
       Fuzzel searches for XDG .desktop	files according	to the XDG Base	Direc-
       tory Specification (see link at bottom),	looking	 in  the  applications
       subdirectory  of	the paths given	by XDG_DATA_DIRS and XDG_DATA_HOME. By
       default,	these are:

          ~/.local/share/applications
          /usr/local/share/applitions
          /usr/share/application

       See the specification for details.

CONFIGURATION
       fuzzel will search for a	configuration file in the following locations,
       in this order:

	      XDG_CONFIG_HOME/fuzzel/fuzzel.ini   (defaulting	 to    ~/.con-
	       fig/fuzzel/fuzzel.ini if	unset)
	      XDG_CONFIG_DIRS/fuzzel/fuzzel.ini   (defaulting	 to   /usr/lo-
	       cal/etc/xdg/fuzzel/fuzzel.ini if	unset)

       An example configuration	file containing	all options with their default
       value  commented	 out   will   usually	be   installed	 to   /usr/lo-
       cal/etc/xdg/fuzzel/fuzzel.ini.

       For more	information, see fuzzel.ini(5).

LOCALIZATION
       Fuzzel  uses  the localized strings from	the .desktop files by default.
       To disable this,	run fuzzel with	LC_MESSAGES=C.

FONT FORMAT
       The font	is specified in	FontConfig syntax. That	is, a  colon-separated
       list of font name and font options.

       Examples:
          Dina:weight=bold:slant=italic
          Arial:size=12

COLORS
       All  colors must	be specified as	a RGBA quadruple, in hex format, with-
       out a leading '0x'.

       EXAMPLES:
          white: ffffffff (no transparency)
          black: 000000ff (no transparency)
          black: 00000010 (semi-transparent)
          red:	ff0000ff (no transparency)

       The default color scheme	is Solarized.

FILES
       $XDG_CACHE_HOME/fuzzel
	   Stores a list of applications and their launch count.  This	allows
	   fuzzel to sort frequently launched applications at the top.

       $XDG_RUNTIME_DIR/fuzzel-$WAYLAND_DISPLAY.lock
	   Lock	 file,	used to	prevent	multiple fuzzel	instances from running
	   at the same time.

SEE ALSO
          fuzzel.ini(5)
          https://specifications.freedesktop.org/desktop-entry-spec/desktop-
	   entry-spec-latest.html
          https://codeberg.org/dnkl/fuzzel
          https://specifications.freedesktop.org/basedir-spec/latest/

				  2025-11-02			     fuzzel(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fuzzel&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help