Notiflut-Land

所属分类:collect
开发工具:Dart
文件大小:0KB
下载次数:0
上传日期:2023-07-30 17:31:40
上 传 者sh-1993
说明:  一个用Rust and Flutter编写的linux路旁通知中心,
(A wayland notification center for linux written in Rust and Flutter,)

文件列表:
LICENSE (11357, 2023-12-25)
build_scripts/ (0, 2023-12-25)
build_scripts/PKGBUILD (1967, 2023-12-25)
images/ (0, 2023-12-25)
images/NotificationCenterExample.png (331273, 2023-12-25)
images/notification_center_screenshot.png (1723622, 2023-12-25)
images/notification_popup.png (1683609, 2023-12-25)
images/notiflut-logo.png (15416, 2023-12-25)
images/popup_screenshot.png (257686, 2023-12-25)
notiflut_ctl/ (0, 2023-12-25)
notiflut_ctl/Cargo.lock (18517, 2023-12-25)
notiflut_ctl/Cargo.toml (412, 2023-12-25)
notiflut_ctl/src/ (0, 2023-12-25)
notiflut_ctl/src/cli.rs (748, 2023-12-25)
notiflut_ctl/src/dbus_client.rs (2285, 2023-12-25)
notiflut_ctl/src/dto.rs (222, 2023-12-25)
notiflut_ctl/src/main.rs (2273, 2023-12-25)
notiflut_daemon/ (0, 2023-12-25)
notiflut_daemon/.metadata (1706, 2023-12-25)
notiflut_daemon/Cargo.lock (120253, 2023-12-25)
notiflut_daemon/Cargo.toml (217, 2023-12-25)
notiflut_daemon/analysis_options.yaml (1420, 2023-12-25)
notiflut_daemon/lib/ (0, 2023-12-25)
notiflut_daemon/lib/main.dart (4202, 2023-12-25)
notiflut_daemon/lib/services/ (0, 2023-12-25)
notiflut_daemon/lib/services/cache_service.dart (450, 2023-12-25)
notiflut_daemon/lib/services/event_dispatcher.dart (3059, 2023-12-25)
notiflut_daemon/lib/services/events_handlers.dart (436, 2023-12-25)
notiflut_daemon/lib/services/mainwindow_service.dart (6388, 2023-12-25)
notiflut_daemon/lib/services/mediaplayer_service.dart (4933, 2023-12-25)
notiflut_daemon/lib/services/subwindow_service.dart (4334, 2023-12-25)
notiflut_daemon/lib/services/theme_service.dart (543, 2023-12-25)
notiflut_daemon/lib/utils.dart (2779, 2023-12-25)
notiflut_daemon/lib/widgets/ (0, 2023-12-25)
notiflut_daemon/lib/widgets/category.dart (6173, 2023-12-25)
notiflut_daemon/lib/widgets/mediaPlayer.dart (9003, 2023-12-25)
notiflut_daemon/lib/widgets/notification.dart (6766, 2023-12-25)
... ...

