2026-06-30 06:23:36 +02:00
2026-06-30 03:52:06 +02:00
fmt
2026-06-30 06:23:00 +02:00
2026-06-30 04:07:19 +02:00
2026-06-30 06:22:40 +02:00
2026-06-28 17:15:10 +02:00
2026-06-30 06:23:36 +02:00
2026-06-30 06:23:36 +02:00
2026-06-30 03:27:13 +02:00
2026-06-30 04:07:19 +02:00

Proton Drive client for Linux (unofficial)

A fast, unofficial Proton Drive client for Linux. This client provides a FUSE files-on-demand virtual mount, a command-line interface (CLI), and a GTK4 desktop application with system tray integration.

Features

  • Files-on-demand (FUSE): Mount your Proton Drive as a virtual filesystem where files are downloaded only when opened.
  • Command-Line Interface (CLI): Manage your drive, authenticate, and monitor sync status directly from the terminal.
  • GTK4 Desktop App: Log in, browse files, and configure sync options through a modern, native Linux GUI.
  • System Tray Integration: Background indicator for status monitoring, quick actions, and fast sync controls.
  • Secure Credential Storage: Integrates with the system Secret Service (GNOME Keyring, KWallet, etc.) for safe token storage.
  • Proton Photos Support: Access your Proton Photos timeline, view thumbnails, and download backed-up media natively (available in the GUI as a navigation tab and via the CLI).

Screenshots

GUI Application

Login Screen Account Overview
Login Screen Account Overview
Files (Grid View) Files (List View)
Files Grid Files List

Prerequisites

To compile the application from source or run the built binaries, ensure you have the following system libraries installed on your distribution:

Ubuntu / Debian (24.04+)

sudo apt-get update
sudo apt-get install -y \
  pkg-config \
  libfuse3-dev \
  libgtk-4-dev \
  libadwaita-1-dev \
  libsecret-1-dev \
  libdbus-1-dev

Arch Linux

sudo pacman -S --needed pkgconf fuse3 gtk4 libadwaita libsecret dbus

Building from Source

Ensure you have Rust and Cargo installed (minimum supported Rust version is 1.96).

  1. Clone the repository and navigate into the project directory:
    git clone https://github.com/narl/proton-drive-linux.git
    cd proton-drive-linux
    
  2. Build the workspace in release mode:
    cargo build --release --locked
    

The compiled binaries will be available under target/release/:

  • pdfs: The CLI utility.
  • pdfs-app: The GTK4 application.
  • pdfs-tray: The tray status notifier.

Installation & Packages

1. Debian / Ubuntu (.deb)

Install the debian package via dpkg or apt:

sudo apt install ./proton-drive-linux_*.deb

2. Arch Linux

A local PKGBUILD is available under the packaging/ directory. You can build and install it using:

cd packaging && makepkg -fi

Automated Releases (CI/CD)

This project has a GitHub Actions CI workflow configured under .github/workflows/release.yml.

How it works:

  1. Triggers:
    • Pushing a git tag matching v* (e.g. git tag v0.1.0 && git push origin v0.1.0).
    • Manual runs via the Actions tab in GitHub (workflow_dispatch).
  2. Build Process:
    • Spawns an Ubuntu runner and installs GTK4, Libadwaita, FUSE3, and Secret Service packages.
    • Sets up the Rust compiler and caches build targets to speed up runs.
    • Compiles the workspace members in release mode.
  3. Artifact Packaging:
    • Generates a .tar.gz containing the raw binaries (pdfs, pdfs-app, pdfs-tray).
    • Packs them into a Debian package (.deb).
  4. Publishing:
    • Creates a GitHub Release matching the pushed tag and uploads the .deb and .tar.gz packages as release assets.
    • For manual runs, compiles and exposes the packages as workflow run artifacts for testing.

License

This project is licensed under the MIT License.

S
Description
No description provided
Readme MIT
22 MiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 94.4%
Python 4.6%
Shell 0.6%
CSS 0.3%
Nix 0.1%