Skip to content

strabo231/nautilus-backup-extension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

20 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Test Nautilus Backup Extension

๐Ÿ”„ Nautilus Backup Extension

Easy Right-Click Backups for Ubuntu & Linux

Never lose files again. Just right-click โ†’ Backup. No terminal needed!

Test Status Version Ubuntu GNOME Python License Sponsor

GitHub stars GitHub forks

Features โ€ข Installation โ€ข Usage โ€ข Documentation โ€ข Contributing


โœจ What's New in v1.2.0

  • ๐ŸŽฏ "Backup As..." Fixed! - File chooser dialog now works reliably on all systems
  • โ™ป๏ธ Restore from Backup - Right-click backup files to restore originals
  • ๐Ÿ” Compare with Original - View differences between backup and current file
  • ๐Ÿ“œ View Backup History - Browse all backups of a file
  • ๐Ÿ—‘๏ธ Auto-Cleanup Old Backups - Keep only last N backups per file (configurable)
  • โณ Progress Notifications - Visual feedback for large file operations
  • ๐Ÿ“Š Backup Statistics - Track total backups created and space used
  • ๐Ÿ› Critical Bug Fixes - GTK 4 dialog handling and stability improvements

๐ŸŽฏ The Problem

On Linux, backing up files is unnecessarily complicated:

โŒ The Old Way

  • Open terminal
  • Remember cp command syntax
  • Type out full paths
  • Add timestamps manually
  • Create archives for folders

โœ… The New Way

  • Right-click file
  • Select "Backup"
  • Done! โœจ

๐Ÿš€ Features

โšก Quick Backup

Creates timestamped backup in the same folder

document.pdf
  โ†“
document_backup_2024-12-22_14-30-00.pdf

Perfect for quick "save before editing"

๐Ÿ’พ Backup As...

Choose custom name and location (Now Fixed!)

  • Full file chooser dialog
  • Rename on backup
  • Save anywhere you want
  • Just like "Save As"
  • Works reliably on all systems!

๐Ÿ—‚๏ธ Backup to ~/Backups

Organized backup folder

  • All backups in one place
  • Easy to find later
  • Timestamped automatically
  • Opens from settings

๐Ÿ“ Folder Support

Automatic .tar.gz compression

project/
  โ†“
project_backup_2024-12-22.tar.gz

Preserves all permissions & structure

โ™ป๏ธ Restore from Backup

Right-click any backup file

  • Automatically detects backup files
  • Restores to original location
  • Confirmation dialog
  • Safe overwrite protection

๐Ÿ” Compare with Original

See what changed

  • Uses meld or diff
  • Visual side-by-side comparison
  • Perfect before restoring
  • Automatic fallback to text diff

๐Ÿ“œ View Backup History

Browse all backups of a file

  • See all versions
  • Sorted by date
  • Open backup location
  • Restore any version

๐Ÿ—‘๏ธ Auto-Cleanup

Keep only recent backups

  • Configurable limit (keep last N)
  • Per-file cleanup
  • Automatic old backup removal
  • Saves disk space

More Features

  • ๐Ÿ”” Desktop Notifications - Visual feedback for every action
  • โณ Progress Indicators - For large file/folder operations
  • ๐Ÿ“Š Statistics Tracking - Monitor total backups and space used
  • โš™๏ธ Settings Panel - Configure backup folder and preferences
  • ๐ŸŽจ Native GNOME Integration - Beautiful, consistent UI
  • ๐Ÿš€ Fast & Lightweight - Instant backups, no performance impact
  • ๐Ÿ”’ Safe & Reliable - Preserves file permissions and metadata

๐Ÿ“ฆ Installation

Quick Install (Recommended)

# Clone the repository
git clone https://github.com/strabo231/nautilus-backup-extension.git
cd nautilus-backup-extension

# Run installer (automatically detects your Nautilus version)
./install.sh

That's it! The installer handles everything:

  • โœ… Detects Ubuntu 20.04, 22.04, or 24.04
  • โœ… Checks for Nautilus 3.x or 4.x
  • โœ… Installs dependencies if needed
  • โœ… Sets up the extension
  • โœ… Restarts Nautilus

Manual Installation

Click to expand manual installation steps

1. Install Dependencies:

