40

I'm trying to write Arabic in the terminal app but it does not recognize right-to-left text and does not bind the Arabic letters together as it should.

I tried this solution https://bugs.launchpad.net/ubuntu/+source/vte/+bug/263822 but it did not work.

Are there any plans to implement Arabic support in the gnome terminal? KDE Konsole terminal works without any problems.

This is what is needed in a terminal to support Arabic:

  1. Arabic letters need to be displayed correctly with a font that supports Arabic, from right to left, with the letters taking the correct forms (letters in the same word are joined together, usually, we want to see على not ع ل ى)
  2. It needs to support diacritic marks (known as shakl شَكْل in Arabic)
  3. There needs to be a way to enable right-to-left mode for the entire line. For example, the word على followed by a . should be displayed with the dot on the left, not the right.
  4. There needs to be a way to align the text of the line to the right, not to the left.

Here is an example of four properties being met in Gedit:

Gedit screenshot

However, GNOME Terminal in Ubuntu 21.10 only supports properties 1 and 2 of the previous list of requirements:

GNOME Terminal screenshot

(The letters are displayed correctly right to left, however, the dot is on right when it should be on the left, and the text is left-aligned rather than right-aligned.)

Flimm
  • 44,031
Pore
  • 401

6 Answers6

11

For Ubuntu 64 bit, you would need to download BiCon, the Bidirectional Console. To add the PPA and install:

sudo add-apt-repository ppa:behnam/ppa
sudo apt-get update
sudo apt-get install bicon

I guess you were having a dependency problem. You would need also to install the apps stated above with this command:

sudo apt-get install libfribidi0 libfribidi-dev

Hope that this could help

Flimm
  • 44,031
Mijo
  • 293
10

Use Mlterm, It's has great support for Arabic and other non-latin characters. You can download it from Ubuntu repositories:

sudo apt install mlterm

Picture of Mlterm showing Arabic

Flimm
  • 44,031
Damascene
  • 101
9

try this: sudo apt-get install libfribidi0 libfribidi-dev, install THIS package, then vim /usr/share/applications/gnome-terminal.desktop and add this code to the document:

Terminal=true
Exec=/usr/bin/bicon.bin
avery_laird
  • 144
  • 4
8

GNOME Terminal 3.34 supports right to left scripts such as Arabic.

The work actually went into VTE version 0.58, so any other terminal emulator using VTE (e.g. Tilix, Terminator, Xfce Terminal, Guake...) will automatically receive it.

It's going to debut in Ubuntu 19.10 Eoan Ermine.

Screenshot

Flimm
  • 44,031
egmont
  • 8,990
  • 1
  • 34
  • 47
4

Update

As egmont mentioned in his comment below, a BiDi implementation is coming to vte terminal emulator. Check his answer which is the last updated concerning this topic.

Here is a reference if looking for details: https://terminal-wg.pages.freedesktop.org/bidi/


Original answer

No, there is no plans to implement RTL support in gnome-terminal or any terminal depends on vte as the case of synaptic installation terminal.

  • You may proxy your command through fribidi command to make bidi & basic shaping of Arabic.
  • You may also use konsole (KDE) or mlterm that had implemented a partial support for Unicode bidi and shaping.

Currently, there is no correct way to implement those Unicode algorithms for the consoles. (Those implementions in konsole & mlterm are kind of workaround)

Here is a portion from a Behdad Esfahbod's post, he is the main developer of HarfBuzz (hb for short, an OpenType text shaping engine)

Terminal emulators with support for complex text are very weird hybrids. On the one hand terminal emulators have to lay text out in a predefined grid in a predefined way, which is in conflict with many aspects and requirements of complex text, on the other hand users demand support for complex text in their terminals. It gets uglier when you think about bidirectional text, say, inside a console text editor. Nonetheless, it is fair to say that such hybrids do not put any new demands on the shaping engine. gnome-terminal currently has no support for complex text other than combining marks. Konsole has bidirectional text support. Apple's Terminal App has at least bidi support as well as Arabic shaping support, not sure about other complex text. Update (Jan 18, 2010): The terminal mode (term and ansi-term) in recent versions of Emacs can render complex text, including Indic.

Source: State of Text Rendering

Here is the corresponding bug report in Launchpad bug #263822: RTL (right to left) support in terminal (BiDi).

user.dz
  • 49,176
2

There are three more solutions:

  1. use tabby (an electron app - web based):

enter image description here

  1. use Konsole (the default emulator for KDE distros):

    sudo apt install konsole

enter image description here

  1. use butterfly (a pure web based terminal):

enter image description here

thank you @singrium

Flimm
  • 44,031