Application launcher for wlroots based Wayland compositors, similar to rofi's drun mode.
  • C 96.4%
  • Meson 2.6%
  • Shell 1%
Find a file
Daniel Eklöf 37d989c337
main/render: add --password=[CHARACTER] command line option
Intended to be used with --dmenu, for password inputs, but _can_ be
used with normal mode as well.

With “fuzzel --password”, all typed text is rendered as ‘*’. One can
specify a different password character with “fuzzel --password=X”.

Closes #108
2022-03-20 10:25:23 +01:00
.builds ci: use fcft master branch 2022-02-05 17:46:59 +01:00
3rd-party/nanosvg svg: add support for using nanosvg as SVG backend 2021-10-07 19:18:54 +02:00
completions main: add --log-colorize=auto|never|always command line option 2022-02-05 12:41:06 +01:00
doc main/render: add --password=[CHARACTER] command line option 2022-03-20 10:25:23 +01:00
external external: wlr-protocols: bump 2021-06-27 10:52:14 +02:00
subprojects subprojects: use meson *.wrap files for tllist+fcft 2020-12-24 13:26:02 +01:00
.gitignore subprojects: use meson *.wrap files for tllist+fcft 2020-12-24 13:26:02 +01:00
.gitlab-ci.yml ci: use fcft master branch 2022-02-05 17:46:59 +01:00
.gitmodules fcft/tllist: remove git submodules 2020-01-11 14:47:47 +01:00
.woodpecker.yml ci: use fcft master branch 2022-02-05 17:46:59 +01:00
application.c fcft: adapt to API changes in fcft-3.x 2022-02-05 12:44:06 +01:00
application.h fcft: adapt to API changes in fcft-3.x 2022-02-05 12:44:06 +01:00
CHANGELOG.md main/render: add --password=[CHARACTER] command line option 2022-03-20 10:25:23 +01:00
char32.c fcft: adapt to API changes in fcft-3.x 2022-02-05 12:44:06 +01:00
char32.h fcft: adapt to API changes in fcft-3.x 2022-02-05 12:44:06 +01:00
dmenu.c dmenu: don’t require stdin to be closed 2022-03-13 19:58:19 +01:00
dmenu.h dmenu: don’t require stdin to be closed 2022-03-13 19:58:19 +01:00
fdm.c tllist: is now an external "library", so use <> includes 2019-11-17 19:18:21 +01:00
fdm.h fdm: sync with latest FDM - fdm_del() now closes FD 2019-11-05 11:00:15 +01:00
generate-version.sh generate-version: handle git repo not having any tags 2021-10-11 20:22:58 +02:00
icon.c icon: always search all XDG data directories when loading an icon 2021-12-21 22:17:09 +01:00
icon.h icon: always search all XDG data directories when loading an icon 2021-12-21 22:17:09 +01:00
LICENSE license: fix bad copy-paste: first commit was in 2019 2020-07-25 08:51:51 +02:00
log.c main: add --log-level=none|info|warning|error command line option 2022-02-04 23:13:23 +01:00
log.h main: add --log-level=none|info|warning|error command line option 2022-02-04 23:13:23 +01:00
main.c main/render: add --password=[CHARACTER] command line option 2022-03-20 10:25:23 +01:00
match.c fcft: adapt to API changes in fcft-3.x 2022-02-05 12:44:06 +01:00
match.h dmenu: add --index, print selected entry’s index instead of its text 2022-01-12 18:55:18 +01:00
meson.build meson: stop using deprecated functions, require meson >= 0.58 2022-02-27 11:31:19 +01:00
meson_options.txt meson: use nanosvg backend by default 2022-02-07 10:46:31 +01:00
nanosvg.c svg: add support for using nanosvg as SVG backend 2021-10-07 19:18:54 +02:00
nanosvgrast.c svg: add support for using nanosvg as SVG backend 2021-10-07 19:18:54 +02:00
PKGBUILD pkgbuild: bump version to 1.7.0 2022-02-05 17:45:41 +01:00
png-fuzzel.h svg: add support for using nanosvg as SVG backend 2021-10-07 19:18:54 +02:00
png.c png: route libpng warnings through fuzzel’s logging system 2022-02-06 12:42:54 +01:00
prompt.c fcft: adapt to API changes in fcft-3.x 2022-02-05 12:44:06 +01:00
prompt.h fcft: adapt to API changes in fcft-3.x 2022-02-05 12:44:06 +01:00
README.md readme: update for -Denable-{png,svg} -> -D{png,svg}-backend 2021-11-21 16:29:35 +01:00
render.c main/render: add --password=[CHARACTER] command line option 2022-03-20 10:25:23 +01:00
render.h main/render: add --password=[CHARACTER] command line option 2022-03-20 10:25:23 +01:00
shm.c shm: unbreak build without memfd_create 2020-12-21 12:40:25 +01:00
shm.h meson: make cairo an optional dependency 2020-12-20 14:57:07 +01:00
stride.h Add missing file 2019-09-29 13:00:03 +02:00
wayland.c wayland: default to exit-code EXIT_SUCCESS in non-dmenu mode 2022-02-05 12:26:36 +01:00
wayland.h dmenu: add --index, print selected entry’s index instead of its text 2022-01-12 18:55:18 +01:00
xdg.c fcft: adapt to API changes in fcft-3.x 2022-02-05 12:44:06 +01:00
xdg.h xdg: optionally (enabled by default) include desktop actions 2021-12-23 20:49:10 +01:00

CI status

Fuzzel

Fuzzel is a Wayland-native application launcher, similar to rofi's drun mode.

Packaging status

Screenshot

Screenshot

Fuzzel, with transparency, on top of a browser window showing a diff of a fuzzel commit

Features:

  • Wayland native
  • Rofi drun-like mode of operation
  • dmenu mode where newline separated entries are read from stdin
  • Emacs key bindings
  • Icons!
  • Remembers frequently launched applications

Limitations:

  • No themes (but you can configure font and colors)

Requirements

Runtime

  • pixman
  • wayland (client and cursor libraries)
  • xkbcommon
  • cairo (optional)
  • libpng (optional)
  • librsvg (optional)
  • fcft 1

Building

  • meson
  • ninja
  • wayland protocols
  • scdoc
  • tllist 1

Installation

To build, first, create a build directory, and switch to it:

mkdir -p bld/release && cd bld/release

Second, configure the build (if you intend to install it globally, you might also want --prefix=/usr):

meson --buildtype=release \
    -Denable-cairo=disabled|enabled|auto \
    -Dpng-backend=none|libpng \
    -Dsvg-backend=none|librsvg|nanosvg \
    ../..

-D{png,svg}-backend can be used to force-enable or force-disable a specific png and/or svg backend. Note that nanosvg is builtin (i.e. it needs to external dependencies).

-Denable-cairo can be used to force-enable or force-disable cairo support. When disabled, fuzzel will not be able to draw rounded corners, nor will it support SVGs using the librsvg backend.

Three, build it:

ninja

You can now run it directly from the build directory:

./fuzzel

Use command line arguments to configure the look-and-feel:

./fuzzel --help

Optionally, install it:

ninja install

For more detailed configuration information, see the man page:

man fuzzel

License

Fuzzel is released under the MIT license.

Fuzzel uses nanosvg, released under the Zlib license.


  1. can also be built as subprojects, in which case they are statically linked. ↩︎