Jump to content

Recommended Posts

I suppose the alpha keyboard behavior is not further customizable, right? Sticky modifiers sound neat, but I don't like the idea of getting auto-capitalization. I may be overthinking it since it's been a while since my last keyboard phone, but I want a hardware keyboard to get as far away from auto-correct and friends as possible.

  • Like 1
Link to post
Share on other sites

I recently found my old keymap files of the Droid 4. Those handle what characters are given out (i.e. o=o, alt+o = ö) and tell the keys how to behave.

A lot of information is found at the link(s) EskeRahn provided, thanks for that!

Here's the full keychar file, this is an alpha keyboard, so it should have a sticky behaviour for specific keys. However, I can't find proof in it. If somebody can provide me the keypad file(s) of the Pro 1, I could further look into it.
https://source.android.com/devices/input/key-character-map-files (top section) helps you locate the file (in this case omap4-keypad.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 ALPHA

### Basic QWERTY keys ###

key A {
    label:                              'A'
    base:                               'a'
    shift, capslock:                    'A'
    alt:                                '\u00e4'
    shift+alt:                          '\u00c4'
    ctrl, meta:                         none
}

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

key C {
    label:                              'C'
    base:                               'c'
    shift, capslock:                    'C'
    ctrl, alt, 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'
    shift+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'
    ctrl, alt, 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:                              'M'
    base:                               'm'
    shift, capslock:                    'M'
    ctrl, alt, meta:                    none
}

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

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

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

key Q {
    label:                              'Q'
    base:                               'q'
    shift, capslock:                    'Q'
    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, alt+shift:                     '\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:                                '\u00fc'
    shift+alt:                          '\u00dc'
    ctrl, meta:                         none
}

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

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

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

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

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

key 0 {
    label, number:                      '0'
    base:                               '0'
    shift:                              ')'
    alt:                                ']'
    shift+alt:                          '}'
    ctrl, meta:                         none
}

key 1 {
    label, number:                      '1'
    base:                               '1'
    shift:                              '!'
    ctrl, alt, meta:                    none
}

key 2 {
    label, number:                      '2'
    base:                               '2'
    shift:                              '@'
    ctrl, alt, meta:                    none
}

key 3 {
    label, number:                      '3'
    base:                               '3'
    shift:                              '#'
    ctrl, alt, meta:                    none
}

key 4 {
    label, number:                      '4'
    base:                               '4'
    shift:                              '$'
    ctrl, alt, meta:                    none
}

key 5 {
    label, number:                      '5'
    base:                               '5'
    shift:                              '%'
    ctrl, alt, meta:                    none
}

key 6 {
    label, number:                      '6'
    base:                               '6'
    shift:                              '^'
    ctrl, alt, meta:                    none
}

key 7 {
    label, number:                      '7'
    base:                               '7'
    shift:                              '&'
    ctrl, alt, meta:                    none
}

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

key 9 {
    label, number:                      '9'
    base:                               '9'
    shift:                              '('
    alt:                                '['
    shift+alt:                          '{'
    ctrl, meta:                         none
}

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:                              ';'
    alt:                                '<'
    ctrl, meta:                         none
}

key PERIOD {
    label, number:                      '.'
    base:                               '.'
    shift:                              ':'
    alt:                                '>'
    ctrl, meta:                         none
}

key SLASH {
    label, number:                      '/'
    base:                               '/'
    shift:                              '?'
    alt:                                '\\'
    shift+alt:                          '|'
    ctrl, meta:                         none
}

key GRAVE {
    label, number:                      '`'
    base:                               '`'
    shift:                              '~'
    ctrl, alt, meta:                    none
}

key MINUS {
    label, number:                      '-'
    base:                               '-'
    shift:                              '_'
    ctrl, alt, meta:                    none
}

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

key LEFT_BRACKET {
    label, number:                      '['
    base:                               '['
    shift:                              '['
    ctrl, alt, meta:                    none
}

key RIGHT_BRACKET {
    label, number:                      ']'
    base:                               ']'
    shift:                              ']'
    ctrl, alt, meta:                    none
}

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

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

key APOSTROPHE {
    label, number:                      '\''
    base:                               '\''
    shift:                              '"'
    alt:                                '`'
    shift+alt:                          '~'
    ctrl, meta:                         none
}

key MEDIA_EJECT {
    label:                              '\uEF01'
    base:                               '\uEF01'
    shift, capslock:                    '\uEF01'
    ctrl, alt, meta:                    '\uEF01'
}

### 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 ###

#(REMOVED)

 


By the way, with such a keypad file, you should also be able to set specific output phrases (i.e. e-mail adresses) for a shortcut (i.e. ctrl+1 or ctrl+alt+1). Needs to be tested though.



With the Keylayout file (omap4-keypad.kl), you can change the output of keys and i.e. change the ctrl to alt if you wish to. I'll not post it here since it doesn't have any useful information about this topic.

Edited by SchattengestaIt
Spoilered the fun.
  • Like 2
  • Thanks 1
Link to post
Share on other sites
  • 10 months later...

Any way to get sticky shift?

By sticky shift I mean, on  physical keyboard, press shift>take finger off shift>press a letter and you get the capital version of that letter and if you continue typing the other letters are lowercase (instead of having to press shift and that letter at the same time). Sticky fn would also be great.

I didn't find a solution on the forum and this would greatly improve speed and comfort since the keyboard is wide and you have to perform acrobatics for uppercase A,Q,Z or any letters on the left side (also, I am used to this function from my Priv 🙂 ).

  • Like 1
Link to post
Share on other sites

 

I have the same question under stock android. I have used cyanoged couple of years ago with my droids and got used to this typing.

I remember Slion saying "it is not possible to integrate sticky shift in stock android"??? I might have misunderstood.

Would be good to clarify!

Link to post
Share on other sites

@Rud LineageOS got Sticky so you might consider that.

But if on stock and rooted, it should be as simple as changing "Full" to "Alpha" for a kcm file, if I understood correctly what the ones that know what they are talking about are saying...

Link to post
Share on other sites
  • 5 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Terms