Android 11 Key Character Map vs Keylayout vs Whyred to Use Bépo
Fleetingandroid 11 key character map vs keylayout vs whyred bépo
Android:
- maps physical keys to keycodes using keylayouts (.kl files)
- maps keycodes to unicode characters using key character map (.kcm files)
After installing bépo-android, I found out that it was still writing in qwerty.
One of the tradeoff I had to make was to have the underlying key layout a QWERTY, that then generated bépo characters. This decision was due to the fact that we cannot attribute key names to all keys: ÉÀÈÊÇ, etc. don’t have key labels (found in KeycodeLabels.h or InputEventLabels.h depending on your AOSP version), so you can’t simply remap all keys in order to have a bépo key layout; you’d have holes in it. I therefore had to resort to using QWERTY as base, as it’s the one in Generic.kl.
So, bépo-android did
- use the default qwerty (.kl) file
- provide a bépo character map (.kcm)
I use a typematrix keyboard, logcat tells me
12-13 16:53:11.877 0 0 I usb 1-1 : New USB device found, idVendor=1e54, idProduct=2030
Reading https://source.android.com/docs/core/interaction/input/key-layout-files, I see I can provide a key layout in /system/usr/keylayout/Vendor_1e54_Product_2030.kl
Reading https://source.android.com/docs/core/interaction/input/key-character-map-files, I see I can provide a key character map in /system/usr/keychars/Vendor_1e54_Product_2030.kcm
Plugging the keyboard and looking at logcat, I can see
12-13 17:05:16.134 2217 2326 I EventHub: New device: id=43, fd=330, path='/dev/input/event10', name='TypeMatrix.com USB Keyboard', classes=0x80000121, configuration='', keyLayout='/system/usr/keylayout/Vendor_1e54_Product_2030.kl', keyCharacterMap='/system/usr/keychars/Vendor_1e54_Product_2030.kcm', builtinKeyboard=false,
Telling me that it reads those files for real. Also, after adding typos, it complains that it does not read them.
But, whatever .kl file it reads (Generic.kl or my custom one), the content of the .kcm appears to never be taken into account. I always fallback on the raw behavior of the keylayout file.
Therefore, let’s have a poor’s man solution and create a .kl file.
# 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.
#
# Emulator keyboard layout #1.
#
# This file is no longer used as the platform's default keyboard layout.
# Refer to Generic.kl instead.
#
key 399 GRAVE
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 158 BACK
key 230 SOFT_RIGHT
key 60 SOFT_LEFT
key 107 ENDCALL
key 62 ENDCALL
key 229 MENU
key 139 MENU
key 59 MENU
key 127 SEARCH
key 217 SEARCH
key 228 POUND
key 227 STAR
key 231 CALL
key 61 CTRL_RIGHT
key 232 DPAD_CENTER
key 108 DPAD_DOWN
key 103 DPAD_UP
key 102 HOME
key 105 DPAD_LEFT
key 106 DPAD_RIGHT
key 115 VOLUME_UP
key 114 VOLUME_DOWN
key 116 POWER
key 212 CAMERA
key 16 B
key 17 E
key 18 P
key 19 O
key 20 E
key 21 COMMA
key 22 V
key 23 D
key 24 L
key 25 J
key 26 LEFT_BRACKET
key 27 RIGHT_BRACKET
key 43 BACKSLASH
key 30 A
key 31 U
key 32 I
key 33 E
key 34 COMMA
key 35 C
key 36 T
key 37 S
key 38 R
key 39 N
key 40 M
key 14 DEL
key 44 A
key 45 Y
key 46 X
key 47 PERIOD
key 48 K
key 49 APOSTROPHE
key 50 Q
key 51 G
key 52 H
key 53 F
key 28 ENTER
key 56 ALT_LEFT
key 100 ALT_RIGHT
key 42 SHIFT_LEFT
key 54 SHIFT_RIGHT
key 15 TAB
key 57 SPACE
key 150 EXPLORER
key 155 ENVELOPE
key 12 MINUS
key 13 EQUALS
key 215 AT
# On an AT keyboard: ESC, F10
key 1 BACK
key 68 MENU
# App switch = Overview key
key 580 APP_SWITCH
# Media control keys
key 160 MEDIA_CLOSE
key 161 MEDIA_EJECT
key 163 MEDIA_NEXT
key 164 MEDIA_PLAY_PAUSE
key 165 MEDIA_PREVIOUS
key 166 MEDIA_STOP
key 167 MEDIA_RECORD
key 168 MEDIA_REWIND
key 142 SLEEP
key 581 STEM_PRIMARY
key 582 STEM_1
key 583 STEM_2
key 584 STEM_3
Writing this file, I realize this is barely usable.
Asking for help in https://github.com/anisse/bepo-android/issues/8
a deeper exploration
Anisse very kindly answered me and asked for more information. Therefore, here is what I can tell.
He asked for the logcat logs. I assume that he wants to find out what keylayout and key character map are setup. Therefore, to avoid any misunderstandings, I removed my attempts at providing those so that it falls back on the generic ones.
clk android adb logcat -d|uncolor|grep -E 'KeyCharacterMap|KeyLayoutMap|Keyboard|TypeMatrix'
12-18 11:46:05.689 0 0 I usb 1-1 : Product: USB Keyboard
12-18 11:46:05.689 0 0 I usb 1-1 : Manufacturer: TypeMatrix.com
12-18 11:46:05.714 0 0 I input : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.0/0003:1E54:2030.000B/input/input19
12-18 11:46:05.772 0 0 I hid-generic 0003: 1E54:2030.000B: input,hidraw0: USB HID v1.10 Keyboard [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input0
12-18 11:46:05.807 0 0 I input : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.1/0003:1E54:2030.000C/input/input20
12-18 11:46:05.872 0 0 I hid-generic 0003: 1E54:2030.000C: input,hidraw1: USB HID v1.10 Device [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input1
12-18 11:46:09.899 2218 2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 11:46:09.904 2218 2323 I EventHub: New device: id=20, fd=325, path='/dev/input/event9', name='TypeMatrix.com USB Keyboard', classes=0x80000083, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 11:46:09.904 2218 2323 I InputReader: Device added: id=20, eventHubId=20, name='TypeMatrix.com USB Keyboard', descriptor='37bdb20fbb08be6dfed9189927bb1d23f8daa007',sources=0x80000101
12-18 11:46:09.942 2218 2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 11:46:09.952 2218 2323 I EventHub: New device: id=21, fd=333, path='/dev/input/event10', name='TypeMatrix.com USB Keyboard', classes=0x80000121, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 11:46:09.953 2218 2323 I InputReader: Device added: id=21, eventHubId=21, name='TypeMatrix.com USB Keyboard', descriptor='fb198ba3ff3e1f7fc99e621c028849c7fc05afb0',sources=0x01000311
12-18 11:46:09.985 4453 4453 I PCKeyboard: onConfigurationChanged()
12-18 11:46:10.340 4453 4453 I PCKeyboard: onConfigurationChanged()
Anisse said something interesting with regards to the language.
Do you see the physical keyboard in the android settings ? Can you change its keymap to another (a system one) ?
— https://github.com/anisse/bepo-android/issues/8#issuecomment-1855386052
So, here are the experiments, with the screenshots.
- plug the keyboard
- press “bépo”
This is as expected
- click on the configuration notification
- it can see my keyboard
- let’s change the layout
- let’s try again to write “bépo”
Nothing changed.
- try to move to French
- test
As Anisse implicitly suggested, there is actually something going on here.
- test using some special characters, like the key row with numbers
This suggests that there is no kcm at hand, only a layout.
Let’s try changing the layouts of the virtual keyboards as well, as suggested in the updated bepo page.
Dans Android, la disposition du clavier physique dépend du clavier virtuel sélectionné. Si vous avez plusieurs claviers virtuels, ou un clavier virtuels avec plusieurs langues, il faudra configurer la disposition pour chaque langue de chaque clavier
- go back to “French (bépo)”
- select the first one
- configure it with bépo
- test it
The virtual keyboard is in “bépo”, but the physical keyboard still writes “qwer” instead.
Let’s try to look at the logcat to find out if there is anything new now.
clk android adb logcat -d|uncolor|grep -E 'KeyCharacterMap|KeyLayoutMap|Keyboard|TypeMatrix'
12-18 12:11:09.824 0 0 I usb 1-1 : Product: USB Keyboard
12-18 12:11:09.824 0 0 I usb 1-1 : Manufacturer: TypeMatrix.com
12-18 12:11:09.848 0 0 I input : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.0/0003:1E54:2030.000F/input/input23
12-18 12:11:09.907 0 0 I hid-generic 0003: 1E54:2030.000F: input,hidraw0: USB HID v1.10 Keyboard [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input0
12-18 12:11:09.938 0 0 I input : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.1/0003:1E54:2030.0010/input/input24
12-18 12:11:09.951 2218 2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 12:11:09.956 2218 2323 I EventHub: New device: id=24, fd=328, path='/dev/input/event9', name='TypeMatrix.com USB Keyboard', classes=0x80000083, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 12:11:09.962 2218 2323 I InputReader: Device added: id=24, eventHubId=24, name='TypeMatrix.com USB Keyboard', descriptor='37bdb20fbb08be6dfed9189927bb1d23f8daa007',sources=0x80000101
12-18 12:11:09.992 2218 2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 12:11:09.993 0 0 I hid-generic 0003: 1E54:2030.0010: input,hidraw1: USB HID v1.10 Device [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input1
12-18 12:11:09.996 2218 2323 I EventHub: New device: id=25, fd=333, path='/dev/input/event10', name='TypeMatrix.com USB Keyboard', classes=0x80000121, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 12:11:10.005 2218 2323 I InputReader: Device added: id=25, eventHubId=25, name='TypeMatrix.com USB Keyboard', descriptor='fb198ba3ff3e1f7fc99e621c028849c7fc05afb0',sources=0x01000311
12-18 12:11:10.102 10106 10106 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=en_AU extraValue=TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable
12-18 12:11:10.102 10106 10106 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=hu_ZZ extraValue=AsciiCapable,SupportTouchPositionCorrection,EmojiCapable
12-18 12:11:10.183 10106 10106 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=en_AU extraValue=TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable
12-18 12:11:10.183 10106 10106 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=hu_ZZ extraValue=AsciiCapable,SupportTouchPositionCorrection,EmojiCapable
There is this new line about “KeyboardLayoutSet not found, use QWERTY”. Could that be it ?
Since Assine appears to use GBoard, let’s try to install it to find out whether installing it helps.
It does not provide any way to be configured in bépo
And even in French, it still writes “qwer”
And what about logcat?
clk android adb logcat -d|uncolor|grep -E 'KeyCharacterMap|KeyLayoutMap|Keyboard|TypeMatrix'
12-18 12:21:21.064 0 0 I usb 1-1 : Product: USB Keyboard
12-18 12:21:21.064 0 0 I usb 1-1 : Manufacturer: TypeMatrix.com
12-18 12:21:21.094 0 0 I input : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.0/0003:1E54:2030.0013/input/input27
12-18 12:21:21.154 0 0 I hid-generic 0003: 1E54:2030.0013: input,hidraw0: USB HID v1.10 Keyboard [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input0
12-18 12:21:21.186 0 0 I input : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.1/0003:1E54:2030.0014/input/input28
12-18 12:21:21.244 0 0 I hid-generic 0003: 1E54:2030.0014: input,hidraw1: USB HID v1.10 Device [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input1
12-18 12:21:25.277 2218 2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 12:21:25.283 2218 2323 I EventHub: New device: id=28, fd=331, path='/dev/input/event9', name='TypeMatrix.com USB Keyboard', classes=0x80000083, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 12:21:25.291 2218 2323 I InputReader: Device added: id=28, eventHubId=28, name='TypeMatrix.com USB Keyboard', descriptor='37bdb20fbb08be6dfed9189927bb1d23f8daa007',sources=0x80000101
12-18 12:21:25.326 2218 2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 12:21:25.332 2218 2323 I EventHub: New device: id=29, fd=338, path='/dev/input/event10', name='TypeMatrix.com USB Keyboard', classes=0x80000121, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 12:21:25.358 2218 2323 I InputReader: Device added: id=29, eventHubId=29, name='TypeMatrix.com USB Keyboard', descriptor='fb198ba3ff3e1f7fc99e621c028849c7fc05afb0',sources=0x01000311
12-18 12:21:25.381 11326 11326 I GoogleInputMethodService: GoogleInputMethodService.discardAllKeyboardViewAndInputView():1733 discardAllKeyboardViewAndInputView()
12-18 12:21:25.382 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jeu
12-18 12:21:25.382 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jeu
12-18 12:21:25.384 11326 11372 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214026 -> 0_resource_name_obfuscated : WaitTime = 1 ms : RunTime = 1 ms
12-18 12:21:25.391 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jkm
12-18 12:21:25.391 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jkm
12-18 12:21:25.392 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jom
12-18 12:21:25.392 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jom
12-18 12:21:25.393 11326 11326 I KeyboardModeManager: KeyboardModeManager.setKeyboardViewHolderProvider():569 setInputView() : supportsOneHandedMode=true
12-18 12:21:25.394 11326 11326 I NormalModeController: NormalModeController.getKeyboardBodyViewHolderPaddingBottom():89 currentPrimeKeyboardType:SOFT systemPaddingBottom:-1
12-18 12:21:25.394 11326 11326 I KeyboardModeManager: KeyboardModeManager.setKeyboardViewHolderProvider():559 setInputView() : entry=qpu{languageTag=fr-FR, variant=azerty, hasLocalizedResources=true, conditionCacheKey=_device=phone_device_size=default_enable_dynamic_diacritic_key=false_enable_more_candidates_view_for_multilingual=false_enable_nav_redesign_for_expression=false_enable_navbar_motion=false_enable_number_row=false_enable_preemptive_decode=true_enable_secondary_symbols=false_expressions=normal_four_or_more_letter_rows=false_keyboard_mode=normal_language=fr-FR_orientation=portrait_physical_keyboard=nokeys_rtl_layout=false_show_secondary_digits=true_show_suggestions=true_split_with_duplicate_keys=true_variant=azerty, imeDef.stringId=ime_french, imeDef.className=com.google.android.apps.inputmethod.libs.latin5.LatinIme, imeDef.languageTag=fr}
12-18 12:21:25.394 11326 11371 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214039 -> 0_resource_name_obfuscated : WaitTime = 1 ms : RunTime = 0 ms
12-18 12:21:25.405 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jeu.
12-18 12:21:25.405 11326 11369 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214032 -> 0_resource_name_obfuscated : WaitTime = 1 ms : RunTime = 0 ms
12-18 12:21:25.405 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jkm.
12-18 12:21:25.405 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jom.
12-18 12:21:25.454 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jeu
12-18 12:21:25.454 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jeu
12-18 12:21:25.457 11326 11364 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214026 -> 0_resource_name_obfuscated : WaitTime = 0 ms : RunTime = 2 ms
12-18 12:21:25.458 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jkm
12-18 12:21:25.458 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jkm
12-18 12:21:25.459 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jom
12-18 12:21:25.459 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jom
12-18 12:21:25.463 11326 11326 I StyledKeyboardTheme: StyledKeyboardTheme.<init>():116 Pref: [], themeName: [assets:theme_package_metadata_google_blue_dark.binarypb], darkMode: [true], cacheKey: [builtin_google_blue_dark.binarypb]
12-18 12:21:25.463 11326 11326 I KeyboardThemeProvider: KeyboardThemeProvider.applyKeyboardTheme():27 Apply keyboard theme: theme_border_bottom4dp_stylesheet_dark_phone_350_builtin_google_blue_dark.binarypb_port
12-18 12:21:25.466 11326 11370 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214039 -> 0_resource_name_obfuscated : WaitTime = 6 ms : RunTime = 1 ms
12-18 12:21:25.468 11326 11365 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214032 -> 0_resource_name_obfuscated : WaitTime = 8 ms : RunTime = 1 ms
12-18 12:21:25.523 11326 11326 I KeyboardHeightUtil: KeyboardHeightUtil.getKeyboardHeightRatio():176 systemKeyboardHeightRatio:1.000000.
12-18 12:21:25.536 11326 11326 I GoogleInputMethodService: GoogleInputMethodService.discardAllKeyboardViewAndInputView():1733 discardAllKeyboardViewAndInputView()
12-18 12:21:25.536 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jeu
12-18 12:21:25.536 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jeu
12-18 12:21:25.537 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jkm
12-18 12:21:25.537 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jkm
12-18 12:21:25.537 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jom
12-18 12:21:25.537 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jom
12-18 12:21:25.538 11326 11369 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214026 -> 0_resource_name_obfuscated : WaitTime = 0 ms : RunTime = 1 ms
12-18 12:21:25.538 11326 11326 I KeyboardModeManager: KeyboardModeManager.setKeyboardViewHolderProvider():569 setInputView() : supportsOneHandedMode=true
12-18 12:21:25.539 11326 11369 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214032 -> 0_resource_name_obfuscated : WaitTime = 1 ms : RunTime = 1 ms
12-18 12:21:25.539 11326 11326 I NormalModeController: NormalModeController.getKeyboardBodyViewHolderPaddingBottom():89 currentPrimeKeyboardType:SOFT systemPaddingBottom:-1
12-18 12:21:25.540 11326 11369 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214039 -> 0_resource_name_obfuscated : WaitTime = 1 ms : RunTime = 1 ms
12-18 12:21:25.540 11326 11326 I KeyboardModeManager: KeyboardModeManager.setKeyboardViewHolderProvider():559 setInputView() : entry=qpu{languageTag=fr-FR, variant=azerty, hasLocalizedResources=true, conditionCacheKey=_device=phone_device_size=default_enable_dynamic_diacritic_key=false_enable_more_candidates_view_for_multilingual=false_enable_nav_redesign_for_expression=false_enable_navbar_motion=false_enable_number_row=false_enable_preemptive_decode=true_enable_secondary_symbols=false_expressions=normal_four_or_more_letter_rows=false_keyboard_mode=normal_language=fr-FR_orientation=portrait_physical_keyboard=qwerty_rtl_layout=false_show_secondary_digits=true_show_suggestions=true_split_with_duplicate_keys=true_variant=azerty, imeDef.stringId=ime_french, imeDef.className=com.google.android.apps.inputmethod.libs.latin5.LatinIme, imeDef.languageTag=fr}
12-18 12:21:25.548 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jeu.
12-18 12:21:25.548 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jkm.
12-18 12:21:25.549 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jom.
12-18 12:21:25.550 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onFailure():537 Failed to load KeyboardGroupManager in jeu.
12-18 12:21:25.550 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onFailure():537 Failed to load KeyboardGroupManager in jkm.
12-18 12:21:25.550 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onFailure():537 Failed to load KeyboardGroupManager in jom.
It shows much more stuff, but nothing that appears useful.