Thai Keyboard Layouts

Updated 14-Sep-2023

This article is about Thai keyboard layouts for desktop and laptop computers, which have a hardware and software component. This does not deal with virtual or soft keyboards or mobile device layouts.

Thai Keyboard Layouts are generally something Thai speakers and Thai language learners have little problem with because of a de facto standard, although there are three specific standards, in practice (along with ISO and ANSI layouts).

Though simple and straightforward, the English Wikipedia regarding Thai keyboard layouts gets things wrong, as is usually the case. The images are incomplete, or mislabeled, or missing relevant information. Wikipedia has been descending into a pit of ignorance for some time now.

ANSI Kedmanee as Standard and Predominant

When dealing with Thai Keyboard Layouts there are a few considerations. In general, this is mostly a non-issue since there is a predominant layout generally available, including in keyboard sticker format: The Kedmanee which was turned into a Thai Technical Standard (TIS 820-2531). ANSI is also the predominant physical keyboard layout (more on ANSI vs. ISO below).

1995 Update to Thai Keyboard Standard - TIS 820-2538

There is a 1995 update to the Thai standard TIS 820-2538, which adds support for Anghankhu (๚), Fongman (๏), Khomut (๛), and Yamakkan (อ๎), which are otherwise missing. These are Pali and literary characters not well known or in use outside of those niches. Note also that the Baht sign (฿) changes its location in the TIS 820-2538 update, and Anghankhu (๚) requires AltGr to access. As well, the percent (%), underscore (_), and plus (+) signs are removed from the Thai keyboard (though the plus sign is available on the separate number pad on 101/102/104/105 keyboards).

While this may be of interest to those (few) regularly typing Pali and Literary characters, for physical keyboards this layout standard is virtually impossible to find, though the software to support it is available in most operating systems (excluding, currently, ChromeOS).

Apple Keyboards and Missing Thai Characters

The ambiguity of which standard is in use as a keyboard map option was present in Apple keyboards for a number of years, in terms of there being a lack of characters on the keys where there were changes made between the standard versions. That is, instead of printing one or both character that would be represented, Apple decided to leave those keyboard character locations blank.

ISO vs. ANSI Keyboard Layout for Thai

While it is very difficult to find any examples of ISO keyboards with Thai language support, for those used to an ISO keyboard layout, that option should be simple to use/adapt as for Thai the extra ISO key has the extinct ฃ and ฅ keys, and the US English keys are backslash (\) and pipe (|). Unfortunately for programmers, those keys are rather important, and for the average typist, a smaller left shift key, and narrower enter key on the home row does impose some ergonomic penalty.

Note that there are a few examples of ISO layout for Thai when looking for laptop keyboard covers. Note the same missing characters as found on earlier Apple keyboards, in terms of support (through lack of contradiction) for both the TIS 820-2531 and TIS 820-2538 standards.

Strange Intermediate Keyboard (Not ISO, Not ANSI)

Special Note: Beware of narrow/tall Enter Key layout

There are several cheap Thai/English keyboards found in various shopping malls that are effectively ANSI in terms of the number of keys and the left side of the keyboard (including left shift width) but have a double-height/narrow enter key, and move the \|ฃฅ key from above the Enter key, to the left of the Enter key. For those used to ANSI keyboards and the more ergonomic (easier-to-reach) Enter key, this keyboard layout results in more errors (both the Enter key which is very frequently used, as well as the pipe and backslash keys). For Thai, the and are extinct characters and so are only used when discussing the Thai alphabet (which still has them), and not the spelling of any words in use.

Pattachote Thai Keyboard Layout

Pattachote or PattaChote is one option for keyboard layout that is generally discussed but essentially irrelevant. While the keyboard layout is available in most operating systems, it is virtually invisible in terms of actual physical keyboard availability. If one is ever inclined to try out Pattachote, then it would be necessary to design and print one's own keycaps.

Just as with Dvorak vs. QWERTY, it is impossible to find actual empirical studies which show evidence of the superiority of typing speed and error rate improvements when comparing Kedmanee and Pattachote. Theoretically there is more equal use of fingers and less heavy reliance on the right pinky finger than with Kedmanee. Of course those who find Kedmanee tiring or painful might indeed benefit from a change of layout.

Predominance of ANSI and Kedmanee

For simplicity's sake and for maximum compatibility in Thailand (compatible with the vast majority of keyboards available and in use, as well as keyboard sticker sets), the choice should be a 101/104 key ANSI keyboard using the US English and Thai (aka TIS 820-2531) layouts. The 101/104 keyboard has a separate keypad which makes accessing the Roman numbers directly (much easier than switching languages).

Support for European Languages and Thai

