Jump to content

Keyboard Layout for French MBA


Oolyctus

Recommended Posts

Hello,

I've been fighting a bit to try to root my own MBA in less than 10 sec :blink:, as advertised here.

I had no trouble (nearly) to create the inject.bin necessary (after installing Java 7 SDK, after installing homebrew, to install dfu-programmer to upgrade to duck_v2.1.hex), I was ready to witness the magic...

:huh::wacko:

I had to take the key out before it did nasty things - Wrong keyboard layout.

So here you are,

// french layout
KEY_NON_US_100 = 100
// 32
ASCII_20 = KEY_SPACE
 // 33 !
ASCII_21 = KEY_8
// 34 "
ASCII_22 = KEY_3
// 35 #
ASCII_23 = KEY_SECTION, MODIFIERKEY_SHIFT
// 36 $
ASCII_24 = KEY_RIGHT_BRACE
// 37 %
ASCII_25 = KEY_QUOTE, MODIFIERKEY_SHIFT
// 38 &
ASCII_26 = KEY_1
// 39 '
ASCII_27 = KEY_4
// 40 (
ASCII_28 = KEY_5
// 41 )
ASCII_29 = KEY_MINUS
// 42 *
ASCII_2A = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT
// 43 +
ASCII_2B = KEY_SLASH, MODIFIERKEY_SHIFT
// 44 ,
ASCII_2C = KEY_M
// 45 -
ASCII_2D = KEY_EQUAL
// 46 .
ASCII_2E = KEY_COMMA, MODIFIERKEY_SHIFT
// 47 /
ASCII_2F = KEY_PERIOD, MODIFIERKEY_SHIFT
// 48 0
ASCII_30 = KEY_0, MODIFIERKEY_SHIFT
// 49 1
ASCII_31 = KEY_1, MODIFIERKEY_SHIFT
// 50 2
ASCII_32 = KEY_2, MODIFIERKEY_SHIFT
// 51 3
ASCII_33 = KEY_3, MODIFIERKEY_SHIFT
// 52 4
ASCII_34 = KEY_4, MODIFIERKEY_SHIFT
// 53 5
ASCII_35 = KEY_5, MODIFIERKEY_SHIFT
// 54 6
ASCII_36 = KEY_6, MODIFIERKEY_SHIFT
// 55 7
ASCII_37 = KEY_7, MODIFIERKEY_SHIFT
// 55 8
ASCII_38 = KEY_8, MODIFIERKEY_SHIFT
// 57 9
ASCII_39 = KEY_9, MODIFIERKEY_SHIFT
// 58 :
ASCII_3A = KEY_PERIOD
// 59 ;
ASCII_3B = KEY_COMMA
// 60 <
ASCII_3C = KEY_TILDE
// 61 =
ASCII_3D = KEY_SLASH
// 62 >
ASCII_3E = KEY_TILDE, MODIFIERKEY_SHIFT
// 63 ?
ASCII_3F = KEY_M, MODIFIERKEY_SHIFT
// 64 @
ASCII_40 = KEY_SECTION
// 65 A
ASCII_41 = KEY_Q, MODIFIERKEY_SHIFT
// 66 B
ASCII_42 = KEY_B, MODIFIERKEY_SHIFT
// 67 C
ASCII_43 = KEY_C, MODIFIERKEY_SHIFT
// 68 D
ASCII_44 = KEY_D, MODIFIERKEY_SHIFT
// 69 E
ASCII_45 = KEY_E, MODIFIERKEY_SHIFT
// 70 F
ASCII_46 = KEY_F, MODIFIERKEY_SHIFT
// 71 G
ASCII_47 = KEY_G, MODIFIERKEY_SHIFT
// 72 H
ASCII_48 = KEY_H, MODIFIERKEY_SHIFT
// 73 I
ASCII_49 = KEY_I, MODIFIERKEY_SHIFT
// 74 J
ASCII_4A = KEY_J, MODIFIERKEY_SHIFT
// 75 K
ASCII_4B = KEY_K, MODIFIERKEY_SHIFT
// 76 L
ASCII_4C = KEY_L, MODIFIERKEY_SHIFT
// 77 M
ASCII_4D = KEY_SEMICOLON, MODIFIERKEY_SHIFT
// 78 N
ASCII_4E = KEY_N, MODIFIERKEY_SHIFT
// 79 O
ASCII_4F = KEY_O, MODIFIERKEY_SHIFT
// 80 P
ASCII_50 = KEY_P, MODIFIERKEY_SHIFT
// 81 Q
ASCII_51 = KEY_A, MODIFIERKEY_SHIFT
// 82 R
ASCII_52 = KEY_R, MODIFIERKEY_SHIFT
// 83 S
ASCII_53 = KEY_S, MODIFIERKEY_SHIFT
// 84 T
ASCII_54 = KEY_T, MODIFIERKEY_SHIFT
// 85 U
ASCII_55 = KEY_U, MODIFIERKEY_SHIFT
// 86 V
ASCII_56 = KEY_V, MODIFIERKEY_SHIFT
// 87 W
ASCII_57 = KEY_Z, MODIFIERKEY_SHIFT
// 88 X
ASCII_58 = KEY_X, MODIFIERKEY_SHIFT
// 89 Y
ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT
// 90 Z
ASCII_5A = KEY_W, MODIFIERKEY_SHIFT
// 91 [
ASCII_5B = KEY_5, KEY_LEFT_SHIFT, MODIFIERKEY_LEFT_ALT
// 92
ASCII_5C = KEY_PERIOD, KEY_RIGHT_SHIFT, MODIFIERKEY_RIGHT_ALT
// 93 ]
ASCII_5D = KEY_MINUS, KEY_LEFT_SHIFT, MODIFIERKEY_LEFT_ALT
// 94 ^
ASCII_5E = KEY_LEFT_BRACE
// 95 _
ASCII_5F = KEY_EQUAL, MODIFIERKEY_SHIFT
// 96 `
ASCII_60 = KEY_BACKSLASH
// 97 a
ASCII_61 = KEY_Q
// 98 b
ASCII_62 = KEY_B
// 99 c
ASCII_63 = KEY_C
// 100 d
ASCII_64 = KEY_D
// 101 e
ASCII_65 = KEY_E
// 102 f
ASCII_66 = KEY_F
// 103 g
ASCII_67 = KEY_G
// 104 h
ASCII_68 = KEY_H
// 105 i
ASCII_69 = KEY_I
// 106 j
ASCII_6A = KEY_J
// 107 k
ASCII_6B = KEY_K
// 108 l
ASCII_6C = KEY_L
// 109 m
ASCII_6D = KEY_SEMICOLON
// 110 n
ASCII_6E = KEY_N
// 111 o
ASCII_6F = KEY_O
// 112 p
ASCII_70 = KEY_P
// 113 q
ASCII_71 = KEY_A
// 114 r
ASCII_72 = KEY_R
// 115 s
ASCII_73 = KEY_S
// 116 t
ASCII_74 = KEY_T
// 117 u
ASCII_75 = KEY_U
// 118 v
ASCII_76 = KEY_V
// 119 w
ASCII_77 = KEY_Z
// 120 x
ASCII_78 = KEY_X
// 121 y
ASCII_79 = KEY_Y
// 122 z
ASCII_7A = KEY_W
// 123 {
ASCII_7B = KEY_5, MODIFIERKEY_RIGHT_ALT
// 124 |
ASCII_7C = KEY_L, KEY_RIGHT_ALT, MODIFIERKEY_SHIFT
// 125 }
ASCII_7D = KEY_MINUS, MODIFIERKEY_RIGHT_ALT
// 126 ~
ASCII_7E = KEY_N, KEY_RIGHT_ALT
// 127
ASCII_7F = KEY_BACKSPACE
// 160       Nonbreakng Space
ISO_8859_1_A0 = KEY_SPACE
// 163 £     Pound Sign
ISO_8859_1_A3 = KEY_SLASH, MODIFIERKEY_SHIFT
// 164 €     Currency or Euro Sign
ISO_8859_1_A4 = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT
// 167 §     SECTION SIGN
ISO_8859_1_A7 = KEY_6
// 176 °     DEGREE SIGN
ISO_8859_1_B0 = KEY_MINUS, MODIFIERKEY_SHIFT
// 181 µ     MICRO SIGN
ISO_8859_1_B5 = KEY_M, MODIFIERKEY_ALT
// 224 à      a GRAVE
ISO_8859_1_E0 = KEY_0
// 231 ç     c CEDILLA
ISO_8859_1_E7 = KEY_9
// 232 è     e GRAVE
ISO_8859_1_E8 = KEY_7
// 233 é     e ACUTE
ISO_8859_1_E9 = KEY_2
// 249 ù     u GRAVE
ISO_8859_1_F9 = KEY_COMMA

