Skip to content

A set of actions for extending the functionality of the GNOME Files (Nautilus), Nemo, Caja, Dolphin, Thunar and PCManFM-Qt file managers.

License

Notifications You must be signed in to change notification settings

cfgnunes/nautilus-scripts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

Enhanced File Manager Actions for Linux

This project offers a collection of file manager actions, also known as Nautilus Scripts, designed to enhance the functionality of file managers. With intuitive right-click options for files and directories, it simplifies tasks, boosts productivity, and provides a more efficient workflow.

screenshot

Installation

You can install in two ways:

Option 1: Online installation (recommended)

You can use either curl or wget. Choose one of the following commands and run it in your terminal:

πŸš€ Using curl

bash -c "$(curl -fsSL https://cfgnunes.github.io/nautilus-scripts/install.sh)"

πŸš€ Using wget

bash -c "$(wget -qO- https://cfgnunes.github.io/nautilus-scripts/install.sh)"

Option 2: Local installation

After cloning this repository, run the following command:

bash install.sh

Advantages

While numerous scripts are available for file managers on the web, many suffer from poor functionality, lack of error checking, and dependency management. Some scripts only work with files that don't have special characters in their names, among other limitations. To address these shortcomings, I have developed my own set of scripts, which offer the following advantages:

  • Parallel task execution: Processes multiple files simultaneously. Very fast! πŸš€
  • Multi-language support: Automatically detects the system language and displays messages in the appropriate language (πŸ‡§πŸ‡· πŸ‡ΊπŸ‡Έ πŸ‡¨πŸ‡³ πŸ‡ͺπŸ‡Έ πŸ‡©πŸ‡ͺ).
  • Progress dialog: Displays a progress dialog and allows interruption of tasks at any time.
  • Status notifications: Notifies users of dependency errors and MIME types.
  • Dependency management: Prompts users to install any missing dependencies.
  • Keyboard accelerators: Provides keyboard shortcuts for some scripts.
  • Easy access to recent scripts: Includes a menu, Accessed recently, to quickly access recently used scripts, saving time and streamlining workflows.
  • Category-based installation: The installer allows you to choose which script categories you want to install, so there's no need to install everything.
  • Non-destructive output: Never overwrites the input file; the output is distinct.
  • Direct usage: Allows direct usage without requiring input parameters.
  • Log file: Produces an Errors.log file when a task finishes with an error.
  • File manager compatibility: Designed for major file managers like GNOME Files (Nautilus), Nemo, Caja, Dolphin, and Thunar.
  • Distro compatibility: Works on major GNU/Linux distributions, such as Debian, Ubuntu, Fedora, and Arch Linux.
  • Remote file support: Works with files stored on remote servers.
  • Easy adaptation: Scripts can be easily copied and adapted for other purposes.
  • Bash implementation: All scripts are implemented in Bash. So, the scripts work well in the shell (without a graphical interface) and file managers.
  • Shell script validation: All scripts have been checked using ShellCheck.

Design philosophy: Fewer clicks, dependencies, and verbose notifications, with a simple and intuitive directory structure.

Keyboard accelerators

Key Action
F3 Code Editor
F4 Terminal
F7 Disk Usage Analyzer
<Control>E Extract here
<Control><Alt>G Compress to 'tar.gz'
<Control><Alt>S Compress to 'tar.zst'
<Control><Alt>X Compress to 'tar.xz'
<Control><Alt>Z Compress to 'zip'
<Control><Alt>I Show files information
<Control><Alt>M Show files MIME type
<Control><Alt>0 Find empty files
<Control><Alt>J Find junk files
<Control><Alt>U Find duplicate files
<Control><Alt>H List hidden files
<Control><Alt>P List permissions and owners
<Control><Alt>B List largest files
<Control><Alt>R List recent files
<Control><Alt>W Text: List issues
<Control><Alt>C Copy filenames
<Control><Alt>V Paste clipboard
<Control><Shift>V Paste as symbolic link
<Control><Shift>C Compare items
<Control><Shift>O Open item location
<Control><Shift>H Compute all checksums
<Control><Shift>E Find empty directories
<Control><Shift>P Rename: Remove parentheses blocks
<Control><Shift>G Git: Clone URLs
<Control><Shift>R Git: Reset and pull
<Control><Shift>X URL: Download file

Compatibility

File manager Environment Menu integration Application shortcuts Keyboard accelerators Menu "Accessed recently"
GNOME Files (Nautilus) GNOME 🟒 🟒 🟒 🟒
Nemo Cinnamon 🟒 🟒 🟒 🟒
Caja MATE 🟒 🟒 🟒 🟒
Thunar Xfce 🟒 🟒 🟒 πŸ”΄
Dolphin KDE Plasma 🟒 🟒 πŸ”΄ πŸ”΄
PCManFM-Qt LXQt 🟒 🟒 πŸ”΄ πŸ”΄
PCManFM LXDE 🟒 🟒 πŸ”΄ πŸ”΄

Handling large input lists

This project includes a functionality specifically designed to manage scenarios where input lists are too large for processing (e.g., 100,000 input files). Excessively large input lists can lead to errors like:

Could not start application: Failed to execute child process "/bin/sh" (Argument list too long)

To avoid such issues, follow these steps:

  1. Create a single directory with a name that includes the word batch;
  2. Place all the files you want to process into this directory;
  3. Execute the desired script using this directory as the input.

When batch mode is detected, the script recognizes the directory as a special case and process each file inside it individually, instead of treating the entire directory as a single input.

Acknowledgments

This project was also inspired by other extraordinary projects and their authors. Many thanks to all of them for their excellent and creative script collections:

Translation

Special thanks to everyone who contributed to the translation of this project:

  • πŸ‡¨πŸ‡³ JoveYu - Chinese (translation).
  • πŸ‡§πŸ‡· NathΓ‘lia Medeiros - Brazilian Portuguese (review).
  • πŸ‡ͺπŸ‡Έ Maravento - Spanish (review).

Contributors

Thank you for contributing to this project:

contributors

Contributing

If you spot a bug or want to improve the code or even improve the content, you can do the following:

  • Open an issue describing the bug or feature idea;
  • Fork the project, make changes, and submit a pull request.

🌍 If you'd like to translate this project into your native language, feel free to send me the translated file: en_template.pot