Skip to main content

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
Author

Travis Cardwell

Published

Tags
Related Blog Entries