/nautilus-open-any-terminal

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

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

  • Nautilus
  • Caja

Supported Terminal Emulators

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

  • alacritty
  • blackbox
  • cool-retro-term
  • contour
  • deepin-terminal
  • foot/footclient
  • ghostty
  • gnome-terminal
  • guake
  • hyper
  • kermit
  • kgx (GNOME Console)
  • kitty
  • konsole
  • mate-terminal
  • mlterm
  • ptyxis
  • qterminal
  • rio
  • sakura
  • st
  • tabby
  • terminator
  • terminology
  • terminus
  • termite
  • tilix
  • urxvt
  • urxvtc
  • warp
  • wezterm
  • xfce4-terminal
  • xterm/uxterm

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:

  • nautilus-python (python-nautilus/python3-nautilus(newer) package on Debian / Ubuntu)
  • gir1.2-gtk-4.0 (Debian / Ubuntu)
  • typelib-1_0-Gtk-4_0 (openSUSE)

User install:

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

System-wide install:

pip install nautilus-open-any-terminal

From source

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