71

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?

4
  • Here's a question about setting the default terminal emulator.
    – user32085
    Nov 7, 2011 at 15:31
  • Ok, I tried that and it doesn't work. In fact the "Open in Terminal" command does nothing now
    – YXD
    Nov 7, 2011 at 15:37
  • Tested this just now to see how was it working for terminator, with terminator you need to set up the full path to the program, after that it will work like a charm by pressing ctrl+alt+t or when you have a program calling the terminal. Nov 7, 2011 at 15:49
  • 1
    Thanks for the advice. Everything you've described works fine, however I can't get nautilus-open-terminal working with Terminator, which is really my original question. If you or anyone has any insights into how I can make this work I'd be very grateful.
    – YXD
    Nov 7, 2011 at 16:41

8 Answers 8

47

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
    
8
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

8
  • 1
    Great solution. One thing: It's not really necessary to log out/in, restarting nautilus with nautilus -q is sufficient. I just proposed an edit for that.
    – Christoph
    Jan 1, 2014 at 21:32
  • 1
    Nautilus-Actions can't go to relative symlinks paths, it uses absolute dispatchers, but open-in-terminal plugin opens relative paths.
    – unclechu
    Oct 1, 2014 at 23:39
  • 12
    if you don't want Open in Terminator to be in submenu, in Nautilus-Actions, go to Edit > Preferences > Disable "Create a root 'Nautilus-Actions' menu" Sep 19, 2016 at 1:28
  • 1
    E: Unable to locate package nautilus-actions-config-tool
    – Cerin
    Feb 3, 2017 at 17:43
  • 1
    The project seems to be archived and the package is no longer available in the apt repositories (tested on Pop!_OS 22.04)
    – Sean Bone
    May 3 at 11:01
24

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.

16
  • The arguments are required. Have edited and accepted.
    – YXD
    Nov 8, 2011 at 12:45
  • What arguments are you using with terminator, if its useful I will edit the answer and add that information. Nov 8, 2011 at 12:59
  • it's org.gnome.desktop.default-applications.terminal exec-arg '-x' as in my edit.
    – YXD
    Nov 8, 2011 at 13:22
  • 9
    This doesn't work on Ubuntu 16.04...
    – Cerin
    Feb 3, 2017 at 17:42
  • 7
    This doesn't work on Ubuntu 20.04
    – drkostas
    Jul 13, 2020 at 10:07
13

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)

1
  • Yet another update will be needed for Ubuntu 19.04 and higher. File-manager-actions is no more.
    – vanadium
    Jul 11, 2021 at 13:30
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

1

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

1
  • 1
    Sure, it's somewhat "hacky" but IMO way easier (and far less invasive) than having to install other software packages and tweak numerous things. Thanks.
    – Inactivist
    May 10 at 16:15
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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.