I am not able to see complex fonts like Devanagari, Arabic, etc correctly in terminal-- they do render but circles appear on the screen for Devanagari, Arabic is also garbled. Everything is fine in GUI based editors.


  1. KDE based editors like Konsole not an option
  2. I know gnome based editors like tilix also solve the problem but I can't use gnome 3.32 which uses vte 0.56-- which solves the circle problem. I have to use gnome 3.28 and vte 0.52.

So my only option seems to be mlterm which shows great promise. But after successfully installing it I am not able to see any language text-- everything comes as blank or "squares".

I think mlterm is not able to pick the fonts correctly; but I am not able to find a way to change the font that is being used by mlterm.

I have read:

  1. https://github.com/arakiken/mlterm
  2. https://raw.githubusercontent.com/arakiken/mlterm/rel-3_9_0/README
  3. https://www.linuxquestions.org/questions/linux-desktop-74/how-to-set-font-of-mlterm-769852/

I have also tried the command:

mlterm-3.9.0/main/./mlterm --km UTF-8 --dyncomb true --deffont=~/.mlterm/vfont --type xft

and put ISCII_HINDI=Noto Sans Devanagari inside the file ~/.mlterm/vfont

I understand that the --deffont argument here: http://mlterm.sourceforge.net/mlterm.1.html needs to be set, but I don't understand what exactly should be inside the file. What should be its syntax?

I want to use Google's Noto fonts.


Your problem is that you're telling mlterm to use the UTF-8 encoding but telling it the font for only the ISCII_HINDI encoding.

Instead, try putting one of DEFAULT=Noto Sans Devanagari, or UNICODE=Noto Sans Devanagari, in your .mlterm/*font files, both of which should work. Equivalently to the first option, you can instead pass --deffont="Noto Sans Devanagari" on the command line instead of putting DEFAULT=Noto Sans Devanagari into .mlterm/vfont file.

Note that the .mlterm/vfont file is used only when you have variable width fonts enabled --- otherwise the appropriate file is simply .mlterm/font. You can find more about this in the chapter of the man page entitled "CONFIGURATION"

If you want to support more languages that aren't covered by the Noto Sans, you can use a list of fonts to try in order after installing the appropriate fonts: e.g. DEFAULT=Noto Sans Devanagari, Tajawal uses Tajawal from Google Fonts for Arabic support. Personally, I always add the GNU Unifont to the end of any such list, as it has complete (but not necessarily pretty) support for all of Unicode Plane 0.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.