Language: 🇮🇹 Italiano | 🇬🇧 English
Collection of extensions for Nautilus (Ubuntu/GNOME file manager) that add advanced preview and file management features directly from the context menu.
- What are Nautilus extensions
- Available extensions
- Installation
- Configuration
- Usage
- Troubleshooting
- Uninstallation
Nautilus extensions are Python scripts that add new entries to the menu that appears when you right-click on a file or folder. These extensions allow you to:
- View advanced previews of data files (CSV, Excel, JSON, Parquet)
- Merge or split PDF files
- Analyze Dockerfiles
- Find duplicate files
- View README files directly from Nautilus
- Integrate Git directly into Nautilus (blame, diff, status, graph)
View CSV files with:
- Formatted table of the first 100 rows
- Descriptive statistics (with pandas)
- Automatic delimiter detection
- Information on numeric columns and null values
Supported formats: .csv, .tsv
View Excel/LibreOffice files with:
- All document sheets
- Tabular data with column types
- Descriptive statistics for numeric columns
- Document metadata (author, creation date)
Supported formats: .xlsx, .xlsm, .xltx, .xltm, .ods
View JSON and JSONL files with:
- Navigable tree structure
- Automatically inferred schema
- Data preview for arrays/JSONL
- Statistics for JSONL files
- Gzip compressed file support
Supported formats: .json, .jsonl, .ndjson, .json.gz, .jsonl.gz
View Parquet files with:
- Complete schema with data types
- Metadata and row groups
- Data preview
- Descriptive statistics
- Compression information
Supported formats: .parquet
Merge multiple PDF files into one:
- Multiple PDF selection
- Reorder via drag & drop
- Page count preview
- Choose output filename
Usage: Select 2 or more PDFs → right-click → "Merge PDF"
Split a PDF into multiple files with 4 modes:
- Custom ranges (e.g., 1-3, 5-7, 9)
- Every N pages (e.g., every 5 pages)
- One page per file
- By bookmarks/chapters
Usage: Right-click on PDF → "Split PDF"
Analyze Dockerfiles with:
- Structure and instructions
- Multi-stage builds
- Environment variables and arguments
- Best practices and security suggestions
- Common issue detection
Usage: Right-click on Dockerfile → "Analyze Dockerfile"
Find duplicate files in a folder:
- Recursive scan with MD5 hash
- Grouping by identical content
- Smart selection (keeps the first)
- Move to trash with one click
Usage: Right-click on folder → "🔍 Find duplicates"
Show the current folder's README:
- Markdown rendering (if available)
- Support for README.md, README.txt, README.rst
- Quick open in editor
Usage: Right-click on folder background → "Show README.md"
Adds Git columns to Nautilus list view:
- Last commit author for each file
- Relative commit date (e.g., "3 hours ago")
- Commit message (truncated to 55 characters)
- Result caching and async loading
Usage: List View (Ctrl+2) → right-click column headers → enable Git columns
Visual diff viewer for modified files:
- Side-by-side view with aligned lines
- Unified view with toggle
- Green/red coloring for additions/removals
- Support for staged and working tree diffs
Usage: Right-click on modified file → "⎇ Mostra Diff Git"
Visualize the Git commit graph:
- Visual graph with nodes and Bézier curves
- Color palette for distinct branches
- Branch badges and golden HEAD marker
- Interactive legend and status bar
Usage: Right-click on background → "⎇ Mostra Git Graph…"
Git status panel with automatic refresh:
- Current branch with ahead/behind indicator
- Staged, modified and untracked files with colored icons
- Last 10 commits with hash, author and date
- Stash count and 3-second auto-refresh
Usage: Right-click on background → "⎇ Stato Git…"
Before installing the extensions, make sure you have:
- Ubuntu/GNOME (or another distribution with Nautilus)
- Python 3 (already installed on Ubuntu)
- nautilus-python (the bridge between Nautilus and Python)
Open the terminal (press Ctrl+Alt+T) and type:
sudo apt update
sudo apt install python3-nautilusIf it doesn't already exist, create the folder where Nautilus looks for extensions:
mkdir -p ~/.local/share/nautilus-python/extensionsSome extensions require additional Python libraries. Install the ones you need:
sudo apt install python3-pandas python3-openpyxl python3-pypdf python3-markdown
pip install pyarrow --break-system-packagesCSV Preview:
sudo apt install python3-pandasExcel Preview:
sudo apt install python3-pandas python3-openpyxlJSON Preview:
sudo apt install python3-pandas # optional, for JSONL statisticsParquet Preview:
sudo apt install python3-pandas
pip install pyarrow --break-system-packagesPDF Merger/Splitter:
sudo apt install python3-pypdfREADME Viewer:
sudo apt install python3-markdown gir1.2-webkit2-4.1 # optional, for Markdown renderingDockerfile Analyzer and Duplicate Finder: No additional dependencies (use only standard libraries)
Git Blame, Git Diff, Git Graph and Git Status:
No additional dependencies (only require git installed on the system)
Copy the .py files of the extensions you want to use to the created folder:
# Example: install all extensions
cp csv-preview/csv_preview.py ~/.local/share/nautilus-python/extensions/
cp excel-preview/excel_preview.py ~/.local/share/nautilus-python/extensions/
cp json-preview/json_preview.py ~/.local/share/nautilus-python/extensions/
cp parquet-preview/parquet_preview.py ~/.local/share/nautilus-python/extensions/
cp pdf-merger/pdf_merger.py ~/.local/share/nautilus-python/extensions/
cp pdf-splitter/pdf_splitter.py ~/.local/share/nautilus-python/extensions/
cp dockerfile-analyzer/dockerfile_analyzer.py ~/.local/share/nautilus-python/extensions/
cp duplicate-finder/duplicate-finder.py ~/.local/share/nautilus-python/extensions/
cp readme-viewer/readme_preview.py ~/.local/share/nautilus-python/extensions/
cp git-blame/git_blame.py ~/.local/share/nautilus-python/extensions/
cp git-diff/git_diff.py ~/.local/share/nautilus-python/extensions/
cp git-graph/git_graph.py ~/.local/share/nautilus-python/extensions/
cp git-status/git_status.py ~/.local/share/nautilus-python/extensions/Or install only the ones you need, for example only CSV and PDF:
cp csv-preview/csv_preview.py ~/.local/share/nautilus-python/extensions/
cp pdf-merger/pdf_merger.py ~/.local/share/nautilus-python/extensions/To activate the extensions, restart Nautilus:
nautilus -qThen reopen Nautilus normally (click the "Files" icon in the dock or press Super+E).
To verify that the extensions have been loaded correctly:
- Open Nautilus
- Go to a folder with CSV, PDF, JSON files, etc.
- Right-click on a supported file
- You should see the new entries in the menu (e.g., "CSV Preview", "Split PDF")
If the extensions don't appear:
-
Check Nautilus logs:
nautilus -q nautilus 2>&1 | grep -i python
-
Verify that nautilus-python is installed:
dpkg -l | grep nautilus-python -
Check file permissions:
ls -la ~/.local/share/nautilus-python/extensions/Files must be readable (permissions
644or755) -
Make files executable (if necessary):
chmod +x ~/.local/share/nautilus-python/extensions/*.py
- Navigate to the file you want to view
- Right-click on the file
- Select "Preview [file type]" (e.g., "CSV Preview")
- A window will open with:
- "Data" tab: table with data
- "Schema/Columns" tab: column information
- "Statistics" tab: descriptive statistics (if available)
- "Metadata" tab: file information
- Select 2 or more PDF files (hold
Ctrlwhile clicking) - Right-click on the selection
- Select "Merge [N] PDFs"
- In the window that opens:
- Reorder files by dragging or using ⬆⬇ buttons
- Remove unwanted files with ✕ button
- Edit the output filename
- Click "🔗 Merge PDF"
- The merged file will be saved in the same folder as the first PDF
- Right-click on a PDF file
- Select "Split PDF"
- Choose one of 4 modes:
- Ranges: enter "1-3, 5, 7-9" to create 3 files
- Every N pages: split every 5 pages
- One per file: each page becomes a PDF
- Bookmarks: one file per chapter
- Choose the output folder
- Click "✂ Split PDF"
- Right-click on a Dockerfile
- Select "Analyze Dockerfile"
- Explore the tabs:
- Overview: base images, ports, variables
- Best Practices: security and optimization suggestions
- Instructions: complete instruction list
- Source: code with syntax highlighting
- Right-click on a folder
- Select "🔍 Find duplicates"
- Wait for the scan (may take time for large folders)
- In the results window:
- Files are grouped by identical content
- The first file in each group is NOT selected (will be kept)
- You can modify the selection manually
- Click "Select duplicates automatically" to select all except the first
- Click "🗑 Move to Trash" to delete selected duplicates
- Open a folder containing a README file
- Right-click on the background (not on a file)
- Select "Show README.md" (or README.txt, etc.)
- The README will be displayed with Markdown rendering (if available)
Cause: nautilus-python is not installed or Nautilus hasn't been restarted
Solution:
sudo apt install python3-nautilus
nautilus -qCause: Missing pandas library
Solution:
sudo apt install python3-pandasCause: Missing pypdf library for PDF handling
Solution:
sudo apt install python3-pypdfCause: Missing pyarrow for Parquet files
Solution:
pip install pyarrow --break-system-packagesCause: Very large file
Solution: Extensions load only the first 100 rows for speed. For huge files, consider using dedicated tools like LibreOffice Calc or DBeaver.
Cause: Missing WebKit or python3-markdown
Solution:
sudo apt install python3-markdown gir1.2-webkit2-4.1Cause: Buggy extension or corrupted file
Solution:
- Temporarily remove all extensions:
mv ~/.local/share/nautilus-python/extensions ~/.local/share/nautilus-python/extensions.backup nautilus -q
- Reinstall extensions one at a time to identify the problematic one
rm ~/.local/share/nautilus-python/extensions/[extension_name].py
nautilus -qExample to remove CSV preview:
rm ~/.local/share/nautilus-python/extensions/csv_preview.py
nautilus -qrm ~/.local/share/nautilus-python/extensions/*.py
nautilus -qsudo apt remove python3-nautilus
nautilus -q- Preview extensions load only part of files (first 100 rows) for speed
- For very large files (>100MB), opening may take a few seconds
- Duplicate search can be slow on folders with thousands of files
- The Dockerfile analyzer highlights common security issues
- Never put passwords or secrets in ENV variables in Dockerfiles
- Always use specific tags for Docker images (not
:latest)
You can modify the .py files to customize:
- Number of rows displayed (change
PREVIEW_ROWS) - Window sizes (change
WINDOW_WandWINDOW_H) - Colors and CSS styles (modify the
CSSvariable)
- Nautilus version: These extensions are designed for Nautilus 43+ (GNOME 43+) with GTK 4
- Python: Requires Python 3.8 or higher
- Threads: Heavy operations (file reading, hash calculation) are executed in separate threads to avoid blocking the interface
Found a bug or want to add a feature? Feel free to:
- Open an issue
- Submit a pull request
- Suggest improvements
These extensions are provided "as is" without warranties. Use at your own risk.
Q: Can I use these extensions on other Linux distributions?
A: Yes, they work on any distribution with Nautilus and nautilus-python (Fedora, Debian, Arch, etc.)
Q: Do they work with other file managers?
A: No, they are specific to Nautilus. For other file managers (Dolphin, Thunar, etc.) you need different extensions.
Q: Can I modify the code?
A: Absolutely yes! The files are readable and modifiable Python scripts.
Q: Do extensions slow down Nautilus?
A: No, they are loaded only when needed and heavy operations are in separate threads.
Q: Where are merged/split files saved?
A: In the same folder as the original file, or in the folder you choose in the dialog window.
Happy working with Nautilus! 🚀