How to Type Thai on Windows, macOS, and Mobile

September 2, 202616 min readsetupbeginner

Before you can use Thai in Word, Chrome, Line, or a government form, the operating system has to offer a Thai input source. Every major desktop and phone OS ships with one; you are not installing a third-party IME for ordinary Kedmanee. What you have to do is add Thai once, learn the switch shortcut, and confirm that the layout is Kedmanee rather than Pattachote. Those three steps are the whole setup. The rest of this guide is the named dialogs, the exact keys that prove which layout you got, and the failure modes that make people think Thai “isn’t working.”

Two facts are worth holding apart. First, ThaiTyper does not need any of this to run a drill: it maps KeyboardEvent.code through the same CHARS.kedmanee table the on-screen board uses, so the physical D key produces ก even when Windows is still on ENG. Second, the moment you want to type Thai into any other app, the OS layout has to match the layout you practised. If you practised Kedmanee in the browser and then enabled Thai (Pattachote) in Settings, your D key will produce ง and every home-row habit will feel like a broken keyboard.

Windows

On Windows 11, open Settings, then Time & language, then Language & region. Under Preferred languages, choose Add a language, search for Thai (ไทย), and add it. Windows installs the language pack and, unless you pick otherwise, attaches the Kedmanee keyboard. A two-letter indicator — ENG or ไทย — appears on the taskbar next to the clock. Click it to see the list of input methods; you want Thai and, inside Thai’s options if both are present, the keyboard named Thai, not Thai Pattachote. Windows 10 uses Settings → Time & Language → Language → Add a language, then the same Options link to inspect keyboards.

The fast switch is Windows key + Space, which cycles every installed input method. Alt + Shift still works if you grew up on it, but it is easier to press by accident and it does not show a picker. If Win+Space does nothing, open Settings → Time & language → Typing → Advanced keyboard settings and check that the input-language hot keys are not turned off. Do not use Caps Lock as a language switch: Caps Lock is how you get the Shift layer of Kedmanee mixed with an accidental case change on the English side, and it trains a pinky habit that fights the opposite-hand Shift rule you need for โ (Shift+F) and ๊ (Shift+U).

  • Add Thai from Language & region; do not download a random “Thai keyboard” app from the Store for this.
  • Open the language’s Options (three dots → Language options) and confirm the keyboard list contains Thai. If you see Thai Pattachote and you did not mean to, remove it.
  • Win+Space is the daily switch. The taskbar ไทย / ENG indicator is the status light; glance at it before a password or a URL.
  • To prove Kedmanee: with ไทย active, tap D with no Shift. You want ก. F should be ด, J should be ่, G should be เ. If D is ง, you are on Pattachote.

Windows will also offer “Language pack” features — handwriting, speech, and display language — when you add ไทย. None of those are required for typing. You can leave the Windows UI in English and still have a working Thai keyboard. What you must not leave in the list is a second Thai keyboard. After adding Thai, open the taskbar indicator and count the entries: ENG, ไทย is correct; ENG, ไทย, Thai Pattachote is how Win+Space silently lands on the wrong home row two days later.

macOS

On current macOS (System Settings, not the older System Preferences name), go to Keyboard, then Text Input, then Input Sources, and click Edit. Press the + button, choose Thai, and add it. The default Thai source is Kedmanee. If you also see Thai - Pattachote in the list, add only the plain Thai source unless you are deliberately learning Pattachote. Turn on “Show Input menu in menu bar” so a flag or ไทย icon sits near the clock; that menu is also where Keyboard Viewer lives, which is useful the first week when you want to confirm that J is ่ without looking down at blank keycaps.

The usual switch is Control + Space, which cycles input sources. On MacBooks with a Globe key, that key can also cycle layouts — but Globe + Space is Spotlight’s neighbour, and Control + Space is the same chord many people have bound to Spotlight or to a snippet tool. Open Keyboard → Keyboard Shortcuts → Input Sources and look at the actual binding before you train it into a reflex. If the shortcut does nothing, another app has stolen it. Do not enable “Use Caps Lock to switch to and from ABC” if you are learning touch-typing: you need Caps Lock off and both Shift keys free for โ, ู, ๊, ๋, and the Thai digits on the number-row Shift layer.

A macOS-specific snag: adding Thai as a language in Language & Region (for display language) is not the same as adding a Thai input source. You can keep the Mac’s menus in English and still type Thai. The input source is the Keyboard panel, not the display-language list. If you type in a fresh Notes window, switch to Thai, and D still produces d, the input source never activated — check the menu bar, not the Language & Region list.

  • Keyboard → Text Input → Input Sources → Edit → + → Thai. Plain Thai is Kedmanee.
  • Show Input menu in menu bar. Use Keyboard Viewer from that menu to confirm J = ่, D = ก.
  • Keyboard Shortcuts → Input Sources: note the real chord. If Control+Space is Spotlight, rebind one of them before you train the wrong reflex.
  • Leave Caps Lock as Caps Lock. You need both Shift keys for โ, ๊, ๋, ู, and the Thai digits.

iPhone and iPad

