Initial RTL support

Hello RTL users!

Bear lacked a proper support for RTL languages and we wanted to change that! This is an initial implementation and as we’re not expert on RTL we need as much feedback as possible.

Please let us know how does it feel, if there are problems or enhancements we can make to make it pleasant for you.



Hey! Really glad this is finally coming!

Still testing, but here is an initial issue:
When starting a new line, the cursor is on the left side (should be right). However, when you start typing, the cursor and text do move back the the right as expected.

When you start a heading, the ##[space] also stays on the left until you start typing in Hebrew. I would expect that if the typing language is RTL, the cursor would move to the right even if there is still no actual RTL character.

Will keep on testing… thanks!


Thank you for giving us feedback on RTL, we crave for it :smiley:

In your experience the cursor location should match the current typing language even if the current interface is LTR (from your screenshots)?

My problem is how to handle mixed languages documents, and I’m struggling to understand what’s the expected behaviour.


Correct. This is how Apple Mail / Notes / iMessage behave even when the interface is in English.

I would suggest setting the direction of the new line by the currently selected typing language. So If I start a new line and my keyboard language is set to an RTL language (in my case, Hebrew), set cursor to Right. Otherwise, set to left.

Other then that, I’ve tested sentences with a combination of Hebrew and English and dates. Most editors fail with that - Panda has been ordering the direction very nicely so far. Im super excited for this to get to Bear.

I agree with what jondror said.

Another thing you need to fix is the tables within RTL context.
First you give the user an option to select the writing direction of table, then if RTL is selected you reverse the order of columns and change the text alignment to be RTL.

Otherwise you’ve done an excellent job in support RTL. Thanks!

Ah! Many thanks for this insight, it’s given us something to think about in this regard. Also, thank you for the kind words! Hoping you’ve a lovely day :slightly_smiling_face:


I’m really glad Bear is adding RTL support, I’ve been waiting for it since Bear first came out.

Here’s my initial feedback:

  • New line direction: Pressing Return starts the line with the indicator appearing on the opposite direction (LTR), until I start typing then it converts to the correct direction (RTL). It should start with the indicator blinking on the current typing language direction, which is RTL in this case.

  • New Table: Adding a new table while writing in RTL/Arabic inserts the table on the LTR direction, and when I write inside the table the Columns Alignment is set to (Left) by default. When writing in RTL/Arabic a new Table should appear on the right side with the default Columns Alignment set to Right.

I’ll report new feedback as I continue testing Panda.


Thank you for implementing basic RTL features! I’ve been waiting so long for this!

There is something that should be changed, though: RTL support is not only needed for documents that are in a RTL language like Hebrew or Arabic, where the whole document is starting at the right margin, but also for LTR languages like English or German.

If the main language of a document is LTR, the cursor has to stay on the left margin, even if the first word of a paragraph is a RTL word.

There is an easy solution to this (I’ve been through this with a few other developers before): Let the user define if the main direction is LTR or RTL (per document would be best).

Thank you in advance!

Hi there,

we’ve just pushed an update for the RTL cursor (you can update using the menu “Panda -> Check for updates”).

Could you kindly check if the behaviour is correct now?

Thank you!

@matteo - Cursor alignment is much better!

Did notice there is an issue with tables:

Issue 1: Focus moves to the wrong side on table creation

  • Set language to RTL
  • Create Table
  • Table created on right (correct)
  • Curser moves to top left cell (incorrect). Should be top right cell

Issue 2: Cell text alignment

  • Set language to RTL
  • Create Table
  • Table created on right (correct)
  • Typing within a cell is still aligned to the left (incorrect). Should be aligned to the right

1 Like

Yeah, RTL for tables is still on my TODO list, I need to flip the whole UI and do some adjustments.

Again, I really appreciate the time you’re taking to help us with this :slight_smile:

1 Like

The new version did change nothing about RTL text in LTR documents, right? Even the writing direction commands in the context menu don’t work …

Please help us with that, so that one can use Bear for notes in the scientific community, too. Thank you in advance.

Correct, that is still to be done.

There is no way to set a document LTR or RTL as that information has no place to be stored, so I’m still trying to understand how correctly implement this. There are some unicode characters that can be embedded in the text to force the writing direction, I’m studying how to use those to achieve what you want.


Some developers achieve this by implementing a checkbox in the preferences to let the user decide how the documents are to be displayed generally, LTR (for the most users) or RTL (for all users with a RTL language as their first language). That would be a solution for all documents only, though. Then the Apple NSTextField context menu for the writing direction could be a solution for those documents that need different handling.

Hi Matteo,

Really happy to see that rtl support is on the work. I tested it and works fine, apart from the issue on the tables that was highlighted by another tester.

The only opportunity I see for now is on the choice of font for Arabic. The font used now for Arabic is rather basic and doesn’t look great and consistent with the elegant style of Bear. You may want to explore fonts like this one:خير+الكلام+ما+قل+و+دل&preview.text_type=custom

Thank you.

1 Like