ACP Keyboard v4.6.0

  1. Rationale
  2. Images
    1. ISO
    2. ANSI
  3. Key table
  4. Dead key table
  5. Code reference table
    1. Dead keys
    2. Unicode

Rationale

There are thousands of keyboard layouts around. Why make a new one? Simply: none of them worked for me. They either had too many symbols, not enough symbols, or the layout was wrong. BÉPO came the closest to having the main symbols I wanted, but I couldn’t get over the non-QWERTY layout; and the Canadian Multilingual Standard layout had the symbols I wanted, but they were spread across six levels (AltGr and Right Ctrl both act as level selectors).

So I made my own. There were a number of requirements for me:

  1. The most common English symbols I need should be available.
  2. No more than four levels (normal; Shift; AltGr; and Shift+AltGr).
  3. Keys should be grouped sensibly: the degree sign in °C is preceded by a narrow non-breaking space, so they should be on the same level.
  4. The main layout should be based on the US ANSI layout, but it should also support an ISO layout with one key extra.
  5. It should be able to be used without Administrative permissions. This led me to AutoHotKey on Windows, and a $HOME-based XKB layout on Linux.
  6. There should be support for French, German, and Spanish—as there are a number of loanwords from these languages into English—but this should not come at the cost of ease of use for English.
  7. The base layers (Layer 1 and Layer 2) should not be changed. AutoHotKey has an issue with Command Prompt in Remote Desktop sessions, so changing the base layers stops the keys from working. It also means there is no training period for this layout.

Images

ISO

ISO keyboard layout ` ~ ± 1 ! ! ¡ 2 @ ² © 3 # ³ £ 4 $ ¢ 5 % 6 ^ 7 & 8 * ° 9 ( ª 0 ) º - _ ÷ = + × Backspace Tab q Q à À w W é É e E ë Ë r R è È t T ® y Y û Û u U ü Ü i I ï Ï o O ö Ö p P § [ { ] } Caps Lock a A ä Ä s S ß d D ◌̈ f F ◌́ g G ◌̄ « h H » j J ◌̀ k K ◌̂ l L ô Ô ; : ; : ' " \ | Shift \ | ê Ê z Z æ Æ x X œ Œ c C ç Ç v V b B n N ñ Ñ m M μ Ω , < . > / ? ? ¿ Shift Ctrl Win Alt Space Space Narrow non-breaking space Non-breaking space AltGr Win Menu Ctrl Return

ANSI

ANSI keyboard layout ` ~ ± 1 ! ! ¡ 2 @ ² © 3 # ³ £ 4 $ ¢ 5 % 6 ^ 7 & 8 * ° 9 ( ª 0 ) º - _ ÷ = + × Backspace Tab q Q à À w W é É e E ë Ë r R è È t T ® y Y û Û u U ü Ü i I ï Ï o O ö Ö p P § [ { ] } \ | Caps Lock a A ä Ä s S ß d D ◌̈ f F ◌́ g G ◌̄ « h H » j J ◌̀ k K ◌̂ l L ô Ô ; : ; : ' " Return Shift z Z æ Æ x X œ Œ c C ç Ç v V b B n N ñ Ñ m M μ Ω , < . > / ? ? ¿ Shift Ctrl Win Alt Space Space Narrow non-breaking space Non-breaking space AltGr Win Menu Ctrl

Key table