On iPhone and iPad, open Settings → General → Keyboard → Keyboards → Add New Keyboard, then pick Thai. While the software keyboard is up, tap the globe key (or press and hold it) to switch to Thai. The on-screen Thai keyboard is not a touch-typing trainer — thumbs on glass do not use the F and J bumps — but it is the same character set, and the hardware-keyboard layout for an iPad with a Magic Keyboard or a paired Bluetooth board is Kedmanee unless you change it. That hardware layout is the one that must match ThaiTyper’s default.

For a hardware keyboard on iPadOS, go to Settings → General → Keyboard → Hardware Keyboard. When a board is connected, this screen lists the layout used for each language. Set Thai to Thai (Kedmanee), not Thai (Pattachote). The globe key still switches languages; some keyboards also send Globe as a key, which iPadOS treats as an input switch. If D produces ง on the iPad keyboard but ก in ThaiTyper in Safari, you have exactly the mismatch this guide exists to catch: the browser trainer is mapping physical codes to Kedmanee, while iPadOS is feeding Pattachote into every other text field.

Software-keyboard Thai on a phone is a different skill from touch-typing. Thumbs do not rest on ด and ่, and Gboard or the iOS Thai board will suggest words. Use the phone to send messages; use a hardware board plus ThaiTyper to train the Kedmanee map. Mixing the two in one session — ten minutes of thumb-Thai then a Skills drill — is fine. Mixing them as if they were the same muscle memory is how people “forget” where เ lives on G when they sit at a laptop.

Android

On stock Android, open Settings → System → Languages & input → On-screen keyboard, then tap your IME (Gboard is the common one) → Languages → Add keyboard, and add Thai. Gboard will offer Thai; some versions also list a layout variant. You want the standard Thai layout, which is Kedmanee. Samsung devices hide the same idea under Settings → General management → Samsung Keyboard settings → Languages and types. Switch with the globe key on the software keyboard, or by sliding on the space bar if that Gboard preference is on.

A physical keyboard attached to an Android tablet follows the IME’s hardware-layout setting, not the phone’s display language. In Gboard, Preferences has “Show language switch key”; turn it on so you are not hunting a hidden globe. Physical-keyboard layout, if the menu exists, should be Thai. The same D-key test applies: Kedmanee D is ก, Pattachote D is ง. Android is also where people accidentally install a third-party “Thai keyboard” that remaps keys to a non-standard scheme; uninstall it if the characters under F J K no longer match ด ่ า.

  • Gboard: Languages → Add keyboard → Thai. Globe or space-bar slide to switch.
  • Samsung Keyboard: Languages and types → add ไทย. Confirm the layout is not a vendor-specific variant.
  • Hardware board: find the physical/hardware layout control in the IME, set it to Thai, then run the D = ก test in Keep or Messages, not only in the browser trainer.
  • If a third-party Thai IME is installed, disable it. Kedmanee is already in the system; a second IME is how mystery layouts appear.

Switching without breaking your flow

The shortcut matters more than the Settings path, because you will use the shortcut hundreds of times and the Settings path once. If switching takes a menu and three taps, you will stay in English and type Thai in a transliteration, or stay in Thai and type a URL as ๆไะ (Q W E on Kedmanee) instead of qwe. Learn one chord per machine and refuse to use the mouse for language. On Windows that chord is Win+Space; on macOS, Control+Space once you have confirmed it is not bound to Spotlight; on ChromeOS it is Ctrl+Shift+Space; on phones it is the globe.

Bilingual typing has a rhythm: switch at the boundary, type the Thai unit, switch back. The unit might be a Line message, a cell in a spreadsheet, or a comment. Glance at the taskbar or menu-bar indicator before you type a password, a Git branch name, or an email address — those are English-input zones, and a stray ่ (J) or ๆ (Q) is a failed login, not a typo you can ignore. The same Win+Space that feels convenient is how people lock themselves out of a form that does not accept Thai characters.

Kedmanee makes the “wrong language” failure loud if you know the keys. Q W E in Thai is ๆไะ, not a random symbol salad: ๆ is mai yamok, ไ is the pre-posed vowel on W, ะ is sara a on T’s neighbour E. If a password field suddenly contains ๆ, you did not fat-finger a Latin letter — you typed while ไทย was active. Switch, select the whole field, and retype in ENG. Do not try to Backspace “the Thai out of” a password; many fields hide the glyphs and you cannot see whether ่ is still in there.

  1. Look at the indicator (ENG / ไทย, or the menu-bar flag) before the first character of a field.
  2. Switch with the platform chord, not by clicking through a menu.
  3. Type the whole Thai unit — a message, a sentence, a cell — without editing neighbouring English.
  4. Switch back before the next URL, password, path, or identifier.
  5. If a character looks wrong, stop and run the D-key test rather than backspacing blindly; you may be on the other layout.

Confirm you are on Kedmanee

