Cloud storage sync for Linux -- native, explainable, and built for every desktop.
LNXDrive is a cloud storage synchronization client for Linux designed from scratch with clean, hexagonal architecture. Unlike existing solutions that simply sync files in the background, LNXDrive is an explainable, governable, and adaptable sync system.
Key differentiators:
- Explainable sync -- You always know why something failed or didn't sync. No more cryptic "sync error" messages.
- Files-on-Demand -- A robust FUSE-based virtual filesystem with clear file states (online-only, locally available, always-keep). See your cloud files without downloading them.
- Native desktop integration -- Purpose-built UI for GNOME, KDE Plasma, COSMIC, and GTK3-based desktops (XFCE, MATE). Not a generic tray icon -- real shell extensions, file manager overlays, and system settings panels.
- Multi-provider, multi-account (roadmap) -- The provider port is designed for OneDrive, Google Drive, Dropbox, and more. The alpha ships Microsoft OneDrive support.
- Declarative configuration -- Versionable YAML config, not scattered dotfiles and CLI flags.
- Full observability -- Structured JSON logs, Prometheus metrics, and a complete audit trail.
LNXDrive runs as a user-level systemd service (lnxdrive-daemon) that manages all sync operations. It communicates with desktop integrations through D-Bus (com.strangedaystech.LNXDrive), and exposes a FUSE filesystem for files-on-demand.
Cloud Providers LNXDrive Engine Desktop
(OneDrive, ┌─────────────────────┐ ┌──────────────┐
GDrive, │ lnxdrive-daemon │ │ GNOME Shell │
Dropbox...) <──>│ ├─ sync engine │<────>│ KDE Plasma │
│ ├─ FUSE mount │ D-Bus│ COSMIC │
│ ├─ conflict mgr │ │ GTK3 (XFCE) │
│ └─ audit + metrics │ │ CLI │
└─────────────────────┘ └──────────────┘
![]() |
![]() |
![]() |
| Preferences: account & quota | Onboarding wizard | Conflict resolution |
![]() |
![]() |
![]() |
| GNOME Shell indicator | Status menu | Nautilus sync overlays |
LNXDrive is in alpha (
v0.1.0-alpha.1), aimed at Linux power users and GNOME enthusiasts willing to report bugs. The alpha is GNOME-only and supports Microsoft OneDrive.
- Linux with FUSE 3 support and Flatpak ≥ 1.12
- GNOME (Wayland recommended) — the bundle pulls the
org.gnome.Platform//49runtime automatically
flatpak install --user \
https://github.com/StrangeDaysTech/lnxdrive/releases/download/v0.1.0-alpha.1/lnxdrive.flatpakVerify the download against the SHA256SUMS file published with each
release.
Other formats (RPM, DEB, AUR, AppImage, Flathub) are planned for v0.2.0-beta.
- Launch LNXDrive from your application menu (or
flatpak run com.strangedaystech.LNXDrive) — the onboarding wizard opens on first run - Sign in to OneDrive — via GNOME Online Accounts or the browser OAuth flow; tokens are stored in the system keyring, never on disk
- Choose what to sync — pick OneDrive folders (nested selective sync supported)
- Start the daemon:
flatpak run --command=lnxdrived com.strangedaystech.LNXDrive
Alpha limitations: the Flatpak bundle does not include the Nautilus overlay extension, the GNOME Shell indicator, or the GOA provider — these load into host processes and can't ship inside the sandbox. They are available when building from source. See CHANGELOG.md for the full list.
alias lnxdrive='flatpak run --command=lnxdrive com.strangedaystech.LNXDrive'
# Check daemon and sync status
lnxdrive status
# Authenticate with OneDrive
lnxdrive auth login
# Mount the files-on-demand filesystem
lnxdrive mount
# Keep a folder always available offline
lnxdrive pin ~/OneDrive/Documents
# Free local space (file stays visible, downloads on next open)
lnxdrive dehydrate ~/OneDrive/Videos
# Why is this file in its current state?
lnxdrive explain ~/OneDrive/report.xlsxBoth alternatives are mature, actively maintained projects — credit where due. LNXDrive is the alpha newcomer betting on deep desktop integration and explainability:
| LNXDrive (alpha) | jstaf/onedriver | abraunegg/onedrive | |
|---|---|---|---|
| Approach | Background sync + FUSE files-on-demand | Pure on-demand FUSE filesystem (no offline sync) | Full bidirectional sync client |
| Maturity | Alpha | Stable | Stable, very featureful |
| Language | Rust | Go | D |
| Files-on-demand | ✅ FUSE, with pin/unpin/hydrate states | ✅ FUSE (cache-based) | ❌ (downloads everything selected) |
| Selective sync | ✅ nested folder picker (GUI) | — (on-demand by nature) | ✅ (config file: sync_list) |
| Native settings GUI | ✅ GTK4/libadwaita panel | Minimal launcher GUI | ❌ CLI (third-party GUIs exist) |
| File manager integration | ✅ Nautilus sync-state overlays* | ❌ | ❌ |
| Desktop SSO | ✅ GNOME Online Accounts | ❌ (own OAuth flow) | ❌ (own OAuth flow) |
| Explainability | ✅ lnxdrive explain <file>, audit log |
❌ | Verbose logs |
| Token storage | System keyring (Secret Service) | System keyring | Config dir file |
| OneDrive Business / SharePoint | Not yet (alpha) | ✅ | ✅ |
| Packaging | Flatpak bundle | distro packages (COPR, etc.) | distro packages, Docker |
*From source on the host; not included in the Flatpak sandbox (alpha).
If you need OneDrive Business/SharePoint today, use one of the alternatives. If you want native GNOME integration with files-on-demand and explainable sync — that's the gap LNXDrive exists to fill.
This is a monorepo containing all LNXDrive components:
| Directory | Description | Stack |
|---|---|---|
lnxdrive-engine/ |
Core daemon and library crates | Rust 1.75+, tokio, zbus, sqlx |
lnxdrive-gnome/ |
GNOME Shell, Nautilus, and GOA integration | Meson + Rust (gtk4-rs), GJS, C |
experimental/lnxdrive-gtk3/ |
XFCE/MATE desktop UI — archived for v0.1.0-alpha (reactivates in v1.0.0) | Rust, GTK3 |
experimental/lnxdrive-plasma/ |
KDE Plasma integration — archived for v0.1.0-alpha (reactivates in v1.0.0) | C++, CMake, Qt/KDE |
experimental/lnxdrive-cosmic/ |
COSMIC desktop UI — archived for v0.1.0-alpha (reactivates in v1.0.0) | Rust, libcosmic |
lnxdrive-packaging/ |
Distribution packages | Flatpak, AppImage, Debian, AUR |
lnxdrive-guide/ |
Design and development guide | Markdown |
lnxdrive-testing/ |
Container/VM test infrastructure | Podman, QEMU/libvirt |
The engine follows a hexagonal (ports & adapters) architecture:
- Domain core (
lnxdrive-core) defines sync logic, conflict resolution rules, and provider-agnostic interfaces - Adapters implement cloud provider APIs (Microsoft Graph, etc.), storage backends (SQLite), and IPC (D-Bus)
- Desktop UIs are fully interchangeable -- each desktop environment has its own native adapter
For a comprehensive deep-dive, see the Design and Development Guide.
# Clone the repository
git clone https://github.com/StrangeDaysTech/lnxdrive.git
cd lnxdrive
# Build the engine
cd lnxdrive-engine
cargo build
cargo test
# Build GNOME integration (requires meson, gtk4-devel, etc.)
cd ../lnxdrive-gnome
meson setup builddir
meson compile -C builddir- Read the Contributing Guide -- it covers branching, commit conventions, and the review process
- Read the Code of Conduct -- participation requires respectful, inclusive behavior
- Never commit directly to
main-- use feature branches and pull requests - Follow conventional commits --
feat:,fix:,docs:,refactor:,chore: - Sign the CLA -- required on your first pull request
This project uses StrayMark to maintain a complete documentation trail of architectural decisions, AI-assisted changes, and technical debt. See .straymark/ for the full audit history.
| Milestone | Scope | Status |
|---|---|---|
v0.1.0-alpha.1 |
OneDrive engine (sync, delta, FUSE files-on-demand), CLI, GNOME stack (GTK4 panel, Shell indicator, Nautilus overlays, GOA SSO), Flatpak bundle | Current |
v0.2.0-beta |
System settings group (auto-start, cache, dehydration), RPM/DEB/AUR/AppImage, Flathub submission, D-Bus Unix-socket fallback, i18n structure, telemetry opt-in | Planned |
v1.0.0 |
KDE Plasma, COSMIC and GTK3 (XFCE/MATE) front-ends, multi-provider (Google Drive, Dropbox), 5+ languages | Planned |
Work is tracked publicly in GitHub Issues and milestones; for detailed deliverables see the roadmap document.
We welcome contributions of all kinds -- code, documentation, testing, translations, and ideas.
Please read our Contributing Guide and Code of Conduct before getting started. All contributors must sign a Contributor License Agreement (CLA) on their first pull request.
LNXDrive is free software licensed under the GNU General Public License v3.0 or later.
The Design and Development Guide is licensed separately under the MIT License.
Strange Days Tech, S.A.S.
Because your files belong everywhere.





