ClyoCloud /
DesktopClient
A lightweight, high-performance companion application for ClyoCloud, delivering 100% feature and visual parity with the native macOS client for both Windows 10/11 and Linux...
Get DesktopClient
Version 1.0.8 · 8 Nov 2026
🌌 ClyoCloud Desktop Client (Windows & Linux)
A lightweight, high-performance companion application for ClyoCloud, delivering 100% feature and visual parity with the native macOS client for both Windows 10/11 and Linux desktop environments.
It lives in your system notification tray with a frosted-glass popover, real-time two-way folder synchronization, drag-and-drop cloud uploads, 1-click cloud wallpaper desktop management, an instant clipboard uploader with global hotkey support, and standalone wizard installers built with InstallerFramework.
🚀 Key Features
-
⚡ Native System Tray Integration:
- Clean monochrome tray icon (cloud idle, active rotating blue sync icon during transfers).
- Left-click opens the frosted-glass popover anchored to the tray; right-click opens a quick utility context menu (
Open Web,Sync All Now,Upload Clipboard,Preferences,Quit). - Seamless auto-hide on blur (clicking outside the window), matching macOS NSPopover behavior (automatically disabled on tiling environments like HyDE/Hyprland so the window remains open alongside other desktop windows).
-
📂 Drag-and-Drop Upload Zone:
- Glassmorphic drag target accepting multiple files or folders from Windows File Explorer / Linux file managers.
- Destination folder picker (upload to cloud root
/or any specific remote folder). - Real-time transfer progress tracking and recent activity history.
-
🖼️ Cloud Desktop Wallpaper Gallery:
- Dedicated scrollable 2-column grid fetching cloud wallpapers from
/api/wallpapers. - Authenticated thumbnail caching via
/thumbnail/{path}with fallback to/file/{path}. - Instant 1-click "Set as Desktop" action with native OS integrations:
- Windows: Sets wallpaper via
user32.dllSystemParametersInfoW. - Linux: Automatic detection and native configuration for GNOME, KDE Plasma, XFCE, MATE, Cinnamon, and X11 tools (
feh,nitrogen).
- Windows: Sets wallpaper via
- Dynamic visual feedback ("Applied!" with checkmark).
- HyDE (Hyprland) support: when
~/.config/hyde/themesexists, the button becomes "Add Wallpaper to Theme" and only downloads the image into the active theme'swallpapers/folder (theme read from~/.local/state/hyde/staterc). It never changes the current wallpaper; pick it yourself with HyDE's wallpaper selector.
- Dedicated scrollable 2-column grid fetching cloud wallpapers from
-
🔄 Real-Time Two-Way Folder Synchronization:
- Cross-platform kernel filesystem monitoring via chokidar (
ReadDirectoryChangesWon Windows,inotifyon Linux) with zero CPU overhead. - Two-way differential reconciliation engine comparing remote files (
/api/files) against local directories. - Phase 1 Local Rename Detection: Detects file renames and moves locally and executes server-side renames (
/api/rename) without re-uploading large data. - Phase 2 3-Way Reconciliation: Handles additions, modifications, remote downloads, local uploads, and conflicts (preserving local copies as
(Conflict <timestamp>)). - Automatic exclusion of metadata and temp files (
.DS_Store,Thumbs.db,desktop.ini,.cloudinfo,.tmp,.crdownload).
- Cross-platform kernel filesystem monitoring via chokidar (
-
📸 Screenshot & Clipboard Uploader:
- Click "Upload Clipboard" or press
Ctrl + Alt + U(orCmd + Alt + U) anywhere on your system to grab the image from your clipboard, upload it directly to ClyoCloud, copy the shareable file URL back to your clipboard, and fire an OS desktop notification.
- Click "Upload Clipboard" or press
-
🔑 Dual Authentication:
- Quick Device Token / QR Payload: Paste a device token or QR JSON payload from ClyoCloud settings. Automatically reports device model (e.g.
Windows 11 (build 22631, x64)orLinux (Ubuntu 24.04, x64)) to the server. - Standard Credentials: Username and password with support for TOTP 2FA codes and recovery scratch keys.
- Tokens stored securely via Electron
safeStorage(Windows DPAPI / Linux Secret Service) with restricted permissions fallback.
- Quick Device Token / QR Payload: Paste a device token or QR JSON payload from ClyoCloud settings. Automatically reports device model (e.g.
-
📦 Modern Installer Wizards (InstallerFramework):
- Single-file, standalone setup wizards for Windows (
ClyoCloud-Setup-Windows.exe) and Linux (ClyoCloud-Setup-Linux) built using InstallerFramework (Avalonia UI). - Features welcome page, license agreement, destination directory selection, shortcut creation, live extraction progress bar, and completion launch.
- Single-file, standalone setup wizards for Windows (
-
🚀 Launch at System Login:
- Automatic boot configuration supporting:
- Windows: Registry
HKCU\Software\Microsoft\Windows\CurrentVersion\Runand Electron login item settings. - Linux: XDG Autostart
~/.config/autostart/clyocloud.desktop.
- Windows: Registry
- Automatic boot configuration supporting:
🛠 Building & Running
Prerequisites
- Node.js 18+ (tested on Node 24)
- npm 9+
- .NET SDK 8.0+ (for building installer wizards)
Build & Run
cd DesktopClient
# Install dependencies (if not already installed)
npm install
# Compile TypeScript and bundle assets
npm run build
# Launch the desktop client
npm start
Direct System Installation (Clone & Install)
You can install ClyoCloud directly into your desktop environment with application launcher shortcuts, desktop icons, and terminal command integration identical to running the setup wizard:
git clone https://code.weexnes.dev/ClyoCloud/DesktopClient.git
cd DesktopClient
npm install
npm run install # or 'make install'
To remove the installation:
npm run uninstall # or 'make uninstall'
Packaging Binaries & Installers
1. Quick Installer Build (All Platforms)
# Setup the installer framework environment
make installer-setup
# Build both Linux & Windows single-file installers
make installer-all
Output files will be generated in installer/publish/:
- Windows:
installer/publish/win-x64/ClyoCloud-Setup-Windows.exe - Linux:
installer/publish/linux-x64/ClyoCloud-Setup-Linux
2. Individual Platform Builds
- Linux Installer Only:
make installer-linux - Windows Installer Only:
make installer-win - Direct Electron Packages:
make package-linuxormake package-win
🔄 OneDev CI/CD Pipeline
The repository includes a ready-to-run .onedev-buildspec.yml configured with the Builder job executor. It automatically:
- Checks out the code repository
- Runs
npm installandnpm run build - Packages unpacked application payloads for Linux and Windows (
electron-builder --dir) - Clones and configures
InstallerFramework - Compiles standalone single-file installer wizards (
ClyoCloud-Setup-Windows.exeandClyoCloud-Setup-Linux) - Extracts the current version from
package.jsonintoversion.txt - Publishes all installer binaries as build artifacts in OneDev
📁 Project Architecture
DesktopClient/
├── .onedev-buildspec.yml # Automated OneDev CI/CD pipeline
├── package.json # Dependencies, build scripts, electron-builder config
├── tsconfig.json # TypeScript configuration
├── Makefile # Quick build, run, package, and installer targets
├── scripts/
│ └── build.js # Esbuild compilation & asset pipeline
├── assets/ # App & tray icons
│ ├── icon.png # ClyoCloud application icon (1024x1024)
│ ├── icon.ico # Windows application icon
│ ├── tray-idle.png # Monochrome tray icon (cloud)
│ └── tray-syncing.png # Animated/active tray icon (sync)
├── installer/ # Standalone InstallerFramework project
│ ├── ClyoCloudInstaller.csproj # .NET 8 installer project definition
│ ├── Program.cs # Fluent installer wizard definition (Avalonia UI)
│ ├── setup.sh / setup.ps1 # InstallerFramework clone & restore script
│ └── build.sh / build.ps1 # Single-file installer publish script
└── src/
├── shared/
│ └── types.ts # Shared data models (ClyoFile, ServerStats, SyncFolderPair)
├── main/
│ ├── index.ts # App lifecycle, single-instance lock, IPC handlers
│ ├── tray.ts # Tray creation, context menu, popover positioning & toggling
│ ├── api/
│ │ └── clyoApi.ts # REST API client (login, 2FA, files, stats, upload, download)
│ ├── sync/
│ │ ├── syncEngine.ts # 2-way differential sync engine (rename detection, 3-way reconciliation)
│ │ ├── watcher.ts # chokidar filesystem watcher with debounce
│ │ └── manifest.ts # Per-pair state manifest manager
│ ├── platform/
│ │ ├── wallpaper.ts # Windows (user32.dll) & Linux (GNOME/KDE/XFCE/feh) wallpaper setter
│ │ ├── hyde.ts # HyDE detection: download wallpapers into the active theme folder
│ │ ├── autostart.ts # Windows Registry & Linux XDG autostart manager
│ │ └── device.ts # OS release & device model detection
│ ├── clipboard/
│ │ └── uploader.ts # Clipboard image grab, upload, share link copy, notification
│ └── storage/
│ ├── settings.ts # Settings persistence (settings.json)
│ └── secureStore.ts # Safe storage (DPAPI/libsecret with fallback)
├── preload/
│ └── preload.ts # Secure typed contextBridge API
└── renderer/
├── index.html # Popover UI layout
├── styles/
│ ├── main.css # Frosted glass design system, typography, animations
│ └── components.css # Tabs, dropzone, cards, modal, switches
└── src/
└── app.ts # Reactive state manager, tabs controller, UI logic