Short answer: Add the Arabic 101 keyboard in your system settings and switch to it — Alt + Shift or Win + Space on Windows, Control + Space on a Mac. One key types one letter, exactly like English. The vowel marks (harakat) live on the Shift layer.
Arabic is easier to type than people expect and harder to lay out than people expect. Input itself is a layout swap, like Russian — no conversion step, no candidate window, nothing like the Chinese IME. What catches everyone out is right-to-left text: punctuation landing at the wrong end of a sentence, numbers reordering themselves, and web pages that fall apart the moment Arabic goes in. Both halves are covered below. If you write in several languages, start at the foreign-language typing hub.
Need marks outside the Arabic set? The full copy-and-paste symbol keyboard has every currency sign, bracket and punctuation mark on one page.
Two things to know before you start
Letters change shape automatically. Arabic letters look different at the start, middle and end of a word — ع becomes عـ, ـعـ, ـع. You never type those forms. You type one letter and the font picks the right shape from context. If you’ve seen tables of “presentation forms” with code points in the U+FExx range, ignore them: they exist only for compatibility with old systems, and typing them directly produces text that won’t search, sort or copy correctly.
Harakat are optional. The short-vowel marks (َ ُ ِ) are omitted in ordinary writing — newspapers, websites, messages. They’re used in the Quran, in poetry, in children’s books and in teaching material. If you’re writing everyday Arabic, you can skip the whole Shift layer.
Windows
- Settings → Time & language → Language & region → Add a language → Arabic (pick your regional variant — the letters are identical, only the locale differs) → Install.
- Under Language options → Keyboards, confirm Arabic (101) is the one selected. This is the standard layout, printed on every physical Arabic keyboard sold.
- Switch with Alt + Shift or Windows key + Space. The tray shows ARA.
Arabic 102 exists too — a variant with an extra key, used mainly in North Africa. Unless your physical keyboard is labelled 102, install 101.
Mac
System Settings → Keyboard → Text Input → Edit → + → Arabic, then choose the variant:
- Arabic – PC — matches the Windows Arabic 101 layout. Pick this if you switch between machines, use a physical Arabic keyboard, or learned on Windows.
- Arabic — Apple’s own arrangement, which differs in punctuation placement.
- Arabic – AZERTY — for French-layout keyboards, common in the Maghreb.
Switch with Control + Space or the 🌐 globe key. Tick “Show Input menu in menu bar” so you can see which layout is live.
The Arabic 101 layout
The home row is ش س ي ب ل ا ت ن م ك — the ten most frequent letters, under your resting fingers, the same principle as ASDF/JKL.

