2 releases
0.1.1 | Sep 28, 2023 |
---|---|
0.1.0 | Sep 14, 2023 |
#10 in #center
60KB
1.5K
SLoC
OxiNoti
A work in progress notification daemon made with rust and gtk.
Can also be used in tandem with OxiDash, a notification center also made with rust and gtk.
features
Supported hints:
- images via image-path
- images via raw bytes
- urgency
Dbus functions:
- ToggleNotificationCenter: disables showing of notifications when notification center is open
- DoNotDisturb: disables sending of notifications when set, note: with dnd_override in the config file, notifications with high enough urgency can circumvent this.
- GetServerInformation: name, vendor, version, spec_version
- GetCapabilities: returns server capabilities
- RemoveAllNotifications: removes all notification from persistence
- GetAllNotification: returns a vector of all currently held notifications
- CloseNotification: removes specific notification from persistence
- Notify: send notification, note: also sends notification to notification center if available -> dbus address: org.freedesktop.NotificationCenter
Notify, GetServerInformation, CloseNotification and GetCapabilities are standardized from freedesktop.org
The rest are additions to it, which are specific for the notification center.
CLI parameters:
- --config: specify a path to a toml config file
- --css: specify a path to a css style sheet
toml config:
timeout = 3 # this sets the timeout for the notification -> how long it stays
dnd_override = 2 # this is the minimum amount of urgency that a notification needs to be shown despite do not disturb
# note, values for dnd_override are: 0 for low, essentially disables dnd, 1 for normal, 2 for critical, any other value will block notifications no matter the urgency during dnd
CSS
Base gtk CSS can be used to theme OxiNoti, an example can be found in the repository.
notes
- WIP, don't use this for regular use yet
- testing welcome, kinda works by now
- not sure if this is efficient, never had any proper experience with background tasks and/or async/parallel programming
- seems to use about 40mb of ram, hope that is fine
Dependencies
~24MB
~551K SLoC