This project provides Nautilus context menu integrations for IDEs using a single Python extension template.
Instead of keeping one Python script per IDE, the installer reads a repository-controlled catalog, renders the generic template with the selected IDE data, and installs the final extension into Nautilus.
The target machine does not keep an editable IDE catalog. Supported IDEs are controlled only by this repository.
This repository is based on the excellent work from code-nautilus by harry-cpp.
- One generic extension template
- Repository-controlled IDE catalog
- Cleaner install and uninstall flow
- Easy to extend with new IDE commands
- Open files or folders from Nautilus
Current defaults:
- Antigravity (
antigravity) - VS Code (
code) - Cursor (
cursor) - Windsurf (
windsurf)
install.shloads the IDE catalog fromconfig/ides.conf- The user selects one IDE from the allowed list
- The installer renders
scripts/nautilus-ide-template.py - A final extension file like
cursor-nautilus.pyis written to Nautilus extensions - The installation is registered so
uninstall.shknows what it can remove
The repository file config/ides.conf uses this format:
id|label|command|new_window
Example:
zed|Zed|zed|false
code-insiders|Code Insiders|code-insiders|false
Notes:
id: unique identifierlabel: text shown in Nautiluscommand: executable or full command used to launch the IDEnew_window:trueorfalse
Example:
cursor|Cursor|cursor|falsecode-insiders|Code Insiders|code-insiders|false
Run the following command:
wget -qO- https://raw.githubusercontent.com/RodrigoSaka/nautilus-ides/main/install.sh | bashThis installs the selected IDE using the generic extension template.
To remove one IDE installed by this project, run:
wget -qO- https://raw.githubusercontent.com/RodrigoSaka/nautilus-ides/main/uninstall.sh | bashThe uninstall flow only lists IDEs that were installed by this project.
- Python Nautilus
- Your chosen IDE installed in the system
- Nautilus file manager
- Right-click on any file to open it in the IDE
- Right-click on a folder to open it in the IDE
- Right-click on empty space in a folder to open that folder in the IDE
- Add a new line to
config/ides.conf - Use a unique
id - Set the label that should appear in Nautilus
- Set the launch command available on the user system
- Choose whether
--new-windowshould be forced by default
Example:
zed|Zed|zed|false
No extra Python file is needed. The installer will reuse the same template automatically.
install.sh: installs one selected IDEuninstall.sh: removes one installed IDEcommon.sh: shared shell helpersconfig/ides.conf: repository-controlled IDE catalogscripts/nautilus-ide-template.py: generic Nautilus extension template
Feel free to submit issues and enhancement requests!
This project is licensed under the MIT License - see the LICENSE file for details
Created and maintained by Rodrigo Sakaguchi