80

The nautilus-open-terminal package adds a menu/right-click option to open a terminal in the current directory.

I want to change this from opening gnome-terminal to opening terminator. There is some advice on changing the default terminal emulator here, however these instructions do not appear to be valid any more, and I can't find any place in the system settings where the default emulator can be changed.

I also tried:

$ sudo update-alternatives --config x-terminal-emulator

choosing

* 0            /usr/bin/terminator               50        auto mode

But this does not appear to have any effect. Any idea how I can get this to work?

YXD
  • 1,139

9 Answers9

51

Ubuntu 13.04: (in case you came here via google)

You can't change the terminal app used anymore.

Details: nautilus-open-terminal uses GAppInfo to launch the terminal process, which uses a hard coded list of terminal emulators: https://gitlab.gnome.org/GNOME/glib/-/blob/main/gio/gdesktopappinfo.c#L2581

Solution:

  1. Remove gnome-terminal:

    sudo apt-get remove gnome-terminal
    
  2. Symlink terminator to gnome-terminal:

    sudo ln -s /usr/bin/terminator /usr/bin/gnome-terminal
    
45

Install nautilus-actions (AKA filemanager-actions)

We may define our own right-click context menu items with nautilus-actions.

  • Run the Nautilus-Actions Configuration Tool either from the Dash, or from a terminal with

    nautilus-actions-config-tool
    

    screenshot

  • In the Action tab give your action a sensible label, e.g. "Open in Terminator" and choose to display this in the selection or the context menu.

  • Next open the Command tab to enter the commands to run

    screenshot

  • Give in the full path to your command (/usr/bin/terminator) and program options (--working-directory=%d/%b) for opening the current path in Terminator.

  • After logging out and in again (or just restarting nautilus with nautilus -q) the right click context menu below will be displayed:

    screenshot

Pablo Bianchi
  • 17,371
Takkat
  • 144,580
25

To configure the default terminal in gnome you need to install dconf-tools (sudo apt-get install dconf-tools).

After that you can use dconf-editor or gsettings to set your favorite terminal emulator. This guide uses gsettings.

After installing terminator type this command

gsettings set org.gnome.desktop.default-applications.terminal exec /usr/bin/terminator

Set the exec-args for the terminal you need, in your case -x to execute the rest of the necessary arguments of nautilus-open-terminal.

gsettings set org.gnome.desktop.default-applications.terminal exec-arg "-x"

After this terminator will be your default terminal emulator, when nautilus-open-terminal calls the default terminal it should open terminator instead of gnome-terminal.

David Foerster
  • 36,890
  • 56
  • 97
  • 151
Bruno Pereira
  • 74,715
21

For Ubuntu 22.04 and above

Tell gnome-terminal to open your preferred terminal

A somewhat hacky workaround, but it works for me:

  1. Open gnome-terminal and navigate to Preferences > (your profile) > Command
  2. Check "Run custom command instead of my shell" and add the command for your preferred terminal emulator
  3. Under "Preserve working directory" select "Always"

Warning: this will cause gnome-terminal to close immediately after startup. I recommend testing with "When command exits" set to "Hold the terminal open" to make sure everything works as expected.

Reverting: run gnome-terminal --preferences from another terminal to open just the preferences window, and uncheck "Run custom command instead of my shell".

enter image description here

Sean Bone
  • 734
16

Update for Ubuntu 19.04 and 20.04

I agree with this answer by Takkat which suggests to install nautilus-configuration-tool to solve this, but since Ubuntu 19.04 (Disco Dingo) therefore also for Ubuntu 20.04 (Focal Fossa) this package is called filemanager-actions. I know thanks to the answer by N0rbert. So if you are getting this error: E: Unable to locate package nautilus-actions-config-tool Use these commands:

sudo apt install filemanager-actions  # To install
fma-config-tool  # To run the configuration tool

and follow the instructions in the answer by N0rbert.

If you want your action to appear in the top level of the context menu, go to Edit > Preferences > Runtime Preferences and uncheck the Create a root 'FileManager-Actions' menu (based on the comment from stefg-bz).


Offtopic but related (Yakuake terminal)

In case you found this answer because you are trying to achieve the same thing as the OP asked, but with Yakuake terminal, use the script yakuake-session from this repo and set the command of your action in the FileManager-Actions Configuration Tool like this:

Path: /usr/bin/yakuake-session
Parameters: --workdir=%d/%b
Working directory: %d

I also had to do sudo apt install qdbus-qt5 in order to make it work otherwise I was getting yakuake-session: error: cannot connect to Yakuake.

I am unable to comment so I add a new answer (I do not understand this rule tbh)

Paloha
  • 1,177
2

I'm using Ubuntu 18.04 and I wan't able to solve the problem. Instead I installed nautilus-terminal which embeds your terminal into nautilus! Which is absolutely great.

Install nautilus-terminal

sudo add-apt-repository ppa:flozz/nautilus-terminal
sudo apt update
sudo apt install nautilus-terminal
nautilus -q

enter image description here

You can also configure it via dconf editor. More info in this link

Vahid
  • 173
1

Note: This answer works for Ubuntu 22.04.1 LTS.

Download and install the most recent deb package: https://github.com/bassmanitram/actions-for-nautilus/tree/main/dist

Open the application Actions For Nautilus configuration.

In the top left, add an action as shown: Open in Terminator Menu option.

You should also only allow directory in the File types section. Save the action then Restart nautilus (file manager). This will give you the desired option in the menu. If you don't want the original Open in Terminal option, then you can just uninstall gnome-terminal with sudo apt remove gnome-terminal.

0

I know this is an old question, but since I landed here while trying to do the same thing, here's my take for future visits.

I tried all the previous suggestions and failed, so instead I came up with this workaround (not a perfect answer, but can still be useful I guess).

Create a change_terminal.sh file

# Open a new terminator window in a detached tmux session so it remains open
cmd="terminator --working-directory=$PWD"
tmux new-session -d
tmux send-keys "$cmd" C-m
tmux dettach
# Close active window (gnome-terminal since the new one hasn't loaded yet)
xdotool key --clearmodifiers Ctrl+Shift+Q key --clearmodifiers KP_Enter

and give it execution rights:

chmod +x change_terminal.sh

Create the following alias:

alias ct="path/to/change_terminal.sh"

Now you just open a default terminal from nautilus in the desired location and type 'ct' to close it and open a terminator terminal in the same location.

-1

I've created this alias:

alias tt='terminator & disown & exit'

Now when I click on the option 'open in terminal', I just type 'tt' in the opened terminal and it switches to terminator, in the same location.

I wanted something simpler but, as you can see from the previous answers there is no such thing (until now) as a nautilus-tweaker or a tool to personalize it's behaviour.