Jump to content

Welcome to CyanogenMod

Welcome to our forum. Like most online communities you must register to post, but don't worry this is a simple free process that requires minimal information for you to signup. Be a part of the CyanogenMod Forum by signing in or creating an account. You can even sign in with your Facebook or Twitter account.
  • Start new topics and reply to others
  • Subscribe to topics and forums to get automatic updates
  • Get your own profile and make new friends
  • Download files attached to the forum.
  • Customize your experience here
  • Share your CyanogenMod experience!
Guest Message by DevFuse
 

French bluetooth keyboard layout + android market download problem fix

keyboard layout bluetooth android market

This topic has been archived. This means that you cannot reply to this topic.
No replies to this topic

#1 cyrion

cyrion
  • Members
  • 1 posts

Posted 04 March 2012 - 12:23 AM

Hi,
I made the french layout for the standard HP Touchpad bluetooth keyboard, every key should work as expected.
I also added uppercase accentuated letters to ctrl key (ctr+éèà).
Tested in Cyanogenmod 9 alpha 2.

To install, simply overwrite the content of "Generic.kcm" located in /system/usr/keychars with the data I put at the end of this post (sry, I haven't found how to attach a file :) ).

If you get a 'read-only' error while trying to modify the file, then you will have to remount /system in read/write mode:

In a terminal in su mode:
mount -o remount,rw /system

I also had a problem with android market: it was working but doesn't want to download anything (download runs endlessly), I fixed that by simply chmod'ing /system/bin/drmserver

In su mode:
chmod ugo+rx /system/bin/drmserver

C.

File: /system/usr/keychars/Generic.kcm
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#	  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# Generic key character map for full alphabetic US English PC style external keyboards.
#
# This file is intentionally very generic and is intended to support a broad rang of keyboards.
# Do not edit the generic key character map to support a specific keyboard; instead, create
# a new key character map file with the required keyboard configuration.
#

type FULL

### Basic QWERTY keys ###

key A {
	label:							  'Q'
	base:							   'q'
	shift, capslock:					'Q'
	ctrl, alt, meta:					none
}

key B {
	label:							  'B'
	base:							   'b'
	shift, capslock:					'B'
	ctrl, alt, meta:					none
}

key C {
	label:							  'C'
	base:							   'c'
	shift, capslock:					'C'
	alt:								'\u00e7'
	shift+alt:						  '\u00c7'
	ctrl, meta:						 none
}

key D {
	label:							  'D'
	base:							   'd'
	shift, capslock:					'D'
	ctrl, alt, meta:					none
}

key E {
	label:							  'E'
	base:							   'e'
	shift, capslock:					'E'
	alt:								'\u20ac'
	ctrl, meta:						 none
}

key F {
	label:							  'F'
	base:							   'f'
	shift, capslock:					'F'
	ctrl, alt, meta:					none
}

key G {
	label:							  'G'
	base:							   'g'
	shift, capslock:					'G'
	ctrl, alt, meta:					none
}

key H {
	label:							  'H'
	base:							   'h'
	shift, capslock:					'H'
	ctrl, alt, meta:					none
}

key I {
	label:							  'I'
	base:							   'i'
	shift, capslock:					'I'
	alt:								'\u0302'
	ctrl, meta:						 none
}

key J {
	label:							  'J'
	base:							   'j'
	shift, capslock:					'J'
	ctrl, alt, meta:					none
}

key K {
	label:							  'K'
	base:							   'k'
	shift, capslock:					'K'
	ctrl, alt, meta:					none
}

key L {
	label:							  'L'
	base:							   'l'
	shift, capslock:					'L'
	ctrl, alt, meta:					none
}

key M {
	label:							  ','
	base:							   ','
	shift, capslock:					'?'
	ctrl, alt, meta:					none
}

key N {
	label:							  'N'
	base:							   'n'
	shift, capslock:					'N'
	alt:								'\u0303'
	ctrl, meta:						 none
}

key O {
	label:							  'O'
	base:							   'o'
	shift, capslock:					'O'
	ctrl, alt, meta:					none
}

key P {
	label:							  'P'
	base:							   'p'
	shift, capslock:					'P'
	ctrl, alt, meta:					none
}

key Q {
	label:							  'A'
	base:							   'a'
	shift, capslock:					'A'
	ctrl, alt, meta:					none
}

key R {
	label:							  'R'
	base:							   'r'
	shift, capslock:					'R'
	ctrl, alt, meta:					none
}

key S {
	label:							  'S'
	base:							   's'
	shift, capslock:					'S'
	alt:								'\u00df'
	ctrl, meta:						 none
}

key T {
	label:							  'T'
	base:							   't'
	shift, capslock:					'T'
	ctrl, alt, meta:					none
}

key U {
	label:							  'U'
	base:							   'u'
	shift, capslock:					'U'
	alt:								'\u0308'
	ctrl, meta:						 none
}

key V {
	label:							  'V'
	base:							   'v'
	shift, capslock:					'V'
	ctrl, alt, meta:					none
}

key W {
	label:							  'Z'
	base:							   'z'
	shift, capslock:					'Z'
	ctrl, alt, meta:					none
}

key X {
	label:							  'X'
	base:							   'x'
	shift, capslock:					'X'
	ctrl, alt, meta:					none
}

key Y {
	label:							  'Y'
	base:							   'y'
	shift, capslock:					'Y'
	ctrl, alt, meta:					none
}

key Z {
	label:							  'W'
	base:							   'w'
	shift, capslock:					'W'
	ctrl, alt, meta:					none
}

key 0 {
	label, number:					  '\u00e0'
	base:							   '\u00e0'
	shift, capslock:					'0'
	alt:								'\u0040'
	ctrl, meta:						 '\u00c0'
}

key 1 {
	label, number:					  '\u0026'
	base:							   '\u0026'
	shift, capslock:					'1'
	ctrl, meta:						 none
}

key 2 {
	label, number:					  '\u00e9'
	base:							   '\u00e9'
	shift, capslock:					'2'
	alt:								'\u007e'
	ctrl, meta:						 '\u00c9'
}

key 3 {
	label, number:					  '"'
	base:							   '"'
	shift, capslock:					'3'
	alt:								'\u0023'
	ctrl, meta:						 none
}

key 4 {
	label, number:					  '\u0027'
	base:							   '\u0027'
	shift, capslock:					'4'
	alt:								'\u007b'
	ctrl, meta:						 none
}

key 5 {
	label, number:					  '\u0028'
	base:							   '\u0028'
	shift, capslock:					'5'
	alt:								'\u005b'
	ctrl, meta:						 none
}

key 6 {
	label, number:					  '\u002d'
	base:							   '\u002d'
	shift, capslock:					'6'
	alt:								'\u007c'
	ctrl, meta:						 none
}

key 7 {
	label, number:					  '\u00e8'
	base:							   '\u00e8'
	shift, capslock:					'7'
	alt:								'\u0060'
	ctrl, meta:						 '\u00c8'
}

key 8 {
	label, number:					  '_'
	base:							   '_'
	shift, capslock:					'8'
	alt:								'\\'
	ctrl, meta:						 none
}

key 9 {
	label, number:					  '\u00e7'
	base:							   '\u00e7'
	shift, capslock:					'9'
	alt:								'\u005e'
	ctrl, meta:						 '\u00c7'
}

key SPACE {
	label:							  ' '
	base:							   ' '
	ctrl:							   none
	alt, meta:						  fallback SEARCH
}

key ENTER {
	label:							  '\n'
	base:							   '\n'
	ctrl, alt, meta:					none
}

key TAB {
	label:							  '\t'
	base:							   '\t'
	ctrl, alt, meta:					none
}

key COMMA {
	label, number:					  ';'
	base:							   ';'
	shift:							  '.'
	ctrl, alt, meta:					none
}

key PERIOD {
	label, number:					  ':'
	base:							   ':'
	shift:							  '/'
	ctrl, alt, meta:					'<'
}

key SLASH {
	label, number:					  '!'
	base:							   '!'
	shift:							  '\u00a7'
	ctrl, alt, meta:					'>'
}

key GRAVE {
	label, number:					  '\u00b2'
	base:							   '\u00b2'
	shift:							  '~'
	alt:								'\u0300'
	alt+shift:						  '\u0303'
	ctrl, meta:						 none
}

key MINUS {
	label, number:					  ')'
	base:							   ')'
	shift:							  '\u00b0'
	ctrl, alt, meta:					']'
}

key EQUALS {
	label, number:					  '='
	base:							   '='
	shift:							  '+'
	ctrl, alt, meta:					'}'
}

key LEFT_BRACKET {
	label, number:					  '\u0302'
	base:							   '\u0302'
	shift:							  '\u0308'
	ctrl, alt, meta:					none
}

key RIGHT_BRACKET {
	label, number:					  '$'
	base:							   '$'
	shift:							  '\u00a3'
	ctrl, alt, meta:					'\u00a4'
}

key BACKSLASH {
	label, number:					  '*'
	base:							   '*'
	shift:							  '\u00b5'
	ctrl, alt, meta:					none
}

key SEMICOLON {
	label, number:					  'm'
	base:							   'm'
	shift:							  'M'
	ctrl, alt, meta:					none
}

key APOSTROPHE {
	label, number:					  '\u00f9'
	base:							   '\u00f9'
	shift:							  '%'
	ctrl, alt, meta:					none
}

### Numeric keypad ###

key NUMPAD_0 {
	label, number:					  '0'
	base:							   fallback INSERT
	numlock:							'0'
	ctrl, alt, meta:					none
}

key NUMPAD_1 {
	label, number:					  '1'
	base:							   fallback MOVE_END
	numlock:							'1'
	ctrl, alt, meta:					none
}

key NUMPAD_2 {
	label, number:					  '2'
	base:							   fallback DPAD_DOWN
	numlock:							'2'
	ctrl, alt, meta:					none
}

key NUMPAD_3 {
	label, number:					  '3'
	base:							   fallback PAGE_DOWN
	numlock:							'3'
	ctrl, alt, meta:					none
}

key NUMPAD_4 {
	label, number:					  '4'
	base:							   fallback DPAD_LEFT
	numlock:							'4'
	ctrl, alt, meta:					none
}

key NUMPAD_5 {
	label, number:					  '5'
	base:							   fallback DPAD_CENTER
	numlock:							'5'
	ctrl, alt, meta:					none
}

key NUMPAD_6 {
	label, number:					  '6'
	base:							   fallback DPAD_RIGHT
	numlock:							'6'
	ctrl, alt, meta:					none
}

key NUMPAD_7 {
	label, number:					  '7'
	base:							   fallback MOVE_HOME
	numlock:							'7'
	ctrl, alt, meta:					none
}

key NUMPAD_8 {
	label, number:					  '8'
	base:							   fallback DPAD_UP
	numlock:							'8'
	ctrl, alt, meta:					none
}

key NUMPAD_9 {
	label, number:					  '9'
	base:							   fallback PAGE_UP
	numlock:							'9'
	ctrl, alt, meta:					none
}

key NUMPAD_LEFT_PAREN {
	label, number:					  '('
	base:							   '('
	ctrl, alt, meta:					none
}

key NUMPAD_RIGHT_PAREN {
	label, number:					  ')'
	base:							   ')'
	ctrl, alt, meta:					none
}

key NUMPAD_DIVIDE {
	label, number:					  '/'
	base:							   '/'
	ctrl, alt, meta:					none
}

key NUMPAD_MULTIPLY {
	label, number:					  '*'
	base:							   '*'
	ctrl, alt, meta:					none
}

key NUMPAD_SUBTRACT {
	label, number:					  '-'
	base:							   '-'
	ctrl, alt, meta:					none
}

key NUMPAD_ADD {
	label, number:					  '+'
	base:							   '+'
	ctrl, alt, meta:					none
}

key NUMPAD_DOT {
	label, number:					  '.'
	base:							   fallback FORWARD_DEL
	numlock:							'.'
	ctrl, alt, meta:					none
}

key NUMPAD_COMMA {
	label, number:					  ','
	base:							   ','
	ctrl, alt, meta:					none
}

key NUMPAD_EQUALS {
	label, number:					  '='
	base:							   '='
	ctrl, alt, meta:					none
}

key NUMPAD_ENTER {
	label:							  '\n'
	base:							   '\n' fallback ENTER
	ctrl, alt, meta:					none fallback ENTER
}

### Special keys on phones ###

key AT {
	label, number:					  '@'
	base:							   '@'
}

key STAR {
	label, number:					  '*'
	base:							   '*'
}

key POUND {
	label, number:					  '#'
	base:							   '#'
}

key PLUS {
	label, number:					  '+'
	base:							   '+'
}

### Non-printing keys ###

key ESCAPE {
	base:							   fallback BACK
	alt, meta:						  fallback HOME
	ctrl:							   fallback MENU
}

### Gamepad buttons ###

key BUTTON_A {
	base:							   fallback BACK
}

key BUTTON_B {
	base:							   fallback BACK
}

key BUTTON_C {
	base:							   fallback BACK
}

key BUTTON_X {
	base:							   fallback DPAD_CENTER
}

key BUTTON_Y {
	base:							   fallback DPAD_CENTER
}

key BUTTON_Z {
	base:							   fallback DPAD_CENTER
}

key BUTTON_L1 {
	base:							   none
}

key BUTTON_R1 {
	base:							   none
}

key BUTTON_L2 {
	base:							   none
}

key BUTTON_R2 {
	base:							   none
}

key BUTTON_THUMBL {
	base:							   fallback DPAD_CENTER
}

key BUTTON_THUMBR {
	base:							   fallback DPAD_CENTER
}

key BUTTON_START {
	base:							   fallback HOME
}

key BUTTON_SELECT {
	base:							   fallback MENU
}

key BUTTON_MODE {
	base:							   fallback MENU
}

key BUTTON_1 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_2 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_3 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_4 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_5 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_6 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_7 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_8 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_9 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_10 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_11 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_12 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_13 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_14 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_15 {
	base:							   fallback DPAD_CENTER
}

key BUTTON_16 {
	base:							   fallback DPAD_CENTER
}