This guide provides detailed installation examples, file manager-specific setup, and troubleshooting instructions.
📋 Overview: For project introduction and quick start, see README. For developer workflow and directory map, see Developer Guide. For Python user-facing technical details, see Python README.
Consider GNOME/GTK Beta status, so it may not work as intended
| Desktop Environment | Recommended Setup Command |
|---|---|
| Any Desktop (Auto-detect) | make install-system-deps && make install && make configure |
| Existing YA_DISK_ROOT | make install-system-deps && make install && make configure-skip-env |
| Shell only (KDE) | ./setup.sh |
🎯 Most users: Use auto-detection (make configure)
⚡ Minimal setup: Use shell version (./setup.sh)
🔧 Granular control: Use individual component commands (gnome-install, gnome-ext-install)
🚫 Existing config: Use skip environment variables (make configure-skip-env)
| Method | Speed | Features | When to Use |
|---|---|---|---|
Auto-detect (make configure) |
Fast | Auto-detects your environment | Recommended - Optimized setup, good for quick start |
Skip environment variables (make configure-skip-env) |
Fast | Auto-detects your environment | Good for update existing setup after get recent update, e.g. git pull |
Shell only (KDE) (./setup.sh) |
Fastest | Basic features, minimal deps | Lightweight systems, KDE only |
| Manual components | Slower | Full control over components | Troubleshooting, custom setups |
Setup:
make install-system-deps # Install KDE dependencies (notification, clipboard tools)
make install && make configure # Auto-detects KDE and configures for DolphinAlternative (Shell only):
./setup.sh # Lightweight shell versionMenu Location: Right-click on files → "YaDisk" or "YaDisk (Python)"
💡 Integration Types:
make gnome-install- Scripts/actions integration (works everywhere, basic functionality)make gnome-ext-install- Python extensions integration (enhanced functionality, requires specific packages)
Setup:
# Install GNOME dependencies and configure everything at once
make install-system-deps
make install && make configure # Auto-detects GNOME and configures all file managers
# Or skip environment variable setup
make install && make configure-skip-envFor manual control you can use component commands:
make gnome-install # 1 Scripts/actions for GNOME file managers
make gnome-ext-install # 2 Optional Python extensions when supported
make gnome-status # 3 Check scripts/actions status
make gnome-ext-status # 4 Check extensions status
nautilus -q # 5 Restart file manager
caja -q
nemo -qNote: Thunar uses custom actions (XML), not Python extensions.
Menu Locations:
- Scripts: Files → Scripts → "YaDisk – ..." (always available)
- Extension: Right-click context menu → "YaDisk" (enhanced integration)
make configure # Auto-detect desktop and configure (recommended)
make configure-skip-env # Auto-detect desktop, skip environment variablesWhat make configure does:
- Detects desktop environment (KDE, GNOME, etc.)
- KDE: Configures Dolphin service menus
- GNOME: Installs scripts/actions + optional Python extensions
- Unknown: Universal configuration with manual file manager setup
# GNOME/GTK file managers (manual control)
make gnome-install # Install scripts/actions for all file managers
make gnome-ext-install # Install Python extensions for all supported file managers
make gnome-status # Check scripts/actions status
make gnome-ext-status # Check Python extensions status
make gnome-uninstall # Remove all scripts/actions
make gnome-ext-uninstall # Remove all Python extensions
# Status & Maintenance
make status # Overall installation status
make test # Run all tests
make clean # Clean build files
make uninstall # Remove Python version- X11: Uses
xclipfor clipboard operations - Wayland: Uses
wl-clipboardfor clipboard operations - Python: Uses
pyclip(auto-detects and switches between xclip and wl-clipboard)
| Desktop | Required | Optional Extensions |
|---|---|---|
| KDE | kdialog, xclip/wl-clipboard |
None |
| GNOME | libnotify-bin, clipboard tools |
python3-nautilus, python3-gi |
| Others | notify-send, clipboard tools |
Desktop-specific packages |
make install-system-deps # Detects your distribution and desktopSupported Package Managers:
- APT (Ubuntu/Debian)
- DNF (Fedora/Red Hat)
- Pacman (Arch Linux)
# Fresh install (any desktop)
make install-system-deps && make install && make configure
# Existing YA_DISK_ROOT
git reset --hard HEAD && git pull && make install && make configure-skip-env
# Shell version only (KDE)
./setup.shBasic Integration (GNOME/GTK)
make gnome-install # Scripts/actions for Nautilus, Nemo, Caja
# Result: Menu items available in all supported file managersUse Case: Enhanced Integration (Python Extensions)
make gnome-ext-install # Python extensions for all supported file managers
# Result: Advanced integration where supported (auto-detects capabilities)Use Case: Development Testing
# Install everything for comprehensive testing
make gnome-install # All scripts/actions
make gnome-ext-install # All Python extensions
make gnome-status # Check scripts status
make gnome-ext-status # Check extensions statusUse Case: Troubleshooting
# Check what's installed
make status # Overall Python setup status
make gnome-status # Scripts/actions status for all file managers
make gnome-ext-status # Python extensions status for all file managers
# Reinstall if broken
make gnome-uninstall && make gnome-install
make gnome-ext-uninstall && make gnome-ext-installBasic File Operations:
- Publish File: Right-click file → YaDisk → "Publish (COM)" or "Publish (RU)"
- Copy to Stream: Right-click file → YaDisk → "Copy to Stream"
- Save Clipboard: Right-click anywhere → YaDisk → "Save Clipboard"
Batch Operations (Python Version):
- Select multiple files → Right-click → YaDisk → Choose action
- Intelligent error handling continues with remaining files if some fail
Menu Actions Available:
| Action | Description | Location |
|---|---|---|
| Publish (COM) | Create public .com link and copy to clipboard | All file managers |
| Publish (RU) | Create public .ru link and copy to clipboard | All file managers |
| Save Clipboard | Save clipboard content to stream directory | Background click |
| Save & Publish Clipboard | Save clipboard and create public link | Background click |
| Copy to Stream | Copy selected files to stream directory | Selected files |
| Move to Stream | Move selected files to stream directory | Selected files |
| Unpublish | Remove public link for file | Single file |
| Unpublish All Copies | Remove public links for file and all copies | Single file |
KDE Dolphin:
# Check service menu files
ls ~/.local/share/kservices5/ServiceMenus/ydpublish*.desktop # older Plasma versions
ls ~/.local/share/kio/servicemenus
# Restart Dolphin
dolphin --replace &GNOME Files:
# Check scripts installation
ls ~/.local/share/nautilus/scripts/YaDisk*
# Restart Nautilus
nautilus -qOther File Managers:
# Check status for all
make gnome-status
# Verify dependencies
make install-system-depsVirtual Environment:
# Recreate if corrupted
rm -rf venv
make install
# Check Python wrapper
ls -la ydmenu-py-env
which ydmenu-py-envDependencies:
# Check system dependencies
python setup.py --check-deps
# Reinstall if needed
make clean && make installCheck Setup:
# Verify variables
echo $YA_DISK_ROOT
echo $YADISK_MENU_VERSION
# Check .env file (Python version)
cat .envReset Environment:
# Shell version
sudo nano /etc/environment
# Python version
./setup.py # ReconfigureFix Permissions:
# Make scripts executable
chmod +x ydmenu.py ydmenu.sh ydmenu-py-env
# Fix desktop files
chmod +x *.desktop
# GNOME scripts
chmod +x gnome/scripts/*Service Status:
# Check daemon
yandex-disk status
# Restart if needed
yandex-disk stop
yandex-disk start
# Check logs
tail -f ~/.yandex-disk.logmake status # Overall status
make gnome-status # GNOME/GTK file managers# Update dependencies
make install-system-deps
# Reinstall Python version
make clean && make install && make configure
# Update desktop integration
make desktop-aware-install# Remove Python version
make uninstall
# Remove GNOME integration
make gnome-uninstall
make gnome-ext-uninstall# Check symlinks
make status
# Restart Dolphin
killall dolphin && dolphin &
# Verify KDE directories exist
mkdir -p ~/.local/share/kservices5/ServiceMenus/
mkdir -p ~/.local/share/kio/servicemenus/# Check virtual environment
ls venv/bin/python
# Test wrapper script
ydmenu-py-env --help
# Check dependencies
make install-system-deps
make install# Make scripts executable
chmod +x ydmenu.py setup.py ydmenu-py-env ydmenu.sh setup.sh
# Check file ownership
ls -la ydmenu*# Check service status
yandex-disk status
# Start service if needed
yandex-disk start
# Check daemon configuration
yandex-disk status --tray# Check environment
echo $YA_DISK_ROOT
# Reload environment (after setup)
source /etc/environment
# Log out and back in for system-wide effect- Check logs: All operations log to
$YA_DISK_ROOT/yaMedia.log - Test manually: Run scripts directly to see detailed error messages
- Verify paths: Ensure all paths in environment variables exist
- Check dependencies: Use
make statusto verify all system dependencies
| Aspect | Shell Version | Python Version |
|---|---|---|
| Startup Time | ~0.1s | ~0.3s (includes venv) |
| Memory Usage | ~2MB | ~15MB |
| Dependencies | System tools only | Python + click + PyQt5 |
| Error Handling | Basic | Comprehensive |
| Extensibility | Limited | High |
| Testing | Manual | Unit tests |
- Main README - Project overview and quick start
- Python README - Python version technical details
- Desktop Context Limitations - Known limitations
- Session Improvements - X11/Wayland enhancements
- Migration Summary - Shell to Python migration details