| .forgejo/workflows | ||
| .github/workflows | ||
| assets | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
| shell.nix | ||
Rclone UI Manager
Кроссплатформенный графический интерфейс для rclone, написанный на Rust с использованием egui. Приложение предоставляет удобный способ управления облачными хранилищами (Google Drive, Dropbox, S3 и др.) и локальными файлами, поддерживает копирование, перемещение, удаление и синхронизацию с отображением хода выполнения операций.
Возможности
- Автоматическая установка rclone – обнаруживает системный rclone или загружает последнюю версию автоматически.
- Управление удалёнными хранилищами (remotes) – просмотр, проверка и использование всех настроенных в rclone подключений.
- Локальный файловый менеджер – навигация по локальной файловой системе, выбор папок назначения.
- Основные файловые операции:
- Копирование / Перемещение / Удаление нескольких файлов или папок.
- Рекурсивная обработка директорий.
- Фоновые задачи – асинхронные операции с индикаторами прогресса и статусом выполнения.
- История навигации – кнопки «Назад» / «Вперёд» для быстрого перемещения.
- Пользовательские шрифты – поддержка Sans.otf и NotoColorEmoji.ttf для улучшенного внешнего вида (опционально).
- Кроссплатформенность – работает на Windows, macOS и Linux.
Системные требования
- Rust (при сборке из исходников) – стабильный инструментарий.
- Cargo – входит в состав Rust.
- Операционная система – Windows 10/11, macOS 10.15+ или современный дистрибутив Linux.
- rclone – не требуется, приложение загрузит его при необходимости.
Установка
Готовые сборки (пока не предоставляются)
В будущих релизах могут быть добавлены исполняемые файлы. Пока что собирайте из исходников.
Сборка из исходников
-
Клонируйте репозиторий:
git clone https://github.com/yourusername/rclone-ui-manager.git cd rclone-ui-manager -
(Опционально) Поместите пользовательские шрифты в папку
assets/fonts/:Sans.otfNotoColorEmoji.ttf
-
Соберите и запустите:
cargo run --releaseПервый запуск может занять некоторое время из-за компиляции зависимостей. Исполняемый файл появится в
target/release/rclone-ui-manager(илиrclone-ui-manager.exeна Windows).
Зависимости для Linux
На Linux могут потребоваться следующие системные библиотеки:
# Ubuntu / Debian
sudo apt install libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libwayland-dev pkg-config
# Fedora
sudo dnf install libX11-devel libXrandr-devel libXinerama-devel libXcursor-devel libXi-devel wayland-devel pkgconf
Использование
- Запустите приложение.
- На левой боковой панели отобразится список ваших rclone remote (если они есть). Если remotes не настроены, используйте командную строку rclone для их добавления – в будущих версиях появится графический интерфейс для настройки.
- Нажмите на имя remote, чтобы просмотреть его содержимое.
- Выберите файлы/папки, щёлкая по их иконке (📁 или 📄). Можно выбирать несколько элементов.
- После выбора внизу появятся кнопки: Копировать, Переместить, Удалить.
- Для копирования/перемещения укажите путь назначения:
- Облако – введите путь в формате rclone (например,
gdrive:/backup). - ПК – выберите локальную папку через встроенный файловый браузер или введите путь вручную.
- Облако – введите путь в формате rclone (например,
- Нажмите Начать – операция запустится в фоне. Прогресс отображается на правой панели.
Навигация
- ⬅ / ➡ – переход назад / вперёд по истории.
- 🔄 – обновить текущую директорию.
- 📁 .. (Вверх) – подняться на уровень выше.
Обработка ошибок
Сообщения об ошибках появляются во всплывающих окнах. Активные задачи перечислены на правой панели. Вы можете закрыть приложение, пока операции выполняются (они запускаются в отдельных потоках).
Конфигурация
Приложение хранит настройки в стандартной пользовательской папке данных:
- Windows:
%APPDATA%\rclone-ui\ - macOS:
~/Library/Application Support/rclone-ui/ - Linux:
~/.local/share/rclone-ui/
Сейчас в AppSettings хранятся только некоторые параметры (показ скрытых файлов, ограничение скорости). В будущих версиях они будут доступны через интерфейс.
Разработка
Структура проекта
src/
├── main.rs # Точка входа, загрузка шрифтов
├── ui.rs # Состояние UI и типы
├── ui/
│ ├── app.rs # Реализация egui::App
│ └── rcloneui.rs # Логика UI, фоновые задачи
├── operations/
│ ├── files.rs # Обёртка над rclone lsjson
│ ├── sync.rs # copy/move/delete/purge
│ ├── remotes.rs # list/get/create/update/delete remotes
│ ├── local_fs.rs # Чтение локальных директорий
│ ├── fileinfo.rs # Вспомогательные методы FileInfo
│ └── ... # info, search, check
└── rclone_install/
├── mod.rs # Определение RcloneApp
└── rclone_install_real.rs # Обнаружение и загрузка rclone
Добавление новых функций
- Новые операции с remotes – расширяйте
operations/remotes.rs. - Дополнительные команды файловых операций – реализуйте в
operations/sync.rsи вызывайте изRcloneUI. - Новые панели UI – используйте
egui::SidePanel,CentralPanelилиWindow.
Тестирование
Запуск всех тестов:
cargo test
Некоторые тесты помечены как ignore (например, реальная загрузка rclone) – запустите их командой cargo test -- --ignored.
Устранение неполадок
«Rclone not found» / ошибка установки
- Проверьте интернет-соединение – приложение скачивает rclone с GitHub.
- На Linux убедитесь, что установлен
unzip(хотя cratezipне требует его, но для ручной проверки может понадобиться). - При работе через корпоративный прокси установите переменные окружения
HTTP_PROXYиHTTPS_PROXY.
Отсутствие шрифтов
Приложение нормально работает со стандартными системными шрифтами. Поместите файлы шрифтов в assets/fonts/, чтобы изменить внешний вид.
Ошибки компиляции на Linux
Установите все необходимые пакеты для разработки X11 (см. раздел «Зависимости для Linux»).
Приложение не показывает локальные директории на Windows
Локальный браузер по умолчанию открывает C:\. Чтобы перейти на другой диск, введите путь вручную (например, D:\) в поле назначения.
Планы на будущее
- Графическая настройка remote (создание/изменение).
- Предварительный просмотр синхронизации (dry-run со списком файлов).
- Ползунок ограничения скорости.
- Поиск файлов по имени/пути.
- Поддержка фильтров rclone (
--include,--exclude). - Отображение информации о ёмкости хранилища (rclone about).
- Переключение светлой/тёмной темы.
Лицензия
Проект лицензируется на условиях MIT License или Apache License 2.0 на ваш выбор. Файл LICENSE будет добавлен позднее.
Участие в разработке
Приветствуются любые вклады! Пожалуйста, создавайте issue или pull request. Соблюдайте существующий стиль кода и по возможности добавляйте тесты.
Благодарности
- rclone – основа всех операций с хранилищами.
- egui – библиотека для мгновенного GUI.
- tokio – асинхронная среда выполнения для загрузки rclone.
- dirs – кросс-платформенное определение директорий.
Наслаждайтесь удобным управлением вашими облачными файлами!
