Then, choose a place where to put your repository (I chose my $HOME).
Origin, Label and Description are free-form fields. Codename is the
same as my current Debian version, and Architectures matches the
architectures I'm using. Then run:

Since I started with Linux, back in 1997, my xterm have been using always the
same font: a bitmap, fixed font which produces 6x13 pixels glyphs. I'm
convinced that a bitmap font is the best possible choice for not-so-high
resolution LCD monitors (I have a 17" 1280x1024 monitor which results in a
96 dpi resolution) where any vector font would inevitably produce aliased or
fuzzy glyphs. My bitmap font is crisp and has no rainbow edges (who in his
right mind could imagine that subpixel antialiasig is a good idea?).

With the xterm, I could simply specify the font as 6x13 and it would use
it. That was simple, because it was meant for it.

Today I switched from pure X11 xterm to GTK-based evilvte
and while evilvte is apparently a great tool, it didn't want to use my beloved
6x13 bitmap font. It would use 6x12 or 7x13, but not the one in the middle.
The font is however available on the system through fontconfig, since I could
find it with fc-match:

But evilvte, while showing "SemiCondensed" as an option in its font dialog,
just seemed to ignore it. The fontconfig documentation mentions that one can
trigger debug output by setting an environment variable FC_DEBUG=1. With it,
I could see how Pango (GTK's font managemnt system) was interacting with
fontconfig:

Notice the important difference: fc-match asks for a weight of 100 (and style
SemiCondensed) while Pango asks for weight 80 and width 87 (which is
apparently equivalent to semi-condensed). Since my font had a weight of 100,
it was never selected. However, when requesting a bold version (fc-match
Fixed-10:semicondensed:bold or python mygtk.py "Fixed SemiCondensed Bold
10") the same font is found (6x13B-ISO8859-1.pcf.gz, which is the bold
counterpart of my font). That took me several hours to find out.

Since the root of the problem seemd to be the weight, I needed to find out how
to make Pango tell fontconfig to use a different weight, since there is
apparently
nothing
between “Regular” (Pango 400, fontconfig 80) and “Bold” (Pango 700,
fontconfig 200). And then, completely by accident, I found
out
there is actually a middle value: “Medium” (Pango 500, fontconfig 100),
which is exactly what I neeed. But the outdated PyGTK documentation and the
well-hidden man page (and very little help from Google and DuckDuckGo in
finding a decent documentation for Pango, I must say) didn't make this any
easy.

So finally, the magic font description I put in evilvte's config is “Fixed
Medium SemiCondensed 10”. With it, Pango selects the font I want:

Today I switched from using xterm (which I had been using for the past 15
years at least) to using evilvte. The reason is that evilvte allows to click
on URLs and opens a new tab in Firefox, while xterm does not. Since Firefox
removed the --remote option, wmnetselect did not anymore allow me
to open a copied URL. Since wmnetselect has no been updated since forever
and has even been removed from Debian, I thought it was time for a radical
change (yes, I changed my terminal emulator because of the Web browser. I
know).

Evilvte is one of those simplistic tools that you configure by editing the
source code (the config.h, really), so I thought that after having done
that, I may as well make my own custom Debian package. It wasn't too hard, but
since I don't plan to do this regularly, here's the process.

Get the Debianized sources:

apt-get source evilvte

Enter the directory

cd evilvte-0.5.1

Edit the config file (or whatever you want to do for your own package), save
it in the right place. In my case, the package contained a debian/config.h
customized by the package's maintainer, so I needed to modify this one rather
than the src/config.h one. During the building of the package,
src/config.h is overwritten by debian/config.h.

Then edit debian/changelog and add a new entry. By doing that, you need to
choose a new version number. I wanted to keep the original version number of
the package (0.5.1-1) but make it known that it was slightly newer than
0.5.1-1: I decided to go for 0.5.1-1+custom (after discovering that my first
choice, 0.5.1-1~custom, means that the package is slightly older than 0.5.1-1
and would therefore have been replaced during the next apt-get dist-upgrade)
by 0.5.1-1 . The description of the change is simply “Custom configuration”.
For the rest, follow the example of the existing entries in the changelog. Be
careful, there are two spaces between the author and the date.

If you have changed the upstream source code instead of only Debia-specific
files, the package building helpers will record a patch for your and let you
write some comments in the patch file, based on the new entry in the
changelog.

Then you just need to build the package:

dpkg-buildpackage

It will probably ask you for your GPG passphrase (when signing the package),
and after that, you're done. The newly created package is in the parent
directory, and ready to be installed.