# Ubuntu/Debian
sudo apt install python3-nautilus

# Fedora
sudo dnf install nautilus-python

# Arch
sudo pacman -S python-nautilus

2. Install Extension:

mkdir -p ~/.local/share/nautilus-python/extensions
cp nautilus-backup.py ~/.local/share/nautilus-python/extensions/
chmod +x ~/.local/share/nautilus-python/extensions/nautilus-backup.py

3. Restart Nautilus:

nautilus -q
nautilus &

Verify Installation

Right-click any file in Nautilus. You should see ๐Ÿ”„ Backup in the menu!


๐ŸŽฎ Usage

Basic Usage

  1. Right-click any file or folder in Nautilus
  2. Look for ๐Ÿ”„ Backup in the context menu
  3. Choose your option:
    • โšก Quick Backup - Instant timestamped backup in same folder
    • ๐Ÿ’พ Backup As... - Choose custom name and location
    • ๐Ÿ—‚๏ธ Backup to ~/Backups - Organized central storage
    • โ™ป๏ธ Restore from Backup - (On backup files) Restore original
    • ๐Ÿ” Compare with Original - (On backup files) View differences
    • ๐Ÿ“œ View All Backups - See all backups of this file
    • โš™๏ธ Backup Settings - Configure preferences

Real-World Examples

Before Editing Important Files
Scenario: About to edit a config file

1. Right-click /etc/nginx/nginx.conf
2. Backup โ†’ Quick Backup
3. Edit safely! Original is backed up as:
   nginx.conf_backup_2024-12-22_14-30-00
4. If something breaks:
   - Right-click the backup
   - Restore from Backup
Creating Project Archives
Scenario: Archiving a project folder

1. Right-click ~/Projects/myapp/
2. Backup โ†’ Backup As...
3. Choose: ~/Archive/myapp_v1.0.tar.gz
4. Share or store the compressed archive
Regular Backup Routine
Scenario: Daily backup of important files

1. Select multiple files (Ctrl+Click)
2. Right-click โ†’ Backup โ†’ Backup to ~/Backups
3. All files backed up with timestamps
4. Check ~/Backups anytime to find them
5. Old backups auto-deleted if limit set
Comparing File Versions
Scenario: Check what changed since backup

1. Right-click report_backup_2024-12-20.docx
2. Compare with Original
3. See differences side-by-side in meld
4. Decide if you want to restore

๐Ÿ’ป System Requirements

โœ… Supported Systems

Ubuntu LTS (Officially Tested):

  • ๐ŸŸข Ubuntu 24.04 LTS (Noble) - Nautilus 46
  • ๐ŸŸข Ubuntu 22.04 LTS (Jammy) - Nautilus 42
  • ๐ŸŸข Ubuntu 20.04 LTS (Focal) - Nautilus 3.36

Other Distros (Should work):

  • Debian 11+
  • Fedora 35+
  • Pop!_OS 22.04+
  • Linux Mint 20+
  • Arch Linux (current)

๐Ÿ”ง Requirements

Software:

  • Python 3.8 or higher
  • Nautilus 3.x or 4.x
  • python3-nautilus package
  • GTK 3.24+ or GTK 4.x

Desktop:

  • GNOME (with Nautilus/Files)
  • Any GNOME-based environment

Hardware:

  • Minimal (runs on any system that runs Nautilus)

Optional:

  • meld - For visual file comparison

๐Ÿ“ธ Screenshots

Right-Click Menu
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Open                    โ”‚
โ”‚ Open With...            โ”‚
โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€        โ”‚
โ”‚ Cut                     โ”‚
โ”‚ Copy                    โ”‚
โ”‚ Paste                   โ”‚
โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€        โ”‚
โ”‚ ๐Ÿ”„ Backup             โ–ถ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€        โ”‚ โ”‚ ๐Ÿ“œ View All Backups           โ”‚
โ”‚ Properties              โ”‚ โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โšก Quick Backup (Same Folder) โ”‚
                             โ”‚ ๐Ÿ’พ Backup As...               โ”‚
                             โ”‚ ๐Ÿ—‚๏ธ Backup to ~/Backups       โ”‚
                             โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€     โ”‚
                             โ”‚ โš™๏ธ Backup Settings            โ”‚
                             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Backup File Context Menu