Some systems list both a plain “Thai” option and a “Thai (Pattachote)” one. The plain Thai option is Kedmanee — the layout schools teach, the one on almost every shared machine, and the one ThaiTyper defaults to. Pattachote is a real, standardised alternative whose home row is ้ ท ง ก ั ี า น เ ไ; it is not a synonym for Thai. If you add both, Win+Space or Control+Space will cycle through English, Kedmanee, and Pattachote, and it is easy to land on the wrong Thai. Remove the layout you are not learning.

Do not trust the name in the menu if your fingers disagree. Use a four-key test in Notepad, TextEdit, or Notes — not in ThaiTyper, which will map physical keys to Kedmanee regardless of the OS. With the OS set to Thai and Shift up: D must be ก, F must be ด, J must be ่, G must be เ. On Pattachote those same physical keys are ง, ก, า, and ั. If three of the four fail, you are not on Kedmanee. If only one fails, you may have a custom remap or a leftover third-party IME; disable extra IMEs and re-add the system Thai keyboard.

A second, quieter test: type เ then ก. You should see เก, one syllable, vowel to the left of the consonant. If you see กเ, the input source is not assembling Thai clusters — you may be in a font or a field that does not accept Thai, or you typed the consonant first. Type Shift+F with the right Shift held: you want โ. If you get ด, Shift never engaged. If you get a Latin F, you are not in Thai at all.

When the keys do not match the trainer

The most common “Thai is broken” report is a mismatch between ThaiTyper and every other window. ThaiTyper reads physical key codes and paints Kedmanee (or Pattachote, if you flip the layout switch in the app). The OS types whatever input source is active. So you can pass a home-row drill in the browser — D → ก — and then open Google Docs and type ง on the same key. That is not a bug in either program. Fix it by setting the OS source to Thai (Kedmanee) and, in ThaiTyper, leaving the layout on Kedmanee. The two must name the same layout.

Other named failures. Caps Lock on, on a system that uses Caps Lock as a language toggle: you think you are in Thai and you are in English, or the reverse. A leftover “United States - International” dead-key IME: apostrophes and quoted vowels swallow the next key, which feels like Thai combining marks misbehaving. An old Karabiner, AutoHotkey, or Microsoft PowerToys remap from a previous experiment: Q no longer produces ๆ. Remote desktop: the client and the host each have an input source, and the one you switched is the wrong one. In all of these, the D-key test in a local plain-text file tells you what the OS is actually emitting.

  • Trainer says ก on D, Docs types ง: OS is on Pattachote. Change the OS keyboard, not the website.
  • Both type Latin d: OS never switched. Win+Space / Control+Space / globe, then look at the indicator.
  • Thai appears, but โ and ๊ are impossible: Shift is being eaten by Caps Lock or by a sticky-keys chord. Turn both off.
  • Only remote-desktop windows are wrong: switch the host input source, or set the RDP client to “use remote keyboard layout.”

Practise in the browser first

You do not need a system Thai keyboard to practise on ThaiTyper. The trainer’s producedChar path looks up the physical code in CHARS.kedmanee (or CHARS.pattachote if you selected that board), so a US-English OS layout still sends KeyD and the app still commits ก. That is why you can start the home-row skill on a borrowed laptop before you have permission to add a language. What you cannot do is paste that habit into Notepad until the OS source matches. Setup is what exports the skill off the website.

The practical order is therefore: start drills in the browser today; add Thai to the OS the same day if you can, using the steps above; run the four-key test in a local editor; then type one real message — a Line reply, a mail, a note — with the switch shortcut, not with copy-paste out of the trainer. Copy-paste skips the switch reflex, and the switch reflex is the other half of being able to type Thai on a machine you do not own. Once Win+Space or Control+Space is in the fingers, you can forget Settings until the next computer.

A borrowed work laptop is the real exam. You may not be allowed to install software, but you can usually add a Windows language or a macOS input source without admin rights. Add Thai, run D = ก in Notepad, send one Thai sentence, then leave the source there. If the organisation blocks language packs, you can still practise in ThaiTyper on physical keys and paste is not a workaround — it is a delay. Ask IT to add Thai (Kedmanee) once; Pattachote is the option that will waste the ticket.

One machine, one Thai layout

If you use a phone, a laptop, and a work PC, give them all the same Thai layout. Kedmanee on all three is the default and the path of least resistance. Mixing Kedmanee on the laptop with Pattachote on the phone means the home bumps lie: F is ด on one device and ก on the other. Mixing “Thai” and “Thai Pattachote” on the same Windows language, then cycling with Win+Space, produces the same confusion without even changing devices. Pick Kedmanee, delete the other Thai keyboard, and only then practise the switch.

A phone that ships with Thai already enabled is still worth checking. Some vendors pre-install Pattachote, or a “Thai (Kedmanee)” software board plus a Pattachote hardware layout. Run D F J G once on each device after an OS update; updates have been known to re-add a second Thai keyboard. The four-key test takes ten seconds and saves a week of wondering why เ moved.

  1. Add Thai on each device using that device’s Settings path above.
  2. Run D F J G: ก ด ่ เ. If not, you added the wrong keyboard.
  3. Remove Thai Pattachote if you are not studying it.
  4. Bind and memorise one switch shortcut per device.
  5. Type a real sentence in a non-browser app before you call setup finished.

Related guides