Stunkymonkey / nautilus-open-any-terminal

GNU General Public License v3.0
602 stars 63 forks source link
gnome nautilus nautilus-extension python

nautilus-open-any-terminal

DownloadsPackaging status

is an extension for nautilus, which adds an context-entry for opening other terminal emulators than gnome-terminal.

screenshot

Supported file managers

Supported Terminal Emulators

The following terminal emulators are fully supported. PRs for other terminals are welcome!

Additionally, the terminal can be set to custom, which allows you to set custom commands for opening a local or remote terminal via dconf.

Installing

From the AUR (Arch Linux) AUR  package

yay -S nautilus-open-any-terminal

Nixpkgs (NixOS) nixpkgs stable 24.05 package

For configuration.nix (works without needing to enable Gnome DE)

programs.nautilus-open-any-terminal = {
  enable = true;
  terminal = "kitty";
};

environment = {
  sessionVariables.NAUTILUS_4_EXTENSION_DIR = "${pkgs.gnome.nautilus-python}/lib/nautilus/extensions-4";
  pathsToLink = [
    "/share/nautilus-python/extensions"
  ];

  systemPackages = with pkgs; [
    gnome.nautilus
    gnome.nautilus-python
  ];
};

From PYPI PyPI package

Dependencies to install before:

User install:

pip install --user nautilus-open-any-terminal

System-wide install:

pip install nautilus-open-any-terminal

For Debian/Ubuntu based Distros

Download the '.deb' package, for either Nautilus and or Caja from the GitHub releases page. After that install it either with the apt command:

apt install <package_name>.deb

Or depending on your Linux Distro, you can just double-click the '.deb' file and install it that way.

From source

Requires gettext.

git clone https://github.com/Stunkymonkey/nautilus-open-any-terminal.git
cd nautilus-open-any-terminal
make

make install schema      # User install
sudo make install schema # System install

install installs this extension to extension directories of all supported file managers. To avoid this, use install-nautilus or install-caja instead.

make install-nautilus schema # Install nautilus only
make install-caja schema # Install caja only

restart nautilus

Then kill Nautilus to allow it to load the new extension:

nautilus -q

Settings

To configure the plugin’s behaviour make sure to run (system-wide):

glib-compile-schemas /usr/share/glib-2.0/schemas

or for (user-wide) installation:

glib-compile-schemas ~/.local/share/glib-2.0/schemas/

via dconf-editor

dconf-editor

via command-line

gsettings set com.github.stunkymonkey.nautilus-open-any-terminal terminal alacritty
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal keybindings '<Ctrl><Alt>t'
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal new-tab true
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal flatpak system

Uninstall

Since setup.py does not provide a natively uninstall method the makefile has an uninstall option.

make uninstall schema      # user uninstall
sudo make uninstall schema # system uninstall