2

I want Ubuntu 22.10 to display serif Arabic text in the Noto Naskh Arabic typeface while sans-serif Arabic text in the Noto Sans Arabic typeface.

Specimen of Noto Naskh Arabic.

Specimen of Noto Sans Arabic.

How can I make Ubuntu install a default Arabic font for serif and another for sans-serif?

I want Ubuntu to follow a rule where, if it sees text whose typeface filename containing words like naskh or serif, it displays all that text in that particular typeface? And if another group of words are have typefaces with filenames containing words like sans or sans-serif, then Ubuntu would show all that text in the default sans-serif Arabic typeface?

Results of fc-match -a | head -10:

NotoSansArabicUI-Regular.ttf: "Noto Sans Arabic UI" "Regular"
NotoSans-Regular.ttf: "Noto Sans" "Regular"
NotoSans-Bold.ttf: "Noto Sans" "Bold"
NotoSans-Italic.ttf: "Noto Sans" "Italic"
NotoSans-BoldItalic.ttf: "Noto Sans" "Bold Italic"
NotoSansArabicUI-Bold.ttf: "Noto Sans Arabic UI" "Bold"
DejaVuSans.ttf: "DejaVu Sans" "Book"
DejaVuSans-Bold.ttf: "DejaVu Sans" "Bold"
NimbusSans-Regular.otf: "Nimbus Sans" "Regular"
NimbusSans-Regular.pfb: "Nimbus Sans" "Regular"

locale:

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=ar_EG.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

1 Answers1

3

Ubuntu's font configuration is prepared for doing just that.

First you need to have these packages installed:

sudo apt install fonts-noto-core fonts-noto-ui-core

Then there are two ways to achieve the desired behavior:

  1. Install the Arabic language via Language Support and select Arabic as your display language.

  2. If you don't want Arabic as the display language, you can generate some Arabic locale and assign it to the LC_CTYPE environment variable:

    sudo locale-gen ar_EG.UTF-8
    sudo update-locale LC_CTYPE=ar_EG.UTF-8
    

(and finally reboot)