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 70530f57fe
changelog: add new ‘unreleased’ section
10 hours ago
.builds ci: build on alpine/latest, not edge 5 days ago
completions completions: zsh: remove erroneous comma from --lines and --width 2 months ago
doc doc: document line-height, letter-spacing and padding options 2 months ago
external wlr-protocols: bump 12 months ago
subprojects subprojects: use meson *.wrap files for tllist+fcft 4 months ago
.gitignore subprojects: use meson *.wrap files for tllist+fcft 4 months ago
.gitlab-ci.yml ci: build on alpine/latest, not edge 5 days ago
.gitmodules fcft/tllist: remove git submodules 1 year ago
CHANGELOG.md changelog: add new ‘unreleased’ section 10 hours ago
LICENSE license: fix bad copy-paste: first commit was in 2019 9 months ago
PKGBUILD meson/pkgbuild: bump version to 1.5.3 10 hours ago
README.md readme: dependencies: cairo is optional 3 months ago
application.c render: use pre-scaled PNG images 2 months ago
application.h render: use pre-scaled PNG images 2 months ago
dmenu.c provide `enable-svg` compile time option 8 months ago
dmenu.h Add -d,--dmenu command line option 2 years ago
fdm.c tllist: is now an external "library", so use <> includes 1 year ago
fdm.h fdm: sync with latest FDM - fdm_del() now closes FD 1 year ago
generate-version.sh generate-version: check for .git directory in *src* dir 1 year ago
icon.c render: scale PNGs on-demand 2 months ago
icon.h icon: implement icon_reload_application_icons() 9 months ago
log.c log: make syslog facility and level configurable, always log filename+lineno 1 year ago
log.h log: make syslog facility and level configurable, always log filename+lineno 1 year ago
main.c main: add missing include: <errno.h> 2 months ago
match.c provide `enable-svg` compile time option 8 months ago
match.h match: add function to set/update max-matches 9 months ago
meson.build meson/pkgbuild: bump version to 1.5.3 10 hours ago
meson_options.txt meson: make cairo an optional dependency 4 months ago
png-fuzzel.h libpng: wip 8 months ago
png.c libpng: wip 8 months ago
prompt.c prompt: make prompt struct opaque 1 year ago
prompt.h prompt: make prompt struct opaque 1 year ago
render.c render: fix compilation when both PNGs and SVGs have been disabled 10 hours ago
render.h render: padding is in pixels, not points. And subject to output scaling 2 months ago
shm.c shm: unbreak build without memfd_create 4 months ago
shm.h meson: make cairo an optional dependency 4 months ago
stride.h Add missing file 2 years ago
wayland.c wayland: {xdg_,}output_*(): free old strings before assigning new ones 6 days ago
wayland.h wayland: use a callback to reload icons when font is reloaded 3 months ago
xdg.c provide `enable-svg` compile time option 8 months ago
xdg.h icon: implement icon_reload_application_icons() 9 months ago

README.md

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 \
    -Denable-png=disabled|enabled|auto \
    -Denable-svg=disabled|enabled|auto \
    ../..

-Denable-{png,svg} can be used to force-enable or force-disable png and/or svg support. The default is auto, which means enable if all required libraries are available. PNGs require libpng, and SVGs require cairo and librsvg.

-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 (regardless of what -Denable-svg is set to).

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

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