1
0
Fork
You've already forked fnott
1
forked from dnkl/fnott
Keyboard driven and lightweight Wayland notification daemon for wlroots-based compositors.
  • C 97.1%
  • Meson 2.1%
  • Shell 0.8%
Find a file
2022年02月12日 11:24:36 +01:00
.builds ci: use fcft master branch 2022年02月05日 18:06:19 +01:00
3rd-party/nanosvg nanosvg: pull in the full source tree 2021年10月04日 21:41:45 +02:00
completions completions: zsh: add -c,--config=PATH 2021年05月12日 21:53:00 +02:00
doc config: add vertical-padding and horizontal-padding 2022年02月02日 11:30:11 +05:30
external external: wlr-protocols: bump 2021年06月27日 10:49:48 +02:00
subprojects subprojects: use meson wrap files for tllist+fcft 2020年12月25日 11:58:06 +01:00
.gitignore gitignore: ignore compile_commands.json 2021年06月13日 15:39:34 +02:00
.gitlab-ci.yml ci: use fcft master branch 2022年02月05日 18:06:19 +01:00
.gitmodules fcft/tllist: remove git submodules 2020年01月11日 14:49:01 +01:00
.woodpecker.yml ci: use fcft master branch 2022年02月05日 18:06:19 +01:00
CHANGELOG.md changelog: add new ‘unreleased’ section 2022年02月12日 11:24:36 +01:00
char32.c fcft: adapt to API changes in fcft-3.x 2022年02月05日 16:40:58 +01:00
char32.h fcft: adapt to API changes in fcft-3.x 2022年02月05日 16:40:58 +01:00
config.c config: fix padding-vertical and padding-horizontal for per-urgency config 2022年02月05日 20:20:20 +05:30
config.h config: add vertical-padding and horizontal-padding 2022年02月02日 11:30:11 +05:30
ctrl-protocol.h ctrl: actions: detect when notification has no actions and report this specifically 2019年11月19日 11:35:14 +01:00
ctrl.c ctrl: refactor: add client_disconnected() 2021年11月14日 19:29:49 +01:00
ctrl.h ctrl: add a dbus member to the ctrl object 2019年10月18日 23:27:53 +02:00
dbus.c dbus: use dbus_*_t types when reading/writing D-Bus messages 2022年02月11日 18:56:17 +01:00
dbus.h dbus: implement dbus_signal_action() 2019年10月18日 23:27:21 +02:00
fdm.c tllist: is now an external "library", so use <> includes 2019年11月17日 19:19:17 +01:00
fdm.h fdm: sync with latest FDM - fdm_del() now closes FD 2019年11月05日 10:58:30 +01:00
fnott.desktop Add fnott.desktop 2019年10月12日 20:12:41 +02:00
fnott.ini config: add vertical-padding and horizontal-padding 2022年02月02日 11:30:11 +05:30
fnottctl.c fnottctl: initialize logger 2021年11月14日 19:13:45 +01:00
generate-version.sh generate-version: handle git repo not having any tags 2021年10月11日 20:25:37 +02:00
icon.c nanosvg: pull in the full source tree 2021年10月04日 21:41:45 +02:00
icon.h icon: utility functions to load icons from an XDG icon theme 2019年10月11日 20:53:22 +02:00
LICENSE license: fix bad copy-paste: first commit was in 2019 2020年07月25日 08:51:33 +02:00
log.c log: make syslog facility and level configurable, always log filename+lineno 2020年02月20日 20:00:04 +01:00
log.h log: make syslog facility and level configurable, always log filename+lineno 2020年02月20日 20:00:04 +01:00
main.c fcft: adapt to API changes in fcft-3.x 2022年02月05日 16:40:58 +01:00
meson.build meson/pkgbuild: update version to 1.2.1 2022年02月12日 11:19:09 +01:00
nanosvg.c nanosvg: pull in the full source tree 2021年10月04日 21:41:45 +02:00
nanosvgrast.c nanosvg: pull in the full source tree 2021年10月04日 21:41:45 +02:00
notification.c fcft: adapt to API changes in fcft-3.x 2022年02月05日 16:40:58 +01:00
notification.h notification: add notif_play_sound() 2021年06月13日 15:40:24 +02:00
PKGBUILD meson/pkgbuild: update version to 1.2.1 2022年02月12日 11:19:09 +01:00
png-fnott.h png: loads PNG files into pixman images 2019年10月11日 21:01:42 +02:00
png.c png: make sure image_data is initialized before the first 'goto err' 2019年10月25日 18:23:44 +02:00
README.md ci: codeberg CI 2021年10月10日 18:21:30 +02:00
screenshot.png screenshot: update: use a scalable font, rendered with subpixel antialiasing 2020年04月24日 21:16:36 +02:00
shm.c shm: unbreak build without memfd_create 2020年12月21日 12:52:54 +01:00
shm.h wip: inital frame rendering of notification box 2019年10月08日 19:07:23 +02:00
spawn.c spawn: new utility functions to expand and spawn a command template 2021年06月13日 15:40:24 +02:00
spawn.h spawn: new utility functions to expand and spawn a command template 2021年06月13日 15:40:24 +02:00
stride.h playing around with libdbus - we can receive notifications 2019年10月06日 18:43:29 +02:00
svg.c svg: pre-multiply alpha 2021年10月07日 19:16:11 +02:00
svg.h icon: use nanosvg to rasterize SVG images 2019年10月12日 17:12:23 +02:00
tokenize.c config: add ‘play-sound’ option to fnott.ini 2021年06月13日 15:40:24 +02:00
tokenize.h config: add ‘play-sound’ option to fnott.ini 2021年06月13日 15:40:24 +02:00
wayland.c wayland: error handling when dispatching Wayland events 2022年01月09日 23:15:57 +01:00
wayland.h wayland: add wayl_guess_subpixel() 2021年06月12日 13:24:30 +02:00
xdg.c fcft: adapt to API changes in fcft-3.x 2022年02月05日 16:40:58 +01:00
xdg.h xdg: utility functions to get XDG paths 2019年10月11日 20:53:57 +02:00

CI status

Fnott

Fnott is a keyboard driven and lightweight notification daemon for wlroots-based Wayland compositors.

It implements (parts of) the Desktop Notification Specification.

Packaging status

screenshot

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

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.

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).

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.