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 74c24aab2a
changelog: add new ‘unreleased’ section
2 days ago
.builds ci: build on alpine/latest, not edge 6 months ago
completions Add -S,--selection-text-color command line option 1 month ago
doc doc: -P,--prompt 2 days ago
external external: wlr-protocols: bump 3 months ago
subprojects subprojects: use meson *.wrap files for tllist+fcft 9 months ago
.gitignore subprojects: use meson *.wrap files for tllist+fcft 9 months ago
.gitlab-ci.yml ci: build on alpine/latest, not edge 6 months ago
.gitmodules fcft/tllist: remove git submodules 2 years ago
CHANGELOG.md changelog: add new ‘unreleased’ section 2 days ago
LICENSE license: fix bad copy-paste: first commit was in 2019 1 year ago
PKGBUILD meson/pkgbuild: bump version to 1.6.3 2 days ago
README.md readme: dependencies: cairo is optional 9 months ago
application.c main: flush text run caches on font reload 3 months ago
application.h main: flush text run caches on font reload 3 months ago
dmenu.c dmenu: print the prompt (user input) as is, if it doesn’t match any entries 4 months ago
dmenu.h dmenu: print the prompt (user input) as is, if it doesn’t match any entries 4 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 meson: run generate_version.sh in a C locale 1 month ago
icon.c icon: don’t stop at first matching XDG_DATA_DIRS directory 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 Add -P,--prompt allow customising the prompt 7 days ago
match.c match: match against filename (in addition to the title and comment) 3 months ago
match.h match: match against filename (in addition to the title and comment) 3 months ago
meson.build meson/pkgbuild: bump version to 1.6.3 2 days ago
meson_options.txt meson: make cairo an optional dependency 9 months ago
png-fuzzel.h libpng: wip 1 year ago
png.c libpng: wip 1 year ago
prompt.c prompt: use %ls instead of %S when printing a wide string 4 months ago
prompt.h prompt: make prompt struct opaque 2 years ago
render.c render: tag img_x as ‘unused’ 2 days ago
render.h Add -S,--selection-text-color command line option 1 month ago
shm.c shm: unbreak build without memfd_create 9 months ago
shm.h meson: make cairo an optional dependency 9 months ago
stride.h Add missing file 2 years ago
wayland.c Add support for fallback fonts 1 month ago
wayland.h Add support for fallback fonts 1 month ago
xdg.c xdg: populate the ‘basename’ member of the application struct 3 months ago
xdg.h icon: implement icon_reload_application_icons() 1 year 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. ↩︎