It should work correctly ;)

But I still have a problem with this

// 35 #
ASCII_23 = KEY_SECTION, MODIFIERKEY_SHIFT

# doesn't show on screen while injecting the text. :angry:

As though I have the right key name ???

FRENCH MBA LAYOUT US MBA LAYOUT

WKnNrmD.png

Found it

Here is the corrected code !

// french layout
KEY_NON_US_100 = 100

// 32
ASCII_20 = KEY_SPACE
 // 33 !
ASCII_21 = KEY_8
// 34 "
ASCII_22 = KEY_3 
// 35 #
ASCII_23 = KEY_NON_US_100, MODIFIERKEY_SHIFT
// 36 $
ASCII_24 = KEY_RIGHT_BRACE
// 37 %
ASCII_25 = KEY_QUOTE, MODIFIERKEY_SHIFT
// 38 &
ASCII_26 = KEY_1
// 39 '
ASCII_27 = KEY_4
// 40 (
ASCII_28 = KEY_5
// 41 )
ASCII_29 = KEY_MINUS
// 42 *
ASCII_2A = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT
// 43 +
ASCII_2B = KEY_SLASH, MODIFIERKEY_SHIFT
// 44 ,
ASCII_2C = KEY_M
// 45 -
ASCII_2D = KEY_EQUAL
// 46 .
ASCII_2E = KEY_COMMA, MODIFIERKEY_SHIFT
// 47 /
ASCII_2F = KEY_PERIOD, MODIFIERKEY_SHIFT
// 48 0
ASCII_30 = KEY_0, MODIFIERKEY_SHIFT
// 49 1
ASCII_31 = KEY_1, MODIFIERKEY_SHIFT
// 50 2
ASCII_32 = KEY_2, MODIFIERKEY_SHIFT
// 51 3
ASCII_33 = KEY_3, MODIFIERKEY_SHIFT
// 52 4
ASCII_34 = KEY_4, MODIFIERKEY_SHIFT
// 53 5
ASCII_35 = KEY_5, MODIFIERKEY_SHIFT
// 54 6
ASCII_36 = KEY_6, MODIFIERKEY_SHIFT
// 55 7
ASCII_37 = KEY_7, MODIFIERKEY_SHIFT
// 55 8
ASCII_38 = KEY_8, MODIFIERKEY_SHIFT
// 57 9
ASCII_39 = KEY_9, MODIFIERKEY_SHIFT
// 58 :
ASCII_3A = KEY_PERIOD
// 59 ;
ASCII_3B = KEY_COMMA
// 60 <
ASCII_3C = KEY_TILDE
// 61 =
ASCII_3D = KEY_SLASH
// 62 >
ASCII_3E = KEY_TILDE, MODIFIERKEY_SHIFT
// 63 ?
ASCII_3F = KEY_M, MODIFIERKEY_SHIFT
// 64 @
ASCII_40 = KEY_NON_US_100
// 65 A
ASCII_41 = KEY_Q, MODIFIERKEY_SHIFT
// 66 B
ASCII_42 = KEY_B, MODIFIERKEY_SHIFT
// 67 C
ASCII_43 = KEY_C, MODIFIERKEY_SHIFT
// 68 D
ASCII_44 = KEY_D, MODIFIERKEY_SHIFT
// 69 E
ASCII_45 = KEY_E, MODIFIERKEY_SHIFT
// 70 F
ASCII_46 = KEY_F, MODIFIERKEY_SHIFT
// 71 G
ASCII_47 = KEY_G, MODIFIERKEY_SHIFT
// 72 H
ASCII_48 = KEY_H, MODIFIERKEY_SHIFT
// 73 I
ASCII_49 = KEY_I, MODIFIERKEY_SHIFT
// 74 J
ASCII_4A = KEY_J, MODIFIERKEY_SHIFT
// 75 K
ASCII_4B = KEY_K, MODIFIERKEY_SHIFT
// 76 L
ASCII_4C = KEY_L, MODIFIERKEY_SHIFT
// 77 M
ASCII_4D = KEY_SEMICOLON, MODIFIERKEY_SHIFT
// 78 N
ASCII_4E = KEY_N, MODIFIERKEY_SHIFT
// 79 O
ASCII_4F = KEY_O, MODIFIERKEY_SHIFT
// 80 P
ASCII_50 = KEY_P, MODIFIERKEY_SHIFT
// 81 Q
ASCII_51 = KEY_A, MODIFIERKEY_SHIFT
// 82 R
ASCII_52 = KEY_R, MODIFIERKEY_SHIFT
// 83 S
ASCII_53 = KEY_S, MODIFIERKEY_SHIFT
// 84 T
ASCII_54 = KEY_T, MODIFIERKEY_SHIFT
// 85 U
ASCII_55 = KEY_U, MODIFIERKEY_SHIFT
// 86 V
ASCII_56 = KEY_V, MODIFIERKEY_SHIFT
// 87 W
ASCII_57 = KEY_Z, MODIFIERKEY_SHIFT
// 88 X
ASCII_58 = KEY_X, MODIFIERKEY_SHIFT
// 89 Y
ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT
// 90 Z
ASCII_5A = KEY_W, MODIFIERKEY_SHIFT
// 91 [
ASCII_5B = KEY_5, KEY_LEFT_SHIFT, MODIFIERKEY_LEFT_ALT
// 92
ASCII_5C = KEY_PERIOD, KEY_RIGHT_SHIFT, MODIFIERKEY_RIGHT_ALT
// 93 ]
ASCII_5D = KEY_MINUS, KEY_LEFT_SHIFT, MODIFIERKEY_LEFT_ALT
// 94 ^
ASCII_5E = KEY_LEFT_BRACE
// 95 _
ASCII_5F = KEY_EQUAL, MODIFIERKEY_SHIFT
// 96 `
ASCII_60 = KEY_BACKSLASH
// 97 a
ASCII_61 = KEY_Q
// 98 b
ASCII_62 = KEY_B
// 99 c
ASCII_63 = KEY_C
// 100 d
ASCII_64 = KEY_D
// 101 e
ASCII_65 = KEY_E
// 102 f
ASCII_66 = KEY_F
// 103 g
ASCII_67 = KEY_G
// 104 h
ASCII_68 = KEY_H
// 105 i
ASCII_69 = KEY_I
// 106 j
ASCII_6A = KEY_J
// 107 k
ASCII_6B = KEY_K
// 108 l
ASCII_6C = KEY_L
// 109 m
ASCII_6D = KEY_SEMICOLON
// 110 n
ASCII_6E = KEY_N
// 111 o
ASCII_6F = KEY_O
// 112 p
ASCII_70 = KEY_P
// 113 q
ASCII_71 = KEY_A
// 114 r
ASCII_72 = KEY_R
// 115 s
ASCII_73 = KEY_S
// 116 t
ASCII_74 = KEY_T
// 117 u
ASCII_75 = KEY_U
// 118 v
ASCII_76 = KEY_V
// 119 w
ASCII_77 = KEY_Z
// 120 x
ASCII_78 = KEY_X
// 121 y
ASCII_79 = KEY_Y
// 122 z
ASCII_7A = KEY_W
// 123 {
ASCII_7B = KEY_5, MODIFIERKEY_RIGHT_ALT
// 124 |
ASCII_7C = MODIFIERKEY_ALT, KEY_L, MODIFIERKEY_SHIFT
// 125 }
ASCII_7D = KEY_MINUS, MODIFIERKEY_RIGHT_ALT
// 126 ~
ASCII_7E = KEY_N, KEY_RIGHT_ALT
// 127
ASCII_7F = KEY_BACKSPACE
// 160       Nonbreakng Space
ISO_8859_1_A0 = KEY_SPACE
// 163 £     Pound Sign
ISO_8859_1_A3 = KEY_SLASH, MODIFIERKEY_SHIFT
// 164 €     Currency or Euro Sign
ISO_8859_1_A4 = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT
// 167 §     SECTION SIGN
ISO_8859_1_A7 = KEY_6
// 176 °     DEGREE SIGN
ISO_8859_1_B0 = KEY_MINUS, MODIFIERKEY_SHIFT
// 181 µ     MICRO SIGN
ISO_8859_1_B5 = KEY_M, MODIFIERKEY_ALT
// 224 à      a GRAVE
ISO_8859_1_E0 = KEY_0
// 231 ç     c CEDILLA
ISO_8859_1_E7 = KEY_9
// 232 è     e GRAVE
ISO_8859_1_E8 = KEY_7
// 233 é     e ACUTE
ISO_8859_1_E9 = KEY_2
// 249 ù     u GRAVE
ISO_8859_1_F9 = KEY_COMMA

The key was the

KEY_NON_US_100

Though the pipe "|" does not work since it needs three keys

MODIFIERKEY_ALT, KEY_L, MODIFIERKEY_SHIFT

Any Idea ?

Oo

Thanks for all who made this tiny little magic work.

Edited by Oolyctus
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...