Context: During this post, the term alternatives refers to the tool called alternatives.
So whats the deal with Fedora and how it (or in this case: does not) handles Terminals?
In my previous life with Ubuntu, the OS was configured to have a default Terminal application which initially pointed to the gnome-terminal app, which then could be changed by using the command
sudo update-alternatives --config x-terminal-emulator
So after checking if alternatives
is even installed, I went on trying the same on Fedora, only to find out, that Fedora does not even define a default application for Terminal:
~ alternatives --list
libnssckbi.so.x86_64 auto /usr/lib64/pkcs11/p11-kit-trust.so
soelim manual /usr/bin/soelim.groff
arptables auto /usr/sbin/arptables-nft
ebtables auto /usr/sbin/ebtables-nft
man auto /usr/bin/man.man-db
print auto /usr/bin/lpr.cups
cups_backend_smb auto /usr/bin/smbspool
cifs-idmap-plugin auto /usr/lib64/cifs-utils/cifs_idmap_sss.so
iptables auto /usr/sbin/iptables-nft
qtchooser-5 auto /etc/xdg/qtchooser/5-64.conf
google-chrome auto /usr/bin/google-chrome-stable
qtchooser-default auto /etc/xdg/qtchooser/5.conf
xinputrc auto /etc/X11/xinit/xinput.d/ibus.conf
Kinda surprising. Even the official docs mention alternatives
but ignores Terminal Looking into /usr/share/applications/org.gnome.Terminal.desktop
, it correctly advertises itself through the categories:
...
Exec=gnome-terminal
Icon=org.gnome.Terminal
Type=Application
Categories=GNOME;GTK;System;TerminalEmulator; <---- TerminalEmulator
StartupNotify=true
StartupWMClass=Gnome-terminal
SingleMainWindow=false
...
Looking into the .desktop entry for the app I want to have as the default defines also TerminalEmulator
, so technically, there should be no issues.
So the question comes up, why the users are not given the choice to change their default Terminals?
Sure, one can just define / change the shortcut to point it to the new app, but this is not the same as defining a default. e.g. when other applications decide to open a terminal, or you want to exec.run
scripts from a File Manager, right-click open in Terminal…, etc… Then the “hardcoded” gnome-terminal will be used…
Workarounds
Some research on how to switch the default terminal app in Fedora suggested changing the gsettings, but one is presented with the following message:
My current approach is a ‘simple solution’ (quotes, because it is still a workaround!) to create a symlink of your app to /usr/local/bin/
with the file name gnome-terminal
and making use of the lookup precedence, while still keeping /usr/bin/gnome-terminal
sudo ln -s $(command -v <YOUR_APP>) /usr/local/bin/gnome-terminal
Now whenever something / someone exec’s gnome-terminal, the system will first look in the entry in /usr/local/bin
before the other locations and use that one…
Following questions: (ANSWERED)
(depr.) Why are users not given the choice of changing the default terminal app? This question would make sense, if a default would have been defined at all, which leads to:Why is Fedora lacking the definition of a default terminal application like other distros? Is this how vanilla Gnomes comes with and Fedora did / does not want to decide on this?
Basically yes, this is See answer below with linksDo you know ‘better’ solutions to still change/define a default terminal?
Not sure if really better, but at least what Gnome expects… see also reply from @vgaetera (thanks for that!)In case Question 2 is true, maybe it is worth asking this question towards Gnome? Considering there are now three different projects in their ecosystem, this would even make more sense without even thinking about 3rd party terminals, right? (Terminal, Konsole, Prompt)
Yep, the Gnome Project itself is not clear about how to progress on this…