Two things save you time on day one:
- لا has its own key (the B position). One keystroke produces both letters of the lam-alef ligature — you don’t type ل then ا.
- The hamza forms ء أ إ آ ئ ؤ sit on the Shift layer of their related keys, not scattered.
Harakat (the Shift layer)
Type the letter first, then hold Shift and press the mark’s key. It stacks onto the letter you just typed.
| Mark | Name | Key |
|---|---|---|
| َ | fatha | Shift + Q |
| ُ | damma | Shift + E |
| ِ | kasra | Shift + A |
| ْ | sukun | Shift + X |
| ّ | shadda | Shift + ` (the ذ key) |
| ً ٌ ٍ | tanween | Shift + W / R / S |
For a doubled and vowelled consonant, the order is letter → shadda → vowel.
iPhone and Android
iPhone: Settings → General → Keyboard → Keyboards → Add New Keyboard → Arabic. Tap the 🌐 globe key to switch; the whole keyboard flips to RTL, including the layout of the keys.
Android (Gboard): Settings → Languages → Add keyboard → Arabic. Swipe the space bar to switch.
On both, harakat come from a long press — hold a letter and the marks appear in the popup. On iOS there’s also a dedicated tashkeel key beside the space bar on some layouts: hold and slide to pick a mark. Prediction is good in Arabic on both platforms, and swipe typing works.
Chromebook
Settings → Advanced → Languages and inputs → Inputs → Add input methods → Arabic. Switch with Ctrl + Shift + Space. ChromeOS handles RTL display correctly in the browser without any extra configuration.
Linux
Nothing to install — Arabic is a layout, not an engine, so unlike Chinese or Japanese there’s no package step:
- Settings → Keyboard → Input Sources → + → Arabic, then pick the variant (the default matches Arabic 101).
- Switch with Super + Space.
- If you need harakat often, the Compose key and the
aralayout’s third level both work; checksetxkbmap -layout ara -variant digitsif you want Arabic-Indic numerals from the layout itself.
Right-to-left: the part that actually causes trouble
This is where Arabic differs from every other language on this site. Text direction is a property of the characters, resolved by the Unicode bidirectional algorithm — and it mostly works, until it doesn’t.
Numbers inside Arabic run left to right. In ١٢٣ or 123 inside an Arabic sentence, the digits themselves read left-to-right while the sentence reads right-to-left. That’s correct behaviour, not a bug — Arabic is a mixed-direction script by design.
Punctuation at a boundary goes to the wrong end. Type an Arabic sentence in a left-to-right paragraph and the final . or ? often jumps to the left of the line. The algorithm can’t tell which direction a neutral character belongs to, so it inherits from context — and the context is wrong.
The fix is an invisible marker:
| Character | Name | Use |
|---|---|---|
| U+200F | Right-to-left mark (RLM) | Force a neutral character to behave as RTL |
| U+200E | Left-to-right mark (LRM) | Force a neutral character to behave as LTR |
| U+061C | Arabic letter mark (ALM) | Arabic-specific version, for use around numbers |
Insert an RLM after a trailing punctuation mark and it stays put. These are zero-width and invisible — see invisible characters for how to handle them without losing track of what’s in your text.
In documents, the simpler fix is paragraph direction: in Word, press Ctrl + Right Shift for an RTL paragraph and Ctrl + Left Shift for LTR, or use the direction buttons on the Home tab. Google Docs has the same under File → Language settings once RTL is enabled.
Arabic-Indic numerals
Arabic has two digit sets, and which one appears is not controlled by your keyboard:
- Arabic-Indic ٠١٢٣٤٥٦٧٨٩ (U+0660–U+0669) — used in Egypt and the Gulf.
- Western 0123456789 — used across the Maghreb, and increasingly everywhere online.
- Eastern Arabic-Indic ۰۱۲۳ (U+06F0–) — Persian and Urdu, visually different for 4, 5 and 6.
Your app and region settings decide. If you get the wrong ones: Settings → Time & language → Language & region → Administrative language settings on Windows, or in Word, File → Options → Advanced → Numeral, where “Context” matches the surrounding text, and Arabic/Hindi force one set.
Arabic punctuation
Several marks are mirrored or Arabic-specific — using the ASCII ones reads as visibly foreign.
| Mark | Name | Note | Unicode | HTML |
|---|---|---|---|---|
| ، | Arabic comma | Sits high, mirrored | U+060C | ، |
| ؛ | Arabic semicolon | Mirrored | U+061B | ؛ |
| ؟ | Arabic question mark | Mirrored | U+061F | ؟ |
| ٪ | Arabic percent sign | U+066A | ٪ | |
| ٫ ٬ | decimal / thousands separator | Used with Arabic-Indic digits | U+066B / U+066C | ٫ / ٬ |
| ـ | tatweel (kashida) | Stretches a word for justification — not an underscore | U+0640 | ـ |
| ء أ إ آ ئ | hamza forms | Separate letters, not accents | U+0621, U+0623, U+0625, U+0622, U+0626 | ء … |
The full stop is the ordinary . — Arabic doesn’t have a separate one.
Arabizi, if you’re not ready for the layout
Millions of people write Arabic in Latin letters with digits standing in for sounds English lacks: 3 = ع, 7 = ح, 5 or kh = خ, 2 = ء, 9 = ق. sa7raa = صحراء.
It’s genuinely used in messaging, and several phonetic keyboards and web tools convert it to Arabic script as you type. It’s a reasonable bridge while you learn Arabic 101, but it isn’t standard written Arabic — don’t use it in anything formal.
Arabic in HTML and CSS
This is where most sites break. UTF-8 isn’t enough; direction has to be declared.
html
<html lang="ar" dir="rtl">
<p dir="rtl">مرحبا بالعالم</p>
<p dir="auto">…user-generated text of unknown direction…</p>
dir="rtl" sets the base direction. dir="auto" lets the browser infer it from the first strong character — the right choice for user-generated content, comments and search results, where you don’t know the language in advance.
In CSS, replace directional properties with logical ones, and the same stylesheet works for both directions:
css
.card {
margin-inline-start: 1rem; /* not margin-left */
padding-inline-end: .5rem; /* not padding-right */
border-inline-start: 2px solid;
text-align: start; /* not left */
}
For a mixed-direction snippet inside a paragraph, use isolation rather than an override:
css
.bidi-isolate { unicode-bidi: isolate; }
unicode-bidi: isolate keeps the snippet from disturbing the direction of the text around it. Avoid bidi-override — it forces visual order and produces text that copies out scrambled.
Troubleshooting
| Problem | Fix |
|---|---|
| My full stop jumps to the wrong end of the line | Bidi resolution. Set the paragraph direction (Ctrl + Right Shift in Word) or insert an RLM (U+200F) after the mark |
| Letters appear disconnected | The font lacks proper Arabic shaping. Switch to a font with real Arabic support — see symbols showing as boxes |
| I get 123 but want ٠١٢٣ | Region and app setting, not the keyboard. Word: File → Options → Advanced → Numeral |
| Harakat won’t appear | Type the letter first, then Shift + the mark’s key. On a phone, long-press the letter |
| Text is right-to-left but my layout isn’t | Add dir="rtl" on the container and switch CSS to logical properties |
| Copied Arabic text pastes scrambled | Something used unicode-bidi: bidi-override. Use isolate instead |
| لا takes two keystrokes | It shouldn’t — Arabic 101 has a dedicated lam-alef key at the B position |
| An underscore-looking line inside words | That’s a tatweel (ـ), used to stretch words. Delete it if it wasn’t intended |
Which method should you use?
| If you… | Do this |
|---|---|
| Need one mark right now | Copy it from the grid above |
| Are learning Arabic | Install Arabic 101 and learn the home row before the Shift layer |
| Switch between Mac and PC | On the Mac, choose Arabic – PC so the layouts match |
| Write religious or teaching text | Learn the harakat Shift layer — letter, then shadda, then vowel |
| Chat casually and can’t type yet | Arabizi as a bridge, not for formal writing |
| Build websites with Arabic | dir="rtl", dir="auto" for user text, and CSS logical properties |
| Keep losing punctuation to the wrong side | Set paragraph direction, or insert an RLM |
Writing other languages too? See how to type in Russian and Chinese, or the foreign-language typing hub for every guide.
Frequently asked questions
Do I need an Arabic keyboard to type in Arabic?
No. Every operating system includes the Arabic 101 layout for free, and you switch to it with a keyboard shortcut. The physical keys don’t change — only what they produce. Stickers or a printed layout help until you learn the positions.
How do I type harakat (vowel marks)?
On the Arabic 101 layout, type the letter first, then hold Shift and press the mark’s key: Shift + Q for fatha, Shift + E for damma, Shift + A for kasra, Shift + X for sukun and Shift + ` for shadda. On a phone, long-press the letter and pick the mark from the popup.
Why does my punctuation jump to the wrong end of the sentence?
Punctuation is direction-neutral, so the Unicode bidirectional algorithm decides where it belongs based on surrounding text — and in a mixed Arabic and English context it can guess wrong. Set the paragraph direction to right-to-left, or insert a right-to-left mark (U+200F) after the punctuation.
Do I have to type the different letter shapes?
No. Arabic letters connect and change shape depending on their position in a word, and the font does that automatically. You type one letter per key. The presentation forms in the U+FExx range exist only for legacy compatibility and should never be typed directly.
How do I get Arabic-Indic numerals ٠١٢٣ instead of 0123?
It’s controlled by your app and region settings rather than the keyboard. On Windows, change the number format in Language & region settings. In Microsoft Word, use File → Options → Advanced → Numeral, where Context follows the surrounding text and Arabic forces Arabic-Indic digits.
What is Arabizi?
It’s Arabic written in Latin letters with digits replacing sounds English doesn’t have — 3 for ع, 7 for ح, 2 for ء. It’s widely used in messaging and works as a bridge while you’re learning the Arabic keyboard, but it isn’t standard written Arabic and shouldn’t be used formally.
Written by Igor R. Tested on Windows 11, macOS, iOS, Android, ChromeOS and Linux. Last updated August 2026. Character code points follow the Unicode Standard.