![Notiflut-Land logo](https://github.com/images/notiflut-logo.png) # Notiflut [Work in progress] This project is a notification center designed specifically for wlroots-based Wayland compositors, implemented using Rust and Flutter. The notification center provides a seamless and intuitive user interface for managing and interacting with notifications on Wayland-based systems. ## Screenshots ![Notification center sreenshot](https://github.com/images/notification_center_screenshot.png) ![Notification popup screenshot](https://github.com/images/popup_screenshot.png) ## Features ### Freedesktop specifications: - [x] actions: The server will provide the specified actions to the user. Even if this cap is missing, actions may still be specified by the client, however the server is free to ignore them. - [x] body: Supports body text. Some implementations may only show the summary (for instance, onscreen displays, marquee/scrollers) - [x] body-hyperlinks: The server supports hyperlinks in the notifications. - [x] body-images: The server supports images in the notifications. - [x] body-markup: Supports markup in the body text. If marked up text is sent to a server that does not give this cap, the markup will show through as regular text so must be stripped clientside. - [x] icon-static: Supports display of exactly 1 frame of any given image array. This value is mutually exclusive with "icon-multi", it is a protocol error for the server to specify both. - [x] persistence: The server supports persistence of notifications. Notifications will be retained until they are acknowledged or removed by the user or recalled by the sender. The presence of this capability allows clients to depend on the server to ensure a notification is seen and eliminate the need for the client to display a reminding function (such as a status icon) of its own. ### More - [x] notification group - [x] Filter notifications - [x] support for waybar - [x] Media player controller - [ ] Widgets (Maybe a bad idea) - [ ] custom styling ## requirement - Flutter v. > 3.0 [Download](https://github.comhttps://docs.flutter.dev/get-started/install) - Rust [Download](https://github.comhttps://rustup.rs/) - Rust in Flutter - gtk-layer-shell ## Build daemon First go to the right folder: `cd ./notiflut_daemon` Then you need to generates code from protobuf with this command: `dart run rust_in_flutter message` This project also uses well known types for dates. `protoc --dart_out=./lib/messages google/protobuf/timestamp.proto` If you have any trouble running these commands look first for help here: https://docs.cunarist.com/rust-in-flutter/ Now you should be able to compile the code with: `flutter build linux --release` ## Installation Guide 1. **Navigate to the Build Scripts Directory:** ```bash cd ./build_scripts ``` 2. **Install Dependencies:** If the `makepkg -si` command fails due to missing dependencies, manually download and install them. You can find dependency information higher in this file. 3. **Build and Install Package:** If you have resolved the dependencies, run the following command to build and install the package: ```bash makepkg -si ``` If you needed to install dependencies manually, use the following command instead: ```bash makepkg -di ``` This will build the package and install it along with its dependencies. ## how to use Once notiflut is running, use notiflut_ctl to control it. ``` Usage: notiflut_ctl Commands: show Shows the notification center hide Hides the notification center toggle Toggle the notification center status Get notifications status count get notifications count help Print this message or the help of the given subcommand(s) Options: -h, --help Print help -V, --version Print version ``` ## configuration The configuration file is typically located in the default XDG configuration directory. In most cases, it should be: `$HOME/.config/notiflut/conf.toml` ### Configuration File Example ```toml do_not_disturb = false [[emitters_settings]] name = "spotify" ignore = true urgency_low_as = "Critical" urgency_normal_as = "Normal" urgency_critical_as = "Low" ``` ### Do Not Disturb Mode - do_not_disturb: Set this to true to enable "Do Not Disturb" mode and suppress notifications temporarily. ### Emitter Settings - **name**: Assign a unique name to each emitter for identification purposes. - **ignore**: Toggle the ignore flag to true if you want to ignore notifications from a specific emitter. - **Urgency Level Mapping (Low, Normal, Critical)**: Low -> do not persist in center, Normal -> persist in center, Critical -> persist in center + popup need user action to close. - urgency_low_as: Customize the behavior of low urgency notifications. In this example, it's set to "Critical," allowing you to elevate the importance of low urgency notifications. - urgency_normal_as: Map normal urgency notifications to a custom urgency (same as urgency low). - urgency_critical_as: Map critical urgency notifications to a custom urgency (same as urgency low). ## Waybar Here is an example of a custom module that can be used with Waybar. ```json "custom/notification": { "tooltip": false, "format": "{icon}", "format-icons": { "0": "", "1": "1", "2": "2", "3": "3", "4": "4", "5": "5", "6": "6", "7": "7", "8": "8", "9": "9", "more": "9+" }, "return-type": "json", "exec-if": "which notiflut_ctl", "exec": "notiflut_ctl status", "on-click": "notiflut_ctl toggle", "interval": 5, "escape": true } ```

近期下载者

相关文件


收藏者