GNOME Terminal
A friend mentioned that he knows many developers who have recently switched to Alacritty. He is using GNOME Terminal. That is what I used before switching to rxvt-unicode, and I still miss some of its features!
GNOME Terminal allows you to configure multiple “profiles” and switch between them easily. I had profiles for dark and light themes with various font sizes. While I generally prefer a dark theme, I often find that a light theme works better when using a projector. With GNOME Terminal, I was able to use my usual dark theme terminals on my screen while projecting a terminal with a large font and light theme for others to see.
I do not know of a way to do the same thing using Alacritty. One can
create separate configuration files to use as “profiles” without issue.
For example, an alacritty-screen.yml
configuration file
could contain the normal configuration while an
alacritty-present.yml
configuration file could contain a
configuration for presenting on a projector. Switching profiles is as
simple as updating an alacritty.yml
link to point to a
configuration file. The problem is that configuration changes
immediately apply to all terminals; you cannot use different
configuration for different terminals as you can with GNOME
Terminal.
I wish that Alacritty provided an “action” to change the color scheme for a specific terminal… I wonder if there is already a feature request for this functionality.
GNOME Terminal also allows you to configure the terminal encoding (per profile)! When I worked on really old Unix servers that do not use UTF-8, Gnome Terminal made the transcoding completely transparent.
GNOME Terminal also has a “read-only” option. Being able to turn off input to a terminal to prevent accidental input is a really nice feature when interacting with sensitive, long-running software.
Why do I not use GNOME Terminal today? I stopped using it because of resource usage. I was using Debian, and a major upgrade wanted to install more GNOME services that I was/am comfortable with. I quite dislike the GNOME desktop environment for a number of reasons, and one significant reason is that it requires running many services. I prefer to minimize the number of services that I run, keeping my resource usage low. GNOME feels slow compared to my current environment. I did not want to install and run large components of GNOME in order to just use the terminal emulator.
I am using Arch Linux on my daily driver these days, however, and Arch provides a bit more control than Debian. I tried installing GNOME Terminal and found that it did not require me to install many packages since other software that I have already installed has already pulled many GNOME dependencies.
After installation, attempting to run gnome-terminal
ended in failure after a considerable delay.
$ gnome-terminal
# Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0:
Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached
GNOME Terminal does indeed rely on various GNOME services. Searching online, I found a way to run it without the services, however: launch it using D-Bus.
$ dbus-launch gnome-terminal
Running GNOME Terminal, I discovered that I have grown accustomed to a nice feature that is supported by both rxvt-unicode and Alacritty: decreasing the font spacing. It looks like GNOME Terminal allows you to increase the spacing but not decrease it.
I am not going to switch back to GNOME Terminal, but I will
keep it installed for when I need the encoding feature. I put the
following script in my ~/bin
directory so that I do not
have to remember to use dbus-launch
.
#!/usr/bin/env bash
/usr/sbin/dbus-launch /usr/sbin/gnome-terminal