#通知 #守护进程 #中心 #进度 #图像 #图像路径 #紧急

nightly app oxinoti

用 Rust 编写的通知守护进程

2 个版本

0.1.1 2023 年 9 月 28 日
0.1.0 2023 年 9 月 14 日

#9 in #图像路径

GPL-3.0-only

60KB
1.5K SLoC

OxiNoti

一个用 Rust 和 gtk 制作的进行中的通知守护进程。
也可以与 OxiDash 配合使用,OxiDash 也是一个用 Rust 和 gtk 制成的通知中心。

Screenshot

功能

支持的提示

  • 通过图像路径的图像
  • 通过原始字节流的图像
  • 紧急

Dbus 函数

  • ToggleNotificationCenter:当通知中心打开时禁用显示通知
  • DoNotDisturb:当设置时禁发通知,注意:在配置文件中的 dnd_override,紧急程度足够高的通知可以绕过此限制。
  • GetServerInformation:名称、厂商、版本、spec_version
  • GetCapabilities:返回服务器功能
  • RemoveAllNotifications:从持久性中删除所有通知
  • GetAllNotification:返回所有当前持有的通知的向量
  • CloseNotification:从持久性中删除特定通知
  • Notify:发送通知,注意:如果可用,还会将通知发送到通知中心 -> dbus 地址:org.freedesktop.NotificationCenter

Notify, GetServerInformation, CloseNotification 和 GetCapabilities 是从 freedesktop.org 标准化的
其余的是对它的补充,是针对通知中心的。

CLI 参数

  • --config:指定 toml 配置文件的路径
  • --css:指定 CSS 样式表的路径

toml 配置

    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

可以使用基本的 gtk CSS 为 OxiNoti 主题化,示例可以在仓库中找到。

说明

  • 正在进行中,目前不要用于常规使用
    • 欢迎测试,目前似乎可以工作
  • 不确定这是否高效,从未有过背景任务和/或异步/并行编程的任何正规经验
    • 似乎使用了大约 40MB 的 RAM,希望这没问题

依赖关系

~24MB
~551K SLoC