Solved rxvt-unicode fails to ouput the horizontal ellipsis (U+2026)

Hello,

i use x11/rxvt-unicode as my terminal emulator and it seems like it cannot output the horizontal ellipsis (U+2026).

As the terminal font, i use x11-fonts/iosevka, which i load via .Xresources like so:
Code:
URxvt.font: xft:Iosevka:style=Regular:size=12
URxvt.boldFont: xft:Iosevka:style=Bold:size=12
URxvt.italicFont: xft:Iosevka:style=Italic:size=12
URxvt.boldItalicFont: xft:Iosevka:style=Bold Italic:size=12

My locale is German which i set via .login_conf
Code:
me:\
    :charset=UTF-8:\
    :setenv=LC_ALL=de_DE.UTF-8:\
    :lang=de_DE.UTF-8:

However, if something tries to output the ellipsis (…), for example calling a GTK4 program with the --help parameter, it doesn't work but outputs a square:
2021-09-07-152123_1920x1080_scrot.png


Here is a minimal compilable C++ program which reproduces the problem:
Code:
#include <clocale>
#include <iostream>

int main()
{
    setlocale(LC_ALL, "");

    std::cout << "…" << std::endl;  // does not work
    std::cout << "öä" << std::endl; // umlauts work fine

    return 0;
}

Note that this is not restricted to C++, every other method of outputting the ellipsis does not work, for example a simple echo in a shell script or pasting the character via middle mouse click.

And before you ask, yes, the program above outputs the ellipsis fine if i run it from a virtual console without X.

How can i make the ellipsis work in rxvt-unicode with the Iosevka font?
 
Are you sure this font has the corresponding glyph? For me, rxvt-unicode doesn't have any problems displaying it.

Also, just to be sure, what's the output of locale?
 
Are you sure this font has the corresponding glyph?
Yes, i am sure that it has that glyph. I asked the author of Iosevka font on Github.

what's the output of locale?
Code:
[xxx@xxx ~/development]$ locale
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_ALL=de_DE.UTF-8
 
For the record:

I found the solution while browsing the Github releases page of Iosevka:
  • Default: The default variant with ligatures. Various symbols, like arrows and geometric, are wide (2-column).
  • Terminal (“Term”) A narrower variant focusing terminal uses. Arrows and geometric symbols will be narrow to follow typical terminal usages.
  • Fixed: Exact monospace font without ligatures and wide glyphs. Since some environments cannot interpret Iosevka or Iosevka Term as monospace, and have difficulties with ligatures included, you can use Iosevka Fixed as an alternative.

Using URxvt.font: xft:Iosevka\ Fixed:style=Regular:size=12 instead of URxvt.font: xft:Iosevka:style=Regular:size=12 etc. solved it.

Btw. If you only need the fixed variant for your terminal, it's better to download the zip from the releases page and manually copy the fonts to you fonts directory.
It's only ~200MB vs 2GB for the pkg.
 
Back
Top