Default Terminal

Hello.
A default terminal is a user prefered application that opens up by clicking ‘Open in Terminal’ in nautilus’ context menu or running a .desktop file with ‘Term=yes’ property.
Most desktops provides an option for selecting the default terminal, while in Gnome it was only possible by changing ‘org.gnome.desktop.default-applications.terminal’ dconf key.
Now, it is deparcated and there’s no way to do that because Gnome uses a hard-coded value gnome-terminal.
If an user prefers another terminal emulator, (s)he should remove /usr/bin/gnome-terminal and make symlink from his/her prefered terminal to /usr/bin/gnome-terminal.
I’m asking a feature or option in settings for selecting ‘default terminal’.

Please, read issue 338, which contains a long discussion about the problem, and hints at potential solutions.

1 Like

Yes I’ve seen.
GNOME as a Desktop should allow users to set a default terminal emulator, As other desktops like XFCE, MATE, Cinnamon, Deepin and KDE provides.
It was available as a gsettings key as result of that discuss you have sent its link but I don’t know why it got deparcated.

If you’ve seen the issue then you probably didn’t read it in its entirety.

GSettings is not the correct place for this, so it doesn’t matter why it was deprecated.

The appropriate way to solve this is to find a way for applications to declare themselves as terminal emulators, and have a way to find them through the desktop entry; on top of that, there needs a way to specify which one should be preferred in a way that allows:

  • a per desktop environment default (GNOME sets gnome-terminal; KDE sets their own terminal; Xfce sets their own terminal; and so on and so forth)
  • a site configuration, for system administrators managing multiple systems
  • a per user configuration

The MIME type default works in a similar way, but it shouldn’t be hijacked by this because “being a terminal” is not a MIME type.

This needs to be discussed within the XDG effort so that different environments won’t trample each other’s settings.

Nobody has showed up to do this work, and everyone else is otherwise busy with everything else that has a higher priority than “I can’t change my preferred terminal”.

If you want to work on this, you’re very much welcome.

1 Like

Thank you for the explaination.
May it’s harder than what I though, but I’ll respect and I will wait until you make a standard for it. I’ll search for a way to add my terminal emulator to nautilus context menu, As nautilus-actions don’t get update anymore.
Is it possible to use a configuration file?
the file /etc/terminal-emulator.conf can contain ‘Gnome=gnome-terminal’ and each user can override it by adding ‘~/.config/terminal-emulator.conf’
It’s may not too standard but at least it has a default value for each desktop and each user can override it.
May we need to implement a standard API for desktop environments or add something like terminal emulator manager to Xorg.
For finding terminal emulators, We can use ‘Category’ property in .desktop files, or create another file like /etc/shells.

@ebassi
There is something called xdg-terminal: https://gitlab.freedesktop.org/xdg/xdg-utils/blob/master/scripts/xdg-terminal.in
I wonder why is it not used anywhere. :slight_smile: Ofc it does not solve the whole problem but it may be start point.

1 Like

xdg-terminal, like all other xdg utilities, doesn’t do anything more than checking the current environment, and launching the binary associated with it—e.g. gnome-terminal under GNOME, the KDE terminal under KDE, etc.

It’s an hardcoded list of environments and associated terminal emulators.

2 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.