Right-click on any file with "_backup_" in the name:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ๐Ÿ”„ Backup             โ–ถ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ™ป๏ธ Restore from Backup        โ”‚
                             โ”‚ ๐Ÿ” Compare with Original      โ”‚
                             โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€     โ”‚
                             โ”‚ โšก Quick Backup (Same Folder) โ”‚
                             โ”‚ ๐Ÿ’พ Backup As...               โ”‚
                             โ”‚ ๐Ÿ—‚๏ธ Backup to ~/Backups       โ”‚
                             โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€     โ”‚
                             โ”‚ โš™๏ธ Backup Settings            โ”‚
                             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Backup As Dialog (Fixed!)
โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘         Backup As...               โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘                                   โ•‘
โ•‘  Save in: /home/user/Documents  โ–ผ โ•‘
โ•‘                                   โ•‘
โ•‘  Name: report_backup_2024-12-...  โ•‘
โ•‘                                   โ•‘
โ•‘  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ•‘
โ•‘  โ”‚ document.pdf                โ”‚ โ•‘
โ•‘  โ”‚ image.png                   โ”‚ โ•‘
โ•‘  โ”‚ report.docx                 โ”‚ โ•‘
โ•‘  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ•‘
โ•‘                                   โ•‘
โ•‘          [Cancel]  [Save]         โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
Settings Panel
โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘       Backup Settings              โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘                                    โ•‘
โ•‘  Backup Folder:                    โ•‘
โ•‘  /home/user/Backups         [๐Ÿ“]   โ•‘
โ•‘                                    โ•‘
โ•‘  Auto-Cleanup Old Backups:         โ•‘
โ•‘  โ˜‘ Keep only last [10โ–ผ] backups   โ•‘
โ•‘     per file                       โ•‘
โ•‘                                    โ•‘
โ•‘  Statistics:                       โ•‘
โ•‘  Total backups created: 127        โ•‘
โ•‘  Total space used: 2.4 GB          โ•‘
โ•‘                                    โ•‘
โ•‘  Features:                         โ•‘
โ•‘   โšก Quick Backup - Timestamped    โ•‘
โ•‘   ๐Ÿ’พ Backup As - Custom location   โ•‘
โ•‘   ๐Ÿ—‚๏ธ Backup to ~/Backups           โ•‘
โ•‘   โ™ป๏ธ Restore - From backup files   โ•‘
โ•‘   ๐Ÿ” Compare - View differences    โ•‘
โ•‘   ๐Ÿ“œ History - View all backups    โ•‘
โ•‘   ๐Ÿ“ Folder support (.tar.gz)      โ•‘
โ•‘   โณ Progress - For large ops      โ•‘
โ•‘   ๐Ÿ—‘๏ธ Auto-cleanup - Save space     โ•‘
โ•‘   ๐Ÿ“Š Statistics - Track usage      โ•‘
โ•‘   ๐Ÿ”” Desktop notifications         โ•‘
โ•‘                                    โ•‘
โ•‘   [Open Backups Folder]  [Close]   โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

๐ŸŽฏ Use Cases

Scenario Solution
๐Ÿ“ Before editing config files Quick Backup โ†’ Edit safely โ†’ Restore if needed
๐Ÿ’ผ Version control for documents Backup As โ†’ document_v1.docx, document_v2.docx
๐Ÿ“ฆ Project archiving Backup folder โ†’ Auto-compressed .tar.gz
๐Ÿ”„ Regular backups Backup to ~/Backups โ†’ Auto-cleanup old versions
๐Ÿš€ Before system updates Backup configs โ†’ Compare/Restore if issues
๐Ÿ“ค Sharing with USB/cloud Backup As to USB/Dropbox folder
๐Ÿ” Check file changes Compare with Original โ†’ See what changed
โ™ป๏ธ Undo unwanted changes Restore from Backup โ†’ Get original back

๐Ÿ”ง Troubleshooting

Menu Not Appearing?

1. Check dependencies:

python3 -c "import gi; gi.require_version('Nautilus', '3.0')"
# Or for Nautilus 4.x:
python3 -c "import gi; gi.require_version('Nautilus', '4.0')"

2. Restart Nautilus:

