Ubuntu Budgie 24.04 Tilix terminal not rendering devanagari ligatures correctly

Ubuntu Version:
24.04

Desktop Environment (if applicable):
Budgie

Problem Description:
When I try to input or print devanagari words on default terminal Tilix they are not rendered correctly, esp the ligatures. Please refer below the screenshots from Google Input Tools showing the expected rendering

and following is the screenshot of the Tilix terminal when the words shown in the screenshot above are paste in terminal

2

Below are the unicode strings of the ligatures shown in the screenshots

श्र - “\u0936\u094D\u0930”
द्म - “\u0926\u094D\u092E”
क्ष - “\u0915\u094D\u0937”
त्र - “\u0924\u094D\u0930”

Those are the expected renderings but in Tilix they show up as

श्‌र - “\u0936\u094D\u200C\u0930”
द्‌म - “\u0926\u094D\u200C\u092E”
क्‌ष - “\u0915\u094D\u200C\u0937”
त्‌र - “\u0924\u094D\u200C\u0930”

Following is the tilix version details

$ tilix --version
Versions
	Tilix version: 1.9.6
	VTE version: 0.76
	GTK Version: 3.24.41

Tilix Special Features
	Notifications enabled=0
	Triggers enabled=0
	Badges enabled=1

Trying to find solutions on the web I came across using Konsole terminal. So I installed it but in that too the same problem.

Then I came across https://unix.stackexchange.com/a/580097. So going through the list at GitHub - tonsky/FiraCode: Free monospaced font with programming ligatures I chose Tabby and installed it. And in its Settings → Appearance I enabled the option Enable font ligatures but no luck.

In some pages I found on web it mentioned to install relevant font. So I downloaded Noto_Sans_Devanagari and extracted it to ~/.fonts directory and tried to select it in Tabby but it was not showing that font. So I manually specified it in its ~/.config/tabby/config.yaml but still no luck.

Since hours I am trying to solve the problem but nothing is helping.

Can anybody help me making aware what is the problem and how to fix it?

Thanks.

I can’t really help you beyond telling you that all terminals use monospaced fonts (meaning all characters are the same width; this makes output in columns a lot easier …). The Noto-Sans fonts are proportional (meaning different characters have different width) and no terminal will use them. Noto-Mono might work, but I don’t believe that has devanagiri glyphs (at least in charmap I get a blank table when choosing that font, activating ‘only show glyphs from font’ and selecting the devanagiri part of Unicode).

1 Like

apt search devanagari should give you a list of fonts in the archive supporting devanagari … and as stated above you want to pick the mono variants for terminal output, else the spacing will be off …

@hdd-gehrke and @ogra Thanks for your prompt replies.

I will try your suggestions and share what I get. But I have a question that on my PC running Ubuntu 18.04 I faced the same rendering problem and on it using Konsole terminal my problem was solved.

But it is strange that on Konsole on Ubuntu 24.04 the rendering issues can be seen.

Is there not any terminal which out-of-the-box supports correct rendering of scripts like Devanagari?

Like I said I also tried using Tabby terminal but on that too no luck.

BTW I am working on a Ruby script which should print Devanagari characters on the terminal so it is crucial for me to fix this problem. Otherwise on browser and in text editor the characters are rendering correctly as can be seen in the Google Input tools screenshot I have shared.

Thanks.