I am trying to edit keylayout for my PS3 bluetooth keyboard in my HTC HD2 Android 4.0.4 using tytung NexusHD2 ROM v2.9a
due to the Fn keys are simulate PS3 controler buttoms, i want to set the Fn+up, down, left, right as pgup, pgdn, home, end
i get the scancode as the code below using Testkey.apk
i write a file "Vendor_054c_Product_05af" according to my bluetooth keyboard in /proc/bus/input/devices
and i paste in /system/usr/keylayout and set permission -rw-r--r--
but it never works no matter i change
the keycode still catch the build-in Logitech, PS3 and XBOX controller keylayout
is anyone can help me out
Code:
# Copyright (C) 2011 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.
#
# Sony Playstation(R)3 Bluetooth Wireless Keyboard with Pointing Stick
#
# key 0x124 DPAD_UP
# key 0x125 DPAD_RIGHT
# key 0x126 DPAD_DOWN
# key 0x127 DPAD_LEFT
key 0x124 PAGE_UP
key 0x125 MOVE_END
key 0x126 PAGE_DOWN
key 0x127 MOVE_HOME
# key 304 Square
# key 305 Cross
# key 306 Circle
# key 307 Triangle
# key 308 L1
# key 309 R1
# key 310 L2
# key 311 R2
# key 312 Select
# key 313 Start
# key 314 L3
# key 315 R3
# key 316 BUTTON_MODE
re
daviking222 said:
I am trying to edit keylayout for my PS3 bluetooth keyboard in my HTC HD2 Android 4.0.4 using tytung NexusHD2 ROM v2.9a
due to the Fn keys are simulate PS3 controler buttoms, i want to set the Fn+up, down, left, right as pgup, pgdn, home, end
i get the scancode as the code below using Testkey.apk
i write a file "Vendor_054c_Product_05af" according to my bluetooth keyboard in /proc/bus/input/devices
and i paste in /system/usr/keylayout and set permission -rw-r--r--
but it never works no matter i change
the keycode still catch the build-in Logitech, PS3 and XBOX controller keylayout
is anyone can help me out
Code:
# Copyright (C) 2011 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.
#
# Sony Playstation(R)3 Bluetooth Wireless Keyboard with Pointing Stick
#
# key 0x124 DPAD_UP
# key 0x125 DPAD_RIGHT
# key 0x126 DPAD_DOWN
# key 0x127 DPAD_LEFT
key 0x124 PAGE_UP
key 0x125 MOVE_END
key 0x126 PAGE_DOWN
key 0x127 MOVE_HOME
# key 304 Square
# key 305 Cross
# key 306 Circle
# key 307 Triangle
# key 308 L1
# key 309 R1
# key 310 L2
# key 311 R2
# key 312 Select
# key 313 Start
# key 314 L3
# key 315 R3
# key 316 BUTTON_MODE
Click to expand...
Click to collapse
FpseCE
http://www.youtube.com/watch?v=mH_NBKtj0R8
Related
Hello! Is there any way to put a direct shortcut to activesync via bluetooth?
I mean, not a shortcut to activesync then I need to click tools/connect overt bt. What I would like is a direct shortcut so when i click it it directly makes the connection.
Thx in advance for any advice =)
I don't know of such a commandline switch, but you could help yourself out with using a macro tool like MortRunner. There you can save a macro set including stylus taps etc.
This is how I did:
Make a shortcut to: \windows\repllog.exe
Open ActiveSync, tools, options, options.
Do the setting: "When cradled enable PC sync using this connection"
And choose "bluetooth".
Now run the shortcut you made earlier and your device should connect directly via bluetooth.
Mind though that if you connect your device via USB after making theese settings they will change back to USB and you will have to change them back manually again.
This is how I did:
Make a shortcut to: \windows\repllog.exe
Open ActiveSync, tools, options, options.
Do the setting: "When cradled enable PC sync using this connection"
And choose "bluetooth".
Now run the shortcut you made earlier and your device should connect directly via bluetooth.
Mind though that if you connect your device via USB after making theese settings they will change back to USB and you will have to change them back manually again.
Great!!! It works like a charm!!! I was searching for such a shortcut too.
Thanks a lot!
Bye,
Isidoro
Thanks, also. Graet idea... Congratulations
thx a lot for the hint! works like a charm! just perfect thx again!
thanks
MortScript Method
Here is a MortScript method. Obviously this is an old post and a WM 6.5 and 7 version would be nice. I don't have phones running those however. I hope I added enough documentation to this script that anyone can figure it out and post and update.
Code:
# BlueSync 1.0 by Xamfap, Free under the GNU General Public License.
#
# BlueSync makes two assumputions:
#
# A) You keep BlueTooth enabled on your Windows Mobile phone. With BlueTooth enabled
# and your device disconnected and set to undiscoverable you will not use extra
# battery power.
#
# B) You have already established a BlueTooth sync relationship with a PC.
#
#
# To use BlueSync:
#
# 1) Install MortScript to use this file.
#
# 2) Install This code in a text file on your WM 6.1 Device named
# \Windows\Start Menu\BlueSync.mscr
#
# 3) In the start menu you can now choose BlueSync to connect and
# disconnect your bluetooth device.
ErrorLevel( "Warn" )
my_program = "\Windows\Start Menu\Programs\ActiveSync.lnk"
# Verify the program or link exists.
#
If( NOT FileExists( my_program ) )
Message( "Could not find ActiveSync. Edit the my_program variable." )
Message( "Written for WM 6.1. Verify the Macro section is correct for you also." )
Exit
EndIf
# Launch ActiveSync if it is not already Running.
#
If( NOT WndExists( "ActiveSync" ) )
Run( my_program )
WaitFor( "ActiveSync", 5 )
If( NOT WndExists( "ActiveSync" ) )
Message( "ActiveSync did not launch after 5 Seconds. Giving up." )
Exit
EndIf
Minimize( "ActiveSync" )
EndIf
### MACRO SECTION ###
#
# It is likely that the use of Macros is not very portable and also not going to
# work at all in any future version of Windows Mobile when the menus are changed.
# For that reason I have included the docs on all Macros here so anyone can easily
# pick this up and modify it as needed:
#
# SendSpecial [ ( window title [ , Ctrl?, Shift? [, Alt? ] ] ) ]
# Activates the given window and sends the given
# special character. If no window title is given,
# the currently active window is used. Ctrl?,
# Shift?, and Alt? are switches for the
# corresponding keys. If the parameter is TRUE,
# the key is pressed with the special character.
# There are there special characters:
#
# CR.............................Carriage return
# Tab............................Tabulator
# Esc............................Escape
# Space..........................Space
# Backspace......................Remove character left to the
# cursor (”?”)
# Delete.........................Remove the character right to
# the cursor („Del“)
# Insert........................ "Ins.” (usually toggles between
# overwrite and insert mode)
# Up/Down/Left/Right.............Direction pad to the corresponding
# direction
# Home.......................... "Home“, to the beginning of the
# line or document
# End........................... "Ende, the the end of the line or
# document
# PageUp/PageDown................Page up / down
# LeftSoft/RightSoft.............Display buttons“ on Smartphones
# and PPCs since WM5
# Win............................"Windows“ key on Smartphones and
# PPCs since WM5 (Start menu)
# Context........................"Context menu“ on PCs and Smartphones
# /PPCs since WM5
#
# Examples:
#
# SendCR( "ERROR" )
# SendDown
# SendHome( "",0,1 ) (highlight to beginning of line)
#
#
#
# These are the Macros that trigger a bluetooth connect or disconnect
# on a phone with an existing BlueTooth Enabled Radio on WM 6.1
#
#
SendRightSoft( "ActiveSync" )
SendUp( "ActiveSync" )
SendCR( "ActiveSync" )
# Minimize ActiveSync as we've done our magic and want the Today Screen.
#
Minimize( "ActiveSync" )
Quick and dirty modified split_bootimg.pl for splitting our signed boot images.
This will strip the first 256bytes (the signature) from the image.
Advice, this will ruin unsigned boot images, if you are not a competent developer leave th alone, if you are competent
make backups before using.
#!/usr/bin/perl
######################################################################
#
# File : split_bootimg.pl
# Author(s) : William Enck <[email protected]>
# Description : Split appart an Android boot image created
# with mkbootimg. The format can be found in
# android-src/system/core/mkbootimg/bootimg.h
#
# Thanks to alansj on xda-developers.com for
# identifying the format in bootimg.h and
# describing initial instructions for splitting
# the boot.img file.
#
# Last Modified : Tue Dec 2 23:36:25 EST 2008
# By : William Enck <[email protected]>
#
# Copyright (c) 2008 The Pennsylvania State University
# Systems and Internet Infrastructure Security Laboratory
#
# 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.
#
######################################################################
#
# Modified for signed boot images, no longer compatible with
# unsigned images. ~jcase
#
# Modded by a friend of AndIRC
#
######################################################################
Nice Job thanks 4 this!
Sent from my ADR6400L using XDA Premium App
tanks d000d
Thank you jcase
Sent from my ADR6400L using XDA Premium App
sadly, this script can not work on galaxy note GT-N7000
Hi
I've got a question. How to connect blade (on 2.2 froyo) to ad-hoc wirless?
Probably must change a "wpa_supplicant" file (and probably other's simmilar), but i don't know how
This is my "wpa_supplicant" (viewed by normal notepad) :
Code:
# Note: All file paths in this configuration file should use full (absolute,
# not relative to working directory) path in order to allow working directory
# to be changed. This can happen if wpa_supplicant is run in the background.
# Whether to allow wpa_supplicant to update (overwrite) configuration
#
# This option can be used to allow wpa_supplicant to overwrite configuration
# file whenever configuration is changed (e.g., new network block is added with
# wpa_cli or wpa_gui, or a password is changed). This is required for
# wpa_cli/wpa_gui to be able to store the configuration changes permanently.
# Please note that overwriting configuration file will remove the comments from
# it.
update_config=1
# global configuration (shared by all network blocks)
#
# Parameters for the control interface. If this is specified, wpa_supplicant
# will open a control interface that is available for external programs to
# manage wpa_supplicant. The meaning of this string depends on which control
# interface mechanism is used. For all cases, the existance of this parameter
# in configuration is used to determine whether the control interface is
# enabled.
#
# For UNIX domain sockets (default on Linux and BSD): This is a directory that
# will be created for UNIX domain sockets for listening to requests from
# external programs (CLI/GUI, etc.) for status information and configuration.
# The socket file will be named based on the interface name, so multiple
# wpa_supplicant processes can be run at the same time if more than one
# interface is used.
# /var/run/wpa_supplicant is the recommended directory for sockets and by
# default, wpa_cli will use it when trying to connect with wpa_supplicant.
#
# Access control for the control interface can be configured by setting the
# directory to allow only members of a group to use sockets. This way, it is
# possible to run wpa_supplicant as root (since it needs to change network
# configuration and open raw sockets) and still allow GUI/CLI components to be
# run as non-root users. However, since the control interface can be used to
# change the network configuration, this access needs to be protected in many
# cases. By default, wpa_supplicant is configured to use gid 0 (root). If you
# want to allow non-root users to use the control interface, add a new group
# and change this value to match with that group. Add users that should have
# control interface access to this group. If this variable is commented out or
# not included in the configuration file, group will not be changed from the
# value it got by default when the directory or socket was created.
#
# When configuring both the directory and group, use following format:
# DIR=/var/run/wpa_supplicant GROUP=wheel
# DIR=/var/run/wpa_supplicant GROUP=0
# (group can be either group name or gid)
#
ctrl_interface=DIR=/data/misc/wifi/wpa_supplicant GROUP=wifi
# IEEE 802.1X/EAPOL version
# wpa_supplicant is implemented based on IEEE Std 802.1X-2004 which defines
# EAPOL version 2. However, there are many APs that do not handle the new
# version number correctly (they seem to drop the frames completely). In order
# to make wpa_supplicant interoperate with these APs, the version number is set
# to 1 by default. This configuration value can be used to set it to the new
# version (2).
# eapol_version=1
# AP scanning/selection
# By default, wpa_supplicant requests driver to perform AP scanning and then
# uses the scan results to select a suitable AP. Another alternative is to
# allow the driver to take care of AP scanning and selection and use
# wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association
# information from the driver.
# 1: wpa_supplicant initiates scanning and AP selection
# 0: driver takes care of scanning, AP selection, and IEEE 802.11 association
# parameters (e.g., WPA IE generation); this mode can also be used with
# non-WPA drivers when using IEEE 802.1X mode; do not try to associate with
# APs (i.e., external program needs to control association). This mode must
# also be used when using wired Ethernet drivers.
# 2: like 0, but associate with APs using security policy and SSID (but not
# BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to
# enable operation with hidden SSIDs and optimized roaming; in this mode,
# the network blocks in the configuration file are tried one by one until
# the driver reports successful association; each network block should have
# explicit security policy (i.e., only one option in the lists) for
# key_mgmt, pairwise, group, proto variables
# ap_scan=1
# EAP fast re-authentication
# By default, fast re-authentication is enabled for all EAP methods that
# support it. This variable can be used to disable fast re-authentication.
# Normally, there is no need to disable this.
# fast_reauth=1
# Driver interface parameters
# This field can be used to configure arbitrary driver interace parameters. The
# format is specific to the selected driver interface. This field is not used
# in most cases.
#driver_param="field=value"
# Maximum lifetime for PMKSA in seconds; default 43200
#dot11RSNAConfigPMKLifetime=43200
# Threshold for reauthentication (percentage of PMK lifetime); default 70
#dot11RSNAConfigPMKReauthThreshold=70
# Timeout for security association negotiation in seconds; default 60
#dot11RSNAConfigSATimeout=60
Sorry for my bad english.
I very needed internet in ad-hoc mode. So, anybody help me ?
wifi ad hoc is not supported by zte blade official rom even by changing wpa_supplicant this will crash your wifi.............
maybe the modded supplicant is not compatible with stock rom..........
change your rom to any cm7 and than change its wpa_supplicant to /system/bin than only the wifi adhoc will work
I compiled additional modules for the tf101 (android 4.0.3) for gamepad support.
I used [GUIDE] Compile the stock android kernel
Unfortunately I cannot post in development so I post it here...
The modules:
ff-memles.ko
hid-dr.ko (for chinese controllers such as Speedlink)
hid_logitech.ko (for F710 on DirectInput, XInput is in xpad)
xpad.ko
Also included correct mappings for:
Vendor_046d_Product_c219.kl: Logitech F710 on DirectInput
Vendor_0079_Product_0006.kl: for chinese controllers such as Speedlink Strike gamepad
Install:
You should copy the *.ko files to e.g. /sytem/lib/modules
and copy the *.kl to /system/usr/keylayout/
So open terminal:
su
mount -o remount,rw /system
(copy the files using "cp <path to ko> /system/lib/modules)
Script to insmod after reboot:
echo "#!/system/bin/sh" >> /system/etc/install-recovery.sh
echo "insmod /system/lib/modules/ff-memless.ko" >> /system/etc/install-recovery.sh
echo "insmod /system/lib/modules/hid-dr.ko" >> /system/etc/install-recovery.sh
echo "insmod /system/lib/modules/hid_logitech.ko" >> /system/etc/install-recovery.sh
echo "insmod /system/lib/modules/xpad.ko" >> /system/etc/install-recovery.sh
chmod 777 /system/etc/install-recovery.sh
I've tried to install the modules on my TF300T, but it doesn't work ...
on insmod xpad.ko it says "failed (Invalid argument)". Can you help me?
I was able to take the Vendor_0079_Product_0006.kl file only, threw it in the right folder and set permissions, rebooted, and now the controller works great on Dead Trigger (it's a no-name branded Chinese controller). Didn't have to mess with the .ko file, and this worked on Jellybean
SaschaG82 said:
I've tried to install the modules on my TF300T, but it doesn't work ...
on insmod xpad.ko it says "failed (Invalid argument)". Can you help me?
Click to expand...
Click to collapse
Well this was posted in the TF101 forum so I wouldn't imagine it would work on your TF300T.....
Great, jus copy the logitech kl file into the folder, change the permission
And it works on my minix x7 too
Thanks!
Hm... why this thing doesn't work on my TF101 with Logitech F710?
---------- Post added at 12:35 AM ---------- Previous post was at 12:29 AM ----------
Oh... there was truble with permissions. It is ok now. Thanks for files.
thanks man finally i could play asphalt 8 with my chinese gamepad , i love you
PoweRoy said:
I compiled additional modules for the tf101 (android 4.0.3) for gamepad support.
I used [GUIDE] Compile the stock android kernel
Unfortunately I cannot post in development so I post it here...
The modules:
ff-memles.ko
hid-dr.ko (for chinese controllers such as Speedlink)
hid_logitech.ko (for F710 on DirectInput, XInput is in xpad)
xpad.ko
Also included correct mappings for:
Vendor_046d_Product_c219.kl: Logitech F710 on DirectInput
Vendor_0079_Product_0006.kl: for chinese controllers such as Speedlink Strike gamepad
Install:
You should copy the *.ko files to e.g. /sytem/lib/modules
and copy the *.kl to /system/usr/keylayout/
So open terminal:
su
mount -o remount,rw /system
(copy the files using "cp <path to ko> /system/lib/modules)
Script to insmod after reboot:
echo "#!/system/bin/sh" >> /system/etc/install-recovery.sh
echo "insmod /system/lib/modules/ff-memless.ko" >> /system/etc/install-recovery.sh
echo "insmod /system/lib/modules/hid-dr.ko" >> /system/etc/install-recovery.sh
echo "insmod /system/lib/modules/hid_logitech.ko" >> /system/etc/install-recovery.sh
echo "insmod /system/lib/modules/xpad.ko" >> /system/etc/install-recovery.sh
chmod 777 /system/etc/install-recovery.sh
Click to expand...
Click to collapse
Thanx man, this was very helpfull!
I bought a 10 dollar gamepad for my tablet and I just could not get it to work. With your files placed in to the right directory. It was like magic, because the gamepad is working great now! So Thankyou :laugh::good:
Hey i was going use Speedlink xeox wireless Mi4 and i came across your post,when as s
espionage724 said:
I was able to take the Vendor_0079_Product_0006.kl file only, threw it in the right folder and set permissions, rebooted, and now the controller works great on Dead Trigger (it's a no-name branded Chinese controller). Didn't have to mess with the .ko file, and this worked on Jellybean
Click to expand...
Click to collapse
Hey i was going use Speedlink xeox wireless with Mi4 and i came across your post,when as say you set permissions to the .kl ,what permissions did you set?Im using root explorer.
how to compile the module with terminal???
hello i am new at this how do i set the permissions to read write? please help add me on skype and lets spread knowlege untraxxx is my skype please add me guys
PlayStation 4 Controller Key Layout File
Hi,
I created key layout file for DualShock4 controller. Before it was impossible to play FPP games, the camera movement was binded to triggers as default, triangle was on L1. The Circle, Cross and Square where shifted CW. Thumbstick buttons were binded to Start and Select.
File Wireless_Controller.kl this is how controller is recognized.
It should be put to location:
Code:
/system/usr/keylayout/Wireless_Controller.kl
Most important step is to set correct permissions, same as other files in that location.
Code:
# Copyright (C) 2016 Jacob Maximilian Fober
#
# Licensed under the Creative Commons License, Version 4.0 BY-SA (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://creativecommons.org/licenses/by-sa/4.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.
#
# Sony Playstation(R)4 Wireless Controller
#
key 312 BUTTON_SELECT
key 313 BUTTON_START
key 305 BUTTON_A
key 306 BUTTON_B
key 304 BUTTON_X
key 307 BUTTON_Y
key 308 BUTTON_L1
key 309 BUTTON_R1
key 310 BUTTON_L2
key 311 BUTTON_R2
key 314 BUTTON_THUMBL
key 315 BUTTON_THUMBR
# PS key
key 316 HOME
# Left Analog Stick
axis 0x00 X
axis 0x01 Y
# Right Analog Stick
axis 0x02 Z
axis 0x05 RZ
# DPAD
axis 0x10 HAT_X
axis 0x11 HAT_Y
# L2 trigger
axis 0x03 LTRIGGER
# R2 trigger
axis 0x04 RTRIGGER
# Touchpad button
key 317 DPAD_CENTER
I'm new on this forum and I can't attach files. So you need to create your own with ISO-8859-1 coding page and with Android, Linux, OS X breaking line symbol (\n).
*[EDIT] I attach .kl file here:
Keycodes not showing on USB hid controller - layout problem?
Hello,
sorry if cross-posting. I am investigating an issue about a Bluetooth HID controller where the joysticks work, the DPAD too, but the button don't. Any suggestion on the following topics would be welcome:
- how does the pairing process associate a device with a .kl file in the /system/usr/keylayout
- how can I check every button pressed on the HID controller (at the moment no button works, not on key event, not on KeyTest app, ABXY, L1 L2, LR1 and LR2 never show any activation
- if there is a problem with that specific Android version 4.2.2
Some HW info:
Model N9500
Android 4.2.2
Build number N9500_20131101
Kernel 3.4.5
Enjoy your day, and thanks, xgiannak
Controller:
STK-7002 Bluetooth Game Controller
Can someone please guide me how toge this to work on LeEco Le 2 Oreo Rom.
I have the same gamepad (dragon rising) but cant get it to work on my device.
Providing the drivers and a walkthrough will help.
I enabled usb host mode, but I would prefer to use dvorak. I tried http://forum.xda-developers.com/showthread.php?t=1336114 but it didn't work. It may just be for Bluetooth keyboards. I'll keep looking, though it may be time to just get a hard dvorak usb keyboard.
That thread does have the correct way to change any keyboard layout.
The file you want is probably /system/usr/keylayout/qwerty.kl if this is the only keyboard you will ever use.
qwerty.kl is the default.
Using the actual device-specific file is a better way to do this.
If you will look at a logcat when you plug in a keyboard you will see something similar.
Code:
W/KeyCharacterMap( 8641): Error loading keycharmap file '/system/usr/keychars/HID_04d9:1203.kcm.bin'. hw.keyboards.65539.devname='HID 04d9:1203'
Although this will tell you the keychar mapping file (which you don't need to change)
it also will tell you what keylayout file to make, in this case HID_04d9:1203.kl
Done/Works
It took a while to find that. qtADB puts all warnings in hard to read yellow/orange.
Code:
09:15:08.038 Warning KeyCharacterMap 9044 Can't open keycharmap file
09:15:08.038 Warning KeyCharacterMap 9044 Error loading keycharmap file '/system/usr/keychars/Chicony_USB_Gaming_Keyboard_Pro.kcm.bin'. hw.keyboards.196611.devname='Chicony USB Gaming Keyboard Pro'
09:15:08.038 Warning KeyCharacterMap 9044 Using default keymap: /system/usr/keychars/qwerty.kcm.bin
Yeah, I wouldn't have guessed that one. I was trying USB vendor and product ids. I copied 'qwerty.kcm.bin' to 'Chicony_USB_Gaming_Keyboard_Pro.kcm.bin', and changed the 'Vendor_06a3_Product_8000.kl' to 'Chicony_USB_Gaming_Keyboard_Pro.kl'.
Code:
09:47:58.831 Error KeyLayoutMap 1004 /system/usr/keylayout/Chicony_USB_Gaming_Keyboard_Pro.kl:57: expected keycode, got 'CTRL_LEFT'
At least errors are in bright red, easy to spot. Aparently, there is no "CTRL_LEFT". Changed to "SYM" like in qwerty.kl.
Here's the file in case anybody else wants to avoid changing "CTRL_LEFT" to "SYM".
Code:
key 1 BACK # ESCAPE
key 2 1
key 3 2
key 4 3
key 5 4
key 6 5
key 7 6
key 8 7
key 9 8
key 10 9
key 11 0
key 12 LEFT_BRACKET
key 13 RIGHT_BRACKET
key 14 DEL
key 15 TAB
key 16 APOSTROPHE
key 17 COMMA
key 18 PERIOD
key 19 P
key 20 Y
key 21 F
key 22 G
key 23 C
key 24 R
key 25 L
key 26 SLASH
key 27 EQUALS
key 28 ENTER
key 29 SYM # CONTROL_LEFT
key 30 A
key 31 O
key 32 E
key 33 U
key 34 I
key 35 D
key 36 H
key 37 T
key 38 N
key 39 S
key 40 MINUS
key 41 GRAVE
key 42 SHIFT_LEFT
key 43 BACKSLASH
key 44 SEMICOLON
key 45 Q
key 46 J
key 47 K
key 48 X
key 49 B
key 50 M
key 51 W
key 52 V
key 53 Z
key 54 SHIFT_RIGHT
key 55 STAR # NUMPAD_MULTIPLY
key 56 ALT_LEFT
key 57 SPACE
# key 58 # CAPS_LOCK
# key 59 # F1
# key 60 # F2
# key 61 # F3
# key 62 # F4
# key 63 # F5
# key 64 # F6
# key 65 # F7
# key 66 # F8
# key 67 # F9
# key 68 # F10
# key 69 # NUM_LOCK
# key 70 # SCROLL_LOCK
key 71 7 # NUMPAD_7
key 72 8 # NUMPAD_8
key 73 9 # NUMPAD_9
key 74 MINUS # NUMPAD_SUBTRACT
key 75 4 # NUMPAD_4
key 76 5 # NUMPAD_5
key 77 6 # NUMPAD_6
key 78 PLUS # NUMPAD_ADD
key 79 1 # NUMPAD_1
key 80 2 # NUMPAD_2
key 81 3 # NUMPAD_3
key 82 0 # NUMPAD_0
key 83 PERIOD # NUMPAD_DOT
# key 87 # F11
# key 88 # F12
key 96 ENTER # NUMPAD_ENTER
key 97 SYM # CONTROL_RIGHT
key 98 SLASH # NUMPAD_DIVIDE
# key 99 # SYSRQ
key 100 ALT_RIGHT
key 102 HOME
key 103 DPAD_UP # UP_ARROW
key 104 LEFT_NEXTPAGE # PAGE_UP
key 105 DPAD_LEFT # LEFT_ARROW
key 106 DPAD_RIGHT # RIGHT_ARROW
# key 107 # END
key 108 DPAD_DOWN # DOWN_ARROW
key 109 LEFT_PREVPAGE # PAGE_DOWN
# key 110 # INSERT
# key 111 # DELETE
key 113 MUTE
key 114 VOLUME_DOWN
key 115 VOLUME_UP
# key 119 # BREAK
# key 125 # LEFT_WINDOWS
# key 126 # RIGHT_WINDOWS
key 127 MENU # APPLICATION
# key 128 # BOOKMARK
key 129 POWER
# key 130 # SLEEP
# key 131 # WAKE
key 155 ENVELOPE
key 164 MEDIA_PLAY_PAUSE
# key 171 # MUSIC
key 172 HOME
key 217 SEARCH
Yup, that is correct.
The PgUp => LEFT_NEXTPAGE and PgDn => LEFT_PREVPAGE
That way the keyboard buttons work like you'd expect on regular apps.
Then you need to remap the side buttons.
You want whatever key you want to go to the next page to be using LEFT_PREVPAGE.
You want whatever key you want to go to the previous page to be using LEFT_NEXTPAGE.
See: http://forum.xda-developers.com/showpost.php?p=24632564&postcount=7
If you want to prevent the arrow keys from getting all funny when you put the Nook in landscape,
then you can modify services.jar
Load the patch from the sig to somewhere, remount /system, ADB pull system/framework/services.jar
Code:
apktool d services.jar \services
mergesmali \services\smali\com\android\server\KeyInputQueue.smali \somewhere\KeyInputQueue.smali
apktool b \services services.jar
ADB push it back, reboot