Application launcher for wlroots based Wayland compositors, similar to rofi's `drun` mode.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Daniel Eklöf 4e1c191441
wayland: keypad “enter” now executes the selected entry
2 weeks ago
.builds ci: use fcft master branch 5 months ago
3rd-party/nanosvg nanosvg: update to 03042a6297399379198f98eb625ff8902bd84784 2 months ago
completions completions: zsh: add --config=PATH 2 months ago
doc doc: fuzzel.1: add a SEE ALSO section, referencing fuzzel.ini 2 months ago
external external: wlr-protocols: bump 1 year ago
subprojects subprojects: use meson *.wrap files for tllist+fcft 2 years ago
.gitignore subprojects: use meson *.wrap files for tllist+fcft 2 years ago
.gitlab-ci.yml ci: use fcft master branch 5 months ago
.gitmodules fcft/tllist: remove git submodules 2 years ago
.woodpecker.yml ci: use fcft master branch 5 months ago
CHANGELOG.md wayland: keypad “enter” now executes the selected entry 2 weeks ago
LICENSE license: fix bad copy-paste: first commit was in 2019 2 years ago
PKGBUILD pkgbuild: bump version to 1.7.0 5 months ago
README.md readme: update for -Denable-{png,svg} -> -D{png,svg}-backend 7 months ago
application.c fix leak on invalid escape character error 2 months ago
application.h application: add dummy .png/.svg members when SVG/PNG have been completely disabled 2 months ago
char32.c fcft: adapt to API changes in fcft-3.x 5 months ago
char32.h fcft: adapt to API changes in fcft-3.x 5 months ago
config.c config: “fields” is a comma separated list of strings 4 weeks ago
config.h config: remove DMENU_MODE_NONE value 2 months ago
dmenu.c config: remove DMENU_MODE_NONE value 2 months ago
dmenu.h wip: config: add support for file-based configuration 2 months ago
fdm.c tllist: is now an external "library", so use <> includes 3 years ago
fdm.h fdm: sync with latest FDM - fdm_del() now closes FD 3 years ago
fuzzel.ini doc: fuzzel.ini: initial man page for fuzzel.ini 2 months ago
generate-version.sh generate-version: handle git repo not having any tags 9 months ago
icon.c icon: fix compilation; move ‘}’ outside the #ifdef 2 weeks ago
icon.h icon: icon_reload_application_icons() -> icon_lookup_application_icons() 2 months ago
log.c main: add --log-level=none|info|warning|error command line option 5 months ago
log.h main: add --log-level=none|info|warning|error command line option 5 months ago
main.c main: add --config=PATH command line option 2 months ago
match.c match: don’t crash on exit if matches->applications hasn’t been set 2 weeks ago
match.h match: turn ‘match_pos’ into an array 2 months ago
meson.build meson: install fuzzel.ini to /etc/xdg/fuzzel/fuzzel.ini 2 months ago
meson_options.txt meson: use nanosvg backend by default 5 months ago
nanosvg.c svg: add support for using nanosvg as SVG backend 9 months ago
nanosvgrast.c svg: add support for using nanosvg as SVG backend 9 months ago
png-fuzzel.h svg: add support for using nanosvg as SVG backend 9 months ago
png.c png: route libpng warnings through fuzzel’s logging system 5 months ago
prompt.c prompt: fix backspace: don’t erase everything *after* the cursor 2 months ago
prompt.h fcft: adapt to API changes in fcft-3.x 5 months ago
render.c match: turn ‘match_pos’ into an array 2 months ago
render.h wip: config: add support for file-based configuration 2 months ago
shm.c shm: unbreak build without memfd_create 2 years ago
shm.h meson: make cairo an optional dependency 2 years ago
stride.h Add missing file 3 years ago
wayland.c wayland: keypad “enter” now executes the selected entry 2 weeks ago
wayland.h wayland: pass pointer to ‘struct config’ to wayl_init() 2 months ago
xdg.c xdg: use fallback path if XDG_CACHE_HOME is set, but empty 2 months ago
xdg.h xdg: store an open FD to the XDG dir 3 months ago

README.md

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.