# iCloud Drive for Linux A GTK3 GUI for [icloud-linux](https://github.com/IsmaeelAkram/icloud-linux), designed for ElementaryOS with a Granite-inspired interface. Sync your iCloud Drive and download iCloud Photos directly from the desktop. ![ElementaryOS](https://img.shields.io/badge/ElementaryOS-7%2B-64a6e0?style=flat-square) ![Python](https://img.shields.io/badge/Python-3.10%2B-blue?style=flat-square) ![GTK](https://img.shields.io/badge/GTK-3.0-green?style=flat-square) ## Features - **Dashboard** — Start, stop, restart, and sync iCloud Drive. Shows the current file being synced in real time with auto-refreshing status. - **Logs** — Live-follow service logs with color-coded ERROR / WARNING / INFO lines. - **Photos** — Download your most recent iCloud Photos as JPEGs into `~/Pictures/iCloud Photos` so the Photos app can display them natively. - **Settings** — Configure your Apple ID, sync intervals, warmup workers, and more. Prompts to restart the service when saved. - **Sign In** — Authenticate with Apple ID and handle two-factor authentication. - **Sleep/wake aware** — Automatically reconnects log streams after the computer wakes from sleep. ## Requirements - ElementaryOS 7+ / Ubuntu 22.04+ - [icloud-linux](https://github.com/IsmaeelAkram/icloud-linux) installed and configured - Python 3.10+ - GTK 3.0 ## Installation Clone this repo next to your icloud-linux installation and run the installer: ```bash git clone https://github.com/nmemmert/icloud_linux_app.git cd icloud_linux_app bash install.sh ``` The installer will: - Install system dependencies (`python3-gi`, `fuse`, `heif-gdk-pixbuf`, etc.) - Set up the GUI at `~/.local/lib/icloud-gui/` - Create a launcher at `~/.local/bin/icloud-drive` - Add **iCloud Drive** to your app menu (Slingshot) ## Running Without Installing ```bash python3 icloud_gui.py ``` ## Uninstall ```bash bash uninstall.sh ``` Your config (`~/.config/icloud-linux`) and downloaded photos (`~/Pictures/iCloud Photos`) are left intact. ## Photos Setup The Photos tab uses [icloudpd](https://github.com/icloud-photos-downloader/icloud_photos_downloader) (bundled with icloud-linux) to download photos directly to `~/Pictures/iCloud Photos` as JPEGs. The ElementaryOS Photos app will find and display them automatically. - **Sync Recent (200)** — Downloads your 200 most recent photos - **Sync More (1000)** — Downloads your 1000 most recent photos - **Open Photos App** — Launches the ElementaryOS Photos app - **Open Folder** — Opens the download folder in Files ## Project Structure | File | Description | |------|-------------| | `icloud_gui.py` | Main GTK3 application | | `icloud_photos_fs.py` | FUSE filesystem for on-demand photo access (experimental) | | `install.sh` | Installer script | | `uninstall.sh` | Uninstaller script | | `com.elementary.icloud-linux.desktop` | App menu desktop entry | ## License MIT