ci/woodpecker/push/woodpecker Pipeline failed Details
MFD_NOEXEC_SEAL is only supported on kernels 6.3 and later. If we were compiled on linux >= 6.3, but run on linux < 6.3, we'd exit with an error, due to memfd_create() failing with EINVAL. This patch fixes the problem by first trying to call memfd_create() *with* MFD_NOEXEC_SEAL, and if that fails with EINVAL, we try again without it.
Fnott is a keyboard driven and lightweight notification daemon for wlroots-based Wayland compositors.
It implements (parts of) the Desktop Notifications Specification.
Supports styling and progress hints:
Notifications are automatically sized (with the possibility of limiting their max width and height):
- Actions (requires a dmenu-like utility to display and let user select action)
- PNGs (using libpng)
- SVGs (using bundled nanosvg)
More documentation is available in the installed man pages:
- man fnott documents the server
- man fnottctl documents the client
- man fnott.ini documents the configuration
- wayland (client and cursor libraries)
- fcft, unless built as a subproject
* Fnott must be run in a Wayland compositor that implements the wlroots protocols.
In addition to the dev variant of the packages above, you need:
- tllist, unless built as a subproject
Copy the example
edit to your liking.
Start the daemon by running
fnott. Note that it does not
daemonize or background itself.
Note: if your environment doesn't do it automatically (e.g. non-systemd),
you need to start a
dbus session yourself:
dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus
Test it with e.g.
notify-send "this is the summary" "this is the body".
fnottctl dismiss to dismiss the highest priority notification
(usually the oldest),
fnottctl dismiss all to dismiss all
fnottctl dismiss <id> to dismiss a specific
fnottctl list to list currently active
Additionally if you compositor implements either the KDE idle
protocol, or the newer idle-notify protocol, fnott will not dismiss
any notification if you are idle by the amount of time configured in
You can also click on a notification to dismiss it.
Note: you probably want to bind at least
fnottctl dismiss to a
keyboard shortcut in your Wayland compositor configuration.
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
meson --buildtype=release ../..
Three, build it:
You can now run it directly from the build directory:
Test that it works:
notify-send -a "MyApplicationName" "This Is The Summary" "hello world"
Optionally, install it:
Fnott is released under the MIT license.
Fnott uses nanosvg, released under the Zlib license.