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
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.
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:
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
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".
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. :)
Tested with Debian 11 netinst + KDE
- Install Rustup (https://rustup.rs/)
- Install required dev packages:
#apt-get install qt5-qmake qtbase5-dev cmake build-essential pkg-config qttools5-dev
- Clone from git
$git clone https://github.com/abigaliz/krustyfy.git
cd krustyfy
cargo build --release
- Disable KDE Notifications from the system tray by going to the System Tray Settings and marking Notifications as Disabled:
- Log out of the current session.
- Run krustyfy from
$HOME/krustyfy/target/release/krustyfy
You can also set it to run on startup from KDE System Settings:
Remember to set up the work path to $HOME/krustyfy/target/release/
, otherwise it won't be able to access the notification templates folder.
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.