Loading packages/InputDevices/res/raw/keyboard_layout_serbian_latin.kcm 0 → 100644 +350 −0 Original line number Original line Diff line number Diff line # Copyright 2024 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. # # Serbian (Latin) keyboard layout. # type OVERLAY map key 12 SLASH map key 21 Z map key 44 Y map key 53 MINUS map key 86 PLUS ### ROW 1 key GRAVE { label: '\u0327' base: '\u0327' shift: '~' } key 1 { label: '1' base: '1' shift: '!' ralt: '~' } key 2 { label: '2' base: '2' shift: '\u0022' ralt: '\u030C' } key 3 { label: '3' base: '3' shift: '#' ralt: '\u0302' } key 4 { label: '4' base: '4' shift: '$' ralt: '\u0306' } key 5 { label: '5' base: '5' shift: '%' ralt: '\u030A' } key 6 { label: '6' base: '6' shift: '&' ralt: '\u0328' } key 7 { label: '7' base: '7' shift: '/' ralt: '`' } key 8 { label: '8' base: '8' shift: '(' ralt: '\u0307' } key 9 { label: '9' base: '9' shift: ')' ralt: '\u0301' } key 0 { label: '0' base: '0' shift: '=' ralt: '\u030B' } key SLASH { label: '\'' base: '\'' shift: '?' ralt: '\u0308' } key EQUALS { label: '+' base: '+' shift: '*' ralt: '\u0327' } ### ROW 2 key Q { label: 'Q' base, capslock+shift: 'q' shift, capslock: 'Q' ralt: '\\' } key W { label: 'W' base, capslock+shift: 'w' shift, capslock: 'W' ralt: '|' } key E { label: 'E' base, capslock+shift: 'e' shift, capslock: 'E' ralt: '\u20ac' } key R { label: 'R' base, capslock+shift: 'r' shift, capslock: 'R' } key T { label: 'T' base, capslock+shift: 't' shift, capslock: 'T' } key Z { label: 'Z' base, capslock+shift: 'z' shift, capslock: 'Z' } key U { label: 'U' base, capslock+shift: 'u' shift, capslock: 'U' } key I { label: 'I' base, capslock+shift: 'i' shift, capslock: 'I' } key O { label: 'O' base, capslock+shift: 'o' shift, capslock: 'O' } key P { label: 'P' base, capslock+shift: 'p' shift, capslock: 'P' } key LEFT_BRACKET { label: '\u0160' base, capslock+shift: '\u0161' shift, capslock: '\u0160' ralt: '\u00f7' } key RIGHT_BRACKET { label: '\u0110' base, capslock+shift: '\u0111' shift, capslock: '\u0110' ralt: '\u00d7' } ### ROW 3 key A { label: 'A' base, capslock+shift: 'a' shift, capslock: 'A' } key S { label: 'S' base, capslock+shift: 's' shift, capslock: 'S' } key D { label: 'D' base, capslock+shift: 'd' shift, capslock: 'D' } key F { label: 'F' base, capslock+shift: 'f' shift, capslock: 'F' ralt: '[' } key G { label: 'G' base, capslock+shift: 'g' shift, capslock: 'G' ralt: ']' } key H { label: 'H' base, capslock+shift: 'h' shift, capslock: 'H' } key J { label: 'J' base, capslock+shift: 'j' shift, capslock: 'J' } key K { label: 'K' base, capslock+shift: 'k' shift, capslock: 'K' ralt: '\u0142' } key L { label: 'L' base, capslock+shift: 'l' shift, capslock: 'L' ralt: '\u0141' } key SEMICOLON { label: '\u010c' base, capslock+shift: '\u010d' shift, capslock: '\u010c' } key APOSTROPHE { label: '\u0106' base, capslock+shift: '\u0107' shift, capslock: '\u0106' ralt: '\u00df' } key BACKSLASH { label: '\u017d' base, capslock+shift: '\u017e' shift, capslock: '\u017d' ralt: '\u00a4' } ### ROW 4 key PLUS { label: '<' base: '<' shift: '>' } key Y { label: 'Y' base, capslock+shift: 'y' shift, capslock: 'Y' } key X { label: 'X' base, capslock+shift: 'x' shift, capslock: 'X' } key C { label: 'C' base, capslock+shift: 'c' shift, capslock: 'C' } key V { label: 'V' base, capslock+shift: 'v' shift, capslock: 'V' ralt: '@' } key B { label: 'B' base, capslock+shift: 'b' shift, capslock: 'B' ralt: '{' } key N { label: 'N' base, capslock+shift: 'n' shift, capslock: 'N' ralt: '}' } key M { label: 'M' base, capslock+shift: 'm' shift, capslock: 'M' ralt: '\u00a7' } key COMMA { label: ',' base: ',' shift: ';' ralt: '<' } key PERIOD { label: '.' base: '.' shift: ':' ralt: '>' } key MINUS { label: '-' base: '-' shift: '_' } No newline at end of file packages/InputDevices/res/values/strings.xml +6 −0 Original line number Original line Diff line number Diff line Loading @@ -152,4 +152,10 @@ <!-- Thai (Pattachote variant) keyboard layout label. [CHAR LIMIT=35] --> <!-- Thai (Pattachote variant) keyboard layout label. [CHAR LIMIT=35] --> <string name="keyboard_layout_thai_pattachote">Thai (Pattachote)</string> <string name="keyboard_layout_thai_pattachote">Thai (Pattachote)</string> <!-- Serbian (Latin) keyboard layout label. [CHAR LIMIT=35] --> <string name="keyboard_layout_serbian_latin">Serbian (Latin)</string> <!-- Montenegrin (Latin) keyboard layout label. [CHAR LIMIT=35] --> <string name="keyboard_layout_montenegrin_latin">Montenegrin (Latin)</string> </resources> </resources> packages/InputDevices/res/xml/keyboard_layouts.xml +14 −0 Original line number Original line Diff line number Diff line Loading @@ -332,4 +332,18 @@ android:keyboardLayout="@raw/keyboard_layout_thai_pattachote" android:keyboardLayout="@raw/keyboard_layout_thai_pattachote" android:keyboardLocale="th-Thai" android:keyboardLocale="th-Thai" android:keyboardLayoutType="extended" /> android:keyboardLayoutType="extended" /> <keyboard-layout android:name="keyboard_layout_serbian_latin" android:label="@string/keyboard_layout_serbian_latin" android:keyboardLayout="@raw/keyboard_layout_serbian_latin" android:keyboardLocale="sr-Latn-RS" android:keyboardLayoutType="qwertz" /> <keyboard-layout android:name="keyboard_layout_montenegrin_latin" android:label="@string/keyboard_layout_montenegrin_latin" android:keyboardLayout="@raw/keyboard_layout_serbian_latin" android:keyboardLocale="cnr-Latn-ME" android:keyboardLayoutType="qwertz" /> </keyboard-layouts> </keyboard-layouts> Loading
packages/InputDevices/res/raw/keyboard_layout_serbian_latin.kcm 0 → 100644 +350 −0 Original line number Original line Diff line number Diff line # Copyright 2024 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. # # Serbian (Latin) keyboard layout. # type OVERLAY map key 12 SLASH map key 21 Z map key 44 Y map key 53 MINUS map key 86 PLUS ### ROW 1 key GRAVE { label: '\u0327' base: '\u0327' shift: '~' } key 1 { label: '1' base: '1' shift: '!' ralt: '~' } key 2 { label: '2' base: '2' shift: '\u0022' ralt: '\u030C' } key 3 { label: '3' base: '3' shift: '#' ralt: '\u0302' } key 4 { label: '4' base: '4' shift: '$' ralt: '\u0306' } key 5 { label: '5' base: '5' shift: '%' ralt: '\u030A' } key 6 { label: '6' base: '6' shift: '&' ralt: '\u0328' } key 7 { label: '7' base: '7' shift: '/' ralt: '`' } key 8 { label: '8' base: '8' shift: '(' ralt: '\u0307' } key 9 { label: '9' base: '9' shift: ')' ralt: '\u0301' } key 0 { label: '0' base: '0' shift: '=' ralt: '\u030B' } key SLASH { label: '\'' base: '\'' shift: '?' ralt: '\u0308' } key EQUALS { label: '+' base: '+' shift: '*' ralt: '\u0327' } ### ROW 2 key Q { label: 'Q' base, capslock+shift: 'q' shift, capslock: 'Q' ralt: '\\' } key W { label: 'W' base, capslock+shift: 'w' shift, capslock: 'W' ralt: '|' } key E { label: 'E' base, capslock+shift: 'e' shift, capslock: 'E' ralt: '\u20ac' } key R { label: 'R' base, capslock+shift: 'r' shift, capslock: 'R' } key T { label: 'T' base, capslock+shift: 't' shift, capslock: 'T' } key Z { label: 'Z' base, capslock+shift: 'z' shift, capslock: 'Z' } key U { label: 'U' base, capslock+shift: 'u' shift, capslock: 'U' } key I { label: 'I' base, capslock+shift: 'i' shift, capslock: 'I' } key O { label: 'O' base, capslock+shift: 'o' shift, capslock: 'O' } key P { label: 'P' base, capslock+shift: 'p' shift, capslock: 'P' } key LEFT_BRACKET { label: '\u0160' base, capslock+shift: '\u0161' shift, capslock: '\u0160' ralt: '\u00f7' } key RIGHT_BRACKET { label: '\u0110' base, capslock+shift: '\u0111' shift, capslock: '\u0110' ralt: '\u00d7' } ### ROW 3 key A { label: 'A' base, capslock+shift: 'a' shift, capslock: 'A' } key S { label: 'S' base, capslock+shift: 's' shift, capslock: 'S' } key D { label: 'D' base, capslock+shift: 'd' shift, capslock: 'D' } key F { label: 'F' base, capslock+shift: 'f' shift, capslock: 'F' ralt: '[' } key G { label: 'G' base, capslock+shift: 'g' shift, capslock: 'G' ralt: ']' } key H { label: 'H' base, capslock+shift: 'h' shift, capslock: 'H' } key J { label: 'J' base, capslock+shift: 'j' shift, capslock: 'J' } key K { label: 'K' base, capslock+shift: 'k' shift, capslock: 'K' ralt: '\u0142' } key L { label: 'L' base, capslock+shift: 'l' shift, capslock: 'L' ralt: '\u0141' } key SEMICOLON { label: '\u010c' base, capslock+shift: '\u010d' shift, capslock: '\u010c' } key APOSTROPHE { label: '\u0106' base, capslock+shift: '\u0107' shift, capslock: '\u0106' ralt: '\u00df' } key BACKSLASH { label: '\u017d' base, capslock+shift: '\u017e' shift, capslock: '\u017d' ralt: '\u00a4' } ### ROW 4 key PLUS { label: '<' base: '<' shift: '>' } key Y { label: 'Y' base, capslock+shift: 'y' shift, capslock: 'Y' } key X { label: 'X' base, capslock+shift: 'x' shift, capslock: 'X' } key C { label: 'C' base, capslock+shift: 'c' shift, capslock: 'C' } key V { label: 'V' base, capslock+shift: 'v' shift, capslock: 'V' ralt: '@' } key B { label: 'B' base, capslock+shift: 'b' shift, capslock: 'B' ralt: '{' } key N { label: 'N' base, capslock+shift: 'n' shift, capslock: 'N' ralt: '}' } key M { label: 'M' base, capslock+shift: 'm' shift, capslock: 'M' ralt: '\u00a7' } key COMMA { label: ',' base: ',' shift: ';' ralt: '<' } key PERIOD { label: '.' base: '.' shift: ':' ralt: '>' } key MINUS { label: '-' base: '-' shift: '_' } No newline at end of file
packages/InputDevices/res/values/strings.xml +6 −0 Original line number Original line Diff line number Diff line Loading @@ -152,4 +152,10 @@ <!-- Thai (Pattachote variant) keyboard layout label. [CHAR LIMIT=35] --> <!-- Thai (Pattachote variant) keyboard layout label. [CHAR LIMIT=35] --> <string name="keyboard_layout_thai_pattachote">Thai (Pattachote)</string> <string name="keyboard_layout_thai_pattachote">Thai (Pattachote)</string> <!-- Serbian (Latin) keyboard layout label. [CHAR LIMIT=35] --> <string name="keyboard_layout_serbian_latin">Serbian (Latin)</string> <!-- Montenegrin (Latin) keyboard layout label. [CHAR LIMIT=35] --> <string name="keyboard_layout_montenegrin_latin">Montenegrin (Latin)</string> </resources> </resources>
packages/InputDevices/res/xml/keyboard_layouts.xml +14 −0 Original line number Original line Diff line number Diff line Loading @@ -332,4 +332,18 @@ android:keyboardLayout="@raw/keyboard_layout_thai_pattachote" android:keyboardLayout="@raw/keyboard_layout_thai_pattachote" android:keyboardLocale="th-Thai" android:keyboardLocale="th-Thai" android:keyboardLayoutType="extended" /> android:keyboardLayoutType="extended" /> <keyboard-layout android:name="keyboard_layout_serbian_latin" android:label="@string/keyboard_layout_serbian_latin" android:keyboardLayout="@raw/keyboard_layout_serbian_latin" android:keyboardLocale="sr-Latn-RS" android:keyboardLayoutType="qwertz" /> <keyboard-layout android:name="keyboard_layout_montenegrin_latin" android:label="@string/keyboard_layout_montenegrin_latin" android:keyboardLayout="@raw/keyboard_layout_serbian_latin" android:keyboardLocale="cnr-Latn-ME" android:keyboardLayoutType="qwertz" /> </keyboard-layouts> </keyboard-layouts>