emacs/var/elfeed/db/data/a8/a8a6b36f1b229b314dac6ec27ae9f90ed5ba7c65
2022-01-03 12:49:32 -06:00

105 lines
4.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>I have changed my default terminal emulator from Simple Terminal (ST) to
MATE Terminal (MT). In the process, I modified 46 files, making 214
additions and 7843 deletions. I also learned how to properly use
<code>dconf</code> to control <code>mate-terminal</code> programmatically.</p>
<p>The <a href="https://gitlab.com/protesilaos/dotfiles/commit/0cc77016cf5cf85bb115c650725b36f6858021b8">commit message from the
merge</a>
into <code>master</code> provides a detailed explanation (please ignore any typo or
odd comma). The gist of it is that the new choice is better for
portability and maintainability, while also offering a few minor
usability benefits.</p>
<blockquote>
<p>This is a major review of my dotfiles. It intends to replace my
default choice of terminal emulator.</p>
<p>Below is an excerpt of the commit message that signalled the start of
this process.</p>
<hr />
<p>Context: after extensive testing, I have decided to change my default
choice of terminal emulator to MT. The previous default was my custom
build of the Simple Terminal (ST), by the Suckless community. Here is
the reasoning, in outline form:</p>
<ul>
<li>
<p>MT is already installed on my system, because MATE is my fallback
option for a fully fledged desktop environment.</p>
</li>
<li>
<p>ST has build dependencies, meaning that a user of my dotfiles must
first follow the instructions in the README that is bundled with
STs source code. Without these dependencies, ST will fail to build
when performing an environment theme update (using either my
<code>tempusmenu</code> or <code>own_script_update_environment_theme</code>).</p>
</li>
<li>
<p>ST needs to be recompiled for a theme change to occur. MT updates
faster (courtesy of <code>own_script_mate_terminal_setup</code>) and is less
taxing on system resources in this specific instance (my laptops
fan is not activated).</p>
</li>
<li>
<p>ST has major problems drawing box characters without extensive
patching. Only at specific point sizes, does the selected font draw
continuous lines. Whereas MT has no such issues.</p>
</li>
<li>
<p>ST cannot draw emoji characters, while it requires an extra package
for symbolic fonts (see its README) in order not to segfault when
trying to display them. MT supports emoji. Now, it may seem
superfluous to have such a feature, but it is important once you
consider that people add emoji in emails or blog posts that can
ultimately be read through the terminal (such as via <code>neomutt</code> and
<code>newsboat</code> respectively). While the font problems are not major,
they do add up (terminals are all about text, after all).</p>
</li>
<li>
<p>From an aesthetic perspective, ST is not very well suited to the
dynamic size adjustments that happen in a tiling WM. It tends to
create an inner padding when set at specific window sizes. This is
most noticeable while running tmux (which I do all the time), where
the status line will have a large distance from the bottom and right
sides. Admittedly, MT is not perfect in this regard, though it is
better.</p>
</li>
<li>
<p>MT does not expose its theming options via a typical dotfile, but
still is easy to configure programmatically using dconf (what
<code>own_script_mate_terminal_setup</code> does).</p>
</li>
<li>
<p>Other terminals that use the VTE widget (this is actually the
terminal emulator part, while MT is the implementation/framework)
such as {GNOME,Xfce} Terminal and Tilix, would also have the same
advantages as MT. However, they are not installed by default, while
Tilix has a ton of other features that I do not need (thanks to
tmux).</p>
</li>
<li>
<p>URxvt (Rxvt-Unicode), which is a popular choice for minimalist
window managers, exhibits similar problems to ST when it comes to
font drawing. It also is not installed by default. Furthermore,
I am not sure whether it is still maintained or not as version 9.22
is the one available across Stretch, Buster, Sid.</p>
</li>
<li>
<p>Konsole on its own is an excellent choice, but not for my particular
use case. It pulls in what seems like half the KDE-related package
list.</p>
</li>
<li>
<p>I am writing a book on how anyone can reproduce my custom desktop
session on Debian 10 buster (planned for publication in late
April, early May 2019). Any kind of friction, is a hit on
usability.</p>
</li>
</ul>
</blockquote>