61

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?

  • Here's a question about setting the default terminal emulator. – user32085 Nov 7 '11 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 '11 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. – Bruno Pereira Nov 7 '11 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 '11 at 16:41
38

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://git.gnome.org/browse/glib/tree/gio/gdesktopappinfo.c#n1106

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
| improve this answer | |
42

Nautilus-Actions Install nautilus-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
    

enter image description here

  • 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

enter image description here

  • 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:

enter image description here

| improve this answer | |
  • Wow, thanks so much for the detailed writeup! I will try this tomorrow when I get to the office and report back. – YXD Nov 8 '11 at 1:43
  • 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 '14 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 '14 at 23:39
  • wow thank you so much I didn't know that application existed :) – Iman Akbari May 29 '16 at 7:27
  • 8
    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" – Hải Phong Sep 19 '16 at 1:28
23

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.

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

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)

| improve this answer | |
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

| improve this answer | |
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.

| improve this answer | |

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.