105 lines
4.5 KiB
Plaintext
105 lines
4.5 KiB
Plaintext
|
||
|
||
<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
|
||
ST’s 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 laptop’s
|
||
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>
|
||
|
||
|