Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
77 lines
2.8 KiB
Markdown
77 lines
2.8 KiB
Markdown
# 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.
|
|
|
|

|
|

|
|

|
|
|
|
## 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
|