Skip to content

Yandex Disk Dolphin sub menu. Publish / Unpublish from clipboard and files, copy / move files to specific directory

License

Notifications You must be signed in to change notification settings

Miheev/yaDiskDolphinMenu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Yandex Disk Dolphin Menu

KDE Dolphin file manager integration for Yandex Disk cloud storage sharing with support for multiple Linux desktop environments.

πŸ“š Documentation

πŸ“Œ Recommendation: The Python version is the recommended implementation with enhanced error handling and modern architecture.

Yandex Disk integration for KDE Dolphin sub menu: use yandex cloud directory for sharing clipboard content and files between PC, mobile, people, etc..

Inspired by yandex disk indicator context menu options

πŸ–₯️ File Manager Support Matrix

Consider GNOME/GTK Beta status, so it may not work as intended

File Manager Desktop Scripts/Actions Python Extensions Menu Location
Dolphin KDE βœ… Service Menus ❌ N/A Right-click context menu
Nautilus (Files) (Beta) GNOME βœ… Scripts βœ… Optional Scripts β†’ "YaDisk" / Right-click
Nemo (Beta) Cinnamon βœ… Actions βœ… Optional Right-click context menu
Caja (Beta) MATE βœ… Actions βœ… Optional Right-click context menu
Thunar (Beta) XFCE βœ… Custom Actions ❌ N/A Right-click context menu

Installation: See Usage Guide for file manager-specific setup examples.

πŸ“Έ Screenshots

Menu v1.6.4

Menu v1.6.4

Overview

Overview

✨ Key Features

Core Functionality

  • File Publishing: Create public links (.com/.ru domains) with one-click sharing
  • Clipboard Integration: Save and publish clipboard content (text and images)
  • File Operations: Copy/move files to Yandex stream directory
  • Batch Processing: Handle multiple files with intelligent error recovery
  • Auto-renaming: Automatic conflict resolution with _number suffix pattern

The original shell script implementation:

  • Publish file & copy ya.COM link - Publish file and copy international link
  • Publish file & copy ya.RU link - Publish file and copy local link
  • Publish clipboard & copy ya.COM/RU link - Save clipboard content and publish
  • Remove public link - Unpublish single file
  • Remove links for all copies - Unpublish file and all numbered copies
  • Save clipboard to stream - Save clipboard without publishing
  • Add file to stream - Copy file to stream directory
  • Move file to stream - Move file to stream directory

Key Improvements Over Shell Version

  • Multiple Item Processing - Process multiple files/directories with intelligent algorithms optimized for different operation types
  • Enhanced Parameter Logging - Comprehensive logging of input parameters, file details, and processing steps
  • Better Error Handling - Comprehensive exception handling with proper logging, continues processing remaining items on failures
  • Optimized Architecture - Centralized constants, clean separation of concerns, and improved code organization
  • Type Safety - Python type hints for better code reliability
  • Modular Design - Object-oriented structure for better maintainability
  • Testing - Full unit test coverage with mocking (52+ test cases)
  • Configuration - Flexible command-line configuration options
  • Documentation - Comprehensive inline documentation

Enhanced Reliability

  • Service Readiness: Waits for yandex-disk daemon (up to 30s) before operations
  • Error Handling: Continues processing remaining items if some fail
  • Native Notifications: Desktop-aware notifications (kdialog/notify-send)
  • Comprehensive Logging: Operation tracking with detailed error reporting
  • Rollback Support: Undo operations when errors occur

Multi-Platform Support

  • Desktop Environments:
    • KDE: primary, full support
    • GNOME, Cinnamon, MATE, XFCE: Beta, not tested
  • Session Types: X11 and Wayland clipboard support
  • File Managers: See support matrix above

πŸ’‘ Pro Tip: Use a separate Yandex account for file sharing to prevent over-sync and maintain security boundaries.

πŸ“‹ Requirements

Essential Dependencies

  • yandex-disk daemon (core functionality)
  • Python 3.8+ with venv support
  • Clipboard tools: xclip (X11) or wl-clipboard (Wayland)
  • Notifications: kdialog (KDE) or notify-send (GNOME/others)

Recommended Setup

πŸ“– Details: See Python Version README for complete dependency information and Usage Guide for installation examples.

πŸš€ Quick Start

Automated Installation (Recommended)

# 1. Install system dependencies (detects your distribution and desktop)
make install-system-deps

# 2. Install and configure Python version with desktop-aware integration
make install
make configure  # Automatically detects and configures your file manager

Manual Installation Options

# Shell version only (lightweight)
./setup.sh

# Python version only (advanced features)
make install-system-deps && make install && make configure

# Both versions (maximum compatibility)
./setup.sh && make install && make configure-skip-env

πŸ“š Detailed Examples: See Usage Guide for file manager-specific installation, troubleshooting, and advanced configuration options.

Prerequisites

  1. Install yandex-disk daemon: Follow official guide
  2. Install yd-tools (recommended): Provides icons and utilities
  3. Configure your stream directory: Set up where files will be copied/published

πŸ”§ Setup Help: Detailed setup instructions, file manager-specific examples, and troubleshooting are in the Usage Guide.

License

This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).

What you can do:

  • βœ… Share β€” copy and redistribute the material in any medium or format
  • βœ… Adapt β€” remix, transform, and build upon the material
  • βœ… Use for personal, educational, and non-commercial purposes

Conditions:

  • πŸ”— Attribution β€” Provide appropriate credit and a link to the license
  • 🚫 NonCommercial β€” No commercial use without written permission
  • ♻️ ShareAlike β€” Derivatives must be licensed under CC BY-NC-SA 4.0

Commercial Use:

For any commercial use of this software, including but not limited to:

  • Use in commercial software or services
  • Distribution as part of commercial products
  • Use in commercial environments or for commercial purposes
  • Integration into commercial applications

Written permission is required for any commercial use.

For commercial licensing inquiries, please open an issue: https://github.com/Miheev/yaDiskDolphinMenu/issues.

See LICENSE for full terms and conditions.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make changes with tests
  4. Run quality checks: make lint test
  5. Submit pull request

About

Yandex Disk Dolphin sub menu. Publish / Unpublish from clipboard and files, copy / move files to specific directory

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published