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. |
||
---|---|---|
.builds | ||
3rd-party/nanosvg | ||
completions | ||
doc | ||
external | ||
subprojects | ||
.gitignore | ||
.gitmodules | ||
.woodpecker.yml | ||
CHANGELOG.md | ||
LICENSE | ||
PKGBUILD | ||
README.md | ||
char32.c | ||
char32.h | ||
config.c | ||
config.h | ||
ctrl-protocol.h | ||
ctrl.c | ||
ctrl.h | ||
dbus.c | ||
dbus.h | ||
fdm.c | ||
fdm.h | ||
fnott.desktop | ||
fnott.ini | ||
fnottctl.c | ||
generate-version.sh | ||
icon.c | ||
icon.h | ||
log.c | ||
log.h | ||
main.c | ||
meson.build | ||
nanosvg.c | ||
nanosvgrast.c | ||
notification.c | ||
notification.h | ||
png-fnott.h | ||
png.c | ||
screenshot-2.png | ||
screenshot.png | ||
shm.c | ||
shm.h | ||
spawn.c | ||
spawn.h | ||
stride.h | ||
svg.c | ||
svg.h | ||
tokenize.c | ||
tokenize.h | ||
uri.c | ||
uri.h | ||
wayland.c | ||
wayland.h | ||
xdg.c | ||
xdg.h |
README.md
Fnott
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):
Supported features
- Summary
- Body
- Actions (requires a dmenu-like utility to display and let user select action)
- Urgency
- Icons
- PNGs (using libpng)
- SVGs (using bundled nanosvg)
- Markup
- Timeout
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
Requirements
Running
- fontconfig
- freetype
- pixman
- libpng
- wayland (client and cursor libraries)
- wlroots*
- dbus
- fcft, unless built as a subproject
* Fnott must be run in a Wayland compositor that implements the wlroots protocols.
Building
In addition to the dev variant of the packages above, you need:
- meson
- ninja
- scdoc
- wayland-protocols
- tllist, unless built as a subproject
Usage
Copy the example fnott.ini
to ${HOME}/.config/fnott/fnott.ini
and
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"
.
Use fnottctl dismiss
to dismiss the highest priority notification
(usually the oldest), fnottctl dismiss all
to dismiss all
notifications, or fnottctl dismiss <id>
to dismiss a specific
notification (use fnottctl list
to list currently active
notifications).
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
fnott.ini
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.
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 ../..
Three, build it:
ninja
You can now run it directly from the build directory:
./fnott
Test that it works:
notify-send -a "MyApplicationName" "This Is The Summary" "hello world"
Optionally, install it:
ninja install
License
Fnott is released under the MIT license.
Fnott uses nanosvg, released under the Zlib license.