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 -- Connect OneDrive, Google Drive, Dropbox, and more. Unlimited account namespaces (
onedrive:work,gdrive:personal). - 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 │
└─────────────────────┘ └──────────────┘
LNXDrive is in early development. The instructions below describe the intended installation flow. Pre-built packages are not yet available.
- Linux with kernel 5.15+ and FUSE 3 support
- systemd (user session)
- A supported desktop environment (GNOME 45+, KDE Plasma 6, COSMIC, XFCE 4.18+, or MATE 1.26+)
Pre-built packages will be available for:
| Format | Desktop | Status |
|---|---|---|
| Flatpak | All | Planned |
| AppImage | All | Planned |
.deb |
Debian/Ubuntu | Planned |
| AUR | Arch Linux | Planned |
- Install LNXDrive using your preferred package format
- Launch the setup wizard from your application menu or run
lnxdrive setup - Add a cloud account -- the wizard will guide you through OAuth authentication
- Choose your sync mode -- select which folders to sync and whether to use files-on-demand
- Start syncing -- LNXDrive runs automatically as a systemd user service
# Check daemon status
lnxdrive status
# Add a OneDrive account
lnxdrive account add onedrive:work
# List synced files
lnxdrive ls /
# Force sync a specific path
lnxdrive sync ~/OneDrive/Documents
# View sync activity
lnxdrive log --followThis 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 |
lnxdrive-gtk3/ |
XFCE/MATE desktop UI | Rust, GTK3 |
lnxdrive-plasma/ |
KDE Plasma integration | C++, CMake, Qt/KDE |
lnxdrive-cosmic/ |
COSMIC desktop UI | 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 DevTrail to maintain a complete documentation trail of architectural decisions, AI-assisted changes, and technical debt. See .devtrail/ for the full audit history.
LNXDrive development is organized in phases:
| Phase | Milestone | Status |
|---|---|---|
| 0 | Testing infrastructure (containers, CI/CD, mock servers) | In progress |
| 1 | Core engine + CLI (sync, delta, rate limiting, systemd service) | Planned |
| 2 | Files-on-Demand (FUSE, placeholders, hydration) | Planned |
| 3 | GNOME integration (Shell extension, Nautilus overlays, GOA) | Planned |
| 4 | Conflict resolution UI and declarative policies | Planned |
| 5 | KDE Plasma integration | Planned |
| 6 | Multi-provider support (Google Drive, Dropbox) | Planned |
| 7 | COSMIC desktop integration | Planned |
| 8 | GTK3 integration (XFCE/MATE) | Planned |
| 9 | Packaging and distribution | Planned |
| 10 | Observability and advanced features | Planned |
For the full roadmap with 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.