Dvorak layout

;Dvorak key mapper.
;Tested on HTC Touch Diamond running Windows 6.1 with generic bluetooth folding keyboard. Layout conforms to US Dvorak (see http://en.wikipedia.org/wiki/Image:KB_United_States_Dvorak.svg)
;version: September 6 2008. Tony Wong.

; Please note that parameters in this file should be in the same order as described.
; Most actual .AEK description may be found on http://ae.inc.ru/aekmapsample.php
; 
; Keyboard layout name (displayed in AEKMapSettings)
Layout Dvorak

; Hint for the layout to be shown in lower right corner of the screen
Hint Dvorak

; "Hardware" parameter adjust keyboard processing algoritm to 
; specific hardware. Most of the keyboards will work with default 
; settings (no Hardware parameter or empty), but specifying 
; correct hardware platform may help you to resolve some issues
; Valid values and AEKMap versions are:
;
; Wizard
;   "HTC Wizard" is a device sold by many brands under different names:
;   O2 XDA Mini S / I-Mate K-Jam / Qtek 9100 / T-Mobile MDA Vario /
;   Orange SPV M3000 / Dopod 838 / Vodafone VPA Compact II
;   Specifying Wizard as hardware platform will allow AEKMap to distinguish 
;   joystik and Enter/Arrows on hardware keyboard.
;   Requires AEKMap v1.1.3 or later.
;
; Hermes
;   "HTC Hermes" is a device sold by many brands under different names:
;   HTC TyTN / O2 XDA Trion / I-Mate Jas Jam / Qtek 9600 / T-Mobile MDA Vario II /
;   Specifying Hermes as hardware platform will allow AEKMap to distinguish 
;   Arrow keys on hardware keyboard from joystik and scroll wheel rotation
;   Requires AEKMap v1.2.5b or later.
;
;Hardware Wizard

; KeypressTimeout  allows to re-define corresponding AEKMap.CFG value 
; for the layout.
; Milliseconds, hexadecimal
;KeypressTimeOut 0258


; Scancodes note:
; "Scan Code" may be defined using AEKMapScan utility located in AEKMap 
; installation directory.

; The "scan code" word in this file defined as follow:
; low byte: real key scan code .
; high byte treated as bit flags: 
;  7 6 5 4 3 2 1 0 
;  0 0 0 0 0 0 0 0     All Zero: "Clear" keypress (no shift/ctrl/alt/win/capslock)
;          | | | ^---- Shift+CapsLock combination is ON
;          | | ^------ Ctrl key is pressed
;          | ^-------- Alt key is pressed
;          ^---------- Win key is pressed
;       
;
;
; Please note that system may not support different Shift/Win/Alt trigger 
; combinations for particular key.
;
; Flag examples for different keypressings of "A" key:
; scancode  condition
;   0041    clear "A" key hook
;   0141    Shift+A key hook
;   0241    Ctrl+A key hook
;   0441    Alt+A key hook
;   0841    Win+A key hook
;   0341    Ctrl+Shift+A
;   0741    Ctrl+Alt+Shift+A key hook


; Shift key scan codes.
; Specify up to four 4-digit hex scancodes to enable internal shift key 
; monitoring routine. Or leave it empty for using shift key state returned by system.
; Standard keyboard shift scancode is 0110
ShiftKey

; Capslock key scan codes.
; Specify up to four 4-digit hex scancodes to enable internal capslock 
; monitoring routine. Or leave it empty to use capslock state returned by system
; Standard keyboard capslock scancode is 0014
CapslockKey 0014 0114 0214 0314

; Ctrl key scan codes.
; Specify up to four 4-digit hex scancodes to enable internal Ctrl key 
; monitoring routine. Or leave it empty to use Ctrl state returned by system
; Standard keyboard Ctrl scancode is 0211
CtrlKey

; Alt key scan codes.
; Specify up to four 4-digit hex scancodes to enable internal Alt key 
; monitoring routine. Or leave it empty to use Alt state returned by system
; Standard keyboard Alt scancode is 0412
AltKey

; "Win" key scan codes.
; Specify up to four 4-digit hex scancodes to enable internal Win key 
; monitoring routine. Or leave it empty to use Win key state returned by system
; Standard keyboard Win scancode is 085B
WinKey


; Accent Key scan codes. 
; If your layout should contain "Accented character" key switch you may specify 
; up to four 4-digit hex scancodes here.
; Or leave it empty if you need no such functionality
AccentKey

; Accent 2 Key scan codes.
; If your layout should contain different types of accented characters 
; you may specify up to four 4-digit hex scancodes of Accent 2 key switch here.
;
; Set AccentKey2 scan codes exactly the same as AccentKey to cycle thru 
; Normal -> Accented -> Alternative Accented -> back to Normal
;
; Or leave it empty if you need no such functionality
AccentKey2

; Accent 3 Key scan codes (I'm CRAZY of Greek layout !!!).
; If your layout should contain 3 different types of accented characters 
; (e.g. accents, "Dialitica" and combined in Greek) you may specify here 
; up to four 4-digit hex scancodes for Accent 3 key switch.
;
; You may set AccentKey3 scan codes exactly the same as AccentKey. In this case
; accent state will cycle thru 
; Normal -> Accented -> Accented2 -> Accented3 -> back to Normal
;
; Or leave it empty if you need no such functionality
AccentKey3


; List of external commands for binding to keys
;
; Exec <ID> <Executable path> [<Command line parameters>]
;
; <ID> is an command identifier 4digit hex number for reference 
; in key definitions (see below). Valid user' Exec ID range is 0001..00FF.
; All other ID's are reserved for internal implementation in AEKMap
;
; List of current built-in Exec IDs implemented:
;	e0101	trigger internal "Shift" state slag           v1.2.2b
;	e0102	trigger internal "CapsLock" state flag        v1.2.2b
;	e0103	trigger internal "Ctrl" state flag            v1.2.2b
;	e0104	trigger internal "Alt" state flag             v1.2.2b
;	e0105	trigger internal "Win" state flag             v1.2.2b
;
;	e0110	Switch accent state to default (no accent)    v1.2.2b
;	e0111	Switch 1st accent state                       v1.2.2b
;	e0112	Switch 2nd accent state                       v1.2.2b
;	e0113	Switch 3rd accent state                       v1.2.2b
;	e011F	Switch NEXT accent state                      v1.2.2b
;
;	e0120	switch next layout                            v1.2.2b
;	e0121	unload AEKMap demon from memory               v1.2.2b
;
;
;       v1.2.2b:
;	e0200..e02FF - call AEBPlus action. List of current AEBPlus actions is 
;               available at 
;		http://ae.inc.ru/aebpluscline
;		Note: AEBPlus should be installed and running.

;
; <Executable path> is a fully qualified application file name in quotes.
; No escape symbols should be used.
; <Command line parameters> are specified "as is", without 
; additional quotes or escapes
;
; Eg.:

Exec 0001 fexplore.exe
Exec 0002 "\Windows\notes.exe"

; Buttons remapping layout part consist of Key / Key2 / Key3 / Key4 / Key5 / Key6 
; records.
; Each of the Key* record define how AEKMap will behave on exact button press detection
; Key  - defines single keypress action
; Key2 - double keypress action                          Requires v1.2.2b and above
; Key3 - triple keypress action                          --//--
; Key4 - action for button being pressed 4 times         --//--
; Key5 - action for button being pressed 5 times         Requires v1.2.3b and above
; Key6 - action for button being pressed 6 times         --//--

; Key* line format depends on AccentKey, AccentKey2 and AccentKey3 presense.
; In the case you need no accented characters:
;
;Key* <ScanCode> <Normal> [<ICQ Normal>]
;
;If you define scan code(s) for Accent Key only:
;Key* <ScanCode> <Normal> <Acc> [<ICQ Normal> <ICQ Acc>]
;
;If you need two different Accent key sets:
;Key* <ScanCode> <Normal> <Acc> <Acc2> [<ICQ Normal> <ICQ Acc> <ICQ Acc2>]
;
;And finally - if you need 3 different Accent key sets:
;Key* <ScanCode> <Normal> <Acc> <Acc2> <Acc3> [<ICQ Normal> <ICQ Acc> <ICQ Acc2> <ICQ Acc3>]
;
; where 
;
; <ScanCode> is a key scancode, (see notes above)
;
; <Normal> is a char or keypressing to be generated normally
; <Acc> is a char or keypress to be generated if "Accented" trigger is active. 
;     Allowed only if AccentKey parameter is not empty
; <Acc2> is a char or keypress to be generated if "Accented2" trigger is active. 
;     Allowed only if AccentKey2 parameter is not empty
; <Acc3> is a char or keypress to be generated if "Accented3" trigger is active. 
;     Allowed only if AccentKey3 parameter is not empty
;
; <ICQ Normal>, <ICQ Acc> <ICQ Acc2> and <ICQ Acc3> are the same as 
; previous but used if ICQ window having focus. If you need no alternative characters
; for ICQ - do not specify specify these codes
;
;
; All numbers are assumed to be in HEX and prefixed with "c", "k" or "e"
; where
; c - Keystroke should be sent as unicode character. Use "Character Map" desctop 
;     application (Start - Programs - Accessories - System Tools) to find unicode
;     character codes (see it in the left lower corner of the screen)
;
; k - Not alphanumeric keypressing should be generated.  (REGISTERED VERSION ONLY)
;     The parameter is scancode as described above. Any combination of 
;     Shift/Ctrl/Alt/Win trigger key flags may be specified.
;
; e - Run "Exec" line with ID specified (see Exec ID comments above)

; Dvorak mapping based on standard Windows for PC Dvorak keyboard layout for PC.

;lower case key presses
Key 0042 c0078 ; typing "b" produces "x". 
Key 0043 c006A ; c j
Key 0044 c0065 ; d e
Key 0045 c002E ; e .
Key 0046 c0075 ; f u
Key 0047 c0069 ; g i
Key 0048 c0064 ; h d
Key 0049 c0063 ; i c
Key 004A c0068 ; j h
Key 004B c0074 ; k t
Key 004C c006E ; l n
Key 004E c0062 ; n b
Key 004F c0072 ; o r
Key 0050 c006C ; p l
Key 0051 c0027 ; q '
Key 0052 c0070 ; r p
Key 0053 c006F ; s f
Key 0054 c0079 ; t y
Key 0055 c0067 ; u g
Key 0056 c006B ; v k
Key 0057 c002C ; w ,
Key 0058 c0071 ; x q
Key 0059 c0066 ; y f
Key 005A c003B ; z ;
Key 00BA c0073 ; : s
Key 00BC c0077 ; , w
Key 00BE c0076 ; . v
Key 00BF c007A ; ? z
Key 00BD c005B ; - [
Key 00BB c005D ; = ]
Key 00DB c002F ; [ /
Key 00DD c003D ; ] =
Key 00DE c002D ; , =

;upper case key presses (shift)
Key 0142 c0058 ; B X
Key 0143 c004A ; C J
Key 0144 c0045 ; D E
Key 0145 c003E ; E >
Key 0146 c0055 ; F U
Key 0147 c0049 ; G I
Key 0148 c0044 ; H D
Key 0149 c0043 ; I C
Key 014A c0048 ; J H
Key 014B c0054 ; K T
Key 014C c004E ; L N
Key 014E c0042 ; N B
Key 014F c0052 ; O R
Key 0150 c004C ; P L
Key 0151 c0022 ; Q "
Key 0152 c0050 ; R P
Key 0153 c004F ; S O
Key 0154 c0059 ; T Y
Key 0155 c0047 ; U G
Key 0156 c004B ; V K
Key 0157 c003C ; w <
Key 0158 c0051 ; x Q
Key 0159 c0046 ; y F
Key 015A c003a ; z :
Key 01BA c0053 ; : S
Key 01BC c0057 ; , W
Key 01BE c0056 ; . V
Key 01BF c005A ; ? Z
Key 01DB c003F ; { ?
Key 01DD c002B ; } +
Key 01DE c005F ; " _
Key 01BD c007B ; _ {
Key 01BB c007D ; + }