0

Gnome-Terminal is terrible.

It's buggy and whenever Gnome-Shell restarts or resumes from suspend, all Gnome-Terminal windows become unusable and can't be closed. There's an old ticket opened for it, but it'll likely never be fixed.

In the meantime, I've been trying to use other terminal packages. Unfortunately, Gnome-Shell still thinks Gnome-Terminal is what it should use whenever I select "open in terminal" in various menus. If I uninstall Gnome-Terminal, these menus disappear. What's the easiest way to keep the menus, but make my preferred terminal window open instead?

  • 1
    Which Ubuntu version? Where's the ticket you mentioned? – egmont Mar 25 '16 at 1:10
  • Can you set it via "Preferred Applications"? – Alexiy Mar 25 '16 at 6:21
  • @egmont, I've added the link in an edit. – Cerin Mar 28 '16 at 17:16
  • @Alexiy, No, there's no option for preferred terminal. – Cerin Mar 28 '16 at 17:16
  • 1
    @Wilf, No, I'm done filing bugs. They're always ignored, and I've found a solution by simply abandoning the buggy program. – Cerin Mar 28 '16 at 23:02
1

Ideally, there'd be an option under Details->Default Applications, but there's currently no option for "terminal".

My workaround was to install Terminator, or any other of the many GUI terminal packages which does suffer the gnome-terminal bug, and then symlink it to /usr/bin/gnome-terminal, e.g.

sudo mv /usr/bin/gnome-terminal /usr/bin/gnome-terminal.bak
sudo ln -s /usr/bin/terminator /usr/bin/gnome-terminal

The two binaries don't have identical parameters, but so far they seem to be similar enough that all my terminal launchers (nautilus-open-terminal, Eclipse, etc) all seem to pick it up seamlessly.

  • Agreed. It should be at Details->Default Applications. I hope someone has time to file that as a feature request (I don't right now). – Lonnie Best Apr 19 '18 at 1:24
1

Or you may simply use: sudo update-alternatives --config x-terminal-emulator

0

I wouldn't recommend symlinking another terminal app to gnome-terminal. If any other application in the system is trying to invoke gnome-terminal with specific parameters this might fail. On top of that symlinking might cause issues with package/system upgrade.

Simply keep your favorite terminal app (terminator/tilda/guake etc) in ubuntu dock/start menu. The other option is to configure nautilus file manager to open your favorite terminal. I presume this is the most likely use case for most people anyway.

sudo apt-get install nautilus-open-terminal nautilus-actions

enter image description here Nautilus actions config tool

  • 1
    This doesn't help me with Eclipse. – Cerin Mar 28 '16 at 22:59
0

You can also use nautilus-python extensions. Just install nautilus-python and save this script as ~/.local/share/nautilus-python/extensions/OpenInTerminal.py.

import os

from gi.repository import Nautilus, GObject

class ColumnExtension(GObject.GObject, Nautilus.MenuProvider):
    def __init__(self):
        pass
    def menu_activate_cb(self, menu, file):
        # Command to run terminal
        os.system("terminator --working-directory=" + file.get_location().get_path())

    def create_menu_item(self):
        return Nautilus.MenuItem(name='TerminatorExtension::Open_Terminator',
                                     label='Open terminal here',
                                     tip='Open terminal in current directory',
                                     icon='')

    def get_background_items(self, window, file):
        item = self.create_menu_item()
        item.connect('activate', self.menu_activate_cb, file)
        return item,

    def get_file_items(self, menu, files):
        if len(files) != 1:
            return
        file = files[0]
        if not file.is_directory():
            return
        item = self.create_menu_item()
        item.connect('activate', self.menu_activate_cb, file)
        return item,

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.