If one is designing a dual-keyboard layout, for support of most European languages (using non-ASCII characters), it is possible to use the English (US, international AltGr Unicode combining) keyboard option. This enables the AltGr (right alt key) to act as an option to access more characters. The disadvantage is that it does not map naturally to any european keyboard layout, so for touch-typing it needs to be learned just as any keyboard layout. For those who must regularly type in two or more European languages which a single keyboard layout cannot support, this is a compromise layout option.

Note: it could be worse:

Problem with Dual Language Mechanical Keyboards

There is a significant problem if someone wants Thai + English mechanical keyboards in Thailand (those with Cherry MX keys or similar). These keyboards are either designed with a backlight, and the dual language keycaps are either side printed with Thai (where light does not shine), or the light shines only through the English script on the keys, or both English and Thai do not allow illumination. For those non-illuminated keyboards, the same problem is present: the Thai script is too small and faint to read in all but the brightest lights. The author has ordered and returned three different keyboards (including two Ducky keyboards) and toured the keyboard offerings at several malls in Chiang Mai looking for something that would be acceptable, without any luck.

The only option is to design and print ones' own custom keycaps. Given the discussion above in terms of seeking an ANSI 104-key custom mechanical keyboard, or an ANSI 87-key custom mechanical keyboard, WASD keyboards seems an obvious choice. Another option is the Keychron K2 keyboard (but without custom/Thai keys) available on Kickstarter.

Keyboard Migration

For those who use a keyboard frequently, and are used to laptop layouts which do not have independent number pads, then it is best to get a keyboard that resembles closely what one already uses and will continue to use (i.e., laptops and smaller keyboard layouts). Most likely that is a 61 or 87 key ANSI layout keyboard.

Wireless Keyboard / Mouse Combo

For those who do not need the performance of a mechanical keyboard, Logitech has a useful wireless (not bluetooth) 79-key keyboard / mouse combo. The advantages of wireless (USB connector with 2.4ghz) include: the keyboard can be sensed by a computer prior to loading bluetooth drivers, has a much lower battery power consumption, and drives both the keyboard and mouse from a single USB connector. Lazada generally has some of these Logitech MK240 combo sets (previously the Logitech K240). Prices range between 500 and 1,000 THB. Both the wireless keyboard and the wireless mouse take two AAA batteries (each).

Switch Between Keyboard Layouts (e.g, Thai, English)

Each operating system has its own keystroke or keystroke combination (shortcut) to switch between installed keyboard layouts. There is usually also an option to use a mouse to click on a flag or language initials, and manually change them that way. In some cases, there are several choices in keystrokes which can be set, in others a standard keystroke predominates. Thais have traditionally used the backtick key (using Windows) for switching between languages, though the backtick is used in various programming syntax and may not be appropriate. Most operating systems have somewhat converged on a standard these days, which is the Win/CMD + Space keystroke. For ChromeOS, it is Ctrl + Shift + Space.

Switch Keyboard Layouts in Mac OSX

The standard option is to use CMD + Space, though it is possible to change this to the Capslock via System Preferences > Keyboard > Input Sources.

Switch Between Keyboard Layouts in Windows

The default keyboard layout switching keystroke is Alt + Shift in Windows 7, and changed to Win + Space (effectively the same as OSX) in Windows 8 and Windows 10.

Switch Keyboard Layouts in ChromeOS / Chromebooks

In ChromeOS, the default keystroke to switch between keyboard layouts is Ctrl + Shift + Space (as there is no meta/OS key). There does not appear to be a setting to change this keystroke/shortcut.

While ChromeOS does have some interesting innovation in terms of the keyboard, notably the function keys, and eplacing the capslock with a search key is moderately interesting. However, on some devices the extra large Ctrl and Alt keys on the left side of the keyboard, with single key width Ctrl and Alt on the right side makes little sense. Removing the OS key is a mistake as it renders the OS key useless on all external keyboards, as well as the keyboard layout switch keystroke / shortcut incompatible with all other operating systems. The capslock should have stayed, as well as the OS key. The OS key could have been the search key in ChromeOS. In some future version of Chromebooks, hopefully that might still be the case, though Google tends to stick with its errors. Granted, some of the keyboard hardware implementation issues are the fault of vendors rather than the OS designers, however there are hardware compliance guidelines which OS designers produce, which are the root cause of the issues which result.

Switch Keyboard Layouts in Linux (Cinnamon, Gnome, Mate, XFCE, etc.)

With Linux the keystroke defaults and modification setting options to change keyboards depends on the windows manager. This is different when using Gnome, as well as Cinnamon, XFCE, and Mate, etc.

For Cinnamon 3.0, it is straightforward to set the keystroke/shortcut to change keyboard layouts via the Settings > Keyboard > Layouts > Options, for example using Win + Space and setting the Win key to default behavior.

Additional Resources