Key US ACP
ISO XKB Win Level 1 Level 2 Level 3 Level 4
E00 TLDE SC029 U+0060 ` U+007E ~ U+2248 U+00B1 ±
E01 AE01 SC002 U+0031 1 U+0021 ! U+0021 ! U+00A1 ¡
E02 AE02 SC003 U+0032 2 U+0040 @ U+00B2 ² U+00A9 ©
E03 AE03 SC004 U+0033 3 U+0023 # U+00B3 ³ U+00A3 £
E04 AE04 SC005 U+0034 4 U+0024 $ U+00A2 ¢ U+2105
E05 AE05 SC006 U+0035 5 U+0025 % U+20AC U+2030
E06 AE06 SC007 U+0036 6 U+005E ^ U+221A U+2713
E07 AE07 SC008 U+0037 7 U+0026 & U+204A U+2717
E08 AE08 SC009 U+0038 8 U+002A * U+00B0 ° U+2022
E09 AE09 SC00A U+0039 9 U+0028 ( U+00AA ª
E10 AE10 SC00B U+0030 0 U+0029 ) U+00BA º
E11 AE11 SC00C U+002D - U+005F _ U+2212 U+00F7 ÷
E12 AE12 SC00D U+003D = U+002B + U+00D7 × U+2260
D01 AD01 SC010 U+0071 q U+0051 Q U+00E0 à U+00C0 À
D02 AD02 SC011 U+0077 w U+0057 W U+00E9 é U+00C9 É
D03 AD03 SC012 U+0065 e U+0045 E U+00EB ë U+00CB Ë
D04 AD04 SC013 U+0072 r U+0052 R U+00E8 è U+00C8 È
D05 AD05 SC014 U+0074 t U+0054 T U+00AE ® U+2122
D06 AD06 SC015 U+0079 y U+0059 Y U+00FB û U+00DB Û
D07 AD07 SC016 U+0075 u U+0055 U U+00FC ü U+00DC Ü
D08 AD08 SC017 U+0069 i U+0049 I U+00EF ï U+00CF Ï
D09 AD09 SC018 U+006F o U+004F O U+00F6 ö U+00D6 Ö
D10 AD10 SC019 U+0070 p U+0050 P U+00B6 U+00A7 §
D11 AD11 SC01A U+005B [ U+007B { U+2018 U+201C
D12 AD12 SC01B U+005D ] U+007D } U+2019 U+201D
D13 / C12 BKSL SC02B U+005C \ U+007C |
C01 AC01 SC01E U+0061 a U+0041 A U+00E4 ä U+00C4 Ä
C02 AC02 SC01F U+0073 s U+0053 S U+00DF ß U+1E9E
C03 AC03 SC020 U+0064 d U+0044 D DEADDI ◌̈ U+2033
C04 AC04 SC021 U+0066 f U+0046 F DEADAC ◌́ U+2032
C05 AC05 SC022 U+0067 g U+0047 G DEADMA ◌̄ U+00AB «
C06 AC06 SC023 U+0068 h U+0048 H U+00BB »
C07 AC07 SC024 U+006A j U+004A J DEADGR ◌̀ U+2039
C08 AC08 SC025 U+006B k U+004B K DEADCI ◌̂ U+203A
C09 AC09 SC026 U+006C l U+004C L U+00F4 ô U+00D4 Ô
C10 AC10 SC027 U+003B ; U+003A : U+003B ; U+003A :
C11 AC11 SC028 U+0027 ' U+0022 " U+201A U+201E
B00 LSGT SC056 U+005C \ U+007C | U+00EA ê U+00CA Ê
B01 AB01 SC02C U+007A z U+005A Z U+00E6 æ U+00C6 Æ
B02 AB02 SC02D U+0078 x U+0058 X U+0153 œ U+0152 Œ
B03 AB03 SC02E U+0063 c U+0043 C U+00E7 ç U+00C7 Ç
B04 AB04 SC02F U+0076 v U+0056 V U+2014
B05 AB05 SC030 U+0062 b U+0042 B U+2013
B06 AB06 SC031 U+006E n U+004E N U+00F1 ñ U+00D1 Ñ
B07 AB07 SC032 U+006D m U+004D M U+03BC μ U+03A9 Ω
B08 AB08 SC033 U+002C , U+003C < U+2026 U+2264
B09 AB09 SC034 U+002E . U+003E > U+22C5 U+2265
B10 AB10 SC035 U+002F / U+003F ? U+003F ? U+00BF ¿
SPC SPCE SC039 U+0020 U+0020 U+202F U+00A0  

Dead key table

Dead key Next key Result
DEADAC U+0027 '
DEADAC A U+00C1 Á
DEADAC E U+00C9 É
DEADAC I U+00CD Í
DEADAC O U+00D3 Ó
DEADAC U U+00DA Ú
DEADAC W U+1E82
DEADAC Y U+00DD Ý
DEADAC a U+00E1 á
DEADAC e U+00E9 é
DEADAC i U+00ED í
DEADAC o U+00F3 ó
DEADAC u U+00FA ú
DEADAC w U+1E83
DEADAC y U+00FD ý
DEADCI U+005E ^
DEADCI A U+00C2 Â
DEADCI E U+00CA Ê
DEADCI I U+00CE Î
DEADCI O U+00D4 Ô
DEADCI U U+00DB Û
DEADCI W U+0174 Ŵ
DEADCI Y U+0176 Ŷ
DEADCI a U+00E2 â
DEADCI e U+00EA ê
DEADCI i U+00EE î
DEADCI o U+00F4 ô
DEADCI u U+00FB û
DEADCI w U+0175 ŵ
DEADCI y U+0177 ŷ
DEADDI U+0022 "
DEADDI A U+00C4 Ä
DEADDI E U+00CB Ë
DEADDI I U+00CF Ï
DEADDI O U+00D6 Ö
DEADDI U U+00DC Ü
DEADDI W U+1E84
DEADDI Y U+0178 Ÿ
DEADDI a U+00E4 ä
DEADDI e U+00EB ë
DEADDI i U+00EF ï
DEADDI o U+00F6 ö
DEADDI u U+00FC ü
DEADDI w U+1E85
DEADDI y U+00FF ÿ
DEADGR U+0060 `
DEADGR A U+00C0 À
DEADGR E U+00C8 È
DEADGR I U+00CC Ì
DEADGR O U+00D2 Ò
DEADGR U U+00D9 Ù
DEADGR W U+1E80
DEADGR Y U+1EF2
DEADGR a U+00E0 à
DEADGR e U+00E8 è
DEADGR i U+00EC ì
DEADGR o U+00F2 ò
DEADGR u U+00F9 ù
DEADGR w U+1E81
DEADGR y U+1EF3
DEADMA U+00AF ¯
DEADMA A U+0100 Ā
DEADMA E U+0112 Ē
DEADMA I U+012A Ī
DEADMA O U+014C Ō
DEADMA U U+016A Ū
DEADMA Y U+0232 Ȳ
DEADMA a U+0101 ā
DEADMA e U+0113 ē
DEADMA i U+012B ī
DEADMA o U+014D ō
DEADMA u U+016B ū
DEADMA y U+0233 ȳ

Code reference table

Dead keys

Unicode