Skip to content

Ferdinaelectro1/DriveSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DriveSync Logo

DriveSync

The missing Google Drive sync client for Linux — also available on Windows.

License: MIT Platform Language Release

Demo


Why DriveSync?

Google provides no official Drive client for Linux. DriveSync fills that gap.

Drop a file in your watched folder — DriveSync uploads it to Google Drive instantly, in the background, without you doing anything.


Features

  • Real-time file watching — inotify on Linux, ReadDirectoryChangesW on Windows
  • Automatic sync — file creation, modification, and deletion are reflected on Drive
  • Move detection — files moved into the watched folder are synced automatically
  • Full Unicode support — filenames with spaces, accents, and special characters work on both platforms
  • One-click OAuth2 — click "Connect with Google", sign in, done. No manual credentials
  • Token refresh — access tokens are renewed automatically, forever
  • Auto folder creation — a dedicated FolderName-dv folder is created on Drive at first run
  • System tray icon — stop the sync cleanly from the tray, no terminal needed
  • GUI setup — ImGui/SDL2 interface for first-time configuration
  • Lightweight — no background daemon bloat, no subscription

Download

No installation required — just download and run.

Platform Download
🐧 Linux DriveSync-x86_64.AppImage
🪟 Windows DriveSync-windows-x64.zip

Getting Started

Linux

chmod +x DriveSync-x86_64.AppImage
./DriveSync-x86_64.AppImage

To stop DriveSync, right-click the tray icon and select Stop DriveSync.

Windows

Unzip the archive, keep all files in the same folder, then double-click DriveSync.exe.

To stop DriveSync, right-click the tray icon and select Arrêter DriveSync.


First Launch

  1. A setup window opens
  2. Select the local folder you want to sync
  3. Click "Connect with Google" — your browser opens
  4. Sign in with your Google account and accept
  5. DriveSync starts watching your folder immediately

Note: The app is currently in Google test mode. To use it, send your Google account email to atiferdinand31@gmail.com to be added as a tester.

Note: Google OAuth tokens expire every 7 days in test mode. Simply reconnect when prompted. Full verification is in progress.


Known Limitations (v1.0.0)

  • Google test mode : refresh tokens expire after 7 days until the app is verified by Google.

Build from Source

Linux

git clone https://github.com/Ferdinaelectro1/DriveSyncV2.git
cd DriveSyncV2

# Install dependencies
sudo apt install libsdl2-dev libcurl4-openssl-dev cmake g++ libayatana-appindicator3-dev

# Build
chmod +x build_linux.sh
./build_linux.sh

Windows (MSYS2)

# Install dependencies via MSYS2
pacman -S mingw-w64-ucrt-x86_64-SDL2 mingw-w64-ucrt-x86_64-curl cmake

# Build
./build_win.bat

ImGui is fetched automatically via CMake FetchContent — no manual setup needed.


Architecture

DriveSync is built with clean C++17 architecture:

Core Orchestrator
├── IWatcher           → inotify (Linux) / ReadDirectoryChangesW (Windows)
├── IEventMapper       → maps filesystem events to Drive actions
└── ICommandRunManager → Strategy pattern for sync operations
  • OAuth2 with local HTTP server on port 8765
  • libcurl for all Drive API calls
  • nlohmann/json for JSON parsing
  • ImGui + SDL2 for the setup UI
  • GTK/libayatana-appindicator for the Linux tray icon
  • Win32 Shell_NotifyIcon for the Windows tray icon

Roadmap

  • Selective folder sync
  • System tray icon
  • Conflict resolution
  • Google OAuth app verification (remove tester restriction)
  • .deb package

Contributing

Pull requests are welcome. For major changes, open an issue first.


License

MIT © Ferdinand

About

Lightweight Google Drive sync client for Linux & Windows

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors