View Single Post
Old 10-03-2016, 01:18 AM   #22
GeoffR
Wizard
GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.
 
GeoffR's Avatar
 
Posts: 3,821
Karma: 19162882
Join Date: Nov 2012
Location: Te Riu-a-Māui
Device: Kobo Glo
Quote:
Originally Posted by tshering View Post
The main thing is that the encoding has changed. Previously one character was 4 byte, now one character is 3 byte.
Thanks tshering, with that I've adapted the keyboard patches below (all go in libnickel.so.1.0.0.patch):

(Edit: these are untested, probably don't work on the Aura One.)

Cyrillic keyboard:
Spoiler:
Code:
<Patch>
patch_name = `Cyrillic keyboard`
patch_enable = `no`
# patch_group = `Keyboard alternatives`
#
## Replaces keys on the Extended Latin keypad with Cyrillic alternatives.
#  
# Enable uppercase for `ß` key
replace_bytes = 6FFB40, 00 26, 01 26
# Replace layout sign
find_base_address = `ÉÀÇ`
replace_string = 0000, `ÉÀÇ`, `абв`
# Change keyboard layout
find_base_address = `æ\0à\0è\0ì\0`
# Second row, left to right:
replace_string = 0000, `æ`, `й`
replace_string = 0003, `à`, `ц`
replace_string = 0006, `è`, `у`
replace_string = 0009, `ì`, `к`
replace_string = 000C, `ò`, `е`
replace_string = 000F, `ù`, `н`
replace_string = 0012, `á`, `г`
replace_string = 0015, `é`, `ш`
replace_string = 0018, `í`, `щ`
replace_string = 001B, `ó`, `з`
replace_string = 001E, `ú`, `х`
replace_string = 0021, `ý`, `ъ`
# Third row, left to right:
replace_string = 0024, `œ`, `ф`
replace_string = 0027, `â`, `ы`
replace_string = 002A, `ê`, `в`
replace_string = 002D, `î`, `а`
replace_string = 0030, `ô`, `п`
replace_string = 0033, `û`, `р`
replace_string = 0036, `ä`, `о`
replace_string = 0039, `ë`, `л`
replace_string = 003C, `ï`, `д`
replace_string = 003F, `ö`, `ж`
replace_string = 0042, `ü`, `э`
replace_string = 0045, `ÿ`, `ё`
# Bottom row, left to right:
replace_string = 0048, `ã`, `я`
replace_string = 004B, `ñ`, `ч`
replace_string = 004E, `õ`, `с`
replace_string = 0051, `å`, `м`
replace_string = 0054, `ß`, `и`
replace_string = 0057, `ç`, `т`
replace_string = 005A, `đ`, `ь`
replace_string = 005D, `ø`, `б`
replace_string = 0060, `ij`, `ю`
replace_string = 0063, `ł`, `.`
</Patch>


Arabic keyboard:
Spoiler:
Code:
<Patch>
patch_name = `Arabic keyboard`
patch_enable = `no`
# Multi-version patch: 4.0.7523 - 4.0.7523+
# patch_group = `Keyboard alternatives`
#
## Replaces keys on the Extended Latin keypad with Arabic alternatives.
## Note that after the device boots, the keypad will just show blank squares
## until the first book has been opened.
#  
# Replace layout sign
find_base_address = `ÉÀÇ`
replace_string = 0000, `ÉÀÇ`, `ع`
# Change keyboard layout
find_base_address = `æ\0à\0è\0ì\0`
# Second row, left to right:
replace_string = 0000, `æ`, `ذ`
replace_string = 0003, `à`, `ص`
replace_string = 0006, `è`, `ث`
replace_string = 0009, `ì`, `ق`
replace_string = 000C, `ò`, `ف`
replace_string = 000F, `ù`, `غ`
replace_string = 0012, `á`, `ع`
replace_string = 0015, `é`, `ه`
replace_string = 0018, `í`, `خ`
replace_string = 001B, `ó`, `ح`
replace_string = 001E, `ú`, `ج`
replace_string = 0021, `ý`, `د`
# Third row, left to right:
replace_string = 0024, `œ`, `ض`
replace_string = 0027, `â`, `ش`
replace_string = 002A, `ê`, `س`
replace_string = 002D, `î`, `ي`
replace_string = 0030, `ô`, `ب`
replace_string = 0033, `û`, `ل`
replace_string = 0036, `ä`, `ا`
replace_string = 0039, `ë`, `ت`
replace_string = 003C, `ï`, `ن`
replace_string = 003F, `ö`, `م`
replace_string = 0042, `ü`, `ك`
replace_string = 0045, `ÿ`, `ط`
# Bottom row, left to right:
replace_string = 0048, `ã`, `ئ`
replace_string = 004B, `ñ`, `ء`
replace_string = 004E, `õ`, `ؤ`
replace_string = 0051, `å`, `ر`
replace_string = 0054, `ß`, `ى`
replace_string = 0057, `ç`, `ة`
replace_string = 005A, `đ`, `و`
replace_string = 005D, `ø`, `ز`
replace_string = 0060, `ij`, `ظ`
replace_string = 0063, `ł`, `.`
</Patch>


Hebrew keyboard:
Spoiler:
Code:
<Patch>
patch_name = `Hebrew keyboard`
patch_enable = `no`
# Multi-version patch: 4.0.7523 - 4.0.7523+
# patch_group = `Keyboard alternatives`
#
## Replaces keys on the Extended Latin keypad with Hebrew alternatives.
## Note that after the device boots, the keypad will just show blank squares
## until the first book has been opened.
#
# Replace layout sign
find_base_address = `ÉÀÇ`
replace_string = 0000, `ÉÀÇ`, `אב`
# Change keyboard layout
find_base_address = `æ\0à\0è\0ì\0`
# Second row, left to right:
replace_string = 0000, `æ`, `@`
replace_string = 0003, `à`, `'`
replace_string = 0006, `è`, `/`
replace_string = 0009, `ì`, `ק`
replace_string = 000C, `ò`, `ר`
replace_string = 000F, `ù`, `א`
replace_string = 0012, `á`, `ט`
replace_string = 0015, `é`, `ו`
replace_string = 0018, `í`, `ן`
replace_string = 001B, `ó`, `ם`
replace_string = 001E, `ú`, `פ`
replace_string = 0021, `ý`, `-`
# Third row, left to right:
replace_string = 0024, `œ`, `,`
replace_string = 0027, `â`, `ש`
replace_string = 002A, `ê`, `ד`
replace_string = 002D, `î`, `ג`
replace_string = 0030, `ô`, `כ`
replace_string = 0033, `û`, `ע`
replace_string = 0036, `ä`, `י`
replace_string = 0039, `ë`, `ח`
replace_string = 003C, `ï`, `ל`
replace_string = 003F, `ö`, `ך`
replace_string = 0042, `ü`, `ף`
replace_string = 0045, `ÿ`, `_`
# Bottom row, left to right:
replace_string = 0048, `ã`, `ז`
replace_string = 004B, `ñ`, `ס`
replace_string = 004E, `õ`, `ב`
replace_string = 0051, `å`, `ה`
replace_string = 0054, `ß`, `נ`
replace_string = 0057, `ç`, `מ`
replace_string = 005A, `đ`, `צ`
replace_string = 005D, `ø`, `ת`
replace_string = 0060, `ij`, `ץ`
replace_string = 0063, `ł`, `.`
</Patch>


Turkish keyboard:
Spoiler:
Code:
<Patch>
patch_name = `Turkish keyboard`
patch_enable = `no`
# patch_group = `Keyboard alternatives`
#
## Replaces keys on the Extended Latin keypad with Turkish alternatives.
#
# Enable uppercase for `ß` key
replace_bytes = 6FFB40, 00 26, 01 26
# Replace layout sign
find_base_address = `ÉÀÇ`
replace_string = 0000, `ÉÀÇ`, `EN/TR`
# Change keyboard layout
find_base_address = `æ\0à\0è\0ì\0`
# Second row, left to right:
replace_string = 0000, `æ`, `!`
replace_string = 0003, `à`, `q`
replace_string = 0006, `è`, `w`
replace_string = 0009, `ì`, `e`
replace_string = 000C, `ò`, `r`
replace_string = 000F, `ù`, `t`
replace_string = 0012, `á`, `y`
replace_string = 0015, `é`, `u`
replace_string = 0018, `í`, `ı`
replace_string = 001B, `ó`, `o`
replace_string = 001E, `ú`, `p`
replace_string = 0021, `ý`, `ü`
# Third row, left to right:
#replace_string = 0024, `œ\0`, `’`
replace_string = 0027, `â`, `a`
replace_string = 002A, `ê`, `s`
replace_string = 002D, `î`, `d`
replace_string = 0030, `ô`, `f`
replace_string = 0033, `û`, `g`
replace_string = 0036, `ä`, `h`
replace_string = 0039, `ë`, `j`
replace_string = 003C, `ï`, `k`
replace_string = 003F, `ö`, `l`
replace_string = 0042, `ü`, `ş`
replace_string = 0045, `ÿ`, `ğ`
# Bottom row, left to right:
replace_string = 0048, `ã`, `z`
replace_string = 004B, `ñ`, `x`
replace_string = 004E, `õ`, `c`
replace_string = 0051, `å`, `v`
replace_string = 0054, `ß`, `b`
replace_string = 0057, `ç`, `n`
replace_string = 005A, `đ`, `m`
replace_string = 005D, `ø`, `ö`
replace_string = 0060, `ij`, `ç`
replace_string = 0063, `ł`, `i`
</Patch>


Bulgarian keyboard:
Spoiler:
Code:
<Patch>
patch_name = `Bulgarian keyboard`
patch_enable = `no`
# patch_group = `Keyboard alternatives`
#
## Replaces keys on the Extended Latin keypad with Bulgarian alternatives.
#  
# Enable uppercase for `ß` key
replace_bytes = 6FFB40, 00 26, 01 26
# Replace layout sign
find_base_address = `ÉÀÇ`
replace_string = 0000, `ÉÀÇ`, `абв`
# Change keyboard layout
find_base_address = `æ\0à\0è\0ì\0`
# Second row, left to right:
replace_string = 0000, `æ`, `!`
replace_string = 0003, `à`, `я`
replace_string = 0006, `è`, `в`
replace_string = 0009, `ì`, `е`
replace_string = 000C, `ò`, `р`
replace_string = 000F, `ù`, `т`
replace_string = 0012, `á`, `ъ`
replace_string = 0015, `é`, `у`
replace_string = 0018, `í`, `и`
replace_string = 001B, `ó`, `о`
replace_string = 001E, `ú`, `п`
replace_string = 0021, `ý`, `ч`
# Third row, left to right:
replace_string = 0024, `œ`, `?`
replace_string = 0027, `â`, `а`
replace_string = 002A, `ê`, `с`
replace_string = 002D, `î`, `д`
replace_string = 0030, `ô`, `ф`
replace_string = 0033, `û`, `г`
replace_string = 0036, `ä`, `х`
replace_string = 0039, `ë`, `й`
replace_string = 003C, `ï`, `к`
replace_string = 003F, `ö`, `л`
replace_string = 0042, `ü`, `ш`
replace_string = 0045, `ÿ`, `щ`
# Bottom row, left to right:
replace_string = 0048, `ã`, `з`
replace_string = 004B, `ñ`, `ь`
replace_string = 004E, `õ`, `ц`
replace_string = 0051, `å`, `ж`
replace_string = 0054, `ß`, `б`
replace_string = 0057, `ç`, `н`
replace_string = 005A, `đ`, `м`
replace_string = 005D, `ø`, `ю`
replace_string = 0060, `ij`, `,`
replace_string = 0063, `ł`, `.`
</Patch>


Greek keyboard:
Spoiler:
Code:
<Patch>
patch_name = `Greek keyboard`
patch_enable = `no`
# patch_group = `Keyboard alternatives`
#
## Replaces keys on the Extended Latin keypad with Greek alternatives.
#
# Enable uppercase for `ß` key
replace_bytes = 6FFB40, 00 26, 01 26
# Replace layout sign
find_base_address = `ÉÀÇ`
replace_string = 0000, `ÉÀÇ`, `EN/GR`
# Change keyboard layout
find_base_address = `æ\0à\0è\0ì\0`
# Second row, left to right:
replace_string = 0000, `æ`, `!`
replace_string = 0003, `à`, `ά`
replace_string = 0006, `è`, `ς`
replace_string = 0009, `ì`, `ε`
replace_string = 000C, `ò`, `ρ`
replace_string = 000F, `ù`, `τ`
replace_string = 0012, `á`, `υ`
replace_string = 0015, `é`, `θ`
replace_string = 0018, `í`, `ι`
replace_string = 001B, `ó`, `ο`
replace_string = 001E, `ú`, `π`
replace_string = 0021, `ý`, `-`
# Third row, left to right:
replace_string = 0024, `œ`, `?`
replace_string = 0027, `â`, `α`
replace_string = 002A, `ê`, `σ`
replace_string = 002D, `î`, `δ`
replace_string = 0030, `ô`, `φ`
replace_string = 0033, `û`, `γ`
replace_string = 0036, `ä`, `η`
replace_string = 0039, `ë`, `ξ`
replace_string = 003C, `ï`, `κ`
replace_string = 003F, `ö`, `λ`
replace_string = 0042, `ü`, `ή`
replace_string = 0045, `ÿ`, `ώ`
# Bottom row, left to right:
replace_string = 0048, `ã`, `ζ`
replace_string = 004B, `ñ`, `χ`
replace_string = 004E, `õ`, `ψ`
replace_string = 0051, `å`, `ω`
replace_string = 0054, `ß`, `β`
replace_string = 0057, `ç`, `ν`
replace_string = 005A, `đ`, `μ`
replace_string = 005D, `ø`, `,`
replace_string = 0060, `ij`, `.`
replace_string = 0063, `ł`, `ύ`
</Patch>


Things to check:
Does the upper-case still work on the `ß` key (for those languages with upper case.)
I don't think 3-byte codes will work anymore, this affects one key on the Turkish keyboard.
Is the Aura One keyboard layout the same as the H2O/GloHD?
The extra keys on the top row of the Touch/Glo/Mini/Aura can't be replaced anymore.

Edit: if anyone is running this firmware on an Aura 2ed. or a Touch/Glo/Mini/Aura could you describe or post a screenshot of the keyboard layout? Is it different to the layout shown in the screenshots in this post?

Last edited by GeoffR; 10-04-2016 at 09:31 PM. Reason: Aura 2ed. layout?
GeoffR is offline   Reply With Quote