/krustyfy

Notification daemon made in rust and qt

Primary LanguageRustMIT LicenseMIT

krustyfy

Unobtrusive notification daemon made in Rust and Qt.

Notifications can't be interacted with (unless you keep Left Alt key pressed) and mouse input goes right through them :)

demo.mp4

Configuration

Most settings can be changed directly from the res/themes/{current theme}/template.ui config file. From the layout of the notification itself to settings like duration, monitor, shadow color, etc. More settings comming soon. :)

Take into account that some widgets MUST exist in the template.ui file, otherwise it'll crash. Modify it wisely.

Theming

Themes are located in the res/themes subdirectory. Each folder corresponds to a theme, which must have a template.ui file. Themes are loaded when the app is launched, and can be changed from the system tray:

themes

Currently we have two built in themes: default and compact, and they can be changed, and even modified, while the app is running:

themes.mp4

Name

K: Because it's made in Qt, so it works nice with KDE.

Rust: Because it's made in rust.

Krusty: Because it's made by a dumb sad clown.

Krustyfy: Because it just had to have the "ify" suffix, as in "notify".

How to contribute and help the project

I don't know, I never thought I'd get this far. Also since I'm just learning about how to code in rust it's probably full of bad practices and awful code. :)

Building

Tested with Debian 11 netinst + KDE

Requirements

  1. Install Rustup (https://rustup.rs/)
  2. Install required dev packages: #apt-get install qt5-qmake qtbase5-dev cmake build-essential pkg-config qttools5-dev

Clone and build

  1. Clone from git $git clone https://github.com/abigaliz/krustyfy.git
  2. cd krustyfy
  3. cargo build --release

Running it

  1. Disable KDE Notifications from the system tray by going to the System Tray Settings and marking Notifications as Disabled: image
  2. Log out of the current session.
  3. Run krustyfy from $HOME/krustyfy/target/release/krustyfy

You can also set it to run on startup from KDE System Settings:

image

Remember to set up the work path to $HOME/krustyfy/target/release/, otherwise it won't be able to access the notification templates folder.

Usage

By pressing Left Alt key you freeze all notifications (new notifications still come in, but start frozen) and you're able to click on them to interact.

Otherwise, they are semi-transparent and get blurry and even less opaque when your cursor is over it. Also you click through them, so if a notification spanws just when you were about to click, you don't have to worry; the click will be processed as if the notification was nothing at all, nothing at all, nothing at all.