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 633471e861
nanosvg: update to 9da543e
2 days ago
.builds ci (sr.ht): pull directly from git.sr.ht 4 months ago
3rd-party/nanosvg nanosvg: update to 9da543e 2 days ago
completions completions🐟 try swaymsg if wlr-randr isn't available. 4 weeks ago
doc doc: document example `output` format` 1 week ago
external external: wlr-protocols: bump 1 year ago
subprojects subprojects: use meson *.wrap files for tllist+fcft 2 years ago
.gitignore gitignore: ignore .cache 4 months ago
.gitlab-ci.yml ci: use fcft master branch 10 months ago
.gitmodules fcft/tllist: remove git submodules 3 years ago
.woodpecker.yml ci: use fcft master branch 10 months ago
CHANGELOG.md wayland: implement xdg activation launch 5 days ago
LICENSE license: fix bad copy-paste: first commit was in 2019 2 years ago
PKGBUILD meson/pkgbuild: bump version to 1.8.2 1 month ago
README.md readme: update for -Denable-{png,svg} -> -D{png,svg}-backend 1 year ago
application.c wayland: indicate the app_id for xdga launches 5 days ago
application.h wayland: indicate the app_id for xdga launches 5 days ago
char32.c fcft: adapt to API changes in fcft-3.x 10 months ago
char32.h fcft: adapt to API changes in fcft-3.x 10 months ago
config.c config: add ‘tabs’ option 1 month ago
config.h config: add ‘tabs’ option 1 month ago
dmenu.c dmenu: add support for icons, using Rofi’s extended dmenu protocol 2 months ago
dmenu.h wip: config: add support for file-based configuration 8 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 fuzzel.ini: add comented out ‘tabs’ option 1 month ago
generate-version.sh generate-version: handle git repo not having any tags 1 year ago
icon.c lookup_icons(): ignore unsupported image formats 1 month ago
icon.h icon: icon_reload_application_icons() -> icon_lookup_application_icons() 8 months ago
key-binding.c key-binding: disable debug logging by default 1 month ago
key-binding.h key-binding: add custom-N, where 1 <= N <= 19 1 month ago
log.c main: add --log-level=none|info|warning|error command line option 10 months ago
log.h main: add --log-level=none|info|warning|error command line option 10 months ago
main.c main: better verification of color values on the command line 6 days ago
match.c match: add matches_have_icons() 2 months ago
match.h match: add matches_have_icons() 2 months ago
meson.build wayland: implement xdg activation launch 5 days ago
meson_options.txt meson: use nanosvg backend by default 10 months ago
nanosvg.c svg: add support for using nanosvg as SVG backend 1 year ago
nanosvgrast.c svg: add support for using nanosvg as SVG backend 1 year ago
png-fuzzel.h svg: add support for using nanosvg as SVG backend 1 year ago
png.c png: route libpng warnings through fuzzel’s logging system 10 months ago
prompt.c prompt: fix backspace: don’t erase everything *after* the cursor 7 months ago
prompt.h fcft: adapt to API changes in fcft-3.x 10 months ago
render.c render: expand tabs to spaces when rendering matches 1 month ago
render.h render: add render_icon_size() function; returns the icon size to use 1 month 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: indicate the app_id for xdga launches 5 days ago
wayland.h wayland: remove prototype for non-existing function 1 month ago
xdg.c wayland: indicate the app_id for xdga launches 5 days ago
xdg.h xdg: store an open FD to the XDG dir 8 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.