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 3d13830425
main: tighten up the check for a pre-existing fuzzel instance
2 weeks ago
.builds ci: meson: one more enable-{png,svg}=disabled -> {png,svg}-backend=none 2 weeks ago
3rd-party/nanosvg svg: add support for using nanosvg as SVG backend 2 months ago
completions dpi-aware: add command line option --dpi-aware=no|yes|auto 2 months ago
doc doc: fuzzel: mention that --icon-theme is case sensitive 3 weeks ago
external external: wlr-protocols: bump 5 months ago
subprojects subprojects: use meson *.wrap files for tllist+fcft 12 months ago
.gitignore subprojects: use meson *.wrap files for tllist+fcft 12 months ago
.gitlab-ci.yml ci: meson: enable-{png,svg}=disabled -> {png,svg}-backend=none 2 weeks ago
.gitmodules fcft/tllist: remove git submodules 2 years ago
.woodpecker.yml ci: meson: enable-{png,svg}=disabled -> {png,svg}-backend=none 2 weeks ago
CHANGELOG.md main: don’t run if another fuzzel instance is already running 2 weeks ago
LICENSE license: fix bad copy-paste: first commit was in 2019 1 year ago
PKGBUILD meson/pkgbuild: bump version to 1.6.5 3 weeks ago
README.md readme: update for -Denable-{png,svg} -> -D{png,svg}-backend 2 weeks ago
application.c svg: add support for using nanosvg as SVG backend 2 months ago
application.h svg: add support for using nanosvg as SVG backend 2 months ago
dmenu.c dmenu: print the prompt (user input) as is, if it doesn’t match any entries 6 months ago
dmenu.h dmenu: print the prompt (user input) as is, if it doesn’t match any entries 6 months ago
fdm.c tllist: is now an external "library", so use <> includes 2 years ago
fdm.h fdm: sync with latest FDM - fdm_del() now closes FD 2 years ago
generate-version.sh generate-version: handle git repo not having any tags 2 months ago
icon.c svg: add support for using nanosvg as SVG backend 2 months ago
icon.h icon: implement icon_reload_application_icons() 1 year ago
log.c log: make syslog facility and level configurable, always log filename+lineno 2 years ago
log.h log: make syslog facility and level configurable, always log filename+lineno 2 years ago
main.c main: tighten up the check for a pre-existing fuzzel instance 2 weeks ago
match.c match: return correct item when selected item isn’t on the first page 1 month ago
match.h match: add matches_selected_{prev,next}_page() 2 months ago
meson.build meson/pkgbuild: bump version to 1.6.5 3 weeks ago
meson_options.txt svg: add support for using nanosvg as SVG backend 2 months ago
nanosvg.c svg: add support for using nanosvg as SVG backend 2 months ago
nanosvgrast.c svg: add support for using nanosvg as SVG backend 2 months ago
png-fuzzel.h svg: add support for using nanosvg as SVG backend 2 months ago
png.c svg: add support for using nanosvg as SVG backend 2 months ago
prompt.c prompt: use %ls instead of %S when printing a wide string 6 months ago
prompt.h prompt: make prompt struct opaque 2 years ago
render.c render: size pt-or-px values using either scale or DPI 2 months ago
render.h render: size pt-or-px values using either scale or DPI 2 months ago
shm.c shm: unbreak build without memfd_create 12 months ago
shm.h meson: make cairo an optional dependency 12 months ago
stride.h Add missing file 2 years ago
wayland.c render: size pt-or-px values using either scale or DPI 2 months ago
wayland.h render: size pt-or-px values using either scale or DPI 2 months ago
xdg.c xdg: populate the ‘basename’ member of the application struct 6 months ago
xdg.h icon: implement icon_reload_application_icons() 1 year 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. ↩︎