nautilus -q
nautilus &

3. Check installation:

ls ~/.local/share/nautilus-python/extensions/nautilus-backup.py

4. Check permissions:

chmod +x ~/.local/share/nautilus-python/extensions/nautilus-backup.py
Extension Not Loading?

Check Nautilus logs:

nautilus -q
NAUTILUS_EXTENSION_DEBUG=1 nautilus 2>&1 | grep -i backup

Verify Python path:

python3 -c "import sys; print('\n'.join(sys.path))"
"Backup As..." Dialog Not Showing?

This was fixed in v1.2.0! Make sure you have the latest version:

cd nautilus-backup-extension
git pull
./install.sh

If still having issues:

nautilus -q
NAUTILUS_EXTENSION_DEBUG=1 nautilus 2>&1 | grep "backup_as"
Backup Fails?

Common causes:

  • โŒ Permission denied โ†’ Try backing up to ~/Backups
  • โŒ No space left โ†’ Check disk: df -h
  • โŒ Folder too large โ†’ May take time to compress (watch for progress notification)

Check logs:

journalctl -xe | grep -i backup
Compare Feature Not Working?

Install meld for visual comparison:

sudo apt install meld

Without meld, the extension falls back to text diff.

Still Having Issues?

Open an issue with:

  • Your Ubuntu version (lsb_release -a)
  • Nautilus version (nautilus --version)
  • Python version (python3 --version)
  • Error messages from logs

๐Ÿ“š Documentation


๐Ÿ—‘๏ธ Uninstallation

./uninstall.sh

Your backup files in ~/Backups are NOT deleted - only the extension is removed.

Manual Uninstall

rm ~/.local/share/nautilus-python/extensions/nautilus-backup.py
rm -rf ~/.config/nautilus-backup
nautilus -q

๐Ÿค Contributing

Contributions are welcome! Current roadmap:

Completed in v1.2.0:

  • Restore from backup feature
  • Compare file with backup (diff view)
  • Auto-cleanup old backups (keep last N)
  • Progress bars for large operations
  • Backup history view
  • Statistics tracking
  • Fix "Backup As..." dialog

Still wanted:

  • Backup scheduling
  • Incremental backups
  • Cloud storage integration (Dropbox, Google Drive)
  • Port to other file managers (Nemo, Caja)

See CONTRIBUTING.md for guidelines.


๐ŸŒŸ Show Your Support

If this extension makes your life easier:

  • โญ Star this repo - Helps others discover it!
  • ๐Ÿ› Report bugs - Help make it better
  • ๐Ÿ’ก Suggest features - Tell us what you need
  • ๐Ÿ“ข Share it - Tell your Linux friends
  • โ˜• Sponsor - Support development

๐Ÿ“Š Project Stats

GitHub repo size GitHub code size GitHub issues GitHub pull requests GitHub last commit GitHub commit activity


๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

What This Means

โœ… You can:

  • Use it commercially
  • Modify the code
  • Distribute it
  • Use it privately

โŒ You must:

  • Include the license
  • Include copyright notice

โŒ No warranty - Provided "as is"


๐Ÿ’– Acknowledgments

  • Nautilus Python Extension Framework - For making extensions possible
  • GNOME Community - For excellent documentation
  • All Contributors - Thank you for making this better!
  • Linux Community - For feedback and support

Special thanks to everyone who:

  • Reported bugs
  • Suggested features
  • Starred the repo
  • Shared with others

๐Ÿ”ฎ Roadmap

v1.3.0 (Planned)

  • ๐Ÿ“… Scheduled backups (cron integration)
  • ๐Ÿ”„ Incremental backup support
  • ๐ŸŒ Multi-language support

v2.0.0 (Future)

  • โ˜๏ธ Cloud storage integration
  • ๐ŸŽจ Theme customization
  • ๐Ÿ”Œ Plugin system
  • ๐Ÿ—‚๏ธ Support for other file managers (Nemo, Caja)

๐Ÿ’ฌ Community


๐Ÿ“ž Contact


โญ Star Us on GitHub!

If you find this extension useful, please consider giving it a star.
It helps others discover the project and motivates continued development!

GitHub stars

Made with โค๏ธ for the Linux community

๐Ÿ” Back to Top