Ich mag das Tastaturlayout auf dem Mac: Cmd (Strg) unter dem Daumen und die Möglichkeit, ohne Schamanismus das Verhalten von CapsLock direkt in den Einstellungen zu ändern. Das gleiche Ergebnis wird unter Linux leicht über setxkbmap
die Konsole oder beispielsweise gnome-tweak-tool
über die Benutzeroberfläche erzielt . Aber was ist, wenn die Tastatur eine Verbindung zu Android herstellt?

In Android gibt es verschiedene Möglichkeiten, eine externe Tastatur anzupassen:
- Installieren einer Tastatur eines Drittanbieters. Zum Beispiel Externer Tastatur-Helfer .
- / kl kcm ( root). , , .
- , .
. — . .
.
Key Layout
Key layout (.kl) (Linux Key Code), .. , , (Android Key), .. TAB, ENTER F. - . , , , , Gamepad Tester.
Key Character Map
Key Character Map (.kcm) , , English(US).
4.1 Android . Settings -> Language & input -> Physical keyboard
. , , " ".
:
- Esc CapsLock.
- Ctrl/Win/Alt Win/Alt/Ctrl Alt/PrintScreen/Ctrl Ctrl/Alt/Ctrl .
- Alt+Tab Ctrl+Tab.
- Ctrl+Shift+3.
- Win+Space.
- .
.. ( Ctrl CapsLock, Vim?), " ", apk-. custom-keyboard-layout — Android.
git clone git@github.com:ris58h/custom-keyboard-layout.git
app/src/main/AndroidManifest.xml
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ris58h.custom_keyboard_layout">
<application android:label="@string/app_name">
<receiver
android:name=".InputDeviceReceiver"
android:label="@string/keyboard_layouts_label">
<intent-filter>
<action android:name="android.hardware.input.action.QUERY_KEYBOARD_LAYOUTS" />
</intent-filter>
<meta-data
android:name="android.hardware.input.metadata.KEYBOARD_LAYOUTS"
android:resource="@xml/keyboard_layouts" />
</receiver>
</application>
</manifest>
reciever
. , ( InputDeviceReceiver
) — , . reciever
, app/src/main/res/xml/keyboard_layouts.xml
:
<?xml version="1.0" encoding="utf-8"?>
<keyboard-layouts xmlns:android="http://schemas.android.com/apk/res/android">
<keyboard-layout
android:name="keyboard_layout_en_us"
android:keyboardLayout="@raw/keyboard_layout_en_us"
android:label="@string/keyboard_layout_en_us_label" />
</keyboard-layouts>
— keyboard_layout_en_us
.
app/src/main/res/raw/keyboard_layout_en_us.kcm
, :
type OVERLAY
, , - Generic.kcm. .. — .
Key Layout . kcm-, , , Ctrl Alt kl-. : map
kl- kcm-.
keyboard_layout_en_us.kcm
:
type OVERLAY
map key 58 ESCAPE
map key 29 META_LEFT
map key 56 CTRL_LEFT
map key 125 ALT_LEFT
map key 99 ALT_RIGHT
map key 100 CTRL_RIGHT
key TAB {
label: '\t'
base: '\t'
ctrl: fallback APP_SWITCH
}
key 3 {
label: '3'
base: '3'
shift: '#'
ctrl+shift: fallback SYSRQ
}
, Win+Space — .
, English(US), kcm- , . . keyboard_layout_russian.kcm, app/src/main/res/raw/
, , app/src/main/res/xml/keyboard_layouts.xml
:
<?xml version="1.0" encoding="utf-8"?>
<keyboard-layouts xmlns:android="http://schemas.android.com/apk/res/android">
<keyboard-layout
android:name="keyboard_layout_en_us"
android:keyboardLayout="@raw/keyboard_layout_en_us"
android:label="@string/keyboard_layout_en_us_label" />
<keyboard-layout
android:name="keyboard_layout_ru"
android:keyboardLayout="@raw/keyboard_layout_ru"
android:label="@string/keyboard_layout_ru_label" />
</keyboard-layouts>
keyboard_layout_ru_label
app/src/main/res/values/strings.xml
.
, , . '3', , :
key 3 {
label: '3'
base: '3'
shift: '\u2116'
ralt: '#'
ctrl+shift: fallback SYSRQ
}
Vendor_17ef_Product_6048.
Wir sammeln und installieren unsere Anwendung. Der einfachste Weg, dies zu tun, ist mit Android Studio, das der offiziellen Dokumentation folgt .
Wenn alles richtig gemacht wurde, Settings -> Language & input -> Physical keyboard
erscheinen unsere Layouts und in der Liste der Anwendungen - Custom Keyboard Layout
.
Fazit
Die Anpassung einer externen Tastatur ohne Root ist möglich. Nicht alle Wunschliste sind erreichbar: Das Wechseln der Sprache unter Win + Space hat nicht funktioniert, aber es kann ein Firmware-Problem sein.
Der Artikel ist absichtlich kurz - alle Details finden Sie auf den Links.