Note: This is completely vibe coded from start to finish. This is simply something I wanted for myself but might as well share here.
A KDE Plasma 6 task manager plasmoid powered by Akonadi and Nextcloud CalDAV.
Inbox, Today, Scheduled, Projects, and Labels with a native Plasma / Kirigami UI. No separate CalDAV login — Kurrent uses your existing KDE PIM setup.
- KDE Plasma 6
- Akonadi running with a configured DAV groupware resource (KOrganizer or Merkuro)
- Build dependencies on Arch Linux:
sudo pacman -S cmake extra-cmake-modules qt6-declarative \
kcalendarcore akonadi akonadi-calendar kirigami plasma-workspaceConfigure your account in KOrganizer or Merkuro:
- Add Calendar → DAV groupware resource
- Choose Nextcloud, enter server URL, username, and app password
- Enable task (VTODO) collections
Verify Akonadi is running:
akonadictl statusUntil AUR and COPR packages exist, the supported install is this one-liner. It downloads the prebuilt plugin from the latest GitHub Release (plus the .plasmoid UI) into ~/.local:
curl -fsSL https://github.com/shrippen/Kurrent/releases/latest/download/install-linux.sh | sudo bashsudo is only for distro packages. The widget is installed as your user (SUDO_USER). Without sudo, use bash <(curl -fsSL https://github.com/shrippen/Kurrent/releases/latest/download/install-linux.sh) so a password prompt can use the terminal. Pin a release with | bash -s -- --tag v0.3. Compile instead of using the Arch-built .so: | bash -s -- --from-source.
The installer checks for Plasma 6 / Qt 6 / KF6 before proceeding and exits if the desktop stack is too old. Package lists cover Arch, Fedora/RHEL, Debian/Ubuntu, and openSUSE; on other distros you get a warning and an interactive Continue anyway? prompt (skipped in CI or without a TTY).
The one-liner uses the host package manager (dnf, apt, …). On rpm-ostree (Fedora Silverblue, Kinoite, Universal Blue, …) and transactional systems (openSUSE MicroOS, Aeon), that does not modify the running root — plain sudo dnf install inside the script will usually fail.
Fedora Atomic: layer dependencies with rpm-ostree install …, reboot, then re-run with --no-deps (add --from-source for a local build). Or run the installer inside Toolbx/Distrobox. Example runtime layer:
rpm-ostree install plasma-workspace kf6-kcalendarcore kf6-ki18n kf6-kconfig \
kf6-knotifications kf6-kglobalaccel kf6-kirigami akonadi-server akonadi-calendar
# reboot, then:
curl -fsSL https://github.com/shrippen/Kurrent/releases/latest/download/install-linux.sh | bash -s -- --no-depsopenSUSE MicroOS: use transactional-update pkg install …, reboot, then --no-deps — or build inside Distrobox/Podman.
Kurrent itself installs under ~/.local, which persists across reboots and container workflows. The installer detects immutable systems and prints these hints before asking Continue on this immutable system anyway?
From a git checkout (widget + Akonadi QML plugin):
./install.shThen add the Kurrent widget to your panel or desktop.
Each GitHub Release includes:
- a
.plasmoidzip for the KDE Store (widget UI only) kurrent-linux-x86_64.tar.gz— compiled Akonadi QML plugin + plasmoid for~/.local(built on Arch Linux)install-linux.sh— the one-liner above
kpackagetool6 -t Plasma/Applet -i com.github.shrippen.kurrent-0.3.plasmoidThe Akonadi backend is a compiled QML plugin. The .plasmoid from the KDE Store is only the widget UI — if you install that alone, Kurrent shows how to get the plugin instead of a QML error. Full task access needs the one-liner, ./install.sh, or a distro package so libkurrentplugin.so is on the QML import path. The prebuilt tarball is linked against Arch’s Plasma 6 / KDE PIM; on other distros the installer falls back to compiling from source.
- Panel and desktop widget (compact icon + full view)
- Reads todos from existing Akonadi collections
- Views: Inbox, Today, Tomorrow, Scheduled, Anytime, Recurring, Unlabeled, Completed
- Create, edit, complete, and delete tasks; subtasks, labels, and priorities
- Shared configuration between desktop and panel instances
- Optional blurred wallpaper background via Plasma
- Manual sync via toolbar button
See ROADMAP.md for the remaining path to 1.0 (AUR + COPR, then OBS / Debian if cheap, and the rest of the 0.3/0.4 catalog).
Right-click the widget → Configure Kurrent:
- Default view, completed tasks, appearance (blur)
- Sidebar row size and default project for new tasks
- Which calendars/projects and labels are enabled or hidden
Settings are stored in ~/.config/com.github.shrippen.kurrent/kurrentrc and apply to every Kurrent instance.
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=$HOME/.local \
-DKDE_INSTALL_USE_QT_SYS_PATHS=ON -DKURRENT_DEV_BUILD=ON
cmake --build build
cmake --install build
kpackagetool6 -t Plasma/Applet -i plasmoid/com.github.shrippen.kurrent./install.sh keeps the developer build label (Build N) on. Release builds default KURRENT_DEV_BUILD to off.
Regenerate translations after UI string changes:
python3 po/generate_po.pyGPL-3.0-or-later. See LICENSE.