No description
  • C++ 94.2%
  • CMake 5.8%
Find a file
NhProGamer 9a3ff11e72
All checks were successful
CI / build (push) Successful in 1m14s
docs: drop the thumbnail promise; KIO can't use server thumbnails
KDE's PreviewJob downloads the whole remote file and renders locally; no KF6
hook lets a remote worker return a server-side thumbnail. Stop advertising it.
2026-07-21 14:14:16 +02:00
.gitea/workflows fix(share): show the action and share via the wallet-saved token 2026-07-21 14:08:01 +02:00
src fix(share): show the action and share via the wallet-saved token 2026-07-21 14:08:01 +02:00
.gitignore feat: initial orion:// KIO worker scaffold (KF6) 2026-07-21 11:07:13 +02:00
CMakeLists.txt fix(share): show the action and share via the wallet-saved token 2026-07-21 14:08:01 +02:00
LICENSE feat: initial orion:// KIO worker scaffold (KF6) 2026-07-21 11:07:13 +02:00
orionrc.example feat: initial orion:// KIO worker scaffold (KF6) 2026-07-21 11:07:13 +02:00
README.md docs: drop the thumbnail promise; KIO can't use server thumbnails 2026-07-21 14:14:16 +02:00

kio-orion

A KDE KIO worker exposing an OrionDrive server over the orion:// protocol, so KDE apps (Dolphin, Kate, Gwenview, …) browse and edit your drive natively, with token auth and a right-click Share action that plain WebDAV can't offer.

Why not just WebDAV?

OrionDrive already speaks WebDAV, so webdavs://<host>/dav works in Dolphin today (with a dedicated WebDAV credential). This worker exists for the native extras: token auth (no separate WebDAV password, stored in KWallet) and a right-click Share action that creates a public link. Thumbnails are intentionally not a feature: KDE's preview pipeline downloads the whole remote file and renders locally — there is no supported hook for a remote worker to hand back the server's pre-rendered thumbnail, so we don't pretend to.

Install from the RPM registry (Fedora / rpm-ostree)

The Forgejo registry signs the repository metadata, which pins each package's SHA256 — so repo_gpgcheck=1 gives you tamper-evident installs. Forgejo does not sign the packages themselves (forgejo#7780), so gpgcheck stays 0 (setting it to 1 fails verification — that is a known bug in the config the Forgejo UI suggests).

sudo tee /etc/yum.repos.d/gitea-nhpro.repo >/dev/null <<'EOF'
[gitea-nhpro]
name=nhpro - NhSoul - Forgejo
baseurl=https://git.nhsoul.fr/api/packages/nhpro/rpm
enabled=1
gpgcheck=0
repo_gpgcheck=1
gpgkey=https://git.nhsoul.fr/api/packages/nhpro/rpm/repository.key
EOF

sudo dnf install kio-orion          # or: sudo rpm-ostree install kio-orion
kbuildsycoca6

Build from source

Dependencies: extra-cmake-modules, Qt 6 (Core, Network, Widgets), KF6 (KIO, I18n, Config, WidgetsAddons).

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
sudo cmake --install build
kbuildsycoca6   # refresh the protocol cache

The module installs to ${KDE_INSTALL_PLUGINDIR}/kf6/kio/orion.so.

Configure

Authentication uses an OrionDrive personal access token (create one in the web UI → sidebar → API tokens). A read-only token limits the mount to browsing/downloading; a read-write token is needed for upload/rename/delete/share.

Just browse to your drive:

orion://drive.example.com/

The first time, a KDE dialog asks for your access token (the server URL defaults to https://<host>). Tick Remember to store it in KWallet — you won't be asked again. No config file to edit.

Manual config (optional)

For a non-HTTPS or custom-port server (e.g. a local dev instance), skip the dialog by putting the URL and token in ~/.config/orionrc, in a group named after the host you'll use in the URL:

[localhost]
Url=http://localhost:5219
Token=od_xxxxxxxxxxxxxxxxxxxxxxxx

Implemented

  • listDir, stat, get (streamed download), mimetype
  • mkdir, del (→ recycle bin), rename/move
  • put (resumable chunked upload)
  • Share context-menu action: right-click a file/folder → Share with OrionDrive creates a public link and copies it to the clipboard (a separate KFileItemAction plugin, orion_share; needs a read-write token).

Paths are resolved to file ids by walking listings against the REST API (/api/v1/file?parent=…).

Roadmap

  • OIDC device-code auth as an alternative to static tokens.
  • copy on the server side (currently falls back to KIO get+put).

Server-side thumbnails were investigated and dropped: KDE's PreviewJob downloads the whole remote file and thumbnails it locally, and there is no supported KF6 hook for a remote worker to return the server's pre-rendered thumbnail. Wiring /api/v1/file/thumb/:id into Dolphin would require patching KIO upstream, so it is out of scope.

License

GPL-2.0-or-later (links LGPL KDE Frameworks).