├── .gitattributes ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.md ├── TODO ├── data ├── gnome-extension-45 │ ├── extension.js │ └── metadata.json ├── gnome-extension │ ├── extension.js │ └── metadata.json ├── keyd-application-mapper.1.gz ├── keyd.1.gz ├── keyd.compose └── unicode.txt ├── docs ├── CHANGELOG.md ├── DESIGN.md ├── keyd-application-mapper.scdoc └── keyd.scdoc ├── examples ├── capslock-esc-basic.conf ├── capslock-escape-with-vim-mode.conf ├── chromebook-linux.conf ├── extend-layer.conf ├── half-qwerty.conf ├── home-row-mods.conf ├── international-glyphs.conf ├── layer-carousel.conf ├── macos.conf ├── nav-layer.conf ├── shift-bar.conf └── simlayer.conf ├── keyd.service.in ├── layouts ├── af ├── al ├── am ├── ara ├── at ├── au ├── az ├── ba ├── bd ├── be ├── bg ├── br ├── brai ├── bt ├── bw ├── by ├── ca ├── cd ├── ch ├── cm ├── cn ├── colemak ├── cz ├── de ├── dk ├── dvorak ├── dz ├── ee ├── epo ├── es ├── et ├── fi ├── fo ├── fr ├── gb ├── ge ├── gh ├── gn ├── gr ├── graphite ├── graphite-angle-kp ├── hr ├── hu ├── id ├── ie ├── il ├── in ├── iq ├── ir ├── is ├── it ├── jp ├── jv ├── ke ├── kg ├── kh ├── kr ├── kz ├── la ├── latam ├── lk ├── lt ├── lv ├── ma ├── mao ├── md ├── me ├── mk ├── ml ├── mm ├── mn ├── mt ├── mv ├── my ├── ng ├── nl ├── no ├── np ├── ph ├── pk ├── pl ├── pt ├── ro ├── rs ├── ru ├── se ├── si ├── sk ├── sn ├── sy ├── tg ├── th ├── tj ├── tm ├── tr ├── tw ├── tz ├── ua ├── uz ├── vn ├── workman └── za ├── scripts ├── dump-xkb-config ├── generate_xcompose └── keyd-application-mapper ├── src ├── check.c ├── config.c ├── config.h ├── daemon.c ├── dbg.c ├── device.c ├── device.h ├── evloop.c ├── ext │ └── evdev-input-codes.h ├── ini.c ├── ini.h ├── ipc.c ├── keyboard.c ├── keyboard.h ├── keyd.c ├── keyd.h ├── keys.c ├── keys.h ├── log.c ├── log.h ├── macro.c ├── macro.h ├── monitor.c ├── string.c ├── string.h ├── unicode.c ├── unicode.h ├── util.c ├── vkbd.h └── vkbd │ ├── stdout.c │ ├── uinput.c │ ├── usb-gadget.c │ ├── usb-gadget.h │ ├── usb-gadget.md │ ├── usb-gadget.service.in │ └── usb-gadget.sh └── t ├── altgr-modifier-guard.t ├── chord-disambiguate.t ├── chord-double.t ├── chord-hold.t ├── chord.t ├── chord2.t ├── chord3.t ├── clear.t ├── composite.t ├── composite2.t ├── composite3.t ├── composite4.t ├── control.t ├── disarm.t ├── disarm2.t ├── disarm3.t ├── double-tap.t ├── keys.py ├── layer.t ├── layer1.t ├── layer2.t ├── layer3.t ├── layer4.t ├── layerm.t ├── layout-mods.t ├── layout-mods2.t ├── layout-seq.t ├── layout.t ├── layout2.t ├── macro-disarm.t ├── macro-hold-1.t ├── macro-hold-2.t ├── macro-hold.t ├── macro-nested.t ├── macro-unicode-2.t ├── macro-unicode.t ├── macro.t ├── meta.t ├── mod.t ├── mod2.t ├── mod3.t ├── oneshot+overload.t ├── oneshot-single-key.t ├── oneshot.t ├── oneshot10.t ├── oneshot11.t ├── oneshot12.t ├── oneshot14.t ├── oneshot2.t ├── oneshot3.t ├── oneshot4.t ├── oneshot5.t ├── oneshot6.t ├── oneshot9.t ├── oneshotm.t ├── oneshotn.t ├── oneshotn3.t ├── overload-expire.t ├── overload-expire2.t ├── overload-nested.t ├── overload-nested2.t ├── overload-oneshot.t ├── overload-same-key.t ├── overload-swap.t ├── overload.t ├── overload1.t ├── overload2.t ├── overload3.t ├── overload4.t ├── overload5.t ├── overload_2-2.t ├── overload_2.t ├── overload_3.t ├── run.sh ├── runner.py ├── swap-oneshot.t ├── swap-toggle.t ├── swap.t ├── swap2.t ├── swap3.t ├── swap4.t ├── swap5.t ├── swap6.t ├── swap8.t ├── swap9.t ├── test-io.c ├── test.conf ├── timeout-nested-1.t ├── timeout-nested-2.t ├── timeout-overloadt.t ├── timeout1.t ├── timeout2.t ├── timeout3.t ├── toggle-2.t ├── toggle.t └── toggle2.t /.gitattributes: -------------------------------------------------------------------------------- 1 | data/* -diff 2 | layouts/* -diff 3 | src/unicode.c -diff 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | *.swn 3 | *.swo 4 | *.out 5 | tags 6 | bin/ 7 | *.o 8 | *.gch 9 | __pycache__ 10 | test.log 11 | keyd.service 12 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | The best way to contribute is to file an issue with any bugs you find or any 2 | features you think belong in keyd. Small issues pertaining to things like 3 | compilation on different platforms can be submitted as PRs but please avoid 4 | sending in patches which change core functionality without filing an issue 5 | first. The key logic can be deceptively simple and contains a few subtleties 6 | that need to be managed properly. Additionally, I reserve the right to reject 7 | any features which I do not think belong in keyd. 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT/X Consortium License 2 | 3 | © 2020 Raheman Vaiya 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a 6 | copy of this software and associated documentation files (the "Software"), 7 | to deal in the Software without restriction, including without limitation 8 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | and/or sell copies of the Software, and to permit persons to whom the 10 | Software is furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 21 | DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | streamline test logic 2 | organize tests 3 | cleanup manpage 4 | [idea] tmux like layer timeouts 5 | improved mouse support (integrate moused?) 6 | multi-user support (remove keyd group) 7 | split up the man page + add FAQ 8 | add descriptor state + isolate descriptor logic 9 | -------------------------------------------------------------------------------- /data/gnome-extension-45/extension.js: -------------------------------------------------------------------------------- 1 | import * as Main from 'resource:///org/gnome/shell/ui/main.js'; 2 | import GLib from 'gi://GLib'; 3 | import Shell from 'gi://Shell'; 4 | import Gio from 'gi://Gio'; 5 | import { Extension } from 'resource:///org/gnome/shell/extensions/extension.js'; 6 | 7 | let file = Gio.File.new_for_path(makePipe()); 8 | let pipe = file.append_to_async(0, 0, null, on_pipe_open); 9 | 10 | function makePipe() { 11 | let runtime_dir = GLib.getenv('XDG_RUNTIME_DIR'); 12 | if (!runtime_dir) 13 | runtime_dir = '/run/user/'+new TextDecoder().decode( 14 | GLib.spawn_command_line_sync('id -u')[1] 15 | ).trim(); 16 | 17 | let path = runtime_dir + '/keyd.fifo'; 18 | GLib.spawn_command_line_sync('mkfifo ' + path); 19 | 20 | return path; 21 | } 22 | 23 | function send(msg) { 24 | if (!pipe) 25 | return; 26 | 27 | try { 28 | pipe.write(msg, null); 29 | } catch { 30 | log('pipe closed, reopening...'); 31 | pipe = null; 32 | file.append_to_async(0, 0, null, on_pipe_open); 33 | } 34 | } 35 | 36 | function on_pipe_open(file, res) { 37 | log('pipe opened'); 38 | pipe = file.append_to_finish(res); 39 | } 40 | 41 | export default class KeydExtension extends Extension { 42 | enable() { 43 | Shell.WindowTracker.get_default().connect('notify::focus-app', () => { 44 | const win = global.display.focus_window; 45 | const cls = win ? win.get_wm_class() : 'root'; 46 | const title = win ? win.get_title() : ''; 47 | 48 | send(`${cls} ${title}\n`); 49 | }); 50 | 51 | Main.layoutManager.connectObject( 52 | 'system-modal-opened', () => { 53 | send(`system-modal ${global.stage.get_title()}\n`); 54 | }, 55 | this 56 | ); 57 | 58 | GLib.spawn_command_line_async('keyd-application-mapper -d'); 59 | } 60 | 61 | disable() { 62 | GLib.spawn_command_line_async('pkill -f keyd-application-mapper'); 63 | } 64 | } 65 | 66 | -------------------------------------------------------------------------------- /data/gnome-extension-45/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "keyd", 3 | "description": "Used by keyd to obtain active window information.", 4 | "uuid": "keyd", 5 | "shell-version": [ "45", "46", "47", "48" ] 6 | } 7 | 8 | -------------------------------------------------------------------------------- /data/gnome-extension/extension.js: -------------------------------------------------------------------------------- 1 | const Shell = imports.gi.Shell; 2 | const GLib = imports.gi.GLib; 3 | const Gio = imports.gi.Gio; 4 | const Main = imports.ui.main; 5 | 6 | let file = Gio.File.new_for_path(makePipe()); 7 | let pipe = file.append_to_async(0, 0, null, on_pipe_open); 8 | 9 | function makePipe() { 10 | let runtime_dir = GLib.getenv('XDG_RUNTIME_DIR'); 11 | if (!runtime_dir) 12 | runtime_dir = '/run/user/'+new TextDecoder().decode( 13 | GLib.spawn_command_line_sync('id -u')[1] 14 | ).trim(); 15 | 16 | let path = runtime_dir + '/keyd.fifo'; 17 | GLib.spawn_command_line_sync('mkfifo ' + path); 18 | 19 | return path; 20 | } 21 | 22 | function send(msg) { 23 | if (!pipe) 24 | return; 25 | 26 | try { 27 | pipe.write(msg, null); 28 | } catch { 29 | log('pipe closed, reopening...'); 30 | pipe = null; 31 | file.append_to_async(0, 0, null, on_pipe_open); 32 | } 33 | } 34 | 35 | function on_pipe_open(file, res) { 36 | log('pipe opened'); 37 | pipe = file.append_to_finish(res); 38 | } 39 | 40 | function init() { 41 | return { 42 | enable: function() { 43 | Shell.WindowTracker.get_default().connect('notify::focus-app', () => { 44 | const win = global.display.focus_window; 45 | const cls = win ? win.get_wm_class() : 'root'; 46 | const title = win ? win.get_title() : ''; 47 | 48 | send(`${cls} ${title}\n`); 49 | }); 50 | 51 | Main.layoutManager.connectObject( 52 | 'system-modal-opened', () => { 53 | send(`system-modal ${global.stage.get_title()}\n`); 54 | }, 55 | this 56 | ); 57 | 58 | GLib.spawn_command_line_async('keyd-application-mapper -d'); 59 | }, 60 | 61 | disable: function() { 62 | GLib.spawn_command_line_async('pkill -f keyd-application-mapper'); 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /data/gnome-extension/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "keyd", 3 | "description": "Used by keyd to obtain active window information.", 4 | "uuid": "keyd", 5 | "shell-version": [ "42", "43", "44" ] 6 | } 7 | 8 | -------------------------------------------------------------------------------- /data/keyd-application-mapper.1.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rvaiya/keyd/f010d00d8469b90d59911086166e66dceb2dd70f/data/keyd-application-mapper.1.gz -------------------------------------------------------------------------------- /data/keyd.1.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rvaiya/keyd/f010d00d8469b90d59911086166e66dceb2dd70f/data/keyd.1.gz -------------------------------------------------------------------------------- /examples/capslock-esc-basic.conf: -------------------------------------------------------------------------------- 1 | # Usage: Place this file /etc/keyd/default.conf 2 | 3 | # Causes `capslock` to behave as `control` when pressed 4 | # and escape when tapped. Note that `control` is what 5 | # keyd regards as a 'modifier layer'. 6 | # See the man page for more details. 7 | 8 | [ids] 9 | 10 | * 11 | 12 | [main] 13 | 14 | capslock = overload(control, esc) 15 | -------------------------------------------------------------------------------- /examples/capslock-escape-with-vim-mode.conf: -------------------------------------------------------------------------------- 1 | # NOTE: to use this, rename this file to default.conf and put in /etc/keyd/ 2 | 3 | # Advanced use of capslock as a triple function key: 4 | # 5 | # - when 'capslock' is tapped (pressed + released), it behaves as ESC key 6 | # 7 | # - when 'capslock' is held, and used in combination with another key, it 8 | # behaves like a 'ctrl' key modifier (just like xcape) 9 | # 10 | # - when 'capslock' is held, and the 'space' key is tapped, we enter a 3rd 11 | # state for "VIM mode" where hjkl keys become arrow keys until capslock 12 | # is released. 13 | # 14 | [ids] 15 | * 16 | 17 | [main] 18 | 19 | capslock = overload(ctrl_vim, esc) 20 | 21 | # ctrl_vim modifier layer; inherits from 'Ctrl' modifier layer 22 | 23 | [ctrl_vim:C] 24 | 25 | space = swap(vim_mode) 26 | 27 | # vim_mode modifier layer; also inherits from 'Ctrl' modifier layer 28 | 29 | [vim_mode:C] 30 | 31 | h = left 32 | j = down 33 | k = up 34 | l = right 35 | # forward word 36 | w = C-right 37 | # backward word 38 | b = C-left 39 | -------------------------------------------------------------------------------- /examples/chromebook-linux.conf: -------------------------------------------------------------------------------- 1 | # NOTE: to use this, rename this file to default.conf or `your-chomebook-keyboard-name`.conf and put in /etc/keyd/ 2 | 3 | # This is an chromebook like configuration, this remaps function keys 1 through 10 to fall in line with the chromeos remapping 4 | # while still allowing for full access to standard linux functions that rely on those function keys, such as TTY access or 5 | # terminal programs 6 | 7 | # Using this on an chromebook that has been modified to run linux will make the function keys work as designed originally 8 | # for the most part, F4 and F5 are mapped differently due to limitations of `keyd` and lack of functional support for their features 9 | # in most linux desktop environments 10 | 11 | # pressing meta+Fn will trigger that FN key 12 | # pressing ctrl+alt+Fn will trigger that key stroke 13 | 14 | [ids] 15 | * 16 | 17 | ## Chromebook function keys 18 | [main] 19 | f1 = back 20 | f2 = forward 21 | f3 = refresh 22 | f4 = print 23 | f5 = A-tab 24 | f6 = brightnessdown 25 | f7 = brightnessup 26 | f8 = mute 27 | f9 = volumedown 28 | f10 = volumeup 29 | 30 | ## Allow F1-10 access through meta+fnX 31 | [meta] 32 | f1 = f1 33 | f2 = f2 34 | f3 = f3 35 | f4 = f4 36 | f5 = f5 37 | f6 = f6 38 | f7 = f7 39 | f8 = f8 40 | f9 = f9 41 | f10 = f10 42 | 43 | ## Allow TTY access 44 | [control+alt] 45 | f1 = C-A-f1 46 | f2 = C-A-f2 47 | f3 = C-A-f3 48 | f4 = C-A-f4 49 | f5 = C-A-f5 50 | f6 = C-A-f6 51 | f7 = C-A-f7 52 | f8 = C-A-f8 53 | f9 = C-A-f9 54 | f10 = C-A-f10 55 | left = home 56 | right = end 57 | 58 | [control+alt] 59 | up = home 60 | down = end 61 | 62 | [alt] 63 | backspace = delete 64 | up = pageup 65 | down = pagedown 66 | -------------------------------------------------------------------------------- /examples/extend-layer.conf: -------------------------------------------------------------------------------- 1 | # This example demonstrates how to implement a variant of the Extend layer. Notice how 2 | # you can pin the layer down with the space bar if you need to do complex operations 3 | # using the fingers of both hands. Vim users might prefer to bind left, down up and right 4 | # to h, j, k and l respectively. 5 | 6 | [ids] 7 | 8 | * 9 | 10 | [main] 11 | 12 | capslock = overload(extend, capslock) 13 | 14 | [extend] 15 | 16 | q = overload(alt, escape) 17 | y = pageup 18 | u = home 19 | i = up 20 | o = end 21 | p = insert 22 | a = leftcontrol 23 | s = leftshift 24 | d = leftmeta 25 | f = leftalt 26 | h = pagedown 27 | j = left 28 | k = down 29 | l = right 30 | semicolon = delete 31 | apostrophe = esc 32 | n = compose 33 | m = backspace 34 | comma = space 35 | dot = tab 36 | slash = enter 37 | space = overload(extend, capslock) 38 | -------------------------------------------------------------------------------- /examples/half-qwerty.conf: -------------------------------------------------------------------------------- 1 | # NOTE: to use this, rename this file to default.conf and put in /etc/keyd/ 2 | # 3 | # Half-QWERTY emulation example. This is useful for one-handed typing. 4 | 5 | [ids] 6 | 7 | * 8 | 9 | [main] 10 | 11 | # Maps capslock to escape when pressed and control when held. 12 | capslock = overload(control, esc) 13 | 14 | # Space becomes a modifier when pressed in combination with another key, 15 | # otherwise outputs a regular space character. When this modifier is used, the 16 | # keys are mirrored to the other half of the keyboard. 17 | space = overload(mirroring, space) 18 | 19 | # Single quote becomes Ctrl when combined. 20 | ' = overload(control, ') 21 | 22 | # Alt+Tab is a common combination for switcing windows. When typing with the 23 | # right hand it requires pressing space+[+Alt. Adding F12 as another Tab makes 24 | # it easier. 25 | f12 = tab 26 | 27 | [mirroring] 28 | 6 = 5 29 | 7 = 4 30 | 8 = 3 31 | 9 = 2 32 | 0 = 1 33 | - = ` 34 | 35 | h = g 36 | j = f 37 | k = d 38 | l = s 39 | semicolon = a 40 | 41 | y = t 42 | u = r 43 | i = e 44 | o = w 45 | p = q 46 | [ = tab 47 | ] = tab 48 | \ = esc 49 | 50 | n = b 51 | m = v 52 | , = c 53 | . = x 54 | / = z 55 | 56 | 1 = 0 57 | 2 = 9 58 | 3 = 8 59 | 4 = 7 60 | 5 = 6 61 | 62 | tab = delete 63 | q = p 64 | w = o 65 | e = i 66 | r = u 67 | t = y 68 | 69 | a = ; 70 | s = l 71 | d = k 72 | f = j 73 | g = h 74 | 75 | z = / 76 | x = . 77 | c = , 78 | v = m 79 | b = n 80 | 81 | # TODO: Map space+capslock to return. The naive approach below does not work. 82 | # capslock = return 83 | -------------------------------------------------------------------------------- /examples/home-row-mods.conf: -------------------------------------------------------------------------------- 1 | # This example demonstrates how to implement one of the variants of home row modifers. 2 | # Notice we use the one-shot-shift pattern. This is important to prevent shifting errors 3 | # caused by the necessary delay with which characters are emitted under overloadt (on 4 | # release, instead of on press). It is not recommended to use home-row shift for typing 5 | # for that reason. Home row modifiers are best suited for combinations (i.e., shortcuts). 6 | 7 | [ids] 8 | 9 | * 10 | 11 | [main] 12 | 13 | a = overloadt(control, a, 200) 14 | s = overloadt(shift, s, 200) 15 | d = overloadt(meta, d, 200) 16 | f = overloadt(alt, f, 200) 17 | j = overloadt(alt, j, 200) 18 | k = overloadt(meta, k, 200) 19 | l = overloadt(shift, l, 200) 20 | ; = overloadt(control, ;, 200) 21 | v = overloadt(altgr, v, 200) 22 | m = overloadt(altgr, m, 200) 23 | leftshift = oneshot(shift) 24 | rightshift = oneshot(shift) 25 | -------------------------------------------------------------------------------- /examples/international-glyphs.conf: -------------------------------------------------------------------------------- 1 | # This config demonstrates how international characters can be mapped using 2 | # keyd. It works by using the display server's (i.e wayland/X) compose key 3 | # functionality in conjunction with macros to generate the glyph of interest. 4 | 5 | # For this to work 'setxkbmap -option compose:menu' must be run after keyd has started. 6 | 7 | # A list of compose sequences can be found in /usr/share/X11/locale/en_US.UTF-8/Compose on most systems. 8 | 9 | [ids] 10 | 11 | * 12 | 13 | [main] 14 | 15 | rightalt = layer(dia) 16 | 17 | [dia] 18 | 19 | # Map o to ö 20 | o = macro(compose o ") 21 | 22 | # Map e to € 23 | e = macro(compose c =) 24 | -------------------------------------------------------------------------------- /examples/layer-carousel.conf: -------------------------------------------------------------------------------- 1 | # This example demostrates how to implement a layer carousel which behaves as follows: 2 | # - Hold space (numbers layer) 3 | # - Tap right shift (functions layer) 4 | # - Tap left shift (numbers layer) 5 | # - Tap left shift (symbols layer) 6 | # - Release space (main layer) 7 | # By using swap in our secondary layers, the layer held by space (as determined in the 8 | # main layer) is replaced and remains active until another swap takes place or the space 9 | # is eventually released, which brings us back to the main layer. 10 | 11 | [ids] 12 | 13 | * 14 | 15 | [main] 16 | 17 | space = overloadt(numbers, space, 200) 18 | 19 | [numbers] 20 | 21 | a = 1 22 | # Other numbers here. 23 | leftshift = overload(shift, swap(symbols)) 24 | rightshift = overload(shift, swap(functions)) 25 | 26 | [functions] 27 | 28 | a = f1 29 | # Other functions here. 30 | leftshift = overload(shift, swap(numbers)) 31 | rightshift = overload(shift, swap(symbols)) 32 | 33 | [symbols] 34 | 35 | a = grave 36 | # Other symbols here. 37 | leftshift = overload(shift, swap(functions)) 38 | rightshift = overload(shift, swap(numbers)) 39 | -------------------------------------------------------------------------------- /examples/nav-layer.conf: -------------------------------------------------------------------------------- 1 | # Goal: 2 | # 3 | # To create a vi like navigation layer accessible by holding capslock while holding capslock 4 | # otherwise behave like the control key (when held) and escape when tapped. 5 | # 6 | # In essence we want: 7 | # 8 | # - capslock+h = left 9 | # - capslock+j = down 10 | # - capslock+k = up 11 | # - capslock+l = right 12 | # 13 | # - capslock+shift+h = C-left 14 | # - capslock+shift+l = C-right 15 | # - capslock+shift+j = C-down 16 | # - capslock+shift+k = C-up 17 | # 18 | # - capslock = escape (when tapped) 19 | # 20 | # In all other instances capslock should behave as normal control: 21 | # 22 | # - capslock+a = C-a 23 | # - capslock+b = C-b 24 | # - capslock+c = C-c 25 | # ... 26 | # - capslock+shift+i = C-S-i 27 | # - capslock+shift+k = C-S-k 28 | # .... 29 | 30 | # This is achieved by creating a composite layer called [capslock+shift] 31 | # which is activated whenever capslock and shift are simultaneously 32 | # held. 33 | 34 | 35 | [ids] 36 | * 37 | 38 | [main] 39 | capslock = overload(capslock, esc) 40 | 41 | [capslock:C] 42 | h = left 43 | j = down 44 | k = up 45 | l = right 46 | 47 | # Activates when both capslock and shift is pressed 48 | [capslock+shift] 49 | h = C-left 50 | j = C-down 51 | k = C-up 52 | l = C-right 53 | 54 | -------------------------------------------------------------------------------- /examples/shift-bar.conf: -------------------------------------------------------------------------------- 1 | # This example demostrates how to use the space-bar as a shift key by: 2 | # 1. Holding shift 3 | # 2. Holding space 4 | # 3. Releasing shift 5 | # The space-bar will keep the shift layer active until your release it. The advanteage is 6 | # that you can type using the fingers of both hands freely. Consider it as an alternative 7 | # to caps-word mode (see issue #711). 8 | 9 | [ids] 10 | 11 | * 12 | 13 | [shift] 14 | 15 | space = overloadt(shift, space, 200) 16 | -------------------------------------------------------------------------------- /examples/simlayer.conf: -------------------------------------------------------------------------------- 1 | # This example demonstrates what is sometimes called a simlayer: when the layer is 2 | # activated, if no action is taken within a specified period of time, another action 3 | # takes place. This can be used, for example, to preserve the repeat action of the key 4 | # that is being overloaded (backspace in this case). 5 | 6 | [ids] 7 | 8 | * 9 | 10 | [main] 11 | 12 | backspace = timeout(overload(shortcuts, backspace), 500, backspace) 13 | 14 | [shortcuts] 15 | 16 | 1 = M-pageup 17 | 2 = M-pagedown 18 | # Other shortcuts here. 19 | -------------------------------------------------------------------------------- /keyd.service.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=key remapping daemon 3 | 4 | [Service] 5 | Type=simple 6 | ExecStart=@PREFIX@/bin/keyd 7 | 8 | [Install] 9 | WantedBy=multi-user.target 10 | -------------------------------------------------------------------------------- /layouts/af: -------------------------------------------------------------------------------- 1 | [af:layout] 2 | 3 | ' = گ 4 | , = و 5 | - = - 6 | . = . 7 | / = / 8 | 1 = ۱ 9 | 2 = ۲ 10 | 3 = ۳ 11 | 4 = ۴ 12 | 5 = ۵ 13 | 6 = ۶ 14 | 7 = ۷ 15 | 8 = ۸ 16 | 9 = ۹ 17 | ; = ک 18 | = = = 19 | [ = ج 20 | \ = \ 21 | ] = چ 22 | a = ش 23 | b = ذ 24 | c = ز 25 | d = ی 26 | e = ث 27 | f = ب 28 | g = ل 29 | h = ا 30 | i = ه 31 | j = ت 32 | k = ن 33 | l = م 34 | m = پ 35 | n = د 36 | o = خ 37 | p = ح 38 | q = ض 39 | r = ق 40 | s = س 41 | t = ف 42 | u = ع 43 | v = ر 44 | w = ص 45 | x = ط 46 | y = غ 47 | z = ظ 48 | shift = layer(af_shift) 49 | altgr = layer(af_altgr) 50 | 51 | [af_shift:S] 52 | ' = ؛ 53 | , = > 54 | - = ـ 55 | . = < 56 | / = ؟ 57 | 1 = ! 58 | 2 = ٬ 59 | 3 = ٫ 60 | 4 =  61 | 5 = ٪ 62 | 6 = × 63 | 7 = ، 64 | 8 = * 65 | ; = : 66 | = = + 67 | [ = } 68 | \ = | 69 | ] = { 70 | a = ؤ 71 | b = ‌ 72 | c = ژ 73 | d = ي 74 | e = ٍ 75 | f = إ 76 | g = أ 77 | h = آ 78 | i = ّ 79 | j = ة 80 | m = ء 81 | n = ٔ 82 | o = ] 83 | p = [ 84 | q = ْ 85 | r = ً 86 | s = ئ 87 | t = ُ 88 | u = َ 89 | v = ٰ 90 | w = ٌ 91 | x = ٓ 92 | y = ِ 93 | z = ك 94 | 95 | [af_altgr:G] 96 | ' = ګ 97 | . = ۇ 98 | / = ۉ 99 | 3 = # 100 | 8 = • 101 | 9 = ‎ 102 | [ = ځ 103 | ] = څ 104 | a = ښ 105 | b = ڈ 106 | c = ږ 107 | d = ى 108 | e = € 109 | f = ې 110 | g = ڷ 111 | h = ٱ 112 | i = ٕ 113 | j = ټ 114 | k = ڼ 115 | l = ں 116 | m = ٹ 117 | n = ډ 118 | r = ﴾ 119 | s = ۍ 120 | t = ﴿ 121 | u =  122 | v = ړ 123 | x = ڑ 124 | y =  125 | z = ے 126 | 127 | [af_altgr+af_shift] 128 | -------------------------------------------------------------------------------- /layouts/al: -------------------------------------------------------------------------------- 1 | [al:layout] 2 | 3 | ' = [ 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ë 18 | = = = 19 | [ = ç 20 | \ = ] 21 | ] = @ 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = z 47 | z = y 48 | shift = layer(al_shift) 49 | altgr = layer(al_altgr) 50 | 51 | [al_shift:S] 52 | ' = { 53 | , = ; 54 | - = _ 55 | . = : 56 | / = ? 57 | 1 = ! 58 | 2 = " 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = Ë 67 | = = + 68 | [ = Ç 69 | \ = } 70 | ] = ' 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Z 96 | z = Y 97 | 98 | [al_altgr:G] 99 | ' = ß 100 | , = < 101 | . = > 102 | 1 = ~ 103 | 7 = ` 104 | ; = $ 105 | [ = ÷ 106 | \ = ¤ 107 | ] = × 108 | a = æ 109 | b = { 110 | c = ¢ 111 | d = Đ 112 | e = € 113 | f = [ 114 | g = ] 115 | h = ħ 116 | i = → 117 | k = ł 118 | l = ł 119 | m = § 120 | n = } 121 | o = ø 122 | p = þ 123 | q = \ 124 | r = ¶ 125 | s = đ 126 | t = ŧ 127 | u = ↓ 128 | v = @ 129 | w = | 130 | x = » 131 | y = ← 132 | z = « 133 | 134 | [al_altgr+al_shift] 135 | , = × 136 | - = ¿ 137 | . = ÷ 138 | 2 = ⅛ 139 | 3 = £ 140 | 4 = $ 141 | 5 = ⅜ 142 | 6 = ⅝ 143 | 8 = ™ 144 | 9 = ± 145 | a = Æ 146 | b = ' 147 | c = © 148 | d = Ð 149 | e = € 150 | f = ª 151 | g = Ŋ 152 | h = Ħ 153 | i = ı 154 | k = & 155 | l = Ł 156 | m = º 157 | n = } 158 | o = Ø 159 | p = Þ 160 | q = Ω 161 | r = ® 162 | s = § 163 | t = Ŧ 164 | u = ↑ 165 | v = ` 166 | w = § 167 | x = > 168 | y = ¥ 169 | z = < 170 | -------------------------------------------------------------------------------- /layouts/am: -------------------------------------------------------------------------------- 1 | [am:layout] 2 | 3 | ' = ր 4 | , = խ 5 | - = է 6 | . = շ 7 | / = ռ 8 | 1 = ֆ 9 | 2 = ձ 10 | 3 = ֊ 11 | 4 = , 12 | 5 = ։ 13 | 6 = ՞ 14 | 7 = ․ 15 | 8 = ՛ 16 | 9 = ) 17 | ; = պ 18 | = = ղ 19 | [ = ծ 20 | \ = » 21 | ] = ց 22 | a = ջ 23 | b = զ 24 | c = չ 25 | d = գ 26 | e = բ 27 | f = ե 28 | g = ա 29 | h = ն 30 | i = կ 31 | j = ի 32 | k = տ 33 | l = հ 34 | m = ք 35 | n = լ 36 | o = ը 37 | p = թ 38 | q = ճ 39 | r = ս 40 | s = վ 41 | t = մ 42 | u = ւ 43 | v = յ 44 | w = փ 45 | x = դ 46 | y = ո 47 | z = ժ 48 | shift = layer(am_shift) 49 | 50 | [am_shift:S] 51 | ' = Ր 52 | , = Խ 53 | - = Է 54 | . = Շ 55 | / = Ռ 56 | 1 = Ֆ 57 | 2 = Ձ 58 | 3 = — 59 | 4 = $ 60 | 5 = … 61 | 6 = % 62 | 7 = և 63 | 8 = ՚ 64 | 9 = ( 65 | ; = Պ 66 | = = Ղ 67 | [ = Ծ 68 | \ = « 69 | ] = Ց 70 | a = Ջ 71 | b = Զ 72 | c = Չ 73 | d = Գ 74 | e = Բ 75 | f = Ե 76 | g = Ա 77 | h = Ն 78 | i = Կ 79 | j = Ի 80 | k = Տ 81 | l = Հ 82 | m = Ք 83 | n = Լ 84 | o = Ը 85 | p = Թ 86 | q = Ճ 87 | r = Ս 88 | s = Վ 89 | t = Մ 90 | u = Ւ 91 | v = Յ 92 | w = Փ 93 | x = Դ 94 | y = Ո 95 | z = Ժ 96 | -------------------------------------------------------------------------------- /layouts/ara: -------------------------------------------------------------------------------- 1 | [ara:layout] 2 | 3 | ' = ط 4 | , = و 5 | - = - 6 | . = ز 7 | / = ظ 8 | ` = ذ 9 | 1 = 1 10 | 2 = 2 11 | 3 = 3 12 | 4 = 4 13 | 5 = 5 14 | 6 = 6 15 | 7 = 7 16 | 8 = 8 17 | 9 = 9 18 | ; = ك 19 | = = = 20 | [ = ج 21 | \ = \ 22 | ] = د 23 | a = ش 24 | b = ﻻ 25 | c = ؤ 26 | d = ي 27 | e = ث 28 | f = ب 29 | g = ل 30 | h = ا 31 | i = ه 32 | j = ت 33 | k = ن 34 | l = م 35 | m = ة 36 | n = ى 37 | o = خ 38 | p = ح 39 | q = ض 40 | r = ق 41 | s = س 42 | t = ف 43 | u = ع 44 | v = ر 45 | w = ص 46 | x = ء 47 | y = غ 48 | z = ئ 49 | shift = layer(ara_shift) 50 | altgr = layer(ara_altgr) 51 | 52 | [ara_shift:S] 53 | ' = " 54 | , = , 55 | - = _ 56 | . = . 57 | / = ؟ 58 | ` = ّ 59 | 1 = ! 60 | 2 = @ 61 | 3 = # 62 | 4 = $ 63 | 5 = % 64 | 6 = ^ 65 | 7 = & 66 | 8 = * 67 | 9 = ) 68 | 0 = ( 69 | ; = : 70 | = = + 71 | [ = < 72 | \ = … 73 | ] = > 74 | a = ِ 75 | b = ﻵ 76 | c = } 77 | d = ] 78 | e = ُ 79 | f = [ 80 | g = ﻷ 81 | h = أ 82 | i = ÷ 83 | j = ـ 84 | k = ، 85 | l = / 86 | m = ' 87 | n = آ 88 | o = × 89 | p = ؛ 90 | q = َ 91 | r = ٌ 92 | s = ٍ 93 | t = ﻹ 94 | u = ` 95 | v = { 96 | w = ً 97 | x = ْ 98 | y = إ 99 | z = ~ 100 | 101 | [ara_altgr:G] 102 | ' = ⟩ 103 | , = ٬ 104 | - = – 105 | . = ژ 106 | / = ٭ 107 | 1 = ١ 108 | 2 = ٢ 109 | 3 = ٣ 110 | 4 = ٤ 111 | 5 = ٥ 112 | 6 = ٦ 113 | 7 = ٧ 114 | 8 = ٨ 115 | 9 = ٩ 116 | 0 = ̥ 117 | ; = گ 118 | = = ≠ 119 | [ = چ 120 | \ = ⟨ 121 | f = پ 122 | h = ٱ 123 | k = ٫ 124 | n = ٰ 125 | t = ڤ 126 | x = « 127 | z = » 128 | 129 | [ara_altgr+ara_shift] 130 | ' = ‍ 131 | - = ‑ 132 | / = ‌ 133 | 5 = ‰ 134 | = = ≈ 135 | [ = ‏ 136 | \ =   137 | ] = ؜ 138 | e = ⁨ 139 | i = ‬ 140 | p = ‎ 141 | q = ⁦ 142 | r = ⁩ 143 | u = ‫ 144 | w = ⁧ 145 | x = ‹ 146 | y = ‪ 147 | z = › 148 | -------------------------------------------------------------------------------- /layouts/at: -------------------------------------------------------------------------------- 1 | [at:layout] 2 | 3 | ' = ä 4 | , = , 5 | - = ß 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ö 18 | [ = ü 19 | \ = # 20 | ] = + 21 | a = a 22 | b = b 23 | c = c 24 | d = d 25 | e = e 26 | f = f 27 | g = g 28 | h = h 29 | i = i 30 | j = j 31 | k = k 32 | l = l 33 | m = m 34 | n = n 35 | o = o 36 | p = p 37 | q = q 38 | r = r 39 | s = s 40 | t = t 41 | u = u 42 | v = v 43 | w = w 44 | x = x 45 | y = z 46 | z = y 47 | shift = layer(at_shift) 48 | altgr = layer(at_altgr) 49 | 50 | [at_shift:S] 51 | ' = Ä 52 | , = ; 53 | - = ? 54 | . = : 55 | / = _ 56 | 1 = ! 57 | 2 = " 58 | 3 = § 59 | 4 = $ 60 | 5 = % 61 | 6 = & 62 | 7 = / 63 | 8 = ( 64 | 9 = ) 65 | ; = Ö 66 | [ = 67 | \ = ' 68 | ] = * 69 | a = A 70 | b = B 71 | c = C 72 | d = D 73 | e = E 74 | f = F 75 | g = G 76 | h = H 77 | i = I 78 | j = J 79 | k = K 80 | l = L 81 | m = M 82 | n = N 83 | o = O 84 | p = P 85 | q = Q 86 | r = R 87 | s = S 88 | t = T 89 | u = U 90 | v = V 91 | w = W 92 | x = X 93 | y = Z 94 | z = Y 95 | 96 | [at_altgr:G] 97 | , = · 98 | - = \ 99 | . = … 100 | / = – 101 | 1 = ¹ 102 | 2 = ² 103 | 3 = ³ 104 | 4 = ¼ 105 | 5 = ½ 106 | 6 = ¬ 107 | 7 = { 108 | 8 = [ 109 | 9 = ] 110 | \ = ’ 111 | ] = ~ 112 | a = æ 113 | b = “ 114 | c = ¢ 115 | d = ð 116 | e = € 117 | f = đ 118 | g = ŋ 119 | h = ħ 120 | i = → 121 | k = ĸ 122 | l = ł 123 | m = µ 124 | n = ” 125 | o = ø 126 | p = þ 127 | q = @ 128 | r = ¶ 129 | s = ſ 130 | t = ŧ 131 | u = ↓ 132 | v = „ 133 | w = ſ 134 | x = « 135 | y = ← 136 | z = » 137 | 138 | [at_altgr+at_shift] 139 | , = × 140 | - = ¿ 141 | . = ÷ 142 | / = — 143 | 1 = ¡ 144 | 2 = ⅛ 145 | 3 = £ 146 | 4 = ¤ 147 | 5 = ⅜ 148 | 6 = ⅝ 149 | 7 = ⅞ 150 | 8 = ™ 151 | 9 = ± 152 | ] = ¯ 153 | a = Æ 154 | b = ‘ 155 | c = © 156 | d = Ð 157 | e = € 158 | f = ª 159 | g = Ŋ 160 | h = Ħ 161 | i = ı 162 | k = & 163 | l = Ł 164 | m = º 165 | n = ’ 166 | o = Ø 167 | p = Þ 168 | q = Ω 169 | r = ® 170 | s = ẞ 171 | t = Ŧ 172 | u = ↑ 173 | v = ‚ 174 | w = § 175 | x = ‹ 176 | y = ¥ 177 | z = › 178 | -------------------------------------------------------------------------------- /layouts/au: -------------------------------------------------------------------------------- 1 | [au:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(au_shift) 49 | 50 | [au_shift:S] 51 | ' = " 52 | , = < 53 | - = _ 54 | . = > 55 | / = ? 56 | 1 = ! 57 | 2 = @ 58 | 3 = # 59 | 4 = $ 60 | 5 = % 61 | 6 = ^ 62 | 7 = & 63 | 8 = * 64 | 9 = ( 65 | ; = : 66 | = = + 67 | [ = { 68 | \ = | 69 | ] = } 70 | a = A 71 | b = B 72 | c = C 73 | d = D 74 | e = E 75 | f = F 76 | g = G 77 | h = H 78 | i = I 79 | j = J 80 | k = K 81 | l = L 82 | m = M 83 | n = N 84 | o = O 85 | p = P 86 | q = Q 87 | r = R 88 | s = S 89 | t = T 90 | u = U 91 | v = V 92 | w = W 93 | x = X 94 | y = Y 95 | z = Z 96 | -------------------------------------------------------------------------------- /layouts/az: -------------------------------------------------------------------------------- 1 | [az:layout] 2 | 3 | ' = ə 4 | , = ç 5 | - = - 6 | . = ş 7 | / = . 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ı 18 | = = = 19 | [ = ö 20 | \ = \ 21 | ] = ğ 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = ü 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(az_shift) 49 | 50 | [az_shift:S] 51 | ' = Ə 52 | , = Ç 53 | - = _ 54 | . = Ş 55 | / = , 56 | 1 = ! 57 | 2 = " 58 | 3 = Ⅶ 59 | 4 = ; 60 | 5 = % 61 | 6 = : 62 | 7 = ? 63 | 8 = * 64 | 9 = ( 65 | ; = I 66 | = = + 67 | [ = Ö 68 | \ = / 69 | ] = Ğ 70 | a = A 71 | b = B 72 | c = C 73 | d = D 74 | e = E 75 | f = F 76 | g = G 77 | h = H 78 | i = İ 79 | j = J 80 | k = K 81 | l = L 82 | m = M 83 | n = N 84 | o = O 85 | p = P 86 | q = Q 87 | r = R 88 | s = S 89 | t = T 90 | u = U 91 | v = V 92 | w = 93 | x = X 94 | y = Y 95 | z = Z 96 | -------------------------------------------------------------------------------- /layouts/ba: -------------------------------------------------------------------------------- 1 | [ba:layout] 2 | 3 | ' = ć 4 | , = , 5 | - = ' 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = č 18 | = = + 19 | [ = š 20 | \ = ž 21 | ] = đ 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = z 47 | z = y 48 | shift = layer(ba_shift) 49 | altgr = layer(ba_altgr) 50 | 51 | [ba_shift:S] 52 | ' = Ć 53 | , = ; 54 | - = ? 55 | . = : 56 | / = _ 57 | 1 = ! 58 | 2 = " 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = & 63 | 7 = / 64 | 8 = ( 65 | 9 = ) 66 | ; = Č 67 | = = * 68 | [ = Š 69 | \ = Ž 70 | ] = Đ 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Z 96 | z = Y 97 | 98 | [ba_altgr:G] 99 | ' = ß 100 | , = < 101 | . = > 102 | / = — 103 | [ = ÷ 104 | \ = ¤ 105 | ] = × 106 | a = æ 107 | b = { 108 | c = ¢ 109 | d = “ 110 | e = € 111 | f = [ 112 | g = ] 113 | h = ħ 114 | i = → 115 | k = ł 116 | l = ł 117 | m = § 118 | n = } 119 | o = ø 120 | p = þ 121 | q = \ 122 | r = ¶ 123 | s = „ 124 | t = ŧ 125 | u = ↓ 126 | v = @ 127 | w = | 128 | x = ’ 129 | y = ← 130 | z = ‘ 131 | 132 | [ba_altgr+ba_shift] 133 | , = × 134 | - = ¨ 135 | . = ÷ 136 | / = – 137 | 1 = ~ 138 | 2 = ˇ 139 | 3 = ^ 140 | 4 = ˘ 141 | 5 = ° 142 | 6 = ˛ 143 | 7 = ` 144 | 8 = ˙ 145 | 9 = ' 146 | = = ¸ 147 | a = Æ 148 | b = ' 149 | c = © 150 | d = « 151 | e = € 152 | f = ª 153 | g = Ŋ 154 | h = Ħ 155 | i = ı 156 | k = & 157 | l = Ł 158 | m = º 159 | n = } 160 | o = Ø 161 | p = Þ 162 | q = Ω 163 | r = ® 164 | s = » 165 | t = Ŧ 166 | u = ↑ 167 | v = ` 168 | w = Ł 169 | x = « 170 | y = ¥ 171 | z = » 172 | -------------------------------------------------------------------------------- /layouts/bd: -------------------------------------------------------------------------------- 1 | [bd:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = ১ 9 | 2 = ২ 10 | 3 = ৩ 11 | 4 = ৪ 12 | 5 = ৫ 13 | 6 = ৬ 14 | 7 = ৭ 15 | 8 = ৮ 16 | 9 = ৯ 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = ৃ 23 | b = ন 24 | c = ে 25 | d = ি 26 | e = ড 27 | f = ব 28 | g = ্ 29 | h = া 30 | i = হ 31 | j = ক 32 | k = ত 33 | l = দ 34 | m = ম 35 | n = স 36 | o = গ 37 | p = ড় 38 | q = ঙ 39 | r = প 40 | s = ু 41 | t = ট 42 | u = জ 43 | v = র 44 | w = য 45 | x = ো 46 | y = চ 47 | z = ঁ 48 | shift = layer(bd_shift) 49 | altgr = layer(bd_altgr) 50 | 51 | [bd_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = ৗ 72 | b = ণ 73 | c = ৈ 74 | d = ী 75 | e = ঢ 76 | f = ভ 77 | g = । 78 | h = অ 79 | i = ঞ 80 | j = খ 81 | k = থ 82 | l = ধ 83 | m = শ 84 | n = ষ 85 | o = ঘ 86 | p = ঢ় 87 | q = ং 88 | r = ফ 89 | s = ূ 90 | t = ঠ 91 | u = ঝ 92 | v = ল 93 | w = য় 94 | x = ৌ 95 | y = ছ 96 | z = ঃ 97 | 98 | [bd_altgr:G] 99 | - = ‌ 100 | . = ় 101 | 1 = ৴ 102 | 2 = ৵ 103 | 3 = ৶ 104 | 4 = ৳ 105 | 5 = ৷ 106 | 6 = ৸ 107 | 7 = ं 108 | = = ‍ 109 | a = ঋ 110 | c = এ 111 | d = ই 112 | e = ৄ 113 | f = ৰ 114 | g = ॥ 115 | h = আ 116 | i = ঽ 117 | j = ঻ 118 | k = ৎ 119 | l = ঌ 120 | q = ৢ 121 | s = উ 122 | x = ও 123 | z = ৺ 124 | 125 | [bd_altgr+bd_shift] 126 | 4 = ৲ 127 | 6 = ঳ 128 | a = ৠ 129 | c = ঐ 130 | d = ঈ 131 | f = ৱ 132 | l = ৡ 133 | q = ৣ 134 | s = ঊ 135 | x = ঔ 136 | -------------------------------------------------------------------------------- /layouts/be: -------------------------------------------------------------------------------- 1 | [be:layout] 2 | 3 | ' = ù 4 | , = ; 5 | - = ) 6 | . = : 7 | / = = 8 | 1 = & 9 | 2 = é 10 | 3 = " 11 | 4 = ' 12 | 5 = ( 13 | 6 = § 14 | 7 = è 15 | 8 = ! 16 | 9 = ç 17 | ; = m 18 | = = - 19 | \ = µ 20 | ] = $ 21 | a = q 22 | b = b 23 | c = c 24 | d = d 25 | e = e 26 | f = f 27 | g = g 28 | h = h 29 | i = i 30 | j = j 31 | k = k 32 | l = l 33 | m = , 34 | n = n 35 | o = o 36 | p = p 37 | q = a 38 | r = r 39 | s = s 40 | t = t 41 | u = u 42 | v = v 43 | w = z 44 | x = x 45 | y = y 46 | z = w 47 | shift = layer(be_shift) 48 | altgr = layer(be_altgr) 49 | 50 | [be_shift:S] 51 | ' = % 52 | , = . 53 | - = ° 54 | . = / 55 | / = + 56 | 1 = 1 57 | 2 = 2 58 | 3 = 3 59 | 4 = 4 60 | 5 = 5 61 | 6 = 6 62 | 7 = 7 63 | 8 = 8 64 | 9 = 9 65 | ; = M 66 | = = _ 67 | \ = £ 68 | ] = * 69 | a = Q 70 | b = B 71 | c = C 72 | d = D 73 | e = E 74 | f = F 75 | g = G 76 | h = H 77 | i = I 78 | j = J 79 | k = K 80 | l = L 81 | m = ? 82 | n = N 83 | o = O 84 | p = P 85 | q = A 86 | r = R 87 | s = S 88 | t = T 89 | u = U 90 | v = V 91 | w = Z 92 | x = X 93 | y = Y 94 | z = W 95 | 96 | [be_altgr:G] 97 | , = • 98 | - = \ 99 | . = · 100 | 1 = | 101 | 2 = @ 102 | 3 = # 103 | 4 = ¼ 104 | 5 = ½ 105 | 6 = ^ 106 | 7 = { 107 | 8 = [ 108 | 9 = { 109 | [ = [ 110 | ] = ] 111 | a = æ 112 | b = “ 113 | c = ¢ 114 | d = ð 115 | e = € 116 | f = đ 117 | g = ŋ 118 | h = ħ 119 | i = → 120 | k = ĸ 121 | l = ł 122 | n = ” 123 | o = œ 124 | p = þ 125 | q = @ 126 | r = ¶ 127 | s = ß 128 | t = ŧ 129 | u = ↓ 130 | v = „ 131 | w = ſ 132 | x = » 133 | y = ← 134 | z = « 135 | 136 | [be_altgr+be_shift] 137 | , = × 138 | - = ¿ 139 | . = ÷ 140 | 1 = ¡ 141 | 2 = ⅛ 142 | 3 = £ 143 | 4 = $ 144 | 5 = ⅜ 145 | 6 = ⅝ 146 | 7 = ⅞ 147 | 8 = ™ 148 | 9 = ± 149 | a = Æ 150 | b = ‘ 151 | c = © 152 | d = Ð 153 | e = ¢ 154 | f = ª 155 | g = Ŋ 156 | h = Ħ 157 | i = ı 158 | k = & 159 | l = Ł 160 | m = º 161 | n = ’ 162 | o = Œ 163 | p = Þ 164 | q = Ω 165 | r = ® 166 | s = ẞ 167 | t = Ŧ 168 | u = ↑ 169 | v = ‚ 170 | w = § 171 | x = > 172 | y = ¥ 173 | z = < 174 | -------------------------------------------------------------------------------- /layouts/bg: -------------------------------------------------------------------------------- 1 | [bg:layout] 2 | 3 | ' = ч 4 | , = р 5 | - = - 6 | . = л 7 | / = б 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = м 18 | = = . 19 | [ = ц 20 | \ = „ 21 | ] = ; 22 | a = ь 23 | b = ф 24 | c = ъ 25 | d = а 26 | e = е 27 | f = о 28 | g = ж 29 | h = г 30 | i = с 31 | j = т 32 | k = н 33 | l = в 34 | m = п 35 | n = х 36 | o = д 37 | p = з 38 | q = , 39 | r = и 40 | s = я 41 | t = ш 42 | u = к 43 | v = э 44 | w = у 45 | x = й 46 | y = щ 47 | z = ю 48 | shift = layer(bg_shift) 49 | altgr = layer(bg_altgr) 50 | 51 | [bg_shift:S] 52 | ' = Ч 53 | , = Р 54 | - = $ 55 | . = Л 56 | / = Б 57 | 1 = ! 58 | 2 = ? 59 | 3 = + 60 | 4 = " 61 | 5 = % 62 | 6 = = 63 | 7 = : 64 | 8 = / 65 | 9 = – 66 | ; = М 67 | = = € 68 | [ = Ц 69 | \ = “ 70 | ] = § 71 | a = ѝ 72 | b = Ф 73 | c = Ъ 74 | d = А 75 | e = Е 76 | f = О 77 | g = Ж 78 | h = Г 79 | i = С 80 | j = Т 81 | k = Н 82 | l = В 83 | m = П 84 | n = Х 85 | o = Д 86 | p = З 87 | q = ы 88 | r = И 89 | s = Я 90 | t = Ш 91 | u = К 92 | v = Э 93 | w = У 94 | x = Й 95 | y = Щ 96 | z = Ю 97 | 98 | [bg_altgr:G] 99 | , = ® 100 | - = ‑ 101 | 3 = † 102 | 5 = 〈 103 | 6 = — 104 | 7 = … 105 | 8 = ̀ 106 | \ = « 107 | a = ы 108 | c = ѫ 109 | e = э 110 | i = © 111 | j = ™ 112 | q = ’ 113 | r = ѝ 114 | s = ѣ 115 | u = © 116 | x = ѭ 117 | 118 | [bg_altgr+bg_shift] 119 | , = ® 120 | - = € 121 | 3 = † 122 | 5 = 〉 123 | 6 = — 124 | 7 = … 125 | 8 = ́ 126 | \ = » 127 | a = Ы 128 | c = Ѫ 129 | e = Э 130 | i = © 131 | j = ™ 132 | q = ‘ 133 | r = Ѝ 134 | s = Ѣ 135 | u = © 136 | x = Ѭ 137 | -------------------------------------------------------------------------------- /layouts/br: -------------------------------------------------------------------------------- 1 | [br:layout] 2 | 3 | , = , 4 | - = - 5 | . = . 6 | / = ; 7 | 1 = 1 8 | 2 = 2 9 | 3 = 3 10 | 4 = 4 11 | 5 = 5 12 | 6 = 6 13 | 7 = 7 14 | 8 = 8 15 | 9 = 9 16 | ; = ç 17 | = = = 18 | \ = ] 19 | ] = [ 20 | a = a 21 | b = b 22 | c = c 23 | d = d 24 | e = e 25 | f = f 26 | g = g 27 | h = h 28 | i = i 29 | j = j 30 | k = k 31 | l = l 32 | m = m 33 | n = n 34 | o = o 35 | p = p 36 | q = q 37 | r = r 38 | s = s 39 | t = t 40 | u = u 41 | v = v 42 | w = w 43 | x = x 44 | y = y 45 | z = z 46 | shift = layer(br_shift) 47 | altgr = layer(br_altgr) 48 | 49 | [br_shift:S] 50 | , = < 51 | - = _ 52 | . = > 53 | / = : 54 | 1 = ! 55 | 2 = @ 56 | 3 = # 57 | 4 = $ 58 | 5 = % 59 | 7 = & 60 | 8 = * 61 | 9 = ( 62 | ; = Ç 63 | = = + 64 | \ = } 65 | ] = { 66 | a = A 67 | b = B 68 | c = C 69 | d = D 70 | e = E 71 | f = F 72 | g = G 73 | h = H 74 | i = I 75 | j = J 76 | k = K 77 | l = L 78 | m = M 79 | n = N 80 | o = O 81 | p = P 82 | q = Q 83 | r = R 84 | s = S 85 | t = T 86 | u = U 87 | v = V 88 | w = W 89 | x = X 90 | y = Y 91 | z = Z 92 | 93 | [br_altgr:G] 94 | ' = ~ 95 | , = • 96 | - = \ 97 | . = · 98 | 1 = ¹ 99 | 2 = ² 100 | 3 = ³ 101 | 4 = £ 102 | 5 = ¢ 103 | 6 = ¬ 104 | 7 = { 105 | 8 = [ 106 | 9 = ] 107 | = = § 108 | [ = ´ 109 | \ = º 110 | ] = ª 111 | a = æ 112 | b = “ 113 | c = © 114 | d = ð 115 | e = ° 116 | f = đ 117 | g = ŋ 118 | h = ħ 119 | i = → 120 | k = ĸ 121 | l = ł 122 | m = µ 123 | n = ” 124 | o = ø 125 | p = þ 126 | q = / 127 | r = ® 128 | s = ß 129 | t = ŧ 130 | u = ↓ 131 | v = „ 132 | w = ? 133 | x = » 134 | y = ← 135 | z = « 136 | 137 | [br_altgr+br_shift] 138 | ' = ^ 139 | , = × 140 | - = ¿ 141 | . = ÷ 142 | 1 = ¡ 143 | 2 = ½ 144 | 3 = ¾ 145 | 4 = ¼ 146 | 5 = ⅜ 147 | 6 = ¨ 148 | 7 = ⅞ 149 | 8 = ™ 150 | 9 = ± 151 | [ = ` 152 | \ = º 153 | a = Æ 154 | b = ‘ 155 | c = © 156 | d = Ð 157 | e = ° 158 | f = ª 159 | g = Ŋ 160 | h = Ħ 161 | i = ı 162 | k = & 163 | l = Ł 164 | m = µ 165 | n = ’ 166 | o = Ø 167 | p = Þ 168 | q = / 169 | r = ® 170 | s = ẞ 171 | t = Ŧ 172 | u = ↑ 173 | v = ‚ 174 | w = ? 175 | x = > 176 | y = ¥ 177 | z = < 178 | -------------------------------------------------------------------------------- /layouts/brai: -------------------------------------------------------------------------------- 1 | [brai:layout] 2 | 3 | \ = \ 4 | shift = layer(brai_shift) 5 | 6 | [brai_shift:S] 7 | \ = | 8 | -------------------------------------------------------------------------------- /layouts/bw: -------------------------------------------------------------------------------- 1 | [bw:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(bw_shift) 49 | altgr = layer(bw_altgr) 50 | 51 | [bw_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [bw_altgr:G] 99 | ' = ́ 100 | - = ̄ 101 | 6 = ̂ 102 | 8 = ̇ 103 | 9 = ̆ 104 | ; = ̤ 105 | 106 | [bw_altgr+bw_shift] 107 | ' = ̈ 108 | - = ̱ 109 | 8 = ̣ 110 | ; = ̤ 111 | -------------------------------------------------------------------------------- /layouts/by: -------------------------------------------------------------------------------- 1 | [by:layout] 2 | 3 | ' = э 4 | , = б 5 | - = - 6 | . = ю 7 | / = . 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ж 18 | = = = 19 | [ = х 20 | \ = \ 21 | ] = ' 22 | a = ф 23 | b = і 24 | c = с 25 | d = в 26 | e = у 27 | f = а 28 | g = п 29 | h = р 30 | i = ш 31 | j = о 32 | k = л 33 | l = д 34 | m = ь 35 | n = т 36 | o = ў 37 | p = з 38 | q = й 39 | r = к 40 | s = ы 41 | t = е 42 | u = г 43 | v = м 44 | w = ц 45 | x = ч 46 | y = н 47 | z = я 48 | shift = layer(by_shift) 49 | altgr = layer(by_altgr) 50 | 51 | [by_shift:S] 52 | ' = Э 53 | , = Б 54 | - = _ 55 | . = Ю 56 | / = , 57 | 1 = ! 58 | 2 = " 59 | 3 = № 60 | 4 = ; 61 | 5 = % 62 | 6 = : 63 | 7 = ? 64 | 8 = * 65 | 9 = ( 66 | ; = Ж 67 | = = + 68 | [ = Х 69 | \ = / 70 | ] = ' 71 | a = Ф 72 | b = І 73 | c = С 74 | d = В 75 | e = У 76 | f = А 77 | g = П 78 | h = Р 79 | i = Ш 80 | j = О 81 | k = Л 82 | l = Д 83 | m = Ь 84 | n = Т 85 | o = Ў 86 | p = З 87 | q = Й 88 | r = К 89 | s = Ы 90 | t = Е 91 | u = Г 92 | v = М 93 | w = Ц 94 | x = Ч 95 | y = Н 96 | z = Я 97 | 98 | [by_altgr:G] 99 | 8 = ₽ 100 | 101 | [by_altgr+by_shift] 102 | -------------------------------------------------------------------------------- /layouts/ca: -------------------------------------------------------------------------------- 1 | [ca:layout] 2 | 3 | , = , 4 | - = - 5 | . = . 6 | / = é 7 | 1 = 1 8 | 2 = 2 9 | 3 = 3 10 | 4 = 4 11 | 5 = 5 12 | 6 = 6 13 | 7 = 7 14 | 8 = 8 15 | 9 = 9 16 | ; = ; 17 | = = = 18 | \ = < 19 | a = a 20 | b = b 21 | c = c 22 | d = d 23 | e = e 24 | f = f 25 | g = g 26 | h = h 27 | i = i 28 | j = j 29 | k = k 30 | l = l 31 | m = m 32 | n = n 33 | o = o 34 | p = p 35 | q = q 36 | r = r 37 | s = s 38 | t = t 39 | u = u 40 | v = v 41 | w = w 42 | x = x 43 | y = y 44 | z = z 45 | shift = layer(ca_shift) 46 | altgr = layer(ca_altgr) 47 | 48 | [ca_shift:S] 49 | , = ' 50 | - = _ 51 | . = . 52 | / = É 53 | 1 = ! 54 | 2 = " 55 | 3 = / 56 | 4 = $ 57 | 5 = % 58 | 6 = ? 59 | 7 = & 60 | 8 = * 61 | 9 = ( 62 | ; = : 63 | = = + 64 | \ = > 65 | a = A 66 | b = B 67 | c = C 68 | d = D 69 | e = E 70 | f = F 71 | g = G 72 | h = H 73 | i = I 74 | j = J 75 | k = K 76 | l = L 77 | m = M 78 | n = N 79 | o = O 80 | p = P 81 | q = Q 82 | r = R 83 | s = S 84 | t = T 85 | u = U 86 | v = V 87 | w = W 88 | x = X 89 | y = Y 90 | z = Z 91 | 92 | [ca_altgr:G] 93 | ' = { 94 | , = ¯ 95 | - = ½ 96 | . = ­ 97 | 1 = ± 98 | 2 = @ 99 | 3 = £ 100 | 4 = ¢ 101 | 5 = ¤ 102 | 6 = ¬ 103 | 7 = ¦ 104 | 8 = ² 105 | 9 = ³ 106 | ; = ~ 107 | = = ¾ 108 | [ = [ 109 | \ = } 110 | ] = ] 111 | m = µ 112 | o = § 113 | p = ¶ 114 | 115 | [ca_altgr+ca_shift] 116 | -------------------------------------------------------------------------------- /layouts/cd: -------------------------------------------------------------------------------- 1 | [cd:layout] 2 | 3 | ' = ɔ 4 | , = ; 5 | - = - 6 | . = : 7 | / = ! 8 | 1 = & 9 | 2 = ́ 10 | 3 = ̀ 11 | 4 = ( 12 | 5 = { 13 | 6 = } 14 | 7 = ) 15 | 8 = ̂ 16 | 9 = ̌ 17 | ; = m 18 | = = = 19 | [ = ɛ 20 | \ = " 21 | ] = * 22 | a = q 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = , 35 | n = n 36 | o = o 37 | p = p 38 | q = a 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = z 45 | x = x 46 | y = y 47 | z = w 48 | shift = layer(cd_shift) 49 | altgr = layer(cd_altgr) 50 | 51 | [cd_shift:S] 52 | ' = Ɔ 53 | , = . 54 | - = _ 55 | . = / 56 | / = ' 57 | 1 = 1 58 | 2 = 2 59 | 3 = 3 60 | 4 = 4 61 | 5 = 5 62 | 6 = 6 63 | 7 = 7 64 | 8 = 8 65 | 9 = 9 66 | ; = M 67 | = = + 68 | [ = Ɛ 69 | \ = \ 70 | ] = ^ 71 | a = Q 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = ? 84 | n = N 85 | o = O 86 | p = P 87 | q = A 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = Z 94 | x = X 95 | y = Y 96 | z = W 97 | 98 | [cd_altgr:G] 99 | - = % 100 | / = ’ 101 | 1 = # 102 | 2 = @ 103 | 3 = « 104 | 4 = [ 105 | 5 = < 106 | 6 = > 107 | 7 = ] 108 | 8 = » 109 | 9 = ̍ 110 | = = × 111 | [ = ^ 112 | \ = | 113 | ] = $ 114 | e = œ 115 | i = ɨ 116 | m = ̧ 117 | n = ŋ 118 | o = ø 119 | q = æ 120 | u = ʉ 121 | 122 | [cd_altgr+cd_shift] 123 | - = ° 124 | = = ÷ 125 | e = Œ 126 | i = Ɨ 127 | n = Ŋ 128 | o = Ø 129 | q = Æ 130 | u = Ʉ 131 | -------------------------------------------------------------------------------- /layouts/ch: -------------------------------------------------------------------------------- 1 | [ch:layout] 2 | 3 | ' = ä 4 | , = , 5 | - = ' 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ö 18 | [ = ü 19 | \ = $ 20 | a = a 21 | b = b 22 | c = c 23 | d = d 24 | e = e 25 | f = f 26 | g = g 27 | h = h 28 | i = i 29 | j = j 30 | k = k 31 | l = l 32 | m = m 33 | n = n 34 | o = o 35 | p = p 36 | q = q 37 | r = r 38 | s = s 39 | t = t 40 | u = u 41 | v = v 42 | w = w 43 | x = x 44 | y = z 45 | z = y 46 | shift = layer(ch_shift) 47 | altgr = layer(ch_altgr) 48 | 49 | [ch_shift:S] 50 | ' = à 51 | , = ; 52 | - = ? 53 | . = : 54 | / = _ 55 | 1 = + 56 | 2 = " 57 | 3 = * 58 | 4 = ç 59 | 5 = % 60 | 6 = & 61 | 7 = / 62 | 8 = ( 63 | 9 = ) 64 | ; = é 65 | [ = è 66 | \ = £ 67 | ] = ! 68 | a = A 69 | b = B 70 | c = C 71 | d = D 72 | e = E 73 | f = F 74 | g = G 75 | h = H 76 | i = I 77 | j = J 78 | k = K 79 | l = L 80 | m = M 81 | n = N 82 | o = O 83 | p = P 84 | q = Q 85 | r = R 86 | s = S 87 | t = T 88 | u = U 89 | v = V 90 | w = W 91 | x = X 92 | y = Z 93 | z = Y 94 | 95 | [ch_altgr:G] 96 | ' = { 97 | , = • 98 | . = · 99 | 1 = | 100 | 2 = @ 101 | 3 = # 102 | 4 = ¼ 103 | 5 = ½ 104 | 6 = ¬ 105 | 7 = | 106 | 8 = ¢ 107 | 9 = ] 108 | [ = [ 109 | \ = } 110 | ] = ] 111 | a = æ 112 | b = “ 113 | c = ¢ 114 | d = ð 115 | e = € 116 | f = đ 117 | g = ŋ 118 | h = ħ 119 | i = → 120 | k = ĸ 121 | l = ł 122 | m = µ 123 | n = ” 124 | o = œ 125 | p = þ 126 | q = @ 127 | r = ¶ 128 | s = ß 129 | t = ŧ 130 | u = ↓ 131 | v = „ 132 | w = ſ 133 | x = » 134 | y = ← 135 | z = « 136 | 137 | [ch_altgr+ch_shift] 138 | , = × 139 | - = ¿ 140 | . = ÷ 141 | 1 = ¡ 142 | 2 = ⅛ 143 | 3 = £ 144 | 4 = $ 145 | 5 = ⅜ 146 | 6 = ⅝ 147 | 7 = ⅞ 148 | 8 = ™ 149 | 9 = ± 150 | a = Æ 151 | b = ‘ 152 | c = © 153 | d = Ð 154 | e = E 155 | f = ª 156 | g = Ŋ 157 | h = Ħ 158 | i = ı 159 | k = & 160 | l = Ł 161 | m = º 162 | n = ’ 163 | o = Œ 164 | p = Þ 165 | q = Ω 166 | r = ® 167 | s = ẞ 168 | t = Ŧ 169 | u = ↑ 170 | v = ‚ 171 | w = § 172 | x = > 173 | y = ¥ 174 | z = < 175 | -------------------------------------------------------------------------------- /layouts/cm: -------------------------------------------------------------------------------- 1 | [cm:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(cm_shift) 49 | 50 | [cm_shift:S] 51 | ' = " 52 | , = < 53 | - = _ 54 | . = > 55 | / = ? 56 | 1 = ! 57 | 2 = @ 58 | 3 = # 59 | 4 = $ 60 | 5 = % 61 | 6 = ^ 62 | 7 = & 63 | 8 = * 64 | 9 = ( 65 | ; = : 66 | = = + 67 | [ = { 68 | \ = | 69 | ] = } 70 | a = A 71 | b = B 72 | c = C 73 | d = D 74 | e = E 75 | f = F 76 | g = G 77 | h = H 78 | i = I 79 | j = J 80 | k = K 81 | l = L 82 | m = M 83 | n = N 84 | o = O 85 | p = P 86 | q = Q 87 | r = R 88 | s = S 89 | t = T 90 | u = U 91 | v = V 92 | w = W 93 | x = X 94 | y = Y 95 | z = Z 96 | -------------------------------------------------------------------------------- /layouts/cn: -------------------------------------------------------------------------------- 1 | [cn:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(cn_shift) 49 | 50 | [cn_shift:S] 51 | ' = " 52 | , = < 53 | - = _ 54 | . = > 55 | / = ? 56 | 1 = ! 57 | 2 = @ 58 | 3 = # 59 | 4 = $ 60 | 5 = % 61 | 6 = ^ 62 | 7 = & 63 | 8 = * 64 | 9 = ( 65 | ; = : 66 | = = + 67 | [ = { 68 | \ = | 69 | ] = } 70 | a = A 71 | b = B 72 | c = C 73 | d = D 74 | e = E 75 | f = F 76 | g = G 77 | h = H 78 | i = I 79 | j = J 80 | k = K 81 | l = L 82 | m = M 83 | n = N 84 | o = O 85 | p = P 86 | q = Q 87 | r = R 88 | s = S 89 | t = T 90 | u = U 91 | v = V 92 | w = W 93 | x = X 94 | y = Y 95 | z = Z 96 | -------------------------------------------------------------------------------- /layouts/colemak: -------------------------------------------------------------------------------- 1 | [colemak:layout] 2 | 3 | w = w 4 | , = , 5 | s = r 6 | a = a 7 | c = c 8 | g = d 9 | q = q 10 | e = f 11 | ] = ] 12 | d = s 13 | / = / 14 | ; = o 15 | ' = ' 16 | r = p 17 | f = t 18 | t = g 19 | u = l 20 | . = . 21 | j = n 22 | k = e 23 | p = ; 24 | o = y 25 | z = z 26 | h = h 27 | i = u 28 | [ = [ 29 | v = v 30 | l = i 31 | m = m 32 | n = k 33 | x = x 34 | b = b 35 | y = j 36 | -------------------------------------------------------------------------------- /layouts/cz: -------------------------------------------------------------------------------- 1 | [cz:layout] 2 | 3 | ' = § 4 | , = , 5 | - = = 6 | . = . 7 | / = - 8 | 1 = + 9 | 2 = ě 10 | 3 = š 11 | 4 = č 12 | 5 = ř 13 | 6 = ž 14 | 7 = ý 15 | 8 = á 16 | 9 = í 17 | ; = ů 18 | [ = ú 19 | ] = ) 20 | a = a 21 | b = b 22 | c = c 23 | d = d 24 | e = e 25 | f = f 26 | g = g 27 | h = h 28 | i = i 29 | j = j 30 | k = k 31 | l = l 32 | m = m 33 | n = n 34 | o = o 35 | p = p 36 | q = q 37 | r = r 38 | s = s 39 | t = t 40 | u = u 41 | v = v 42 | w = w 43 | x = x 44 | y = z 45 | z = y 46 | shift = layer(cz_shift) 47 | altgr = layer(cz_altgr) 48 | 49 | [cz_shift:S] 50 | ' = ! 51 | , = ? 52 | - = % 53 | . = : 54 | / = _ 55 | 1 = 1 56 | 2 = 2 57 | 3 = 3 58 | 4 = 4 59 | 5 = 5 60 | 6 = 6 61 | 7 = 7 62 | 8 = 8 63 | 9 = 9 64 | ; = " 65 | [ = / 66 | \ = ' 67 | ] = ( 68 | a = A 69 | b = B 70 | c = C 71 | d = D 72 | e = E 73 | f = F 74 | g = G 75 | h = H 76 | i = I 77 | j = J 78 | k = K 79 | l = L 80 | m = M 81 | n = N 82 | o = O 83 | p = P 84 | q = Q 85 | r = R 86 | s = S 87 | t = T 88 | u = U 89 | v = V 90 | w = W 91 | x = X 92 | y = Z 93 | z = Y 94 | 95 | [cz_altgr:G] 96 | ' = ' 97 | , = < 98 | - = \ 99 | . = > 100 | / = * 101 | 1 = ! 102 | 2 = @ 103 | 3 = # 104 | 4 = $ 105 | 5 = % 106 | 6 = ^ 107 | 7 = & 108 | 8 = * 109 | 9 = { 110 | ; = $ 111 | [ = [ 112 | \ = \ 113 | ] = ] 114 | a = ~ 115 | b = { 116 | c = & 117 | d = Đ 118 | e = € 119 | f = [ 120 | g = ] 121 | h = ` 122 | i = → 123 | j = ' 124 | k = ł 125 | l = Ł 126 | m = ^ 127 | n = } 128 | o = ø 129 | p = þ 130 | q = \ 131 | r = ¶ 132 | s = đ 133 | t = ŧ 134 | u = ↓ 135 | v = @ 136 | w = | 137 | x = # 138 | y = ← 139 | z = ° 140 | 141 | [cz_altgr+cz_shift] 142 | ' = ß 143 | , = × 144 | . = ÷ 145 | [ = ÷ 146 | \ = | 147 | ] = × 148 | a = Æ 149 | b = ‘ 150 | c = © 151 | d = Ð 152 | e = E 153 | f = ª 154 | g = Ŋ 155 | h = Ħ 156 | i = ı 157 | k = & 158 | l = Ł 159 | m = º 160 | n = ’ 161 | o = Ø 162 | p = Þ 163 | q = Ω 164 | r = ® 165 | s = ẞ 166 | t = Ŧ 167 | u = ↑ 168 | v = ‚ 169 | w = § 170 | x = > 171 | y = ¥ 172 | z = < 173 | -------------------------------------------------------------------------------- /layouts/de: -------------------------------------------------------------------------------- 1 | [de:layout] 2 | 3 | ' = ä 4 | , = , 5 | - = ß 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ö 18 | [ = ü 19 | \ = # 20 | ] = + 21 | a = a 22 | b = b 23 | c = c 24 | d = d 25 | e = e 26 | f = f 27 | g = g 28 | h = h 29 | i = i 30 | j = j 31 | k = k 32 | l = l 33 | m = m 34 | n = n 35 | o = o 36 | p = p 37 | q = q 38 | r = r 39 | s = s 40 | t = t 41 | u = u 42 | v = v 43 | w = w 44 | x = x 45 | y = z 46 | z = y 47 | shift = layer(de_shift) 48 | altgr = layer(de_altgr) 49 | 50 | [de_shift:S] 51 | ' = Ä 52 | , = ; 53 | - = ? 54 | . = : 55 | / = _ 56 | 1 = ! 57 | 2 = " 58 | 3 = § 59 | 4 = $ 60 | 5 = % 61 | 6 = & 62 | 7 = / 63 | 8 = ( 64 | 9 = ) 65 | ; = Ö 66 | [ = 67 | \ = ' 68 | ] = * 69 | a = A 70 | b = B 71 | c = C 72 | d = D 73 | e = E 74 | f = F 75 | g = G 76 | h = H 77 | i = I 78 | j = J 79 | k = K 80 | l = L 81 | m = M 82 | n = N 83 | o = O 84 | p = P 85 | q = Q 86 | r = R 87 | s = S 88 | t = T 89 | u = U 90 | v = V 91 | w = W 92 | x = X 93 | y = Z 94 | z = Y 95 | 96 | [de_altgr:G] 97 | , = · 98 | - = \ 99 | . = … 100 | / = – 101 | 1 = ¹ 102 | 2 = ² 103 | 3 = ³ 104 | 4 = ¼ 105 | 5 = ½ 106 | 6 = ¬ 107 | 7 = { 108 | 8 = [ 109 | 9 = ] 110 | \ = ’ 111 | ] = ~ 112 | a = æ 113 | b = “ 114 | c = ¢ 115 | d = ð 116 | e = € 117 | f = đ 118 | g = ŋ 119 | h = ħ 120 | i = → 121 | k = ĸ 122 | l = ł 123 | m = µ 124 | n = ” 125 | o = ø 126 | p = þ 127 | q = @ 128 | r = ¶ 129 | s = ſ 130 | t = ŧ 131 | u = ↓ 132 | v = „ 133 | w = ſ 134 | x = « 135 | y = ← 136 | z = » 137 | 138 | [de_altgr+de_shift] 139 | , = × 140 | - = ¿ 141 | . = ÷ 142 | / = — 143 | 1 = ¡ 144 | 2 = ⅛ 145 | 3 = £ 146 | 4 = ¤ 147 | 5 = ⅜ 148 | 6 = ⅝ 149 | 7 = ⅞ 150 | 8 = ™ 151 | 9 = ± 152 | ] = ¯ 153 | a = Æ 154 | b = ‘ 155 | c = © 156 | d = Ð 157 | e = € 158 | f = ª 159 | g = Ŋ 160 | h = Ħ 161 | i = ı 162 | k = & 163 | l = Ł 164 | m = º 165 | n = ’ 166 | o = Ø 167 | p = Þ 168 | q = Ω 169 | r = ® 170 | s = ẞ 171 | t = Ŧ 172 | u = ↑ 173 | v = ‚ 174 | w = § 175 | x = ‹ 176 | y = ¥ 177 | z = › 178 | -------------------------------------------------------------------------------- /layouts/dk: -------------------------------------------------------------------------------- 1 | [dk:layout] 2 | 3 | ' = ø 4 | , = , 5 | - = + 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = æ 18 | [ = å 19 | \ = ' 20 | a = a 21 | b = b 22 | c = c 23 | d = d 24 | e = e 25 | f = f 26 | g = g 27 | h = h 28 | i = i 29 | j = j 30 | k = k 31 | l = l 32 | m = m 33 | n = n 34 | o = o 35 | p = p 36 | q = q 37 | r = r 38 | s = s 39 | t = t 40 | u = u 41 | v = v 42 | w = w 43 | x = x 44 | y = y 45 | z = z 46 | shift = layer(dk_shift) 47 | altgr = layer(dk_altgr) 48 | 49 | [dk_shift:S] 50 | ' = Ø 51 | , = ; 52 | - = ? 53 | . = : 54 | / = _ 55 | 1 = ! 56 | 2 = " 57 | 3 = # 58 | 4 = ¤ 59 | 5 = % 60 | 6 = & 61 | 7 = / 62 | 8 = ( 63 | 9 = ) 64 | ; = Æ 65 | [ = Å 66 | \ = * 67 | a = A 68 | b = B 69 | c = C 70 | d = D 71 | e = E 72 | f = F 73 | g = G 74 | h = H 75 | i = I 76 | j = J 77 | k = K 78 | l = L 79 | m = M 80 | n = N 81 | o = O 82 | p = P 83 | q = Q 84 | r = R 85 | s = S 86 | t = T 87 | u = U 88 | v = V 89 | w = W 90 | x = X 91 | y = Y 92 | z = Z 93 | 94 | [dk_altgr:G] 95 | - = ± 96 | . = · 97 | 1 = ¡ 98 | 2 = @ 99 | 3 = £ 100 | 4 = $ 101 | 5 = ½ 102 | 6 = ¥ 103 | 7 = { 104 | 8 = [ 105 | 9 = ] 106 | = = | 107 | a = ª 108 | b = “ 109 | c = © 110 | d = ð 111 | e = € 112 | f = đ 113 | g = ŋ 114 | h = ħ 115 | i = → 116 | k = ĸ 117 | l = ł 118 | m = µ 119 | n = ” 120 | o = œ 121 | p = þ 122 | q = @ 123 | r = ® 124 | s = ß 125 | t = þ 126 | u = ↓ 127 | v = „ 128 | w = ſ 129 | x = » 130 | y = ← 131 | z = « 132 | 133 | [dk_altgr+dk_shift] 134 | - = ¿ 135 | 1 = ¹ 136 | 2 = ² 137 | 3 = ³ 138 | 4 = ¼ 139 | 5 = ¢ 140 | 6 = ⅝ 141 | 7 = ÷ 142 | 8 = « 143 | 9 = » 144 | = = ¦ 145 | \ = × 146 | a = º 147 | b = ‘ 148 | c = © 149 | d = Ð 150 | e = ¢ 151 | f = ª 152 | g = Ŋ 153 | h = Ħ 154 | i = ı 155 | k = & 156 | l = Ł 157 | m = º 158 | n = ’ 159 | o = Œ 160 | p = Þ 161 | q = Ω 162 | r = ® 163 | s = ẞ 164 | t = Þ 165 | u = ↑ 166 | v = ‚ 167 | w = § 168 | x = > 169 | y = ¥ 170 | z = < 171 | -------------------------------------------------------------------------------- /layouts/dvorak: -------------------------------------------------------------------------------- 1 | [dvorak:layout] 2 | 3 | ' = - 4 | , = w 5 | - = [ 6 | . = v 7 | / = z 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = s 18 | = = ] 19 | [ = / 20 | \ = \ 21 | ] = = 22 | a = a 23 | b = x 24 | c = j 25 | d = e 26 | e = . 27 | f = u 28 | g = i 29 | h = d 30 | i = c 31 | j = h 32 | k = t 33 | l = n 34 | m = m 35 | n = b 36 | o = r 37 | p = l 38 | q = ' 39 | r = p 40 | s = o 41 | t = y 42 | u = g 43 | v = k 44 | w = , 45 | x = q 46 | y = f 47 | z = ; 48 | shift = layer(dvorak_shift) 49 | 50 | [dvorak_shift:S] 51 | ' = _ 52 | , = W 53 | - = { 54 | . = V 55 | / = Z 56 | 1 = ! 57 | 2 = @ 58 | 3 = # 59 | 4 = $ 60 | 5 = % 61 | 6 = ^ 62 | 7 = & 63 | 8 = * 64 | 9 = ( 65 | ; = S 66 | = = } 67 | [ = ? 68 | \ = | 69 | ] = + 70 | a = A 71 | b = X 72 | c = J 73 | d = E 74 | e = > 75 | f = U 76 | g = I 77 | h = D 78 | i = C 79 | j = H 80 | k = T 81 | l = N 82 | m = M 83 | n = B 84 | o = R 85 | p = L 86 | q = " 87 | r = P 88 | s = O 89 | t = Y 90 | u = G 91 | v = K 92 | w = < 93 | x = Q 94 | y = F 95 | z = : 96 | -------------------------------------------------------------------------------- /layouts/epo: -------------------------------------------------------------------------------- 1 | [epo:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = ĵ 20 | \ = \ 21 | ] = ĥ 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = ŝ 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = ĝ 45 | x = ĉ 46 | y = ŭ 47 | z = z 48 | shift = layer(epo_shift) 49 | altgr = layer(epo_altgr) 50 | 51 | [epo_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = Ĵ 69 | \ = | 70 | ] = Ĥ 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Ŝ 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = Ĝ 94 | x = Ĉ 95 | y = 96 | z = Z 97 | 98 | [epo_altgr:G] 99 | 5 = € 100 | [ = [ 101 | ] = ] 102 | a = ‘ 103 | d = “ 104 | f = ” 105 | m = — 106 | n = – 107 | o = { 108 | p = } 109 | q = q 110 | s = ’ 111 | w = w 112 | x = x 113 | y = y 114 | 115 | [epo_altgr+epo_shift] 116 | 5 = € 117 | [ = { 118 | ] = } 119 | m = — 120 | n = – 121 | o = { 122 | p = } 123 | q = Q 124 | w = W 125 | x = X 126 | y = Y 127 | -------------------------------------------------------------------------------- /layouts/es: -------------------------------------------------------------------------------- 1 | [es:layout] 2 | 3 | , = , 4 | - = ' 5 | . = . 6 | / = - 7 | 1 = 1 8 | 2 = 2 9 | 3 = 3 10 | 4 = 4 11 | 5 = 5 12 | 6 = 6 13 | 7 = 7 14 | 8 = 8 15 | 9 = 9 16 | ; = ñ 17 | = = ¡ 18 | \ = ç 19 | ] = + 20 | a = a 21 | b = b 22 | c = c 23 | d = d 24 | e = e 25 | f = f 26 | g = g 27 | h = h 28 | i = i 29 | j = j 30 | k = k 31 | l = l 32 | m = m 33 | n = n 34 | o = o 35 | p = p 36 | q = q 37 | r = r 38 | s = s 39 | t = t 40 | u = u 41 | v = v 42 | w = w 43 | x = x 44 | y = y 45 | z = z 46 | shift = layer(es_shift) 47 | altgr = layer(es_altgr) 48 | 49 | [es_shift:S] 50 | , = ; 51 | - = ? 52 | . = : 53 | / = _ 54 | 1 = ! 55 | 2 = " 56 | 3 = · 57 | 4 = $ 58 | 5 = % 59 | 6 = & 60 | 7 = / 61 | 8 = ( 62 | 9 = ) 63 | ; = Ñ 64 | = = ¿ 65 | \ = Ç 66 | ] = * 67 | a = A 68 | b = B 69 | c = C 70 | d = D 71 | e = E 72 | f = F 73 | g = G 74 | h = H 75 | i = I 76 | j = J 77 | k = K 78 | l = L 79 | m = M 80 | n = N 81 | o = O 82 | p = P 83 | q = Q 84 | r = R 85 | s = S 86 | t = T 87 | u = U 88 | v = V 89 | w = W 90 | x = X 91 | y = Y 92 | z = Z 93 | 94 | [es_altgr:G] 95 | ' = { 96 | , = • 97 | - = \ 98 | . = · 99 | 1 = | 100 | 2 = @ 101 | 3 = # 102 | 4 = ~ 103 | 5 = ½ 104 | 6 = ¬ 105 | 7 = { 106 | 8 = [ 107 | 9 = ] 108 | [ = [ 109 | \ = } 110 | ] = ] 111 | a = æ 112 | b = “ 113 | c = ¢ 114 | d = ð 115 | e = € 116 | f = đ 117 | g = ŋ 118 | h = ħ 119 | i = → 120 | k = ĸ 121 | l = ł 122 | m = µ 123 | n = ” 124 | o = ø 125 | p = þ 126 | q = @ 127 | r = ¶ 128 | s = ß 129 | t = ŧ 130 | u = ↓ 131 | v = „ 132 | w = ſ 133 | x = » 134 | y = ← 135 | z = « 136 | 137 | [es_altgr+es_shift] 138 | , = × 139 | - = ¿ 140 | . = ÷ 141 | 1 = ¡ 142 | 2 = ⅛ 143 | 3 = £ 144 | 4 = $ 145 | 5 = ⅜ 146 | 6 = ⅝ 147 | 7 = ⅞ 148 | 8 = ™ 149 | 9 = ± 150 | a = Æ 151 | b = ‘ 152 | c = © 153 | d = Ð 154 | e = ¢ 155 | f = ª 156 | g = Ŋ 157 | h = Ħ 158 | i = ı 159 | k = & 160 | l = Ł 161 | m = º 162 | n = ’ 163 | o = Ø 164 | p = Þ 165 | q = Ω 166 | r = ® 167 | s = ẞ 168 | t = Ŧ 169 | u = ↑ 170 | v = ‚ 171 | w = § 172 | x = > 173 | y = ¥ 174 | z = < 175 | -------------------------------------------------------------------------------- /layouts/et: -------------------------------------------------------------------------------- 1 | [et:layout] 2 | 3 | ' = ፦ 4 | , = ፣ 5 | - = - 6 | . = ፤ 7 | / = ፧ 8 | 1 = ፩ 9 | 2 = ፪ 10 | 3 = ፫ 11 | 4 = ፬ 12 | 5 = ፭ 13 | 6 = ፮ 14 | 7 = ፯ 15 | 8 = ፰ 16 | 9 = ፱ 17 | ; = ። 18 | = = = 19 | [ = ፀ 20 | ] = ጨ 21 | a = ﹧ 22 | b = በ 23 | c = ቸ 24 | d = ደ 25 | e = ﹩ 26 | f = ፈ 27 | g = ገ 28 | h = ሀ 29 | i = ﹱ 30 | j = ጀ 31 | k = ከ 32 | l = ለ 33 | m = መ 34 | n = ነ 35 | o = ﹳ 36 | p = ፐ 37 | q = ቀ 38 | r = ረ 39 | s = ሰ 40 | t = ተ 41 | u = ﹵ 42 | v = ሸ 43 | w = ወ 44 | x = አ 45 | y = የ 46 | z = ዘ 47 | shift = layer(et_shift) 48 | 49 | [et_shift:S] 50 | ' = ፥ 51 | - = _ 52 | / = ? 53 | 1 = ፲ 54 | 2 = ፳ 55 | 3 = ፴ 56 | 4 = ፵ 57 | 5 = ፶ 58 | 6 = ፷ 59 | 7 = ፸ 60 | 8 = ፹ 61 | 9 = ፺ 62 | ; = ፡ 63 | = = + 64 | [ = ጸ 65 | \ = ‐ 66 | ] = ኀ 67 | a = ﹨ 68 | c = ﹸ 69 | d = ዸ 70 | e = ﹰ 71 | g = ጘ 72 | h = ሐ 73 | i = ﹲ 74 | k = ኸ 75 | n = ኘ 76 | o = ﹴ 77 | p = ጰ 78 | q = ቐ 79 | s = ሠ 80 | t = ጠ 81 | u = ﹶ 82 | v = ቨ 83 | x = ዐ 84 | z = ዠ 85 | -------------------------------------------------------------------------------- /layouts/fi: -------------------------------------------------------------------------------- 1 | [fi:layout] 2 | 3 | ' = ä 4 | , = , 5 | - = + 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ö 18 | [ = å 19 | \ = ' 20 | a = a 21 | b = b 22 | c = c 23 | d = d 24 | e = e 25 | f = f 26 | g = g 27 | h = h 28 | i = i 29 | j = j 30 | k = k 31 | l = l 32 | m = m 33 | n = n 34 | o = o 35 | p = p 36 | q = q 37 | r = r 38 | s = s 39 | t = t 40 | u = u 41 | v = v 42 | w = w 43 | x = x 44 | y = y 45 | z = z 46 | shift = layer(fi_shift) 47 | altgr = layer(fi_altgr) 48 | 49 | [fi_shift:S] 50 | ' = Ä 51 | , = ; 52 | - = ? 53 | . = : 54 | / = _ 55 | 1 = ! 56 | 2 = " 57 | 3 = # 58 | 4 = ¤ 59 | 5 = % 60 | 6 = & 61 | 7 = / 62 | 8 = ( 63 | 9 = ) 64 | ; = Ö 65 | [ = Å 66 | \ = * 67 | a = A 68 | b = B 69 | c = C 70 | d = D 71 | e = E 72 | f = F 73 | g = G 74 | h = H 75 | i = I 76 | j = J 77 | k = K 78 | l = L 79 | m = M 80 | n = N 81 | o = O 82 | p = P 83 | q = Q 84 | r = R 85 | s = S 86 | t = T 87 | u = U 88 | v = V 89 | w = W 90 | x = X 91 | y = Y 92 | z = Z 93 | 94 | [fi_altgr:G] 95 | ' = æ 96 | , = ’ 97 | - = \ 98 | / = – 99 | 2 = @ 100 | 3 = £ 101 | 4 = $ 102 | 5 = ‰ 103 | 6 = ‚ 104 | 7 = { 105 | 8 = [ 106 | 9 = ] 107 | ; = ø 108 | a = ə 109 | b = b 110 | c = c 111 | d = ð 112 | e = € 113 | f = f 114 | g = g 115 | h = h 116 | i = ı 117 | j = j 118 | k = ĸ 119 | m = µ 120 | n = ŋ 121 | o = œ 122 | q = q 123 | r = r 124 | s = ß 125 | t = þ 126 | u = u 127 | v = v 128 | w = w 129 | x = × 130 | y = y 131 | z = ʒ 132 | 133 | [fi_altgr+fi_shift] 134 | ' = Æ 135 | , = ‘ 136 | - = ¿ 137 | 1 = ¡ 138 | 2 = ” 139 | 3 = » 140 | 4 = « 141 | 5 = “ 142 | 6 = „ 143 | 8 = < 144 | 9 = > 145 | ; = Ø 146 | a = Ə 147 | b = B 148 | c = C 149 | d = Ð 150 | f = F 151 | g = G 152 | h = H 153 | i = | 154 | j = J 155 | m = — 156 | n = Ŋ 157 | o = Œ 158 | q = Q 159 | r = R 160 | s = ẞ 161 | t = Þ 162 | u = U 163 | v = V 164 | w = W 165 | x = · 166 | y = Y 167 | z = Ʒ 168 | -------------------------------------------------------------------------------- /layouts/fo: -------------------------------------------------------------------------------- 1 | [fo:layout] 2 | 3 | ' = ø 4 | , = , 5 | - = + 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = æ 18 | [ = å 19 | \ = ' 20 | ] = ð 21 | a = a 22 | b = b 23 | c = c 24 | d = d 25 | e = e 26 | f = f 27 | g = g 28 | h = h 29 | i = i 30 | j = j 31 | k = k 32 | l = l 33 | m = m 34 | n = n 35 | o = o 36 | p = p 37 | q = q 38 | r = r 39 | s = s 40 | t = t 41 | u = u 42 | v = v 43 | w = w 44 | x = x 45 | y = y 46 | z = z 47 | shift = layer(fo_shift) 48 | altgr = layer(fo_altgr) 49 | 50 | [fo_shift:S] 51 | ' = Ø 52 | , = ; 53 | - = ? 54 | . = : 55 | / = _ 56 | 1 = ! 57 | 2 = " 58 | 3 = # 59 | 4 = ¤ 60 | 5 = % 61 | 6 = & 62 | 7 = / 63 | 8 = ( 64 | 9 = ) 65 | ; = Æ 66 | [ = Å 67 | \ = * 68 | ] = Ð 69 | a = A 70 | b = B 71 | c = C 72 | d = D 73 | e = E 74 | f = F 75 | g = G 76 | h = H 77 | i = I 78 | j = J 79 | k = K 80 | l = L 81 | m = M 82 | n = N 83 | o = O 84 | p = P 85 | q = Q 86 | r = R 87 | s = S 88 | t = T 89 | u = U 90 | v = V 91 | w = W 92 | x = X 93 | y = Y 94 | z = Z 95 | 96 | [fo_altgr:G] 97 | - = ± 98 | . = · 99 | / = ­ 100 | 1 = ¡ 101 | 2 = @ 102 | 3 = £ 103 | 4 = $ 104 | 5 = ½ 105 | 6 = ¥ 106 | 7 = { 107 | 8 = [ 108 | 9 = ] 109 | = = | 110 | a = ª 111 | b = “ 112 | c = © 113 | d = ð 114 | e = € 115 | f = đ 116 | g = ŋ 117 | h = ħ 118 | i = → 119 | k = ĸ 120 | l = ł 121 | m = µ 122 | n = ” 123 | o = œ 124 | p = þ 125 | q = @ 126 | r = ® 127 | s = ß 128 | t = þ 129 | u = ↓ 130 | v = „ 131 | w = ſ 132 | x = » 133 | y = ← 134 | z = « 135 | 136 | [fo_altgr+fo_shift] 137 | - = ¿ 138 | / = ¯ 139 | 1 = ¹ 140 | 2 = ² 141 | 3 = ³ 142 | 4 = ¼ 143 | 5 = ¢ 144 | 6 = ⅝ 145 | 7 = ÷ 146 | 8 = « 147 | 9 = » 148 | = = ¦ 149 | \ = × 150 | a = º 151 | b = ‘ 152 | c = © 153 | d = Ð 154 | e = ¢ 155 | f = ª 156 | g = Ŋ 157 | h = Ħ 158 | i = ı 159 | k = & 160 | l = Ł 161 | m = º 162 | n = ’ 163 | o = Œ 164 | p = Þ 165 | q = Ω 166 | r = ® 167 | s = ẞ 168 | t = Þ 169 | u = ↑ 170 | v = ‚ 171 | w = § 172 | x = > 173 | y = ¥ 174 | z = < 175 | -------------------------------------------------------------------------------- /layouts/fr: -------------------------------------------------------------------------------- 1 | [fr:layout] 2 | 3 | ' = ù 4 | , = ; 5 | - = ) 6 | . = : 7 | / = ! 8 | 1 = & 9 | 2 = é 10 | 3 = " 11 | 4 = ' 12 | 5 = ( 13 | 6 = - 14 | 7 = è 15 | 8 = _ 16 | 9 = ç 17 | 0 = à 18 | ; = m 19 | = = = 20 | \ = * 21 | ] = $ 22 | a = q 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = , 35 | n = n 36 | o = o 37 | p = p 38 | q = a 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = z 45 | x = x 46 | y = y 47 | z = w 48 | shift = layer(fr_shift) 49 | altgr = layer(fr_altgr) 50 | 51 | [fr_shift:S] 52 | ' = % 53 | , = . 54 | - = ° 55 | . = / 56 | / = § 57 | 1 = 1 58 | 2 = 2 59 | 3 = 3 60 | 4 = 4 61 | 5 = 5 62 | 6 = 6 63 | 7 = 7 64 | 8 = 8 65 | 9 = 9 66 | 0 = 0 67 | ; = M 68 | = = + 69 | \ = µ 70 | ] = £ 71 | a = Q 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = ? 84 | n = N 85 | o = O 86 | p = P 87 | q = A 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = Z 94 | x = X 95 | y = Y 96 | z = W 97 | 98 | [fr_altgr:G] 99 | , = • 100 | - = ] 101 | . = · 102 | 1 = ¹ 103 | 2 = ~ 104 | 3 = # 105 | 4 = { 106 | 5 = [ 107 | 6 = | 108 | 7 = ` 109 | 8 = \ 110 | 9 = ^ 111 | 0 = @ 112 | ; = µ 113 | = = } 114 | ] = ¤ 115 | a = @ 116 | b = “ 117 | c = ¢ 118 | d = ð 119 | e = € 120 | f = đ 121 | g = ŋ 122 | h = ħ 123 | i = → 124 | k = ĸ 125 | l = ł 126 | n = ” 127 | o = ø 128 | p = þ 129 | q = æ 130 | r = ¶ 131 | s = ß 132 | t = ŧ 133 | u = ↓ 134 | v = „ 135 | w = « 136 | x = » 137 | y = ← 138 | z = ł 139 | 140 | [fr_altgr+fr_shift] 141 | , = × 142 | - = ¿ 143 | . = ÷ 144 | 1 = ¡ 145 | 2 = ⅛ 146 | 3 = £ 147 | 4 = $ 148 | 5 = ⅜ 149 | 6 = ⅝ 150 | 7 = ⅞ 151 | 8 = ™ 152 | 9 = ± 153 | ; = º 154 | a = Ω 155 | b = ‘ 156 | c = © 157 | d = Ð 158 | e = ¢ 159 | f = ª 160 | g = Ŋ 161 | h = Ħ 162 | i = ı 163 | k = & 164 | l = Ł 165 | n = ’ 166 | o = Ø 167 | p = Þ 168 | q = Æ 169 | r = ® 170 | s = ẞ 171 | t = Ŧ 172 | u = ↑ 173 | v = ‚ 174 | w = < 175 | x = > 176 | y = ¥ 177 | z = Ł 178 | -------------------------------------------------------------------------------- /layouts/gb: -------------------------------------------------------------------------------- 1 | [gb:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = # 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(gb_shift) 49 | altgr = layer(gb_altgr) 50 | 51 | [gb_shift:S] 52 | ' = @ 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = " 59 | 3 = £ 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = ~ 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [gb_altgr:G] 99 | , = • 100 | - = \ 101 | . = · 102 | 1 = ¹ 103 | 2 = ² 104 | 3 = ³ 105 | 4 = € 106 | 5 = ½ 107 | 6 = ¾ 108 | 7 = { 109 | 8 = [ 110 | 9 = ] 111 | a = æ 112 | b = “ 113 | c = ¢ 114 | d = ð 115 | e = e 116 | f = đ 117 | g = ŋ 118 | h = ħ 119 | i = → 120 | k = ĸ 121 | l = ł 122 | m = µ 123 | n = ” 124 | o = ø 125 | p = þ 126 | q = @ 127 | r = ¶ 128 | s = ß 129 | t = ŧ 130 | u = ↓ 131 | v = „ 132 | w = ſ 133 | x = » 134 | y = ← 135 | z = « 136 | 137 | [gb_altgr+gb_shift] 138 | , = × 139 | - = ¿ 140 | . = ÷ 141 | 1 = ¡ 142 | 2 = ⅛ 143 | 3 = £ 144 | 4 = ¼ 145 | 5 = ⅜ 146 | 6 = ⅝ 147 | 7 = ⅞ 148 | 8 = ™ 149 | 9 = ± 150 | a = Æ 151 | b = ‘ 152 | c = © 153 | d = Ð 154 | e = E 155 | f = ª 156 | g = Ŋ 157 | h = Ħ 158 | i = ı 159 | k = & 160 | l = Ł 161 | m = º 162 | n = ’ 163 | o = Ø 164 | p = Þ 165 | q = Ω 166 | r = ® 167 | s = ẞ 168 | t = Ŧ 169 | u = ↑ 170 | v = ‚ 171 | w = § 172 | x = > 173 | y = ¥ 174 | z = < 175 | -------------------------------------------------------------------------------- /layouts/ge: -------------------------------------------------------------------------------- 1 | [ge:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = ა 23 | b = ბ 24 | c = ც 25 | d = დ 26 | e = ე 27 | f = ფ 28 | g = გ 29 | h = ჰ 30 | i = ი 31 | j = ჯ 32 | k = კ 33 | l = ლ 34 | m = მ 35 | n = ნ 36 | o = ო 37 | p = პ 38 | q = ქ 39 | r = რ 40 | s = ს 41 | t = ტ 42 | u = უ 43 | v = ვ 44 | w = წ 45 | x = ხ 46 | y = ყ 47 | z = ზ 48 | shift = layer(ge_shift) 49 | altgr = layer(ge_altgr) 50 | 51 | [ge_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = ჩ 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = ჟ 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = ღ 89 | s = შ 90 | t = თ 91 | u = U 92 | v = V 93 | w = ჭ 94 | x = X 95 | y = Y 96 | z = ძ 97 | 98 | [ge_altgr:G] 99 | , = « 100 | - = — 101 | . = » 102 | / = ჻ 103 | 1 = ' 104 | 2 = „ 105 | 3 = “ 106 | 4 = № 107 | 5 = € 108 | 7 = § 109 | 8 = ° 110 | = = – 111 | \ = ~ 112 | a = ჺ 113 | e = ჱ 114 | f = ჶ 115 | g = ჹ 116 | h = ჵ 117 | i = ჲ 118 | j = ჷ 119 | n = ჼ 120 | v = ჳ 121 | x = ჴ 122 | y = ჸ 123 | 124 | [ge_altgr+ge_shift] 125 | \ = ~ 126 | -------------------------------------------------------------------------------- /layouts/gh: -------------------------------------------------------------------------------- 1 | [gh:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(gh_shift) 49 | altgr = layer(gh_altgr) 50 | 51 | [gh_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = ₵ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [gh_altgr:G] 99 | 4 = $ 100 | 101 | [gh_altgr+gh_shift] 102 | 4 = ¢ 103 | -------------------------------------------------------------------------------- /layouts/gn: -------------------------------------------------------------------------------- 1 | [gn:layout] 2 | 3 | ' = ߯ 4 | , = ؛ 5 | - = ) 6 | . = ، 7 | / = ߹ 8 | 1 = ߱ 9 | 2 = ߫ 10 | 3 = ߵ 11 | 4 = ߴ 12 | 5 = ( 13 | 6 = - 14 | 7 = ߬ 15 | 8 = ߺ 16 | 9 = ߭ 17 | ; = ߡ 18 | = = = 19 | [ = ߳ 20 | \ = ߑ 21 | ] = $ 22 | a = ߫ 23 | b = ߓ 24 | c = ߗ 25 | d = ߘ 26 | e = ߍ 27 | f = ߝ 28 | g = ߜ 29 | h = ߤ 30 | i = ߌ 31 | j = ߖ 32 | k = ߞ 33 | l = ߟ 34 | m = ߸ 35 | n = ߣ 36 | o = ߐ 37 | p = ߔ 38 | q = ߊ 39 | r = ߙ 40 | s = ߛ 41 | t = ߕ 42 | u = ߎ 43 | v = ߢ 44 | w = ߠ 45 | x = ، 46 | y = ߦ 47 | z = ߥ 48 | shift = layer(gn_shift) 49 | altgr = layer(gn_altgr) 50 | 51 | [gn_shift:S] 52 | ' = ߸ 53 | . = / 54 | 1 = ߁ 55 | 2 = ߂ 56 | 3 = ߃ 57 | 4 = ߄ 58 | 5 = ߅ 59 | 6 = ߆ 60 | 7 = ߇ 61 | 8 = ߈ 62 | 9 = ߉ 63 | = = + 64 | \ = * 65 | ] = £ 66 | c = ߩ 67 | e = ߋ 68 | g = ߷ 69 | j = ߨ 70 | l = ߪ 71 | m = ؟ 72 | n = ߒ 73 | o = ߏ 74 | r = ߚ 75 | u = ߶ 76 | w = < 77 | y = ߧ 78 | 79 | [gn_altgr:G] 80 | ' = % 81 | 3 = # 82 | 4 = ⸜ 83 | 5 = ⸝ 84 | 6 = | 85 | 7 = ` 86 | 8 = \ 87 | 9 = ^ 88 | = = } 89 | ] = ¤ 90 | 91 | [gn_altgr+gn_shift] 92 | 3 = £ 93 | 4 = $ 94 | 9 = ± 95 | -------------------------------------------------------------------------------- /layouts/gr: -------------------------------------------------------------------------------- 1 | [gr:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | = = = 18 | [ = [ 19 | \ = \ 20 | ] = ] 21 | a = α 22 | b = β 23 | c = ψ 24 | d = δ 25 | e = ε 26 | f = φ 27 | g = γ 28 | h = η 29 | i = ι 30 | j = ξ 31 | k = κ 32 | l = λ 33 | m = μ 34 | n = ν 35 | o = ο 36 | p = π 37 | q = ; 38 | r = ρ 39 | s = σ 40 | t = τ 41 | u = θ 42 | v = ω 43 | w = ς 44 | x = χ 45 | y = υ 46 | z = ζ 47 | shift = layer(gr_shift) 48 | altgr = layer(gr_altgr) 49 | 50 | [gr_shift:S] 51 | ' = " 52 | , = < 53 | - = _ 54 | . = > 55 | / = ? 56 | 1 = ! 57 | 2 = @ 58 | 3 = # 59 | 4 = $ 60 | 5 = % 61 | 6 = ^ 62 | 7 = & 63 | 8 = * 64 | 9 = ( 65 | = = + 66 | [ = { 67 | \ = | 68 | ] = } 69 | a = Α 70 | b = Β 71 | c = Ψ 72 | d = Δ 73 | e = Ε 74 | f = Φ 75 | g = Γ 76 | h = Η 77 | i = Ι 78 | j = Ξ 79 | k = Κ 80 | l = Λ 81 | m = Μ 82 | n = Ν 83 | o = Ο 84 | p = Π 85 | q = : 86 | r = Ρ 87 | s = Σ 88 | t = Τ 89 | u = Θ 90 | v = Ω 91 | w = Σ 92 | x = Χ 93 | y = Υ 94 | z = Ζ 95 | 96 | [gr_altgr:G] 97 | , = « 98 | - = ± 99 | . = » 100 | 2 = ½ 101 | 3 = £ 102 | 4 = ¼ 103 | 5 = € 104 | 6 = ϰ 105 | 7 = ϗ 106 | 8 = ₯ 107 | b = ϐ 108 | c = © 109 | d = ↓ 110 | e = € 111 | f = ϕ 112 | g = ϝ 113 | i = ͻ 114 | j = ͼ 115 | k = ϟ 116 | l = ϲ 117 | m = ϻ 118 | n = ʹ 119 | p = ϡ 120 | q = · 121 | r = ® 122 | u = ϑ 123 | v = ϖ 124 | w = ϛ 125 | x = → 126 | y = ϒ 127 | z = ͽ 128 | 129 | [gr_altgr+gr_shift] 130 | . = · 131 | 1 = ¹ 132 | 2 = ² 133 | 3 = ³ 134 | 4 = ¾ 135 | 7 = Ϗ 136 | d = ↑ 137 | g = Ϝ 138 | i = Ͻ 139 | j = Ͼ 140 | k = Ϟ 141 | l = Ϲ 142 | m = Ϻ 143 | n = ͵ 144 | p = Ϡ 145 | r = ϱ 146 | u = ϴ 147 | w = Ϛ 148 | x = ← 149 | y = ϒ 150 | z = Ͽ 151 | -------------------------------------------------------------------------------- /layouts/graphite: -------------------------------------------------------------------------------- 1 | [graphite:layout] 2 | q = b 3 | w = l 4 | e = d 5 | r = w 6 | t = z 7 | y = ' 8 | u = f 9 | i = o 10 | o = u 11 | p = j 12 | [ = ; 13 | ] = = 14 | a = n 15 | s = r 16 | d = t 17 | f = s 18 | h = y 19 | j = h 20 | k = a 21 | l = e 22 | ; = i 23 | ' = , 24 | z = q 25 | c = m 26 | v = c 27 | b = v 28 | n = k 29 | m = p 30 | , = . 31 | . = - 32 | shift = layer(graphite_shift) 33 | 34 | [graphite_shift:S] 35 | b = B 36 | l = L 37 | d = D 38 | w = W 39 | z = Z 40 | ' = _ 41 | f = F 42 | o = O 43 | u = U 44 | j = J 45 | ; = : 46 | = = + 47 | n = N 48 | r = R 49 | t = T 50 | s = S 51 | y = Y 52 | h = H 53 | a = A 54 | e = E 55 | i = I 56 | , = ? 57 | x = X 58 | m = M 59 | c = C 60 | v = V 61 | q = Q 62 | k = K 63 | . = > 64 | - = " 65 | / = < 66 | -------------------------------------------------------------------------------- /layouts/graphite-angle-kp: -------------------------------------------------------------------------------- 1 | [graphite-angle-kp:layout] 2 | q = b 3 | w = l 4 | e = d 5 | r = w 6 | t = z 7 | y = ' 8 | u = f 9 | i = o 10 | o = u 11 | p = j 12 | [ = ; 13 | ] = = 14 | a = n 15 | s = r 16 | d = t 17 | f = s 18 | h = y 19 | j = h 20 | k = a 21 | l = e 22 | ; = i 23 | ' = , 24 | z = x 25 | x = m 26 | b = q 27 | n = k 28 | m = p 29 | , = . 30 | . = - 31 | shift = layer(graphite-angle-kp_shift) 32 | 33 | [graphite-angle-kp_shift:S] 34 | b = B 35 | l = L 36 | d = D 37 | w = W 38 | z = Z 39 | y = _ 40 | f = F 41 | o = O 42 | u = U 43 | j = J 44 | ; = : 45 | = = + 46 | n = N 47 | r = R 48 | t = T 49 | s = S 50 | y = Y 51 | h = H 52 | a = A 53 | e = E 54 | i = I 55 | , = ? 56 | x = X 57 | m = M 58 | c = C 59 | v = V 60 | q = Q 61 | k = K 62 | . = > 63 | - = " 64 | / = < 65 | -------------------------------------------------------------------------------- /layouts/hr: -------------------------------------------------------------------------------- 1 | [hr:layout] 2 | 3 | ' = ć 4 | , = , 5 | - = ' 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = č 18 | = = + 19 | [ = š 20 | \ = ž 21 | ] = đ 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = z 47 | z = y 48 | shift = layer(hr_shift) 49 | altgr = layer(hr_altgr) 50 | 51 | [hr_shift:S] 52 | ' = Ć 53 | , = ; 54 | - = ? 55 | . = : 56 | / = _ 57 | 1 = ! 58 | 2 = " 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = & 63 | 7 = / 64 | 8 = ( 65 | 9 = ) 66 | ; = Č 67 | = = * 68 | [ = Š 69 | \ = Ž 70 | ] = Đ 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Z 96 | z = Y 97 | 98 | [hr_altgr:G] 99 | ' = ß 100 | , = < 101 | . = > 102 | 1 = ~ 103 | 3 = ^ 104 | 5 = ° 105 | 7 = ` 106 | [ = ÷ 107 | \ = ¤ 108 | ] = × 109 | a = æ 110 | b = { 111 | c = ¢ 112 | d = ” 113 | e = € 114 | f = [ 115 | g = ] 116 | h = ħ 117 | i = → 118 | k = ł 119 | l = ł 120 | m = § 121 | n = } 122 | o = ø 123 | p = þ 124 | q = \ 125 | r = ¶ 126 | s = „ 127 | t = ŧ 128 | u = ↓ 129 | v = @ 130 | w = | 131 | x = ’ 132 | y = ← 133 | z = ‘ 134 | 135 | [hr_altgr+hr_shift] 136 | , = × 137 | - = ¨ 138 | . = ÷ 139 | 2 = ˇ 140 | 4 = ˘ 141 | 6 = ˛ 142 | 8 = ˙ 143 | 9 = ' 144 | = = ¸ 145 | a = Æ 146 | b = ' 147 | c = © 148 | d = « 149 | e = € 150 | f = ª 151 | g = Ŋ 152 | h = Ħ 153 | i = ı 154 | k = & 155 | l = Ł 156 | m = º 157 | n = } 158 | o = Ø 159 | p = Þ 160 | q = Ω 161 | r = ® 162 | s = » 163 | t = Ŧ 164 | u = ↑ 165 | v = ` 166 | w = Ł 167 | x = « 168 | y = ¥ 169 | z = » 170 | -------------------------------------------------------------------------------- /layouts/hu: -------------------------------------------------------------------------------- 1 | [hu:layout] 2 | 3 | ' = á 4 | , = , 5 | - = ü 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = é 18 | = = ó 19 | [ = ő 20 | \ = ű 21 | ] = ú 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = z 47 | z = y 48 | shift = layer(hu_shift) 49 | altgr = layer(hu_altgr) 50 | 51 | [hu_shift:S] 52 | ' = Á 53 | , = ? 54 | - = 55 | . = : 56 | / = _ 57 | 1 = ' 58 | 2 = " 59 | 3 = + 60 | 4 = ! 61 | 5 = % 62 | 6 = / 63 | 7 = = 64 | 8 = ( 65 | 9 = ) 66 | ; = É 67 | = = Ó 68 | [ = Ő 69 | \ = 70 | ] = ¬ 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Z 96 | z = Y 97 | 98 | [hu_altgr:G] 99 | ' = ß 100 | , = ; 101 | . = > 102 | / = * 103 | 1 = ~ 104 | 3 = ^ 105 | 7 = ` 106 | ; = $ 107 | [ = ÷ 108 | \ = ¤ 109 | ] = × 110 | a = ä 111 | b = { 112 | c = & 113 | d = Đ 114 | e = Ä 115 | f = [ 116 | g = ] 117 | h = ħ 118 | i = Í 119 | j = í 120 | k = ł 121 | l = Ł 122 | m = < 123 | n = } 124 | o = „ 125 | p = ” 126 | q = \ 127 | r = ¶ 128 | s = đ 129 | t = ŧ 130 | u = € 131 | v = @ 132 | w = | 133 | x = # 134 | y = – 135 | z = > 136 | 137 | [hu_altgr+hu_shift] 138 | ' = ẞ 139 | , = × 140 | - = ¨ 141 | . = ÷ 142 | 2 = ˇ 143 | 4 = ˘ 144 | 5 = ° 145 | 6 = ˛ 146 | 8 = ˙ 147 | 9 = ´ 148 | ; = ¢ 149 | = = ¸ 150 | a = Ä 151 | b = ‘ 152 | c = © 153 | d = Ð 154 | e = E 155 | f = ª 156 | g = Ŋ 157 | h = Ħ 158 | i = í 159 | j = Í 160 | k = & 161 | l = Ł 162 | m = º 163 | n = ’ 164 | o = Ø 165 | p = Þ 166 | q = Ω 167 | r = ® 168 | s = ẞ 169 | t = Ŧ 170 | u = ↑ 171 | v = ‚ 172 | w = § 173 | x = > 174 | y = ¥ 175 | z = < 176 | -------------------------------------------------------------------------------- /layouts/id: -------------------------------------------------------------------------------- 1 | [id:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(id_shift) 49 | 50 | [id_shift:S] 51 | ' = " 52 | , = < 53 | - = _ 54 | . = > 55 | / = ? 56 | 1 = ! 57 | 2 = @ 58 | 3 = # 59 | 4 = $ 60 | 5 = % 61 | 6 = ^ 62 | 7 = & 63 | 8 = * 64 | 9 = ( 65 | ; = : 66 | = = + 67 | [ = { 68 | \ = | 69 | ] = } 70 | a = A 71 | b = B 72 | c = C 73 | d = D 74 | e = E 75 | f = F 76 | g = G 77 | h = H 78 | i = I 79 | j = J 80 | k = K 81 | l = L 82 | m = M 83 | n = N 84 | o = O 85 | p = P 86 | q = Q 87 | r = R 88 | s = S 89 | t = T 90 | u = U 91 | v = V 92 | w = W 93 | x = X 94 | y = Y 95 | z = Z 96 | -------------------------------------------------------------------------------- /layouts/ie: -------------------------------------------------------------------------------- 1 | [ie:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = # 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(ie_shift) 49 | altgr = layer(ie_altgr) 50 | 51 | [ie_shift:S] 52 | ' = @ 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = " 59 | 3 = £ 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = ~ 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [ie_altgr:G] 99 | ' = æ 100 | , = ≤ 101 | - = – 102 | . = ≥ 103 | / = ÷ 104 | 1 = ¡ 105 | 2 = ™ 106 | 3 = © 107 | 4 = € 108 | 5 = § 109 | 7 = ¶ 110 | 9 = ª 111 | ; = … 112 | = = ≠ 113 | [ = “ 114 | \ = « 115 | ] = ‘ 116 | a = á 117 | b = ¨ 118 | d = ð 119 | e = é 120 | f = ƒ 121 | g = © 122 | i = í 123 | j = ı 124 | l = ´ 125 | m = ¯ 126 | o = ó 127 | p = ‚ 128 | q = œ 129 | r = ® 130 | s = ß 131 | t = þ 132 | u = ú 133 | x = × 134 | y = ¥ 135 | z = 〈 136 | 137 | [ie_altgr+ie_shift] 138 | ' = Æ 139 | , = „ 140 | - = — 141 | . = ‚ 142 | / = ¿ 143 | 1 = ¹ 144 | 2 = ² 145 | 3 = ³ 146 | 4 = ¢ 147 | 5 = † 148 | 6 = ‰ 149 | 7 = ⁊ 150 | 8 = • 151 | 9 = · 152 | ; = ‡ 153 | = = ± 154 | [ = ” 155 | \ = » 156 | ] = ’ 157 | a = Á 158 | c = ¸ 159 | d = Ð 160 | e = É 161 | i = Í 162 | j = ¼ 163 | k = ½ 164 | l = ¾ 165 | o = Ó 166 | q = Œ 167 | r = ‰ 168 | s = ẞ 169 | t = Þ 170 | u = ¬ 171 | x = ∼ 172 | y = µ 173 | z = 〉 174 | -------------------------------------------------------------------------------- /layouts/il: -------------------------------------------------------------------------------- 1 | [il:layout] 2 | 3 | ' = , 4 | , = ת 5 | - = - 6 | . = ץ 7 | / = . 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ף 18 | = = = 19 | [ = ] 20 | \ = \ 21 | ] = [ 22 | a = ש 23 | b = נ 24 | c = ב 25 | d = ג 26 | e = ק 27 | f = כ 28 | g = ע 29 | h = י 30 | i = ן 31 | j = ח 32 | k = ל 33 | l = ך 34 | m = צ 35 | n = מ 36 | o = ם 37 | p = פ 38 | q = / 39 | r = ר 40 | s = ד 41 | t = א 42 | u = ו 43 | v = ה 44 | w = ' 45 | x = ס 46 | y = ט 47 | z = ז 48 | shift = layer(il_shift) 49 | altgr = layer(il_altgr) 50 | 51 | [il_shift:S] 52 | ' = " 53 | , = > 54 | - = _ 55 | . = < 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ) 66 | ; = : 67 | = = + 68 | [ = } 69 | \ = | 70 | ] = { 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [il_altgr:G] 99 | ' = ״ 100 | , = ’ 101 | - = ־ 102 | . = ‚ 103 | / = ÷ 104 | 3 = € 105 | 4 = ₪ 106 | 5 = ° 107 | 6 = ֫ 108 | 7 = ֽ 109 | 8 = × 110 | 9 = ‎ 111 | ; = „ 112 | = = – 113 | [ = ֲ 114 | \ = ֻ 115 | ] = ֿ 116 | a = ְ 117 | c = ֱ 118 | e = ָ 119 | g = ױ 120 | h = ײ 121 | j = ִ 122 | l = ” 123 | m = ֵ 124 | p = ַ 125 | q = ׂ 126 | r = ֳ 127 | s = ּ 128 | u = ֹ 129 | w = ׁ 130 | x = ֶ 131 | y = װ 132 | 133 | [il_altgr+il_shift] 134 | b = ׆ 135 | -------------------------------------------------------------------------------- /layouts/in: -------------------------------------------------------------------------------- 1 | [in:layout] 2 | 3 | ' = ट 4 | , = , 5 | - = - 6 | . = . 7 | / = य 8 | 1 = १ 9 | 2 = २ 10 | 3 = ३ 11 | 4 = ४ 12 | 5 = ५ 13 | 6 = ६ 14 | 7 = ७ 15 | 8 = ८ 16 | 9 = ९ 17 | ; = च 18 | = = ृ 19 | [ = ड 20 | \ = ॉ 21 | ] = ़ 22 | a = ो 23 | b = व 24 | c = म 25 | d = ् 26 | e = ा 27 | f = ि 28 | g = ु 29 | h = प 30 | i = ग 31 | j = र 32 | k = क 33 | l = त 34 | m = स 35 | n = ल 36 | o = द 37 | p = ज 38 | q = ौ 39 | r = ी 40 | s = े 41 | t = ू 42 | u = ह 43 | v = न 44 | w = ै 45 | x = ं 46 | y = ब 47 | z = ॆ 48 | shift = layer(in_shift) 49 | altgr = layer(in_altgr) 50 | 51 | [in_shift:S] 52 | ' = ठ 53 | , = ष 54 | - = ः 55 | . = । 56 | / = य़ 57 | 1 = ऍ 58 | 2 = ॅ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = छ 67 | = = ऋ 68 | [ = ढ 69 | \ = ऑ 70 | ] = ञ 71 | a = ओ 72 | b = ऴ 73 | c = ण 74 | d = अ 75 | e = आ 76 | f = इ 77 | g = उ 78 | h = फ 79 | i = घ 80 | j = ऱ 81 | k = ख 82 | l = थ 83 | m = श 84 | n = ळ 85 | o = ध 86 | p = झ 87 | q = औ 88 | r = ई 89 | s = ए 90 | t = ऊ 91 | u = ङ 92 | v = ऩ 93 | w = ऐ 94 | x = ँ 95 | y = भ 96 | z = ऎ 97 | 98 | [in_altgr:G] 99 | , = ॰ 100 | - = - 101 | . = ॥ 102 | / = / 103 | 1 = 1 104 | 2 = 2 105 | 3 = 3 106 | 4 = 4 107 | 5 = 5 108 | 6 = 6 109 | 7 = 7 110 | 8 = 8 111 | 9 = 9 112 | ; = ॒ 113 | = = ॄ 114 | [ = ड़ 115 | \ = \ 116 | c = ॔ 117 | f = ॢ 118 | i = ग़ 119 | k = क़ 120 | p = ज़ 121 | r = ॣ 122 | z = ॓ 123 | 124 | [in_altgr+in_shift] 125 | ' = ॑ 126 | - = _ 127 | . = ऽ 128 | / = ? 129 | 1 = ! 130 | 2 = @ 131 | 3 = # 132 | 4 = ₹ 133 | 5 = % 134 | 6 = ^ 135 | 7 = & 136 | 8 = * 137 | 9 = ( 138 | = = ॠ 139 | [ = ढ़ 140 | \ = | 141 | f = ऌ 142 | h = फ़ 143 | k = ख़ 144 | r = ॡ 145 | x = ॐ 146 | -------------------------------------------------------------------------------- /layouts/iq: -------------------------------------------------------------------------------- 1 | [iq:layout] 2 | 3 | ' = ط 4 | , = و 5 | - = - 6 | . = ز 7 | / = ظ 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ك 18 | = = = 19 | [ = ج 20 | \ = \ 21 | ] = د 22 | a = ش 23 | b = ﻻ 24 | c = ؤ 25 | d = ي 26 | e = ث 27 | f = ب 28 | g = ل 29 | h = ا 30 | i = ه 31 | j = ت 32 | k = ن 33 | l = م 34 | m = ة 35 | n = ى 36 | o = خ 37 | p = ح 38 | q = ض 39 | r = ق 40 | s = س 41 | t = ف 42 | u = ع 43 | v = ر 44 | w = ص 45 | x = ء 46 | y = غ 47 | z = ئ 48 | shift = layer(iq_shift) 49 | altgr = layer(iq_altgr) 50 | 51 | [iq_shift:S] 52 | ' = " 53 | , = , 54 | - = _ 55 | . = . 56 | / = ؟ 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ) 66 | ; = : 67 | = = + 68 | [ = < 69 | \ = … 70 | ] = > 71 | a = ِ 72 | b = ﻵ 73 | c = } 74 | d = ] 75 | e = ُ 76 | f = [ 77 | g = ﻷ 78 | h = أ 79 | i = ÷ 80 | j = ـ 81 | k = ، 82 | l = / 83 | m = ' 84 | n = آ 85 | o = × 86 | p = ؛ 87 | q = َ 88 | r = ٌ 89 | s = ٍ 90 | t = ﻹ 91 | u = ` 92 | v = { 93 | w = ً 94 | x = ْ 95 | y = إ 96 | z = ~ 97 | 98 | [iq_altgr:G] 99 | ' = ⟩ 100 | , = ٬ 101 | - = – 102 | . = ژ 103 | / = ٭ 104 | 1 = ١ 105 | 2 = ٢ 106 | 3 = ٣ 107 | 4 = ٤ 108 | 5 = ٥ 109 | 6 = ٦ 110 | 7 = ٧ 111 | 8 = ٨ 112 | 9 = ٩ 113 | ; = گ 114 | = = ≠ 115 | [ = چ 116 | \ = ⟨ 117 | f = پ 118 | h = ٱ 119 | k = ٫ 120 | n = ٰ 121 | t = ڤ 122 | x = « 123 | z = » 124 | 125 | [iq_altgr+iq_shift] 126 | ' = ‍ 127 | - = ‑ 128 | / = ‌ 129 | 5 = ‰ 130 | = = ≈ 131 | [ = ‏ 132 | \ =   133 | ] = ؜ 134 | e = ⁨ 135 | i = ‬ 136 | p = ‎ 137 | q = ⁦ 138 | r = ⁩ 139 | u = ‫ 140 | w = ⁧ 141 | x = ‹ 142 | y = ‪ 143 | z = › 144 | -------------------------------------------------------------------------------- /layouts/ir: -------------------------------------------------------------------------------- 1 | [ir:layout] 2 | 3 | ' = گ 4 | , = و 5 | - = - 6 | . = . 7 | / = / 8 | 1 = ۱ 9 | 2 = ۲ 10 | 3 = ۳ 11 | 4 = ۴ 12 | 5 = ۵ 13 | 6 = ۶ 14 | 7 = ۷ 15 | 8 = ۸ 16 | 9 = ۹ 17 | ; = ک 18 | = = = 19 | [ = ج 20 | \ = \ 21 | ] = چ 22 | a = ش 23 | b = ذ 24 | c = ز 25 | d = ی 26 | e = ث 27 | f = ب 28 | g = ل 29 | h = ا 30 | i = ه 31 | j = ت 32 | k = ن 33 | l = م 34 | m = پ 35 | n = د 36 | o = خ 37 | p = ح 38 | q = ض 39 | r = ق 40 | s = س 41 | t = ف 42 | u = ع 43 | v = ر 44 | w = ص 45 | x = ط 46 | y = غ 47 | z = ظ 48 | shift = layer(ir_shift) 49 | altgr = layer(ir_altgr) 50 | 51 | [ir_shift:S] 52 | ' = ؛ 53 | , = > 54 | - = ـ 55 | . = < 56 | / = ؟ 57 | 1 = ! 58 | 2 = ٬ 59 | 3 = ٫ 60 | 4 = ﷼ 61 | 5 = ٪ 62 | 6 = × 63 | 7 = ، 64 | 8 = * 65 | 9 = ) 66 | ; = : 67 | = = + 68 | [ = } 69 | \ = | 70 | ] = { 71 | a = ؤ 72 | b = ‌ 73 | c = ژ 74 | d = ي 75 | e = ٍ 76 | f = إ 77 | g = أ 78 | h = آ 79 | i = ّ 80 | j = ة 81 | k = » 82 | l = « 83 | m = ء 84 | n = ٔ 85 | o = ] 86 | p = [ 87 | q = ْ 88 | r = ً 89 | s = ئ 90 | t = ُ 91 | u = َ 92 | v = ٰ 93 | w = ٌ 94 | x = ٓ 95 | y = ِ 96 | z = ك 97 | 98 | [ir_altgr:G] 99 | ' = " 100 | , = , 101 | - = _ 102 | . = ' 103 | / = ? 104 | 1 = ` 105 | 2 = @ 106 | 3 = # 107 | 4 = $ 108 | 5 = % 109 | 6 = ^ 110 | 7 = & 111 | 8 = • 112 | 9 = ‎ 113 | ; = ; 114 | = = − 115 | [ = ‪ 116 | \ = ‐ 117 | ] = ‫ 118 | b = ‍ 119 | d = ى 120 | h = ٱ 121 | i = ‭ 122 | k = ﴾ 123 | l = ﴿ 124 | m = … 125 | n = ٕ 126 | o = ‮ 127 | p = ‬ 128 | q = ° 129 | v = ٖ 130 | 131 | [ir_altgr+ir_shift] 132 | 1 = 1 133 | 2 = 2 134 | 3 = 3 135 | 4 = 4 136 | 5 = 5 137 | 6 = 6 138 | 7 = 7 139 | 8 = 8 140 | 9 = 9 141 | -------------------------------------------------------------------------------- /layouts/is: -------------------------------------------------------------------------------- 1 | [is:layout] 2 | 3 | , = , 4 | - = ö 5 | . = . 6 | / = þ 7 | 1 = 1 8 | 2 = 2 9 | 3 = 3 10 | 4 = 4 11 | 5 = 5 12 | 6 = 6 13 | 7 = 7 14 | 8 = 8 15 | 9 = 9 16 | ; = æ 17 | = = - 18 | [ = ð 19 | \ = + 20 | ] = ' 21 | a = a 22 | b = b 23 | c = c 24 | d = d 25 | e = e 26 | f = f 27 | g = g 28 | h = h 29 | i = i 30 | j = j 31 | k = k 32 | l = l 33 | m = m 34 | n = n 35 | o = o 36 | p = p 37 | q = q 38 | r = r 39 | s = s 40 | t = t 41 | u = u 42 | v = v 43 | w = w 44 | x = x 45 | y = y 46 | z = z 47 | shift = layer(is_shift) 48 | altgr = layer(is_altgr) 49 | 50 | [is_shift:S] 51 | , = ; 52 | - = Ö 53 | . = : 54 | / = Þ 55 | 1 = ! 56 | 2 = " 57 | 3 = # 58 | 4 = $ 59 | 5 = % 60 | 6 = & 61 | 7 = / 62 | 8 = ( 63 | 9 = ) 64 | ; = Æ 65 | = = _ 66 | [ = Ð 67 | \ = * 68 | ] = ? 69 | a = A 70 | b = B 71 | c = C 72 | d = D 73 | e = E 74 | f = F 75 | g = G 76 | h = H 77 | i = I 78 | j = J 79 | k = K 80 | l = L 81 | m = M 82 | n = N 83 | o = O 84 | p = P 85 | q = Q 86 | r = R 87 | s = S 88 | t = T 89 | u = U 90 | v = V 91 | w = W 92 | x = X 93 | y = Y 94 | z = Z 95 | 96 | [is_altgr:G] 97 | , = • 98 | - = \ 99 | . = · 100 | 1 = ¹ 101 | 2 = ² 102 | 3 = ³ 103 | 4 = ¼ 104 | 5 = ½ 105 | 6 = ¬ 106 | 7 = { 107 | 8 = [ 108 | 9 = ] 109 | ; = ^ 110 | \ = ` 111 | ] = ~ 112 | a = æ 113 | b = “ 114 | c = ¢ 115 | d = „ 116 | e = € 117 | f = đ 118 | g = ŋ 119 | h = ħ 120 | i = → 121 | k = ĸ 122 | l = ł 123 | m = µ 124 | n = ” 125 | o = ø 126 | p = | 127 | q = @ 128 | r = ¶ 129 | s = ß 130 | t = ŧ 131 | u = ↓ 132 | v = „ 133 | w = ſ 134 | x = » 135 | y = ← 136 | z = « 137 | 138 | [is_altgr+is_shift] 139 | , = × 140 | - = ¿ 141 | . = ÷ 142 | 1 = ¡ 143 | 2 = ⅛ 144 | 3 = £ 145 | 4 = ¤ 146 | 5 = ⅜ 147 | 6 = ⅝ 148 | 7 = ⅞ 149 | 8 = ™ 150 | 9 = ± 151 | a = Æ 152 | b = ‘ 153 | c = © 154 | d = “ 155 | e = ¢ 156 | f = ª 157 | g = Ŋ 158 | h = Ħ 159 | i = ı 160 | k = & 161 | l = Ł 162 | m = º 163 | n = ’ 164 | o = Ø 165 | p = π 166 | q = Ω 167 | r = ® 168 | s = ẞ 169 | t = Ŧ 170 | u = ↑ 171 | v = ‚ 172 | w = § 173 | x = > 174 | y = ¥ 175 | z = < 176 | -------------------------------------------------------------------------------- /layouts/it: -------------------------------------------------------------------------------- 1 | [it:layout] 2 | 3 | ' = à 4 | , = , 5 | - = ' 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ò 18 | = = ì 19 | [ = è 20 | \ = ù 21 | ] = + 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(it_shift) 49 | altgr = layer(it_altgr) 50 | 51 | [it_shift:S] 52 | ' = ° 53 | , = ; 54 | - = ? 55 | . = : 56 | / = _ 57 | 1 = ! 58 | 2 = " 59 | 3 = £ 60 | 4 = $ 61 | 5 = % 62 | 6 = & 63 | 7 = / 64 | 8 = ( 65 | 9 = ) 66 | ; = ç 67 | = = ^ 68 | [ = é 69 | \ = § 70 | ] = * 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [it_altgr:G] 99 | ' = # 100 | - = ` 101 | . = · 102 | 1 = ¹ 103 | 2 = ² 104 | 3 = ³ 105 | 4 = ¼ 106 | 5 = ½ 107 | 6 = ¬ 108 | 7 = { 109 | 8 = [ 110 | 9 = ] 111 | ; = @ 112 | = = ~ 113 | [ = [ 114 | ] = ] 115 | a = æ 116 | b = ” 117 | c = ¢ 118 | d = ð 119 | e = € 120 | f = đ 121 | g = ŋ 122 | h = ħ 123 | i = → 124 | k = ĸ 125 | l = ł 126 | m = µ 127 | n = ñ 128 | o = ø 129 | p = þ 130 | q = @ 131 | r = ¶ 132 | s = ß 133 | t = ŧ 134 | u = ↓ 135 | v = “ 136 | w = ſ 137 | x = » 138 | y = ← 139 | z = « 140 | 141 | [it_altgr+it_shift] 142 | , = × 143 | - = ¿ 144 | / = ÷ 145 | 1 = ¡ 146 | 4 = ⅛ 147 | 5 = ⅜ 148 | 6 = ⅝ 149 | 7 = ⅞ 150 | 8 = ™ 151 | 9 = ± 152 | [ = { 153 | ] = } 154 | a = Æ 155 | b = ’ 156 | c = © 157 | d = Ð 158 | e = ¢ 159 | f = ª 160 | g = Ŋ 161 | h = Ħ 162 | i = ı 163 | k = & 164 | l = Ł 165 | m = º 166 | n = Ñ 167 | o = Ø 168 | p = Þ 169 | q = Ω 170 | r = ® 171 | s = ẞ 172 | t = Ŧ 173 | u = ↑ 174 | v = ‘ 175 | w = § 176 | x = > 177 | y = ¥ 178 | z = < 179 | -------------------------------------------------------------------------------- /layouts/jp: -------------------------------------------------------------------------------- 1 | [jp:layout] 2 | 3 | ' = : 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = ^ 19 | [ = @ 20 | \ = ] 21 | ] = [ 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(jp_shift) 49 | 50 | [jp_shift:S] 51 | ' = * 52 | , = < 53 | - = = 54 | . = > 55 | / = ? 56 | 1 = ! 57 | 2 = " 58 | 3 = # 59 | 4 = $ 60 | 5 = % 61 | 6 = & 62 | 7 = ' 63 | 8 = ( 64 | 9 = ) 65 | ; = + 66 | = = ~ 67 | [ = ` 68 | \ = } 69 | ] = { 70 | a = A 71 | b = B 72 | c = C 73 | d = D 74 | e = E 75 | f = F 76 | g = G 77 | h = H 78 | i = I 79 | j = J 80 | k = K 81 | l = L 82 | m = M 83 | n = N 84 | o = O 85 | p = P 86 | q = Q 87 | r = R 88 | s = S 89 | t = T 90 | u = U 91 | v = V 92 | w = W 93 | x = X 94 | y = Y 95 | z = Z 96 | -------------------------------------------------------------------------------- /layouts/jv: -------------------------------------------------------------------------------- 1 | [jv:layout] 2 | 3 | ' = ꦵ 4 | , = ꧈ 5 | - = ꦎ 6 | . = ꧉ 7 | / = ꦂ 8 | 1 = ꧑ 9 | 2 = ꧒ 10 | 3 = ꧓ 11 | 4 = ꧔ 12 | 5 = ꧕ 13 | 6 = ꧖ 14 | 7 = ꧗ 15 | 8 = ꧘ 16 | 9 = ꧙ 17 | ; = ꧇ 18 | = = ꦉ 19 | [ = ꧊ 20 | \ = ꧀ 21 | ] = ꧌ 22 | a = ꦻ 23 | b = ꦧ 24 | c = ꦕ 25 | d = ꦢ 26 | e = ꦼ 27 | f = ꦝ 28 | g = ꦒ 29 | h = ꦲ 30 | i = ꦶ 31 | j = ꦗ 32 | k = ꦏ 33 | l = ꦭ 34 | m = ꦩ 35 | n = ꦤ 36 | o = ꦺ 37 | p = ꦥ 38 | q = ꦐ 39 | r = ꦫ 40 | s = ꦱ 41 | t = ꦠ 42 | u = ꦸ 43 | v = ꦛ 44 | w = ꦮ 45 | x = ꦚ 46 | y = ꦪ 47 | z = ꦔ 48 | shift = layer(jv_shift) 49 | 50 | [jv_shift:S] 51 | ' = " 52 | , = ꦆ 53 | - = _ 54 | . = ꦇ 55 | / = ? 56 | 1 = ꧆ 57 | 2 = ꧏ 58 | 3 = ꧃ 59 | 4 = ꧄ 60 | 5 = ꧅ 61 | 6 = ꦿ 62 | 7 = ꦽ 63 | 8 = ꦳ 64 | 9 = ꧁ 65 | ; = ꦈ 66 | = = ꦋ 67 | [ = ꧋ 68 | \ = ꦅ 69 | ] = ꧍ 70 | a = ꦄ 71 | b = ꦨ 72 | c = ꦖ 73 | d = ꦣ 74 | e = ꦌ 75 | f = ꦞ 76 | g = ꦓ 77 | h = ꦃ 78 | i = ꦷ 79 | j = ꦙ 80 | k = ꦑ 81 | l = ꦊ 82 | m = ꦀ 83 | n = ꦟ 84 | o = ꦴ 85 | p = ꦦ 86 | q = ꦰ 87 | r = ꦬ 88 | s = ꦯ 89 | t = ꦡ 90 | u = ꦹ 91 | v = ꦜ 92 | w = ꦍ 93 | x = ꦘ 94 | y = ꦾ 95 | z = ꦁ 96 | -------------------------------------------------------------------------------- /layouts/ke: -------------------------------------------------------------------------------- 1 | [ke:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(ke_shift) 49 | altgr = layer(ke_altgr) 50 | 51 | [ke_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [ke_altgr:G] 99 | ' = ́ 100 | - = ̄ 101 | 6 = ̂ 102 | 8 = ̇ 103 | 9 = ̆ 104 | ; = ̤ 105 | 106 | [ke_altgr+ke_shift] 107 | ' = ̈ 108 | - = ̱ 109 | 8 = ̣ 110 | ; = ̤ 111 | -------------------------------------------------------------------------------- /layouts/kg: -------------------------------------------------------------------------------- 1 | [kg:layout] 2 | 3 | ' = э 4 | , = б 5 | - = ө 6 | . = ю 7 | / = . 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ж 18 | = = ң 19 | [ = х 20 | \ = ү 21 | ] = ъ 22 | a = ф 23 | b = и 24 | c = с 25 | d = в 26 | e = у 27 | f = а 28 | g = п 29 | h = р 30 | i = ш 31 | j = о 32 | k = л 33 | l = д 34 | m = ь 35 | n = т 36 | o = щ 37 | p = з 38 | q = й 39 | r = к 40 | s = ы 41 | t = е 42 | u = г 43 | v = м 44 | w = ц 45 | x = ч 46 | y = н 47 | z = я 48 | shift = layer(kg_shift) 49 | 50 | [kg_shift:S] 51 | ' = Э 52 | , = Б 53 | - = Ө 54 | . = Ю 55 | / = , 56 | 1 = ! 57 | 2 = " 58 | 3 = № 59 | 4 = ; 60 | 5 = % 61 | 6 = : 62 | 7 = ? 63 | 8 = * 64 | 9 = ( 65 | ; = Ж 66 | = = Ң 67 | [ = Х 68 | \ = Ү 69 | ] = Ъ 70 | a = Ф 71 | b = И 72 | c = С 73 | d = В 74 | e = У 75 | f = А 76 | g = П 77 | h = Р 78 | i = Ш 79 | j = О 80 | k = Л 81 | l = Д 82 | m = Ь 83 | n = Т 84 | o = Щ 85 | p = З 86 | q = Й 87 | r = К 88 | s = Ы 89 | t = Е 90 | u = Г 91 | v = М 92 | w = Ц 93 | x = Ч 94 | y = Н 95 | z = Я 96 | -------------------------------------------------------------------------------- /layouts/kh: -------------------------------------------------------------------------------- 1 | [kh:layout] 2 | 3 | ' = ់ 4 | , = ៼ 5 | - = ឥ 6 | . = ។ 7 | / = ៊ 8 | 1 = ១ 9 | 2 = ២ 10 | 3 = ៣ 11 | 4 = ៤ 12 | 5 = ៥ 13 | 6 = ៦ 14 | 7 = ៧ 15 | 8 = ៨ 16 | 9 = ៩ 17 | ; = ើ 18 | = = ឲ 19 | [ = ៀ 20 | \ = ឮ 21 | ] = ឪ 22 | a = ា 23 | b = ប 24 | c = ច 25 | d = ដ 26 | e = េ 27 | f = ថ 28 | g = ង 29 | h = ហ 30 | i = ិ 31 | j = ្ 32 | k = ក 33 | l = ល 34 | m = ម 35 | n = ន 36 | o = ោ 37 | p = ផ 38 | q = ឆ 39 | r = រ 40 | s = ស 41 | t = ត 42 | u = ុ 43 | v = វ 44 | w = ឹ 45 | x = ខ 46 | y = យ 47 | z = ឋ 48 | shift = layer(kh_shift) 49 | altgr = layer(kh_altgr) 50 | 51 | [kh_shift:S] 52 | ' = ៉ 53 | , = ៻ 54 | - = ៌ 55 | . = ៕ 56 | / = ? 57 | 1 = ! 58 | 2 = ៗ 59 | 3 = " 60 | 4 = ៛ 61 | 5 = % 62 | 6 = ៍ 63 | 7 = ័ 64 | 8 = ៏ 65 | 9 = ( 66 | ; = ៾ 67 | = = = 68 | [ = ឿ 69 | \ = ឭ 70 | ] = ឧ 71 | a = ៿ 72 | b = ព 73 | c = ជ 74 | d = ឌ 75 | e = ែ 76 | f = ធ 77 | g = អ 78 | h = ះ 79 | i = ី 80 | j = ញ 81 | k = គ 82 | l = ឡ 83 | m = ំ 84 | n = ណ 85 | o = ៅ 86 | p = ភ 87 | q = ឈ 88 | r = ឬ 89 | s = ៃ 90 | t = ទ 91 | u = ូ 92 | v = ៽ 93 | w = ឺ 94 | x = ឃ 95 | y = ួ 96 | z = ឍ 97 | 98 | [kh_altgr:G] 99 | ' = ៈ 100 | , = , 101 | - = x 102 | . = . 103 | / = / 104 | 1 = ‌ 105 | 2 = @ 106 | 3 = ៑ 107 | 4 = $ 108 | 5 = € 109 | 6 = ៙ 110 | 7 = ៚ 111 | 8 = * 112 | 9 = { 113 | ; = ៖ 114 | = = ៎ 115 | [ = ឩ 116 | \ = \ 117 | ] = ឳ 118 | b = ឞ 119 | e = ឯ 120 | i = ឦ 121 | k = ឝ 122 | o = ឱ 123 | p = ឰ 124 | q = ៜ 125 | r = ឫ 126 | t = ឨ 127 | w = ៝ 128 | 129 | [kh_altgr+kh_shift] 130 | ' = ᧶ 131 | , = ᧾ 132 | . = ᧿ 133 | 1 = ៱ 134 | 2 = ៲ 135 | 3 = ៳ 136 | 4 = ៴ 137 | 5 = ៵ 138 | 6 = ៶ 139 | 7 = ៷ 140 | 8 = ៸ 141 | 9 = ៹ 142 | ; = ᧵ 143 | [ = ᧪ 144 | ] = ᧫ 145 | a = ᧬ 146 | b = ᧻ 147 | c = ᧹ 148 | d = ᧮ 149 | e = ᧢ 150 | f = ᧯ 151 | g = ᧰ 152 | h = ᧱ 153 | i = ᧧ 154 | j = ᧲ 155 | k = ᧳ 156 | l = ᧴ 157 | m = ᧽ 158 | n = ᧼ 159 | o = ᧨ 160 | p = ᧩ 161 | q = ᧠ 162 | r = ᧣ 163 | s = ᧭ 164 | t = ᧤ 165 | u = ᧦ 166 | v = ᧺ 167 | w = ᧡ 168 | x = ᧸ 169 | y = ᧥ 170 | z = ᧷ 171 | -------------------------------------------------------------------------------- /layouts/kr: -------------------------------------------------------------------------------- 1 | [kr:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(kr_shift) 49 | 50 | [kr_shift:S] 51 | ' = " 52 | , = < 53 | - = _ 54 | . = > 55 | / = ? 56 | 1 = ! 57 | 2 = @ 58 | 3 = # 59 | 4 = $ 60 | 5 = % 61 | 6 = ^ 62 | 7 = & 63 | 8 = * 64 | 9 = ( 65 | ; = : 66 | = = + 67 | [ = { 68 | \ = | 69 | ] = } 70 | a = A 71 | b = B 72 | c = C 73 | d = D 74 | e = E 75 | f = F 76 | g = G 77 | h = H 78 | i = I 79 | j = J 80 | k = K 81 | l = L 82 | m = M 83 | n = N 84 | o = O 85 | p = P 86 | q = Q 87 | r = R 88 | s = S 89 | t = T 90 | u = U 91 | v = V 92 | w = W 93 | x = X 94 | y = Y 95 | z = Z 96 | -------------------------------------------------------------------------------- /layouts/kz: -------------------------------------------------------------------------------- 1 | [kz:layout] 2 | 3 | ' = э 4 | , = б 5 | - = ө 6 | . = ю 7 | / = № 8 | 1 = " 9 | 2 = ә 10 | 3 = і 11 | 4 = ң 12 | 5 = ғ 13 | 6 = , 14 | 7 = . 15 | 8 = ү 16 | 9 = ұ 17 | ; = ж 18 | = = һ 19 | [ = х 20 | \ = \ 21 | ] = ъ 22 | a = ф 23 | b = и 24 | c = с 25 | d = в 26 | e = у 27 | f = а 28 | g = п 29 | h = р 30 | i = ш 31 | j = о 32 | k = л 33 | l = д 34 | m = ь 35 | n = т 36 | o = щ 37 | p = з 38 | q = й 39 | r = к 40 | s = ы 41 | t = е 42 | u = г 43 | v = м 44 | w = ц 45 | x = ч 46 | y = н 47 | z = я 48 | shift = layer(kz_shift) 49 | 50 | [kz_shift:S] 51 | ' = Э 52 | , = Б 53 | - = Ө 54 | . = Ю 55 | / = ? 56 | 1 = ! 57 | 2 = Ә 58 | 3 = І 59 | 4 = Ң 60 | 5 = Ғ 61 | 6 = ; 62 | 7 = : 63 | 8 = Ү 64 | 9 = Ұ 65 | ; = Ж 66 | = = Һ 67 | [ = Х 68 | \ = / 69 | ] = Ъ 70 | a = Ф 71 | b = И 72 | c = С 73 | d = В 74 | e = У 75 | f = А 76 | g = П 77 | h = Р 78 | i = Ш 79 | j = О 80 | k = Л 81 | l = Д 82 | m = Ь 83 | n = Т 84 | o = Щ 85 | p = З 86 | q = Й 87 | r = К 88 | s = Ы 89 | t = Е 90 | u = Г 91 | v = М 92 | w = Ц 93 | x = Ч 94 | y = Н 95 | z = Я 96 | -------------------------------------------------------------------------------- /layouts/la: -------------------------------------------------------------------------------- 1 | [la:layout] 2 | 3 | ' = ງ 4 | , = ມ 5 | - = ຊ 6 | . = ໃ 7 | / = ຝ 8 | 1 = ຢ 9 | 2 = ຟ 10 | 3 = ໂ 11 | 4 = ຖ 12 | 5 = ຸ 13 | 6 = ູ 14 | 7 = ຄ 15 | 8 = ຕ 16 | 9 = ຈ 17 | ; = ວ 18 | = = ໍ 19 | [ = ບ 20 | \ = ໜ 21 | ] = ລ 22 | a = ັ 23 | b = ຶ 24 | c = ແ 25 | d = ກ 26 | e = ຳ 27 | f = ດ 28 | g = ເ 29 | h = ້ 30 | i = ຣ 31 | j = ່ 32 | k = າ 33 | l = ສ 34 | m = ທ 35 | n = ື 36 | o = ນ 37 | p = ຍ 38 | q = ົ 39 | r = ພ 40 | s = ຫ 41 | t = ະ 42 | u = ີ 43 | v = ອ 44 | w = ໄ 45 | x = ປ 46 | y = ິ 47 | z = ຜ 48 | shift = layer(la_shift) 49 | 50 | [la_shift:S] 51 | ' = = 52 | , = ` 53 | - = ໙ 54 | . = $ 55 | / = ) 56 | 1 = ໑ 57 | 2 = ໒ 58 | 3 = ໓ 59 | 4 = ໔ 60 | 5 = ໌ 61 | 6 = ຼ 62 | 7 = ໕ 63 | 8 = ໖ 64 | 9 = ໗ 65 | ; = % 66 | [ = - 67 | \ = ໝ 68 | ] = } 69 | c = ຯ 70 | d = . 71 | f = , 72 | g = : 73 | h = ໊ 74 | i = ຮ 75 | j = ໋ 76 | k = ! 77 | l = ? 78 | m = ໆ 79 | p = ຽ 80 | r = _ 81 | s = ; 82 | t = + 83 | w = ໐ 84 | x = ( 85 | z = ₭ 86 | -------------------------------------------------------------------------------- /layouts/latam: -------------------------------------------------------------------------------- 1 | [latam:layout] 2 | 3 | ' = { 4 | , = , 5 | - = ' 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ñ 18 | = = ¿ 19 | \ = } 20 | ] = + 21 | a = a 22 | b = b 23 | c = c 24 | d = d 25 | e = e 26 | f = f 27 | g = g 28 | h = h 29 | i = i 30 | j = j 31 | k = k 32 | l = l 33 | m = m 34 | n = n 35 | o = o 36 | p = p 37 | q = q 38 | r = r 39 | s = s 40 | t = t 41 | u = u 42 | v = v 43 | w = w 44 | x = x 45 | y = y 46 | z = z 47 | shift = layer(latam_shift) 48 | altgr = layer(latam_altgr) 49 | 50 | [latam_shift:S] 51 | ' = [ 52 | , = ; 53 | - = ? 54 | . = : 55 | / = _ 56 | 1 = ! 57 | 2 = " 58 | 3 = # 59 | 4 = $ 60 | 5 = % 61 | 6 = & 62 | 7 = / 63 | 8 = ( 64 | 9 = ) 65 | ; = Ñ 66 | = = ¡ 67 | \ = ] 68 | ] = * 69 | a = A 70 | b = B 71 | c = C 72 | d = D 73 | e = E 74 | f = F 75 | g = G 76 | h = H 77 | i = I 78 | j = J 79 | k = K 80 | l = L 81 | m = M 82 | n = N 83 | o = O 84 | p = P 85 | q = Q 86 | r = R 87 | s = S 88 | t = T 89 | u = U 90 | v = V 91 | w = W 92 | x = X 93 | y = Y 94 | z = Z 95 | 96 | [latam_altgr:G] 97 | , = • 98 | - = \ 99 | . = · 100 | 1 = | 101 | 2 = @ 102 | 3 = · 103 | 4 = ~ 104 | 5 = ½ 105 | 6 = ¬ 106 | 7 = { 107 | 8 = [ 108 | 9 = ] 109 | ; = ~ 110 | ] = ~ 111 | a = æ 112 | b = “ 113 | c = ¢ 114 | d = ð 115 | e = € 116 | f = đ 117 | g = ŋ 118 | h = ħ 119 | i = → 120 | k = ĸ 121 | l = ł 122 | m = µ 123 | n = ” 124 | o = ø 125 | p = þ 126 | q = @ 127 | r = ¶ 128 | s = ß 129 | t = ŧ 130 | u = ↓ 131 | v = „ 132 | w = ſ 133 | x = » 134 | y = ← 135 | z = « 136 | 137 | [latam_altgr+latam_shift] 138 | ' = { 139 | , = × 140 | - = ¿ 141 | . = ÷ 142 | 1 = ¡ 143 | 2 = ⅛ 144 | 3 = £ 145 | 4 = $ 146 | 5 = ⅜ 147 | 6 = ⅝ 148 | 7 = ⅞ 149 | 8 = ™ 150 | 9 = ± 151 | \ = } 152 | a = Æ 153 | b = ‘ 154 | c = © 155 | d = Ð 156 | e = ¢ 157 | f = ª 158 | g = Ŋ 159 | h = Ħ 160 | i = ı 161 | k = & 162 | l = Ł 163 | m = º 164 | n = ’ 165 | o = Ø 166 | p = Þ 167 | q = Ω 168 | r = ® 169 | s = ẞ 170 | t = Ŧ 171 | u = ↑ 172 | v = ‚ 173 | w = § 174 | x = > 175 | y = ¥ 176 | z = < 177 | -------------------------------------------------------------------------------- /layouts/lk: -------------------------------------------------------------------------------- 1 | [lk:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = අ 23 | b = බ 24 | c = ච 25 | d = ද 26 | e = එ 27 | f = ෆ 28 | g = ග 29 | h = හ 30 | i = ඉ 31 | j = ජ 32 | k = ක 33 | l = ල 34 | m = ම 35 | n = න 36 | o = ඔ 37 | p = ප 38 | q = ඍ 39 | r = ර 40 | s = ස 41 | t = ත 42 | u = උ 43 | v = ව 44 | w = ඇ 45 | x = ඳ 46 | y = ය 47 | z = ඤ 48 | shift = layer(lk_shift) 49 | altgr = layer(lk_altgr) 50 | 51 | [lk_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = ආ 72 | b = භ 73 | c = ඡ 74 | d = ධ 75 | e = ඒ 76 | f = F 77 | g = ඝ 78 | h = ඃ 79 | i = ඊ 80 | j = ඣ 81 | k = ඛ 82 | l = ළ 83 | m = ඹ 84 | n = ණ 85 | o = ඕ 86 | p = ඵ 87 | q = ඎ 88 | r = ් 89 | s = ශ 90 | t = ථ 91 | u = ඌ 92 | w = ඈ 93 | x = ඬ 94 | y = ් 95 | z = ඥ 96 | 97 | [lk_altgr:G] 98 | , = ් 99 | . = ෴ 100 | / = ‍ 101 | a = ් 102 | d = ඩ 103 | e = ෙ 104 | f = ෛ 105 | g = ඟ 106 | h = ෞ 107 | i = ි 108 | j = ඦ 109 | k = ඏ 110 | l = ෟ 111 | n = ං 112 | o = ො 113 | q = ෘ 114 | r = ර 115 | s = ෂ 116 | t = ට 117 | u = ු 118 | w = ැ 119 | 120 | [lk_altgr+lk_shift] 121 | a = ා 122 | d = ඪ 123 | e = ේ 124 | f = ඓ 125 | h = ඖ 126 | i = ී 127 | k = ඐ 128 | l = ෳ 129 | n = ඞ 130 | o = ෝ 131 | q = ෲ 132 | t = ඨ 133 | u = ූ 134 | w = ෑ 135 | -------------------------------------------------------------------------------- /layouts/lt: -------------------------------------------------------------------------------- 1 | [lt:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = ą 9 | 2 = č 10 | 3 = ę 11 | 4 = ė 12 | 5 = į 13 | 6 = š 14 | 7 = ų 15 | 8 = ū 16 | 9 = „ 17 | ; = ; 18 | = = ž 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(lt_shift) 49 | altgr = layer(lt_altgr) 50 | 51 | [lt_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = Ą 58 | 2 = Č 59 | 3 = Ę 60 | 4 = Ė 61 | 5 = Į 62 | 6 = Š 63 | 7 = Ų 64 | 8 = Ū 65 | 9 = ( 66 | ; = : 67 | = = Ž 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [lt_altgr:G] 99 | , = • 100 | - = – 101 | . = · 102 | 1 = 1 103 | 2 = 2 104 | 3 = 3 105 | 4 = 4 106 | 5 = 5 107 | 6 = 6 108 | 7 = 7 109 | 8 = 8 110 | 9 = 9 111 | = = = 112 | a = æ 113 | b = “ 114 | c = ¢ 115 | d = ð 116 | e = € 117 | f = đ 118 | g = ŋ 119 | h = ħ 120 | i = → 121 | k = ĸ 122 | l = ł 123 | m = µ 124 | n = ” 125 | o = ø 126 | p = þ 127 | q = @ 128 | r = ¶ 129 | s = ß 130 | t = ŧ 131 | u = ↓ 132 | v = „ 133 | w = ſ 134 | x = » 135 | y = ← 136 | z = « 137 | 138 | [lt_altgr+lt_shift] 139 | , = × 140 | - = ¿ 141 | . = ÷ 142 | 1 = ! 143 | 2 = @ 144 | 3 = # 145 | 4 = $ 146 | 5 = % 147 | 6 = ^ 148 | 7 = & 149 | 8 = * 150 | 9 = ( 151 | = = + 152 | a = Æ 153 | b = ‘ 154 | c = © 155 | d = Ð 156 | e = £ 157 | f = ª 158 | g = Ŋ 159 | h = Ħ 160 | i = ı 161 | k = & 162 | l = Ł 163 | m = º 164 | n = ’ 165 | o = Ø 166 | p = Þ 167 | q = Ω 168 | r = ® 169 | s = ẞ 170 | t = Ŧ 171 | u = ↑ 172 | v = ‚ 173 | w = § 174 | x = > 175 | y = ¥ 176 | z = < 177 | -------------------------------------------------------------------------------- /layouts/ma: -------------------------------------------------------------------------------- 1 | [ma:layout] 2 | 3 | ' = ط 4 | , = و 5 | - = ) 6 | . = ز 7 | / = ظ 8 | 1 = & 9 | 2 = é 10 | 3 = " 11 | 4 = ' 12 | 5 = ( 13 | 6 = - 14 | 7 = è 15 | 8 = _ 16 | 9 = ç 17 | ; = ك 18 | = = = 19 | [ = ج 20 | \ = \ 21 | ] = د 22 | a = ش 23 | b = ﻻ 24 | c = ؤ 25 | d = ي 26 | e = ث 27 | f = ب 28 | g = ل 29 | h = ا 30 | i = ه 31 | j = ت 32 | k = ن 33 | l = م 34 | m = ة 35 | n = ى 36 | o = خ 37 | p = ح 38 | q = ض 39 | r = ق 40 | s = س 41 | t = ف 42 | u = ع 43 | v = ر 44 | w = ص 45 | x = ء 46 | y = غ 47 | z = ئ 48 | shift = layer(ma_shift) 49 | altgr = layer(ma_altgr) 50 | 51 | [ma_shift:S] 52 | ' = " 53 | , = , 54 | - = ° 55 | . = . 56 | / = ؟ 57 | 1 = 1 58 | 2 = 2 59 | 3 = 3 60 | 4 = 4 61 | 5 = 5 62 | 6 = 6 63 | 7 = 7 64 | 8 = 8 65 | 9 = 9 66 | ; = : 67 | = = + 68 | [ = < 69 | \ = … 70 | ] = > 71 | a = ِ 72 | b = ﻵ 73 | c = } 74 | d = ] 75 | e = ُ 76 | f = [ 77 | g = ﻷ 78 | h = أ 79 | i = ÷ 80 | j = ـ 81 | k = ، 82 | l = / 83 | m = ' 84 | n = آ 85 | o = × 86 | p = ؛ 87 | q = َ 88 | r = ٌ 89 | s = ٍ 90 | t = ﻹ 91 | u = ` 92 | v = { 93 | w = ً 94 | x = ْ 95 | y = إ 96 | z = ~ 97 | 98 | [ma_altgr:G] 99 | ' = ⟩ 100 | , = ٬ 101 | - = – 102 | . = ژ 103 | / = ٭ 104 | 1 = ١ 105 | 2 = ٢ 106 | 3 = ٣ 107 | 4 = ٤ 108 | 5 = ٥ 109 | 6 = ٦ 110 | 7 = ٧ 111 | 8 = ٨ 112 | 9 = ٩ 113 | ; = گ 114 | = = ≠ 115 | [ = چ 116 | \ = ⟨ 117 | f = پ 118 | h = ٱ 119 | k = ٫ 120 | n = ٰ 121 | t = ڤ 122 | x = « 123 | z = » 124 | 125 | [ma_altgr+ma_shift] 126 | ' = ‍ 127 | - = ‑ 128 | / = ‌ 129 | 5 = ‰ 130 | = = ≈ 131 | [ = ‏ 132 | \ =   133 | ] = ؜ 134 | e = ⁨ 135 | i = ‬ 136 | p = ‎ 137 | q = ⁦ 138 | r = ⁩ 139 | u = ‫ 140 | w = ⁧ 141 | x = ‹ 142 | y = ‪ 143 | z = › 144 | -------------------------------------------------------------------------------- /layouts/mao: -------------------------------------------------------------------------------- 1 | [mao:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(mao_shift) 49 | altgr = layer(mao_altgr) 50 | 51 | [mao_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [mao_altgr:G] 99 | , = • 100 | - = \ 101 | . = · 102 | 1 = ¹ 103 | 2 = ² 104 | 3 = ³ 105 | 4 = ¼ 106 | 5 = ½ 107 | 6 = ¾ 108 | 7 = { 109 | 8 = [ 110 | 9 = ] 111 | a = ā 112 | b = “ 113 | c = ¢ 114 | d = ð 115 | e = ē 116 | f = đ 117 | g = ŋ 118 | h = ħ 119 | i = ī 120 | k = ĸ 121 | l = ł 122 | m = µ 123 | n = ” 124 | o = ō 125 | p = þ 126 | q = @ 127 | r = ¶ 128 | s = ß 129 | t = ŧ 130 | u = ū 131 | v = „ 132 | w = ſ 133 | x = » 134 | y = ← 135 | z = « 136 | 137 | [mao_altgr+mao_shift] 138 | , = × 139 | - = ¿ 140 | . = ÷ 141 | 1 = ¡ 142 | 2 = ⅛ 143 | 3 = £ 144 | 4 = $ 145 | 5 = ⅜ 146 | 6 = ⅝ 147 | 7 = ⅞ 148 | 8 = ™ 149 | 9 = ± 150 | a = Ā 151 | b = ‘ 152 | c = © 153 | d = Ð 154 | e = Ē 155 | f = ª 156 | g = Ŋ 157 | h = Ħ 158 | i = Ī 159 | k = & 160 | l = Ł 161 | m = º 162 | n = ’ 163 | o = Ō 164 | p = Þ 165 | q = Ω 166 | r = ® 167 | s = ẞ 168 | t = Ŧ 169 | u = Ū 170 | v = ‚ 171 | w = § 172 | x = > 173 | y = ¥ 174 | z = < 175 | -------------------------------------------------------------------------------- /layouts/md: -------------------------------------------------------------------------------- 1 | [md:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(md_shift) 49 | altgr = layer(md_altgr) 50 | 51 | [md_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [md_altgr:G] 99 | , = « 100 | . = » 101 | [ = „ 102 | ] = ” 103 | a = ă 104 | c = © 105 | d = đ 106 | e = € 107 | i = î 108 | l = ł 109 | p = § 110 | q = â 111 | s = ș 112 | t = ț 113 | w = ß 114 | 115 | [md_altgr+md_shift] 116 | - = – 117 | = = ± 118 | a = Ă 119 | d = Đ 120 | i = Î 121 | l = Ł 122 | q =  123 | s = Ș 124 | t = Ț 125 | w = ẞ 126 | -------------------------------------------------------------------------------- /layouts/me: -------------------------------------------------------------------------------- 1 | [me:layout] 2 | 3 | ' = ć 4 | , = , 5 | - = ' 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = č 18 | = = + 19 | [ = š 20 | \ = ž 21 | ] = đ 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = z 47 | z = y 48 | shift = layer(me_shift) 49 | altgr = layer(me_altgr) 50 | 51 | [me_shift:S] 52 | ' = Ć 53 | , = ; 54 | - = ? 55 | . = : 56 | / = _ 57 | 1 = ! 58 | 2 = " 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = & 63 | 7 = / 64 | 8 = ( 65 | 9 = ) 66 | ; = Č 67 | = = * 68 | [ = Š 69 | \ = Ž 70 | ] = Đ 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Z 96 | z = Y 97 | 98 | [me_altgr:G] 99 | ' = ß 100 | , = < 101 | . = > 102 | / = — 103 | [ = ÷ 104 | \ = ¤ 105 | ] = × 106 | a = æ 107 | b = { 108 | c = ¢ 109 | d = “ 110 | e = € 111 | f = [ 112 | g = ] 113 | h = ħ 114 | i = → 115 | k = ł 116 | l = ł 117 | m = § 118 | n = } 119 | o = ø 120 | p = þ 121 | q = \ 122 | r = ¶ 123 | s = ś 124 | t = ŧ 125 | u = ↓ 126 | v = @ 127 | w = | 128 | x = ’ 129 | y = ź 130 | z = ‘ 131 | 132 | [me_altgr+me_shift] 133 | , = × 134 | - = ¨ 135 | . = ÷ 136 | / = – 137 | 1 = ~ 138 | 2 = ˇ 139 | 3 = ^ 140 | 4 = ˘ 141 | 5 = ° 142 | 6 = ˛ 143 | 7 = ` 144 | 8 = ˙ 145 | 9 = ' 146 | = = ¸ 147 | a = Æ 148 | b = ' 149 | c = © 150 | d = « 151 | e = € 152 | f = ª 153 | g = Ŋ 154 | h = Ħ 155 | i = ı 156 | k = & 157 | l = Ł 158 | m = º 159 | n = } 160 | o = Ø 161 | p = Þ 162 | q = Ω 163 | r = ® 164 | s = Ś 165 | t = Ŧ 166 | u = ↑ 167 | v = ` 168 | w = Ł 169 | x = « 170 | y = Ź 171 | z = » 172 | -------------------------------------------------------------------------------- /layouts/mk: -------------------------------------------------------------------------------- 1 | [mk:layout] 2 | 3 | ' = ќ 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ч 18 | = = = 19 | [ = ш 20 | \ = ж 21 | ] = ѓ 22 | a = а 23 | b = б 24 | c = ц 25 | d = д 26 | e = е 27 | f = ф 28 | g = г 29 | h = х 30 | i = и 31 | j = ј 32 | k = к 33 | l = л 34 | m = м 35 | n = н 36 | o = о 37 | p = п 38 | q = љ 39 | r = р 40 | s = с 41 | t = т 42 | u = у 43 | v = в 44 | w = њ 45 | x = џ 46 | y = ѕ 47 | z = з 48 | shift = layer(mk_shift) 49 | 50 | [mk_shift:S] 51 | ' = Ќ 52 | , = ; 53 | - = _ 54 | . = : 55 | / = ? 56 | 1 = ! 57 | 2 = „ 58 | 3 = “ 59 | 4 = $ 60 | 5 = % 61 | 6 = ^ 62 | 7 = & 63 | 8 = * 64 | 9 = ( 65 | ; = Ч 66 | = = + 67 | [ = Ш 68 | \ = Ж 69 | ] = Ѓ 70 | a = А 71 | b = Б 72 | c = Ц 73 | d = Д 74 | e = Е 75 | f = Ф 76 | g = Г 77 | h = Х 78 | i = И 79 | j = Ј 80 | k = К 81 | l = Л 82 | m = М 83 | n = Н 84 | o = О 85 | p = П 86 | q = Љ 87 | r = Р 88 | s = С 89 | t = Т 90 | u = У 91 | v = В 92 | w = Њ 93 | x = Џ 94 | y = Ѕ 95 | z = З 96 | -------------------------------------------------------------------------------- /layouts/ml: -------------------------------------------------------------------------------- 1 | [ml:layout] 2 | 3 | ' = ù 4 | , = ; 5 | - = ) 6 | . = : 7 | / = ! 8 | 1 = & 9 | 2 = é 10 | 3 = " 11 | 4 = ' 12 | 5 = ( 13 | 6 = - 14 | 7 = è 15 | 8 = _ 16 | 9 = ç 17 | ; = m 18 | = = = 19 | \ = * 20 | ] = $ 21 | a = q 22 | b = b 23 | c = c 24 | d = d 25 | e = e 26 | f = f 27 | g = g 28 | h = h 29 | i = i 30 | j = j 31 | k = k 32 | l = l 33 | m = , 34 | n = n 35 | o = o 36 | p = p 37 | q = a 38 | r = r 39 | s = s 40 | t = t 41 | u = u 42 | v = v 43 | w = z 44 | x = x 45 | y = y 46 | z = w 47 | shift = layer(ml_shift) 48 | altgr = layer(ml_altgr) 49 | 50 | [ml_shift:S] 51 | ' = % 52 | , = . 53 | - = ° 54 | . = / 55 | / = § 56 | 1 = 1 57 | 2 = 2 58 | 3 = 3 59 | 4 = 4 60 | 5 = 5 61 | 6 = 6 62 | 7 = 7 63 | 8 = 8 64 | 9 = 9 65 | ; = M 66 | = = + 67 | \ = µ 68 | ] = £ 69 | a = Q 70 | b = B 71 | c = C 72 | d = D 73 | e = E 74 | f = F 75 | g = G 76 | h = H 77 | i = I 78 | j = J 79 | k = K 80 | l = L 81 | m = ? 82 | n = N 83 | o = O 84 | p = P 85 | q = A 86 | r = R 87 | s = S 88 | t = T 89 | u = U 90 | v = V 91 | w = Z 92 | x = X 93 | y = Y 94 | z = W 95 | 96 | [ml_altgr:G] 97 | , = • 98 | - = ] 99 | . = · 100 | 1 = ¹ 101 | 2 = ~ 102 | 3 = # 103 | 4 = { 104 | 5 = [ 105 | 6 = | 106 | 7 = ` 107 | 8 = \ 108 | 9 = ^ 109 | ; = ŋ 110 | = = } 111 | ] = ¤ 112 | a = @ 113 | b = ” 114 | c = ¢ 115 | d = ð 116 | e = ɛ 117 | f = đ 118 | g = ɔ 119 | h = ħ 120 | i = → 121 | k = ĸ 122 | l = ł 123 | n = ɲ 124 | o = ø 125 | p = þ 126 | q = æ 127 | r = ¶ 128 | s = š 129 | t = ŧ 130 | u = ↓ 131 | v = “ 132 | w = ž 133 | x = » 134 | y = ← 135 | z = ł 136 | 137 | [ml_altgr+ml_shift] 138 | , = × 139 | - = ¿ 140 | . = ÷ 141 | 1 = ¡ 142 | 2 = ⅛ 143 | 3 = £ 144 | 4 = $ 145 | 5 = ⅜ 146 | 6 = ⅝ 147 | 7 = ⅞ 148 | 8 = ™ 149 | 9 = ± 150 | ; = Ŋ 151 | a = Ω 152 | b = ’ 153 | c = © 154 | d = Ð 155 | e = Ɛ 156 | f = ª 157 | g = Ɔ 158 | h = Ħ 159 | i = ı 160 | k = & 161 | l = Ł 162 | n = Ɲ 163 | o = Ø 164 | p = Þ 165 | q = Æ 166 | r = ® 167 | s = Š 168 | t = Ŧ 169 | u = ↑ 170 | v = ‘ 171 | w = Ž 172 | x = > 173 | y = ¥ 174 | z = Ł 175 | -------------------------------------------------------------------------------- /layouts/mn: -------------------------------------------------------------------------------- 1 | [mn:layout] 2 | 3 | ' = п 4 | , = ь 5 | - = е 6 | . = в 7 | / = ю 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = д 18 | = = щ 19 | [ = к 20 | \ = ! 21 | ] = ъ 22 | a = й 23 | b = м 24 | c = ё 25 | d = б 26 | e = у 27 | f = ө 28 | g = а 29 | h = х 30 | i = ш 31 | j = р 32 | k = о 33 | l = л 34 | m = т 35 | n = и 36 | o = ү 37 | p = з 38 | q = ф 39 | r = ж 40 | s = ы 41 | t = э 42 | u = г 43 | v = с 44 | w = ц 45 | x = ч 46 | y = н 47 | z = я 48 | shift = layer(mn_shift) 49 | altgr = layer(mn_altgr) 50 | 51 | [mn_shift:S] 52 | ' = П 53 | , = Ь 54 | - = Е 55 | . = В 56 | / = Ю 57 | 1 = № 58 | 2 = - 59 | 3 = " 60 | 4 = ₮ 61 | 5 = : 62 | 6 = . 63 | 7 = _ 64 | 8 = , 65 | 9 = % 66 | ; = Д 67 | = = Щ 68 | [ = К 69 | \ = | 70 | ] = Ъ 71 | a = Й 72 | b = М 73 | c = Ё 74 | d = Б 75 | e = У 76 | f = Ө 77 | g = А 78 | h = Х 79 | i = Ш 80 | j = Р 81 | k = О 82 | l = Л 83 | m = Т 84 | n = И 85 | o = Ү 86 | p = З 87 | q = Ф 88 | r = Ж 89 | s = Ы 90 | t = Э 91 | u = Г 92 | v = С 93 | w = Ц 94 | x = Ч 95 | y = Н 96 | z = Я 97 | 98 | [mn_altgr:G] 99 | ' = … 100 | , = « 101 | - = X 102 | . = » 103 | / = \ 104 | 1 = × 105 | 2 = ÷ 106 | 3 = ± 107 | 4 = ¬ 108 | 6 = ≠ 109 | 7 = & 110 | 8 = * 111 | 9 = [ 112 | ; = § 113 | = = L 114 | [ = { 115 | \ = | 116 | ] = } 117 | a = µ 118 | c = © 119 | d = $ 120 | e = € 121 | f = ” 122 | g = ы 123 | h = Ы 124 | i = “ 125 | j = э 126 | k = Э 127 | l = № 128 | m = > 129 | n = < 130 | o = ” 131 | q = ' 132 | r = ® 133 | s = £ 134 | t = ™ 135 | u = „ 136 | w = ` 137 | x = – 138 | y = ¥ 139 | z = — 140 | 141 | [mn_altgr+mn_shift] 142 | -------------------------------------------------------------------------------- /layouts/mt: -------------------------------------------------------------------------------- 1 | [mt:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = ġ 20 | \ = # 21 | ] = ħ 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(mt_shift) 49 | altgr = layer(mt_altgr) 50 | 51 | [mt_shift:S] 52 | ' = @ 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = " 59 | 3 = € 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = Ġ 69 | \ = ~ 70 | ] = Ħ 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [mt_altgr:G] 99 | , = • 100 | - = \ 101 | . = · 102 | 1 = ¹ 103 | 2 = ² 104 | 3 = £ 105 | 4 = € 106 | 5 = ½ 107 | 7 = { 108 | 8 = [ 109 | 9 = ] 110 | [ = [ 111 | ] = ] 112 | a = à 113 | b = “ 114 | c = ¢ 115 | d = ð 116 | e = è 117 | f = đ 118 | g = ŋ 119 | h = ħ 120 | i = ì 121 | k = ĸ 122 | l = ł 123 | m = µ 124 | n = ” 125 | o = ò 126 | p = þ 127 | q = @ 128 | r = ¶ 129 | s = ß 130 | t = ŧ 131 | u = ù 132 | v = „ 133 | w = ſ 134 | x = » 135 | y = ← 136 | z = « 137 | 138 | [mt_altgr+mt_shift] 139 | , = × 140 | - = ¿ 141 | . = ÷ 142 | 1 = ¡ 143 | 2 = ⅛ 144 | 3 = £ 145 | 4 = ¼ 146 | 5 = ⅜ 147 | 7 = ⅞ 148 | 8 = ™ 149 | 9 = ± 150 | [ = { 151 | ] = } 152 | a = À 153 | b = ‘ 154 | c = © 155 | d = Ð 156 | e = È 157 | f = ª 158 | g = Ŋ 159 | h = Ħ 160 | i = Ì 161 | k = & 162 | l = Ł 163 | m = º 164 | n = ’ 165 | o = Ò 166 | p = Þ 167 | q = Ω 168 | r = ® 169 | s = ẞ 170 | t = Ŧ 171 | u = Ù 172 | v = ‚ 173 | w = § 174 | x = > 175 | y = ¥ 176 | z = < 177 | -------------------------------------------------------------------------------- /layouts/mv: -------------------------------------------------------------------------------- 1 | [mv:layout] 2 | 3 | ' = ' 4 | , = ، 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = ަ 23 | b = ބ 24 | c = ޗ 25 | d = ދ 26 | e = ެ 27 | f = ފ 28 | g = ގ 29 | h = ހ 30 | i = ި 31 | j = ޖ 32 | k = ކ 33 | l = ލ 34 | m = މ 35 | n = ނ 36 | o = ޮ 37 | p = ޕ 38 | q = ް 39 | r = ރ 40 | s = ސ 41 | t = ތ 42 | u = ު 43 | v = ވ 44 | w = އ 45 | x = × 46 | y = ޔ 47 | z = ޒ 48 | shift = layer(mv_shift) 49 | 50 | [mv_shift:S] 51 | ' = " 52 | , = < 53 | - = _ 54 | . = > 55 | / = ؟ 56 | 1 = ! 57 | 2 = @ 58 | 3 = # 59 | 4 = $ 60 | 5 = % 61 | 6 = ^ 62 | 7 = & 63 | 8 = * 64 | 9 = ( 65 | ; = : 66 | = = + 67 | [ = { 68 | \ = | 69 | ] = } 70 | a = ާ 71 | b = ޞ 72 | c = ޝ 73 | d = ޑ 74 | e = ޭ 75 | f = ﷲ 76 | g = ޣ 77 | h = ޙ 78 | i = ީ 79 | j = ޛ 80 | k = ޚ 81 | l = ޅ 82 | m = ޟ 83 | n = ޏ 84 | o = ޯ 85 | p = ÷ 86 | q = ޤ 87 | r = ޜ 88 | s = ށ 89 | t = ޓ 90 | u = ޫ 91 | v = ޥ 92 | w = ޢ 93 | x = ޘ 94 | y = ޠ 95 | z = ޡ 96 | -------------------------------------------------------------------------------- /layouts/my: -------------------------------------------------------------------------------- 1 | [my:layout] 2 | 3 | ' = ط 4 | , = و 5 | - = - 6 | . = ز 7 | / = ظ 8 | 1 = ١ 9 | 2 = ٢ 10 | 3 = ٣ 11 | 4 = ٤ 12 | 5 = ٥ 13 | 6 = ٦ 14 | 7 = ٧ 15 | 8 = ٨ 16 | 9 = ٩ 17 | ; = ک 18 | = = = 19 | [ = ج 20 | \ = \ 21 | ] = د 22 | a = ش 23 | b = ﻻ 24 | c = ؤ 25 | d = ي 26 | e = ث 27 | f = ب 28 | g = ل 29 | h = ا 30 | i = ه 31 | j = ت 32 | k = ن 33 | l = م 34 | m = ة 35 | n = ى 36 | o = خ 37 | p = ک 38 | q = ض 39 | r = ق 40 | s = س 41 | t = ف 42 | u = ع 43 | v = ر 44 | w = ص 45 | x = ء 46 | y = غ 47 | z = ئ 48 | shift = layer(my_shift) 49 | altgr = layer(my_altgr) 50 | 51 | [my_shift:S] 52 | ' = " 53 | , = ‌ 54 | - = _ 55 | . = . 56 | / = ؟ 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = ٪ 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ) 66 | ; = : 67 | = = + 68 | [ = < 69 | \ = | 70 | ] = > 71 | a = ۏ 72 | b = ﻵ 73 | c = } 74 | d = ] 75 | e = ڬ 76 | f = [ 77 | g = ﻷ 78 | h = أ 79 | i = ÷ 80 | j = ـ 81 | k = ، 82 | l = / 83 | m = ' 84 | n = آ 85 | o = × 86 | p = ؛ 87 | q = چ 88 | r = ـ 89 | s = ڨ 90 | t = ﻹ 91 | u = ` 92 | v = { 93 | w = ڠ 94 | x = ڽ 95 | y = إ 96 | z = ~ 97 | 98 | [my_altgr:G] 99 | , = , 100 | 1 = 1 101 | 2 = 2 102 | 3 = 3 103 | 4 = 4 104 | 5 = 5 105 | 6 = 6 106 | 7 = 7 107 | 8 = 8 108 | 9 = 9 109 | ; = گ 110 | [ = چ 111 | f = پ 112 | t = ڤ 113 | x = « 114 | z = » 115 | 116 | [my_altgr+my_shift] 117 | -------------------------------------------------------------------------------- /layouts/ng: -------------------------------------------------------------------------------- 1 | [ng:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(ng_shift) 49 | altgr = layer(ng_altgr) 50 | 51 | [ng_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = ₦ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [ng_altgr:G] 99 | 4 = $ 100 | 101 | [ng_altgr+ng_shift] 102 | 4 = ¢ 103 | -------------------------------------------------------------------------------- /layouts/nl: -------------------------------------------------------------------------------- 1 | [nl:layout] 2 | 3 | , = , 4 | - = / 5 | . = . 6 | / = - 7 | 1 = 1 8 | 2 = 2 9 | 3 = 3 10 | 4 = 4 11 | 5 = 5 12 | 6 = 6 13 | 7 = 7 14 | 8 = 8 15 | 9 = 9 16 | ; = + 17 | = = ° 18 | \ = < 19 | ] = * 20 | a = a 21 | b = b 22 | c = c 23 | d = d 24 | e = e 25 | f = f 26 | g = g 27 | h = h 28 | i = i 29 | j = j 30 | k = k 31 | l = l 32 | m = m 33 | n = n 34 | o = o 35 | p = p 36 | q = q 37 | r = r 38 | s = s 39 | t = t 40 | u = u 41 | v = v 42 | w = w 43 | x = x 44 | y = y 45 | z = z 46 | shift = layer(nl_shift) 47 | altgr = layer(nl_altgr) 48 | 49 | [nl_shift:S] 50 | , = ; 51 | - = ? 52 | . = : 53 | / = = 54 | 1 = ! 55 | 2 = " 56 | 3 = # 57 | 4 = $ 58 | 5 = % 59 | 6 = & 60 | 7 = _ 61 | 8 = ( 62 | 9 = ) 63 | ; = ± 64 | \ = > 65 | ] = | 66 | a = A 67 | b = B 68 | c = C 69 | d = D 70 | e = E 71 | f = F 72 | g = G 73 | h = H 74 | i = I 75 | j = J 76 | k = K 77 | l = L 78 | m = M 79 | n = N 80 | o = O 81 | p = P 82 | q = Q 83 | r = R 84 | s = S 85 | t = T 86 | u = U 87 | v = V 88 | w = W 89 | x = X 90 | y = Y 91 | z = Z 92 | 93 | [nl_altgr:G] 94 | ' = ' 95 | , = ¸ 96 | - = \ 97 | . = · 98 | / = ­ 99 | 1 = ¹ 100 | 2 = ² 101 | 3 = ³ 102 | 4 = ¼ 103 | 5 = ½ 104 | 6 = ¾ 105 | 7 = £ 106 | 8 = { 107 | 9 = } 108 | [ = ~ 109 | a = á 110 | b = ” 111 | c = ¢ 112 | d = ð 113 | e = € 114 | f = ª 115 | g = ŋ 116 | h = ħ 117 | i = ï 118 | k = ĸ 119 | l = ł 120 | m = μ 121 | n = ñ 122 | o = ò 123 | p = ¶ 124 | q = @ 125 | r = ¶ 126 | s = ß 127 | t = þ 128 | u = ü 129 | v = “ 130 | w = ſ 131 | x = » 132 | y = ÿ 133 | z = « 134 | 135 | [nl_altgr+nl_shift] 136 | ' = ` 137 | , = « 138 | - = ¿ 139 | . = » 140 | 1 = ¡ 141 | 2 = ⅛ 142 | 3 = £ 143 | 4 = $ 144 | 5 = ⅜ 145 | 6 = ⅝ 146 | 7 = ⅞ 147 | 8 = [ 148 | 9 = ] 149 | [ = ^ 150 | a = Á 151 | b = ’ 152 | c = © 153 | d = Ð 154 | e = ¢ 155 | f = ª 156 | g = Ŋ 157 | h = Ħ 158 | i = Ï 159 | k = & 160 | l = Ł 161 | m = º 162 | n = Ñ 163 | o = Ò 164 | p = Þ 165 | q = Ω 166 | r = ® 167 | s = ẞ 168 | t = Þ 169 | u = 170 | v = ‘ 171 | w = § 172 | x = > 173 | y = ¥ 174 | z = < 175 | -------------------------------------------------------------------------------- /layouts/no: -------------------------------------------------------------------------------- 1 | [no:layout] 2 | 3 | ' = æ 4 | , = , 5 | - = + 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ø 18 | = = \ 19 | [ = å 20 | \ = ' 21 | a = a 22 | b = b 23 | c = c 24 | d = d 25 | e = e 26 | f = f 27 | g = g 28 | h = h 29 | i = i 30 | j = j 31 | k = k 32 | l = l 33 | m = m 34 | n = n 35 | o = o 36 | p = p 37 | q = q 38 | r = r 39 | s = s 40 | t = t 41 | u = u 42 | v = v 43 | w = w 44 | x = x 45 | y = y 46 | z = z 47 | shift = layer(no_shift) 48 | altgr = layer(no_altgr) 49 | 50 | [no_shift:S] 51 | ' = Æ 52 | , = ; 53 | - = ? 54 | . = : 55 | / = _ 56 | 1 = ! 57 | 2 = " 58 | 3 = # 59 | 4 = ¤ 60 | 5 = % 61 | 6 = & 62 | 7 = / 63 | 8 = ( 64 | 9 = ) 65 | ; = Ø 66 | [ = Å 67 | \ = * 68 | a = A 69 | b = B 70 | c = C 71 | d = D 72 | e = E 73 | f = F 74 | g = G 75 | h = H 76 | i = I 77 | j = J 78 | k = K 79 | l = L 80 | m = M 81 | n = N 82 | o = O 83 | p = P 84 | q = Q 85 | r = R 86 | s = S 87 | t = T 88 | u = U 89 | v = V 90 | w = W 91 | x = X 92 | y = Y 93 | z = Z 94 | 95 | [no_altgr:G] 96 | - = ± 97 | . = … 98 | / = – 99 | 1 = ¡ 100 | 2 = @ 101 | 3 = £ 102 | 4 = $ 103 | 5 = ½ 104 | 6 = ¥ 105 | 7 = { 106 | 8 = [ 107 | 9 = ] 108 | a = ª 109 | b = “ 110 | c = © 111 | d = ð 112 | e = € 113 | f = đ 114 | g = ŋ 115 | h = ħ 116 | i = → 117 | k = ĸ 118 | l = ł 119 | m = µ 120 | n = ” 121 | o = œ 122 | p = π 123 | q = @ 124 | r = ® 125 | s = ß 126 | t = þ 127 | u = ↓ 128 | v = „ 129 | w = ſ 130 | x = » 131 | y = ← 132 | z = « 133 | 134 | [no_altgr+no_shift] 135 | - = ¿ 136 | . = · 137 | / = — 138 | 1 = ¹ 139 | 2 = ² 140 | 3 = ³ 141 | 4 = ¼ 142 | 5 = ‰ 143 | 6 = ⅝ 144 | 7 = ÷ 145 | 8 = « 146 | 9 = » 147 | = = ¬ 148 | \ = × 149 | a = º 150 | b = ‘ 151 | c = © 152 | d = Ð 153 | e = ¢ 154 | f = ª 155 | g = Ŋ 156 | h = Ħ 157 | i = ı 158 | k = & 159 | l = Ł 160 | m = º 161 | n = ’ 162 | o = Œ 163 | p = Π 164 | q = Ω 165 | r = ™ 166 | s = ẞ 167 | t = Þ 168 | u = ↑ 169 | v = ‚ 170 | w = § 171 | x = > 172 | y = ¥ 173 | z = < 174 | -------------------------------------------------------------------------------- /layouts/np: -------------------------------------------------------------------------------- 1 | [np:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = । 7 | / = ् 8 | 1 = १ 9 | 2 = २ 10 | 3 = ३ 11 | 4 = ४ 12 | 5 = ५ 13 | 6 = ६ 14 | 7 = ७ 15 | 8 = ८ 16 | 9 = ९ 17 | ; = ; 18 | = = ‍ 19 | [ = इ 20 | \ = ॐ 21 | ] = ए 22 | a = ा 23 | b = ब 24 | c = च 25 | d = द 26 | e = े 27 | f = उ 28 | g = ग 29 | h = ह 30 | i = ि 31 | j = ज 32 | k = क 33 | l = ल 34 | m = म 35 | n = न 36 | o = ो 37 | p = प 38 | q = ट 39 | r = र 40 | s = स 41 | t = त 42 | u = ु 43 | v = व 44 | w = ौ 45 | x = ड 46 | y = य 47 | z = ष 48 | shift = layer(np_shift) 49 | 50 | [np_shift:S] 51 | ' = " 52 | , = ङ 53 | - = ॒ 54 | . = . 55 | / = ? 56 | 1 = ! 57 | 2 = @ 58 | 3 = # 59 | 4 = $ 60 | 5 = % 61 | 6 = ^ 62 | 7 = & 63 | 8 = * 64 | 9 = ( 65 | ; = : 66 | = = ‌ 67 | [ = ई 68 | \ = ः 69 | ] = ऐ 70 | a = आ 71 | b = भ 72 | c = छ 73 | d = ध 74 | e = ै 75 | f = ऊ 76 | g = घ 77 | h = अ 78 | i = ी 79 | j = झ 80 | k = ख 81 | l = ॥ 82 | m = ं 83 | n = ण 84 | o = ओ 85 | p = फ 86 | q = ठ 87 | r = ृ 88 | s = श 89 | t = थ 90 | u = ू 91 | v = ँ 92 | w = औ 93 | x = ढ 94 | y = ञ 95 | z = ऋ 96 | -------------------------------------------------------------------------------- /layouts/ph: -------------------------------------------------------------------------------- 1 | [ph:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(ph_shift) 49 | altgr = layer(ph_altgr) 50 | 51 | [ph_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [ph_altgr:G] 99 | ' = ́ 100 | , = ̧ 101 | - = ¬ 102 | . = … 103 | / = ÷ 104 | 1 = ¹ 105 | 2 = ² 106 | 3 = ³ 107 | 4 = ¼ 108 | 5 = ½ 109 | 6 = ¾ 110 | 7 = ⅛ 111 | 8 = ⅜ 112 | 9 = ⅝ 113 | = = ± 114 | \ = ə 115 | a = æ 116 | b = ” 117 | c = © 118 | e = œ 119 | i = ı 120 | m = µ 121 | n = ñ 122 | o = ø 123 | p = ₱ 124 | r = ® 125 | s = § 126 | t = ™ 127 | v = “ 128 | x = × 129 | y = ¥ 130 | z = « 131 | 132 | [ph_altgr+ph_shift] 133 | ' = ̋ 134 | , = ̨ 135 | - = ͠ 136 | . = ␣ 137 | / = ¿ 138 | 1 = ¡ 139 | 2 = ¤ 140 | 3 = £ 141 | 4 = € 142 | 5 = ° 143 | 6 = ̂ 144 | 7 = ← 145 | 8 = → 146 | 9 = ↑ 147 | = = ∓ 148 | \ = Ə 149 | a = Æ 150 | b = ’ 151 | c = ¢ 152 | e = Œ 153 | f = ª 154 | i = İ 155 | m = º 156 | n = Ñ 157 | o = Ø 158 | r = ¶ 159 | v = ‘ 160 | x = · 161 | z = » 162 | -------------------------------------------------------------------------------- /layouts/pk: -------------------------------------------------------------------------------- 1 | [pk:layout] 2 | 3 | , = ، 4 | . = ۔ 5 | ; = ؛ 6 | a = ا 7 | b = ب 8 | c = چ 9 | d = د 10 | e = ع 11 | f = ف 12 | g = گ 13 | h = ح 14 | i = ی 15 | j = ج 16 | k = ک 17 | l = ل 18 | m = م 19 | n = ن 20 | o = ہ 21 | p = پ 22 | q = ق 23 | r = ر 24 | s = س 25 | t = ت 26 | u = ء 27 | v = ط 28 | w = و 29 | x = ش 30 | y = ے 31 | z = ز 32 | shift = layer(pk_shift) 33 | altgr = layer(pk_altgr) 34 | 35 | [pk_shift:S] 36 | / = ؟ 37 | a = آ 38 | c = ث 39 | d = ڈ 40 | e = ٰ 41 | f = ّ 42 | g = غ 43 | h = ھ 44 | i = ِ 45 | j = ض 46 | k = خ 47 | l = ٔ 48 | m = ٘ 49 | n = ں 50 | o = ۃ 51 | p = ُ 52 | q = ْ 53 | r = ڑ 54 | s = ص 55 | t = ٹ 56 | u = ئ 57 | v = ظ 58 | w = ؤ 59 | x = ژ 60 | y = َ 61 | z = ذ 62 | 63 | [pk_altgr:G] 64 | b = ‮ 65 | c = ‭ 66 | m = ‏ 67 | n = ‫ 68 | q = ‍ 69 | v = ‬ 70 | w = ‌ 71 | x = ‪ 72 | z = ‎ 73 | 74 | [pk_altgr+pk_shift] 75 | -------------------------------------------------------------------------------- /layouts/pl: -------------------------------------------------------------------------------- 1 | [pl:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(pl_shift) 49 | altgr = layer(pl_altgr) 50 | 51 | [pl_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [pl_altgr:G] 99 | , = ≤ 100 | - = – 101 | . = ≥ 102 | 1 = ≠ 103 | 2 = ² 104 | 3 = ³ 105 | 4 = ¢ 106 | 5 = € 107 | 6 = ½ 108 | 7 = § 109 | 8 = · 110 | 9 = « 111 | a = ą 112 | b = ” 113 | c = ć 114 | d = ð 115 | e = ę 116 | f = æ 117 | g = ŋ 118 | h = ’ 119 | i = → 120 | j = ə 121 | k = … 122 | l = ł 123 | m = µ 124 | n = ń 125 | o = ó 126 | p = þ 127 | q = π 128 | r = © 129 | s = ś 130 | t = ß 131 | u = ↓ 132 | v = „ 133 | w = œ 134 | x = ź 135 | y = ← 136 | z = ż 137 | 138 | [pl_altgr+pl_shift] 139 | , = × 140 | - = — 141 | . = ÷ 142 | 1 = ¡ 143 | 2 = ¿ 144 | 3 = £ 145 | 4 = ¼ 146 | 5 = ‰ 147 | 6 = ∧ 148 | 7 = ≈ 149 | 8 = ¾ 150 | 9 = ± 151 | a = Ą 152 | b = “ 153 | c = Ć 154 | d = Ð 155 | e = Ę 156 | f = Æ 157 | g = Ŋ 158 | h = • 159 | i = ↔ 160 | j = Ə 161 | l = Ł 162 | m = ∞ 163 | n = Ń 164 | o = Ó 165 | p = Þ 166 | q = Ω 167 | r = ® 168 | s = Ś 169 | t = ™ 170 | u = ↑ 171 | v = ‘ 172 | w = Œ 173 | x = Ź 174 | y = ¥ 175 | z = Ż 176 | -------------------------------------------------------------------------------- /layouts/pt: -------------------------------------------------------------------------------- 1 | [pt:layout] 2 | 3 | ' = º 4 | , = , 5 | - = ' 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ç 18 | = = « 19 | [ = + 20 | a = a 21 | b = b 22 | c = c 23 | d = d 24 | e = e 25 | f = f 26 | g = g 27 | h = h 28 | i = i 29 | j = j 30 | k = k 31 | l = l 32 | m = m 33 | n = n 34 | o = o 35 | p = p 36 | q = q 37 | r = r 38 | s = s 39 | t = t 40 | u = u 41 | v = v 42 | w = w 43 | x = x 44 | y = y 45 | z = z 46 | shift = layer(pt_shift) 47 | altgr = layer(pt_altgr) 48 | 49 | [pt_shift:S] 50 | ' = ª 51 | , = ; 52 | - = ? 53 | . = : 54 | / = _ 55 | 1 = ! 56 | 2 = " 57 | 3 = # 58 | 4 = $ 59 | 5 = % 60 | 6 = & 61 | 7 = / 62 | 8 = ( 63 | 9 = ) 64 | ; = Ç 65 | = = » 66 | [ = * 67 | a = A 68 | b = B 69 | c = C 70 | d = D 71 | e = E 72 | f = F 73 | g = G 74 | h = H 75 | i = I 76 | j = J 77 | k = K 78 | l = L 79 | m = M 80 | n = N 81 | o = O 82 | p = P 83 | q = Q 84 | r = R 85 | s = S 86 | t = T 87 | u = U 88 | v = V 89 | w = W 90 | x = X 91 | y = Y 92 | z = Z 93 | 94 | [pt_altgr:G] 95 | , = • 96 | - = \ 97 | . = · 98 | 1 = ¹ 99 | 2 = @ 100 | 3 = £ 101 | 4 = § 102 | 5 = ½ 103 | 6 = ¬ 104 | 7 = { 105 | 8 = [ 106 | 9 = ] 107 | a = æ 108 | b = “ 109 | c = ¢ 110 | d = ð 111 | e = € 112 | f = đ 113 | g = ŋ 114 | h = ħ 115 | i = → 116 | k = ĸ 117 | l = ł 118 | m = µ 119 | n = ” 120 | o = ø 121 | p = þ 122 | q = @ 123 | r = ¶ 124 | s = ß 125 | t = ŧ 126 | u = ↓ 127 | v = „ 128 | w = ſ 129 | x = » 130 | y = ← 131 | z = « 132 | 133 | [pt_altgr+pt_shift] 134 | , = × 135 | - = ¿ 136 | . = ÷ 137 | 1 = ¡ 138 | 2 = ⅛ 139 | 3 = £ 140 | 4 = $ 141 | 5 = ⅜ 142 | 6 = ⅝ 143 | 7 = ⅞ 144 | 8 = ™ 145 | 9 = ± 146 | a = Æ 147 | b = ‘ 148 | c = © 149 | d = Ð 150 | e = ¢ 151 | f = ª 152 | g = Ŋ 153 | h = Ħ 154 | i = ı 155 | k = & 156 | l = Ł 157 | m = º 158 | n = ’ 159 | o = Ø 160 | p = Þ 161 | q = Ω 162 | r = ® 163 | s = ẞ 164 | t = Ŧ 165 | u = ↑ 166 | v = ‚ 167 | w = § 168 | x = > 169 | y = ¥ 170 | z = < 171 | -------------------------------------------------------------------------------- /layouts/ro: -------------------------------------------------------------------------------- 1 | [ro:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(ro_shift) 49 | altgr = layer(ro_altgr) 50 | 51 | [ro_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [ro_altgr:G] 99 | , = « 100 | . = » 101 | [ = „ 102 | ] = ” 103 | a = ă 104 | c = © 105 | d = đ 106 | e = € 107 | i = î 108 | l = ł 109 | p = § 110 | q = â 111 | s = ș 112 | t = ț 113 | w = ß 114 | 115 | [ro_altgr+ro_shift] 116 | - = – 117 | = = ± 118 | a = Ă 119 | d = Đ 120 | i = Î 121 | l = Ł 122 | q =  123 | s = Ș 124 | t = Ț 125 | w = ẞ 126 | -------------------------------------------------------------------------------- /layouts/rs: -------------------------------------------------------------------------------- 1 | [rs:layout] 2 | 3 | ' = ћ 4 | , = , 5 | - = ' 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ч 18 | = = + 19 | [ = ш 20 | \ = ж 21 | ] = ђ 22 | a = а 23 | b = б 24 | c = ц 25 | d = д 26 | e = е 27 | f = ф 28 | g = г 29 | h = х 30 | i = и 31 | j = ј 32 | k = к 33 | l = л 34 | m = м 35 | n = н 36 | o = о 37 | p = п 38 | q = љ 39 | r = р 40 | s = с 41 | t = т 42 | u = у 43 | v = в 44 | w = њ 45 | x = џ 46 | y = з 47 | z = ж 48 | shift = layer(rs_shift) 49 | altgr = layer(rs_altgr) 50 | 51 | [rs_shift:S] 52 | ' = Ћ 53 | , = ; 54 | - = ? 55 | . = : 56 | / = _ 57 | 1 = ! 58 | 2 = " 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = & 63 | 7 = / 64 | 8 = ( 65 | 9 = ) 66 | ; = Ч 67 | = = * 68 | [ = Ш 69 | \ = Ж 70 | ] = Ђ 71 | a = А 72 | b = Б 73 | c = Ц 74 | d = Д 75 | e = Е 76 | f = Ф 77 | g = Г 78 | h = Х 79 | i = И 80 | j = Ј 81 | k = К 82 | l = Л 83 | m = М 84 | n = Н 85 | o = О 86 | p = П 87 | q = Љ 88 | r = Р 89 | s = С 90 | t = Т 91 | u = У 92 | v = В 93 | w = Њ 94 | x = Џ 95 | y = З 96 | z = Ж 97 | 98 | [rs_altgr:G] 99 | , = < 100 | . = > 101 | / = — 102 | [ = ÷ 103 | \ = ¤ 104 | ] = × 105 | b = { 106 | c = ¢ 107 | d = “ 108 | e = € 109 | f = [ 110 | g = ] 111 | i = → 112 | m = ^ 113 | n = } 114 | o = § 115 | q = \ 116 | r = ¶ 117 | s = „ 118 | t = … 119 | u = ↓ 120 | v = @ 121 | w = | 122 | x = ’ 123 | y = ← 124 | z = ‘ 125 | 126 | [rs_altgr+rs_shift] 127 | / = – 128 | c = © 129 | d = « 130 | e = £ 131 | r = ® 132 | s = » 133 | u = ↑ 134 | y = ¥ 135 | -------------------------------------------------------------------------------- /layouts/ru: -------------------------------------------------------------------------------- 1 | [ru:layout] 2 | 3 | ' = э 4 | , = б 5 | - = - 6 | . = ю 7 | / = . 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ж 18 | = = = 19 | [ = х 20 | \ = \ 21 | ] = ъ 22 | a = ф 23 | b = и 24 | c = с 25 | d = в 26 | e = у 27 | f = а 28 | g = п 29 | h = р 30 | i = ш 31 | j = о 32 | k = л 33 | l = д 34 | m = ь 35 | n = т 36 | o = щ 37 | p = з 38 | q = й 39 | r = к 40 | s = ы 41 | t = е 42 | u = г 43 | v = м 44 | w = ц 45 | x = ч 46 | y = н 47 | z = я 48 | shift = layer(ru_shift) 49 | altgr = layer(ru_altgr) 50 | 51 | [ru_shift:S] 52 | ' = Э 53 | , = Б 54 | - = _ 55 | . = Ю 56 | / = , 57 | 1 = ! 58 | 2 = " 59 | 3 = № 60 | 4 = ; 61 | 5 = % 62 | 6 = : 63 | 7 = ? 64 | 8 = * 65 | 9 = ( 66 | ; = Ж 67 | = = + 68 | [ = Х 69 | \ = / 70 | ] = Ъ 71 | a = Ф 72 | b = И 73 | c = С 74 | d = В 75 | e = У 76 | f = А 77 | g = П 78 | h = Р 79 | i = Ш 80 | j = О 81 | k = Л 82 | l = Д 83 | m = Ь 84 | n = Т 85 | o = Щ 86 | p = З 87 | q = Й 88 | r = К 89 | s = Ы 90 | t = Е 91 | u = Г 92 | v = М 93 | w = Ц 94 | x = Ч 95 | y = Н 96 | z = Я 97 | 98 | [ru_altgr:G] 99 | 8 = ₽ 100 | 101 | [ru_altgr+ru_shift] 102 | -------------------------------------------------------------------------------- /layouts/se: -------------------------------------------------------------------------------- 1 | [se:layout] 2 | 3 | ' = ä 4 | , = , 5 | - = + 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ö 18 | [ = å 19 | \ = ' 20 | a = a 21 | b = b 22 | c = c 23 | d = d 24 | e = e 25 | f = f 26 | g = g 27 | h = h 28 | i = i 29 | j = j 30 | k = k 31 | l = l 32 | m = m 33 | n = n 34 | o = o 35 | p = p 36 | q = q 37 | r = r 38 | s = s 39 | t = t 40 | u = u 41 | v = v 42 | w = w 43 | x = x 44 | y = y 45 | z = z 46 | shift = layer(se_shift) 47 | altgr = layer(se_altgr) 48 | 49 | [se_shift:S] 50 | ' = Ä 51 | , = ; 52 | - = ? 53 | . = : 54 | / = _ 55 | 1 = ! 56 | 2 = " 57 | 3 = # 58 | 4 = ¤ 59 | 5 = % 60 | 6 = & 61 | 7 = / 62 | 8 = ( 63 | 9 = ) 64 | ; = Ö 65 | [ = Å 66 | \ = * 67 | a = A 68 | b = B 69 | c = C 70 | d = D 71 | e = E 72 | f = F 73 | g = G 74 | h = H 75 | i = I 76 | j = J 77 | k = K 78 | l = L 79 | m = M 80 | n = N 81 | o = O 82 | p = P 83 | q = Q 84 | r = R 85 | s = S 86 | t = T 87 | u = U 88 | v = V 89 | w = W 90 | x = X 91 | y = Y 92 | z = Z 93 | 94 | [se_altgr:G] 95 | ' = æ 96 | - = \ 97 | . = · 98 | 1 = ¡ 99 | 2 = @ 100 | 3 = £ 101 | 4 = $ 102 | 5 = € 103 | 6 = ¥ 104 | 7 = { 105 | 8 = [ 106 | 9 = ] 107 | ; = ø 108 | = = ± 109 | \ = ´ 110 | a = ª 111 | b = “ 112 | c = © 113 | d = ð 114 | e = € 115 | f = đ 116 | g = ŋ 117 | h = ħ 118 | i = → 119 | k = ĸ 120 | l = ł 121 | m = µ 122 | n = ” 123 | o = œ 124 | p = þ 125 | q = @ 126 | r = ® 127 | s = ß 128 | t = þ 129 | u = ↓ 130 | v = „ 131 | w = ſ 132 | x = » 133 | y = ← 134 | z = « 135 | 136 | [se_altgr+se_shift] 137 | ' = Æ 138 | - = ¿ 139 | 1 = ¹ 140 | 2 = ² 141 | 3 = ³ 142 | 4 = ¼ 143 | 5 = ¢ 144 | 6 = ⅝ 145 | 7 = ÷ 146 | 8 = « 147 | 9 = » 148 | ; = Ø 149 | = = ¬ 150 | \ = × 151 | a = º 152 | b = ‘ 153 | c = © 154 | d = Ð 155 | e = ¢ 156 | f = ª 157 | g = Ŋ 158 | h = Ħ 159 | i = ı 160 | k = & 161 | l = Ł 162 | m = º 163 | n = ’ 164 | o = Œ 165 | p = Þ 166 | q = Ω 167 | r = ® 168 | s = ẞ 169 | t = Þ 170 | u = ↑ 171 | v = ‚ 172 | w = § 173 | x = > 174 | y = ¥ 175 | z = < 176 | -------------------------------------------------------------------------------- /layouts/si: -------------------------------------------------------------------------------- 1 | [si:layout] 2 | 3 | ' = ć 4 | , = , 5 | - = ' 6 | . = . 7 | / = - 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = č 18 | = = + 19 | [ = š 20 | \ = ž 21 | ] = đ 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = z 47 | z = y 48 | shift = layer(si_shift) 49 | altgr = layer(si_altgr) 50 | 51 | [si_shift:S] 52 | ' = Ć 53 | , = ; 54 | - = ? 55 | . = : 56 | / = _ 57 | 1 = ! 58 | 2 = " 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = & 63 | 7 = / 64 | 8 = ( 65 | 9 = ) 66 | ; = Č 67 | = = * 68 | [ = Š 69 | \ = Ž 70 | ] = Đ 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Z 96 | z = Y 97 | 98 | [si_altgr:G] 99 | ' = ß 100 | , = < 101 | . = > 102 | / = — 103 | [ = ÷ 104 | \ = ¤ 105 | ] = × 106 | a = æ 107 | b = { 108 | c = ¢ 109 | d = “ 110 | e = € 111 | f = [ 112 | g = ] 113 | h = ħ 114 | i = → 115 | k = ł 116 | l = ł 117 | m = § 118 | n = } 119 | o = ø 120 | p = þ 121 | q = \ 122 | r = ¶ 123 | s = „ 124 | t = ŧ 125 | u = ↓ 126 | v = @ 127 | w = | 128 | x = ’ 129 | y = ← 130 | z = ‘ 131 | 132 | [si_altgr+si_shift] 133 | , = × 134 | - = ¨ 135 | . = ÷ 136 | / = – 137 | 1 = ~ 138 | 2 = ˇ 139 | 3 = ^ 140 | 4 = ˘ 141 | 5 = ° 142 | 6 = ˛ 143 | 7 = ` 144 | 8 = ˙ 145 | 9 = ' 146 | = = ¸ 147 | a = Æ 148 | b = ' 149 | c = © 150 | d = « 151 | e = € 152 | f = ª 153 | g = Ŋ 154 | h = Ħ 155 | i = ı 156 | k = & 157 | l = Ł 158 | m = º 159 | n = } 160 | o = Ø 161 | p = Þ 162 | q = Ω 163 | r = ® 164 | s = » 165 | t = Ŧ 166 | u = ↑ 167 | v = ` 168 | w = Ł 169 | x = « 170 | y = ¥ 171 | z = » 172 | -------------------------------------------------------------------------------- /layouts/sk: -------------------------------------------------------------------------------- 1 | [sk:layout] 2 | 3 | ' = § 4 | , = , 5 | - = = 6 | . = . 7 | / = - 8 | 1 = + 9 | 2 = ľ 10 | 3 = š 11 | 4 = č 12 | 5 = ť 13 | 6 = ž 14 | 7 = ý 15 | 8 = á 16 | 9 = í 17 | ; = ô 18 | [ = ú 19 | \ = ň 20 | ] = ä 21 | a = a 22 | b = b 23 | c = c 24 | d = d 25 | e = e 26 | f = f 27 | g = g 28 | h = h 29 | i = i 30 | j = j 31 | k = k 32 | l = l 33 | m = m 34 | n = n 35 | o = o 36 | p = p 37 | q = q 38 | r = r 39 | s = s 40 | t = t 41 | u = u 42 | v = v 43 | w = w 44 | x = x 45 | y = z 46 | z = y 47 | shift = layer(sk_shift) 48 | altgr = layer(sk_altgr) 49 | 50 | [sk_shift:S] 51 | ' = ! 52 | , = ? 53 | - = % 54 | . = : 55 | / = _ 56 | 1 = 1 57 | 2 = 2 58 | 3 = 3 59 | 4 = 4 60 | 5 = 5 61 | 6 = 6 62 | 7 = 7 63 | 8 = 8 64 | 9 = 9 65 | ; = " 66 | [ = / 67 | \ = ) 68 | ] = ( 69 | a = A 70 | b = B 71 | c = C 72 | d = D 73 | e = E 74 | f = F 75 | g = G 76 | h = H 77 | i = I 78 | j = J 79 | k = K 80 | l = L 81 | m = M 82 | n = N 83 | o = O 84 | p = P 85 | q = Q 86 | r = R 87 | s = S 88 | t = T 89 | u = U 90 | v = V 91 | w = W 92 | x = X 93 | y = Z 94 | z = Y 95 | 96 | [sk_altgr:G] 97 | ' = ' 98 | , = < 99 | - = \ 100 | . = > 101 | / = * 102 | 1 = ! 103 | 2 = @ 104 | 3 = # 105 | 4 = $ 106 | 5 = % 107 | 6 = ^ 108 | 7 = & 109 | 8 = * 110 | 9 = { 111 | ; = $ 112 | [ = [ 113 | \ = \ 114 | ] = ] 115 | a = ~ 116 | b = { 117 | c = & 118 | d = Đ 119 | e = € 120 | f = [ 121 | g = ] 122 | h = ` 123 | i = → 124 | j = ' 125 | k = ł 126 | l = Ł 127 | m = ^ 128 | n = } 129 | o = ø 130 | p = þ 131 | q = \ 132 | r = ¶ 133 | s = đ 134 | t = ŧ 135 | u = ↓ 136 | v = @ 137 | w = | 138 | x = # 139 | y = ← 140 | z = ° 141 | 142 | [sk_altgr+sk_shift] 143 | ' = ß 144 | , = × 145 | . = ÷ 146 | [ = ÷ 147 | \ = | 148 | ] = × 149 | a = Æ 150 | b = ‘ 151 | c = © 152 | d = Ð 153 | e = E 154 | f = ª 155 | g = Ŋ 156 | h = Ħ 157 | i = ı 158 | k = & 159 | l = Ł 160 | m = º 161 | n = ’ 162 | o = Ø 163 | p = Þ 164 | q = Ω 165 | r = ® 166 | s = ẞ 167 | t = Ŧ 168 | u = ↑ 169 | v = ‚ 170 | w = § 171 | x = > 172 | y = ¥ 173 | z = < 174 | -------------------------------------------------------------------------------- /layouts/sy: -------------------------------------------------------------------------------- 1 | [sy:layout] 2 | 3 | ' = ط 4 | , = و 5 | - = - 6 | . = ز 7 | / = ظ 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ك 18 | = = = 19 | [ = ج 20 | \ = \ 21 | ] = د 22 | a = ش 23 | b = ﻻ 24 | c = ؤ 25 | d = ي 26 | e = ث 27 | f = ب 28 | g = ل 29 | h = ا 30 | i = ه 31 | j = ت 32 | k = ن 33 | l = م 34 | m = ة 35 | n = ى 36 | o = خ 37 | p = ح 38 | q = ض 39 | r = ق 40 | s = س 41 | t = ف 42 | u = ع 43 | v = ر 44 | w = ص 45 | x = ء 46 | y = غ 47 | z = ئ 48 | shift = layer(sy_shift) 49 | altgr = layer(sy_altgr) 50 | 51 | [sy_shift:S] 52 | ' = " 53 | , = , 54 | - = _ 55 | . = . 56 | / = ؟ 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ) 66 | ; = : 67 | = = + 68 | [ = < 69 | \ = … 70 | ] = > 71 | a = ِ 72 | b = ﻵ 73 | c = } 74 | d = ] 75 | e = ُ 76 | f = [ 77 | g = ﻷ 78 | h = أ 79 | i = ÷ 80 | j = ـ 81 | k = ، 82 | l = / 83 | m = ' 84 | n = آ 85 | o = × 86 | p = ؛ 87 | q = َ 88 | r = ٌ 89 | s = ٍ 90 | t = ﻹ 91 | u = ` 92 | v = { 93 | w = ً 94 | x = ْ 95 | y = إ 96 | z = ~ 97 | 98 | [sy_altgr:G] 99 | ' = ⟩ 100 | , = ٬ 101 | - = – 102 | . = ژ 103 | / = ٭ 104 | 1 = ١ 105 | 2 = ٢ 106 | 3 = ٣ 107 | 4 = ٤ 108 | 5 = ٥ 109 | 6 = ٦ 110 | 7 = ٧ 111 | 8 = ٨ 112 | 9 = ٩ 113 | ; = گ 114 | = = ≠ 115 | [ = چ 116 | \ = ⟨ 117 | f = پ 118 | h = ٱ 119 | k = ٫ 120 | n = ٰ 121 | t = ڤ 122 | x = « 123 | z = » 124 | 125 | [sy_altgr+sy_shift] 126 | ' = ‍ 127 | - = ‑ 128 | / = ‌ 129 | 5 = ‰ 130 | = = ≈ 131 | [ = ‏ 132 | \ =   133 | ] = ؜ 134 | e = ⁨ 135 | i = ‬ 136 | p = ‎ 137 | q = ⁦ 138 | r = ⁩ 139 | u = ‫ 140 | w = ⁧ 141 | x = ‹ 142 | y = ‪ 143 | z = › 144 | -------------------------------------------------------------------------------- /layouts/tg: -------------------------------------------------------------------------------- 1 | [tg:layout] 2 | 3 | ' = ù 4 | , = ; 5 | - = ) 6 | . = : 7 | / = ! 8 | 1 = & 9 | 2 = é 10 | 3 = " 11 | 4 = ' 12 | 5 = ( 13 | 6 = - 14 | 7 = è 15 | 8 = _ 16 | 9 = ç 17 | ; = m 18 | = = = 19 | \ = * 20 | ] = $ 21 | a = q 22 | b = b 23 | c = c 24 | d = d 25 | e = e 26 | f = f 27 | g = g 28 | h = h 29 | i = i 30 | j = j 31 | k = k 32 | l = l 33 | m = , 34 | n = n 35 | o = o 36 | p = p 37 | q = a 38 | r = r 39 | s = s 40 | t = t 41 | u = u 42 | v = v 43 | w = z 44 | x = x 45 | y = y 46 | z = w 47 | shift = layer(tg_shift) 48 | altgr = layer(tg_altgr) 49 | 50 | [tg_shift:S] 51 | ' = % 52 | , = . 53 | - = ° 54 | . = / 55 | / = § 56 | 1 = 1 57 | 2 = 2 58 | 3 = 3 59 | 4 = 4 60 | 5 = 5 61 | 6 = 6 62 | 7 = 7 63 | 8 = 8 64 | 9 = 9 65 | ; = M 66 | = = + 67 | \ = µ 68 | ] = £ 69 | a = Q 70 | b = B 71 | c = C 72 | d = D 73 | e = E 74 | f = F 75 | g = G 76 | h = H 77 | i = I 78 | j = J 79 | k = K 80 | l = L 81 | m = ? 82 | n = N 83 | o = O 84 | p = P 85 | q = A 86 | r = R 87 | s = S 88 | t = T 89 | u = U 90 | v = V 91 | w = Z 92 | x = X 93 | y = Y 94 | z = W 95 | 96 | [tg_altgr:G] 97 | - = ] 98 | 2 = ~ 99 | 3 = # 100 | 4 = { 101 | 5 = [ 102 | 6 = | 103 | 7 = ` 104 | 8 = \ 105 | 9 = ^ 106 | ; = ɲ 107 | = = } 108 | ] = ¤ 109 | a = ǝ 110 | b = ɓ 111 | d = ɖ 112 | e = € 113 | f = ƒ 114 | g = ɣ 115 | h = ɦ 116 | i = ɩ 117 | j = ɨ 118 | n = ŋ 119 | o = ɔ 120 | r = ɛ 121 | t = ɗ 122 | u = ʊ 123 | v = ʋ 124 | w = ʒ 125 | y = ƴ 126 | 127 | [tg_altgr+tg_shift] 128 | ; = Ɲ 129 | a = Ǝ 130 | b = Ɓ 131 | d = Ɖ 132 | f = Ƒ 133 | g = Ɣ 134 | h = Ĥ 135 | i = Ɩ 136 | j = Ɨ 137 | n = Ŋ 138 | o = Ɔ 139 | r = Ɛ 140 | t = Ɗ 141 | u = Ʊ 142 | v = Ʋ 143 | w = Ʒ 144 | y = Ƴ 145 | -------------------------------------------------------------------------------- /layouts/th: -------------------------------------------------------------------------------- 1 | [th:layout] 2 | 3 | ' = ง 4 | , = ม 5 | - = ข 6 | . = ใ 7 | / = ฝ 8 | 1 = ๅ 9 | 2 = / 10 | 3 = - 11 | 4 = ภ 12 | 5 = ถ 13 | 6 = ุ 14 | 7 = ึ 15 | 8 = ค 16 | 9 = ต 17 | ; = ว 18 | = = ช 19 | [ = บ 20 | \ = ฃ 21 | ] = ล 22 | a = ฟ 23 | b = ิ 24 | c = แ 25 | d = ก 26 | e = ำ 27 | f = ด 28 | g = เ 29 | h = ้ 30 | i = ร 31 | j = ่ 32 | k = า 33 | l = ส 34 | m = ท 35 | n = ื 36 | o = น 37 | p = ย 38 | q = ๆ 39 | r = พ 40 | s = ห 41 | t = ะ 42 | u = ี 43 | v = อ 44 | w = ไ 45 | x = ป 46 | y = ั 47 | z = ผ 48 | shift = layer(th_shift) 49 | 50 | [th_shift:S] 51 | ' = . 52 | , = ฒ 53 | - = ๘ 54 | . = ฬ 55 | / = ฦ 56 | 1 = + 57 | 2 = ๑ 58 | 3 = ๒ 59 | 4 = ๓ 60 | 5 = ๔ 61 | 6 = ู 62 | 7 = ฿ 63 | 8 = ๕ 64 | 9 = ๖ 65 | ; = ซ 66 | = = ๙ 67 | [ = ฐ 68 | \ = ฅ 69 | ] = , 70 | a = ฤ 71 | b = ฺ 72 | c = ฉ 73 | d = ฏ 74 | e = ฎ 75 | f = โ 76 | g = ฌ 77 | h = ็ 78 | i = ณ 79 | j = ๋ 80 | k = ษ 81 | l = ศ 82 | m = ? 83 | n = ์ 84 | o = ฯ 85 | p = ญ 86 | q = ๐ 87 | r = ฑ 88 | s = ฆ 89 | t = ธ 90 | u = ๊ 91 | v = ฮ 92 | w = " 93 | x = ) 94 | y = ํ 95 | z = ( 96 | -------------------------------------------------------------------------------- /layouts/tj: -------------------------------------------------------------------------------- 1 | [tj:layout] 2 | 3 | ' = э 4 | , = б 5 | - = ғ 6 | . = ю 7 | / = . 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ж 18 | = = ӯ 19 | [ = х 20 | \ = \ 21 | ] = ъ 22 | a = ф 23 | b = и 24 | c = с 25 | d = в 26 | e = у 27 | f = а 28 | g = п 29 | h = р 30 | i = ш 31 | j = о 32 | k = л 33 | l = д 34 | m = ӣ 35 | n = т 36 | o = ҳ 37 | p = з 38 | q = й 39 | r = к 40 | s = ҷ 41 | t = е 42 | u = г 43 | v = м 44 | w = қ 45 | x = ч 46 | y = н 47 | z = я 48 | shift = layer(tj_shift) 49 | altgr = layer(tj_altgr) 50 | 51 | [tj_shift:S] 52 | ' = Э 53 | , = Б 54 | - = Ғ 55 | . = Ю 56 | / = , 57 | 1 = ! 58 | 2 = " 59 | 3 = № 60 | 4 = ; 61 | 5 = % 62 | 6 = : 63 | 7 = ? 64 | 8 = * 65 | 9 = ( 66 | ; = Ж 67 | = = Ӯ 68 | [ = Х 69 | \ = / 70 | ] = Ъ 71 | a = Ф 72 | b = И 73 | c = С 74 | d = В 75 | e = У 76 | f = А 77 | g = П 78 | h = Р 79 | i = Ш 80 | j = О 81 | k = Л 82 | l = Д 83 | m = Ӣ 84 | n = Т 85 | o = Ҳ 86 | p = З 87 | q = Й 88 | r = К 89 | s = Ҷ 90 | t = Е 91 | u = Г 92 | v = М 93 | w = Қ 94 | x = Ч 95 | y = Н 96 | z = Я 97 | 98 | [tj_altgr:G] 99 | - = - 100 | 6 = – 101 | 7 = & 102 | = = = 103 | 104 | [tj_altgr+tj_shift] 105 | - = _ 106 | = = + 107 | -------------------------------------------------------------------------------- /layouts/tm: -------------------------------------------------------------------------------- 1 | [tm:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = ň 20 | \ = ş 21 | ] = ö 22 | a = a 23 | b = b 24 | c = ç 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = ä 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = ý 44 | w = w 45 | x = ü 46 | y = y 47 | z = z 48 | shift = layer(tm_shift) 49 | altgr = layer(tm_altgr) 50 | 51 | [tm_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = Ň 69 | \ = Ş 70 | ] = Ö 71 | a = A 72 | b = B 73 | c = Ç 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Ä 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = Ý 93 | w = W 94 | x = 95 | y = Y 96 | z = Z 97 | 98 | [tm_altgr:G] 99 | [ = [ 100 | \ = \ 101 | ] = ] 102 | c = c 103 | q = q 104 | v = v 105 | x = x 106 | 107 | [tm_altgr+tm_shift] 108 | [ = { 109 | \ = | 110 | ] = } 111 | c = C 112 | q = Q 113 | v = V 114 | x = X 115 | -------------------------------------------------------------------------------- /layouts/tr: -------------------------------------------------------------------------------- 1 | [tr:layout] 2 | 3 | ' = i 4 | , = ö 5 | - = * 6 | . = ç 7 | / = . 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ş 18 | = = - 19 | [ = ğ 20 | \ = , 21 | ] = ü 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = ı 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(tr_shift) 49 | altgr = layer(tr_altgr) 50 | 51 | [tr_shift:S] 52 | ' = İ 53 | , = Ö 54 | - = ? 55 | . = Ç 56 | / = : 57 | 1 = ! 58 | 2 = ' 59 | 3 = ^ 60 | 4 = + 61 | 5 = % 62 | 6 = & 63 | 7 = / 64 | 8 = ( 65 | 9 = ) 66 | ; = Ş 67 | = = _ 68 | [ = Ğ 69 | \ = ; 70 | ] = 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [tr_altgr:G] 99 | ' = ' 100 | , = × 101 | - = \ 102 | . = · 103 | 1 = > 104 | 2 = £ 105 | 3 = # 106 | 4 = $ 107 | 5 = ½ 108 | 6 = ¾ 109 | 7 = { 110 | 8 = [ 111 | 9 = ] 112 | ; = ´ 113 | = = | 114 | \ = ` 115 | ] = ~ 116 | a = â 117 | b = “ 118 | c = ¢ 119 | e = € 120 | f = ª 121 | i = î 122 | m = µ 123 | n = ” 124 | o = ô 125 | q = @ 126 | r = ¶ 127 | s = ß 128 | t = ₺ 129 | u = û 130 | v = „ 131 | x = » 132 | y = ← 133 | z = « 134 | 135 | [tr_altgr+tr_shift] 136 | - = ¿ 137 | . = ÷ 138 | 1 = ¡ 139 | 2 = ² 140 | 3 = ³ 141 | 4 = ¼ 142 | 5 = ⅜ 143 | 9 = ± 144 | a =  145 | b = ‘ 146 | c = © 147 | i = Î 148 | m = º 149 | n = ’ 150 | o = Ô 151 | q = Ω 152 | r = ® 153 | u = 154 | v = ‚ 155 | x = > 156 | y = ¥ 157 | z = < 158 | -------------------------------------------------------------------------------- /layouts/tw: -------------------------------------------------------------------------------- 1 | [tw:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(tw_shift) 49 | altgr = layer(tw_altgr) 50 | 51 | [tw_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [tw_altgr:G] 99 | ' = ʼ 100 | / = ¿ 101 | 1 = ̍ 102 | 2 = ͘ 103 | 3 = § 104 | 4 = ¥ 105 | 5 = € 106 | ; = ː 107 | = = × 108 | \ = ¬ 109 | c = ç 110 | d = ḏ 111 | e = é 112 | g = ŋ 113 | i = ɨ 114 | l = ḻ 115 | m = µ 116 | n = ⁿ 117 | o = ø 118 | q = ¶ 119 | r = ṟ 120 | s = ß 121 | t = ṯ 122 | u = ʉ 123 | y = ṳ 124 | 125 | [tw_altgr+tw_shift] 126 | , = « 127 | - = ± 128 | . = » 129 | 1 = ¡ 130 | 2 = ² 131 | 3 = ³ 132 | 4 = £ 133 | 5 = ¢ 134 | = = ÷ 135 | \ = ¦ 136 | c = Ç 137 | d = Ḏ 138 | e = É 139 | g = Ŋ 140 | i = Ɨ 141 | l = Ḻ 142 | m = µ 143 | n = ᴺ 144 | o = Ø 145 | q = ° 146 | r = Ṟ 147 | s = ẞ 148 | t = Ṯ 149 | u = Ʉ 150 | y = Ṳ 151 | -------------------------------------------------------------------------------- /layouts/tz: -------------------------------------------------------------------------------- 1 | [tz:layout] 2 | 3 | ' = ء 4 | , = ، 5 | - = - 6 | . = ۔ 7 | 1 = ١ 8 | 2 = ٢ 9 | 3 = ٣ 10 | 4 = ٤ 11 | 5 = ٥ 12 | 6 = ٦ 13 | 7 = ٧ 14 | 8 = ٨ 15 | 9 = ٩ 16 | ; = ؛ 17 | = = = 18 | \ = \ 19 | a = َ 20 | b = ب 21 | c = چ 22 | d = د 23 | e = ٖ 24 | f = ف 25 | g = ڠ 26 | h = ه 27 | i = ِ 28 | j = ج 29 | k = ك 30 | l = ل 31 | m = م 32 | n = ن 33 | o = ْ 34 | p = پ 35 | q = ق 36 | r = ر 37 | s = س 38 | t = ت 39 | u = ُ 40 | v = ڨ 41 | w = و 42 | x = خ 43 | y = ي 44 | z = ز 45 | shift = layer(tz_shift) 46 | 47 | [tz_shift:S] 48 | , = إ 49 | - = ـ 50 | . = أ 51 | / = ؟ 52 | 5 = ٪ 53 | 9 = ﴾ 54 | = = + 55 | \ = | 56 | a = ا 57 | b = ذ 58 | c = ش 59 | d = ض 60 | e = ع 61 | f = ً 62 | g = غ 63 | h = ح 64 | i = ئ 65 | k = ٍ 66 | l = ّ 67 | o = ٗ 68 | p = ة 69 | q = گ 70 | r = ٹ 71 | s = ص 72 | t = ط 73 | u = ٌ 74 | v = ث 75 | w = ؤ 76 | y = ى 77 | z = ظ 78 | -------------------------------------------------------------------------------- /layouts/ua: -------------------------------------------------------------------------------- 1 | [ua:layout] 2 | 3 | ' = є 4 | , = б 5 | - = - 6 | . = ю 7 | / = . 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ж 18 | = = = 19 | [ = х 20 | \ = ґ 21 | ] = ї 22 | a = ф 23 | b = и 24 | c = с 25 | d = в 26 | e = у 27 | f = а 28 | g = п 29 | h = р 30 | i = ш 31 | j = о 32 | k = л 33 | l = д 34 | m = ь 35 | n = т 36 | o = щ 37 | p = з 38 | q = й 39 | r = к 40 | s = і 41 | t = е 42 | u = г 43 | v = м 44 | w = ц 45 | x = ч 46 | y = н 47 | z = я 48 | shift = layer(ua_shift) 49 | altgr = layer(ua_altgr) 50 | 51 | [ua_shift:S] 52 | ' = Є 53 | , = Б 54 | - = _ 55 | . = Ю 56 | / = , 57 | 1 = ! 58 | 2 = " 59 | 3 = № 60 | 4 = ; 61 | 5 = % 62 | 6 = : 63 | 7 = ? 64 | 8 = * 65 | 9 = ( 66 | ; = Ж 67 | = = + 68 | [ = Х 69 | \ = Ґ 70 | ] = Ї 71 | a = Ф 72 | b = И 73 | c = С 74 | d = В 75 | e = У 76 | f = А 77 | g = П 78 | h = Р 79 | i = Ш 80 | j = О 81 | k = Л 82 | l = Д 83 | m = Ь 84 | n = Т 85 | o = Щ 86 | p = З 87 | q = Й 88 | r = К 89 | s = І 90 | t = Е 91 | u = Г 92 | v = М 93 | w = Ц 94 | x = Ч 95 | y = Н 96 | z = Я 97 | 98 | [ua_altgr:G] 99 | ' = э 100 | , = « 101 | - = — 102 | . = » 103 | / = / 104 | 1 = ¹ 105 | 2 = ² 106 | 3 = § 107 | 4 = $ 108 | 5 = ° 109 | 6 = < 110 | 7 = > 111 | 8 = • 112 | 9 = [ 113 | = = ≠ 114 | \ = \ 115 | ] = ъ 116 | c = © 117 | e = ў 118 | k = љ 119 | l = ђ 120 | n = ™ 121 | q = ј 122 | r = ® 123 | s = ы 124 | t = ё 125 | w = џ 126 | x = ћ 127 | y = њ 128 | 129 | [ua_altgr+ua_shift] 130 | ' = Э 131 | , = „ 132 | - = – 133 | . = “ 134 | / = … 135 | 2 = ’ 136 | 3 = ₴ 137 | 4 = € 138 | 9 = { 139 | = = ± 140 | \ = | 141 | ] = Ъ 142 | e = Ў 143 | k = Љ 144 | l = Ђ 145 | q = Ј 146 | s = Ы 147 | t = Ё 148 | w = Џ 149 | x = Ћ 150 | y = Њ 151 | -------------------------------------------------------------------------------- /layouts/uz: -------------------------------------------------------------------------------- 1 | [uz:layout] 2 | 3 | ' = э 4 | , = б 5 | - = ғ 6 | . = ю 7 | / = . 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ж 18 | = = ҳ 19 | [ = х 20 | \ = \ 21 | ] = ъ 22 | a = ф 23 | b = и 24 | c = с 25 | d = в 26 | e = у 27 | f = а 28 | g = п 29 | h = р 30 | i = ш 31 | j = о 32 | k = л 33 | l = д 34 | m = ь 35 | n = т 36 | o = ў 37 | p = з 38 | q = й 39 | r = к 40 | s = қ 41 | t = е 42 | u = г 43 | v = м 44 | w = ц 45 | x = ч 46 | y = н 47 | z = я 48 | shift = layer(uz_shift) 49 | 50 | [uz_shift:S] 51 | ' = Э 52 | , = Б 53 | - = Ғ 54 | . = Ю 55 | / = , 56 | 1 = ! 57 | 2 = " 58 | 3 = № 59 | 4 = ; 60 | 5 = % 61 | 6 = : 62 | 7 = ? 63 | 8 = * 64 | 9 = ( 65 | ; = Ж 66 | = = Ҳ 67 | [ = Х 68 | \ = | 69 | ] = Ъ 70 | a = Ф 71 | b = И 72 | c = С 73 | d = В 74 | e = У 75 | f = А 76 | g = П 77 | h = Р 78 | i = Ш 79 | j = О 80 | k = Л 81 | l = Д 82 | m = Ь 83 | n = Т 84 | o = Ў 85 | p = З 86 | q = Й 87 | r = К 88 | s = Қ 89 | t = Е 90 | u = Г 91 | v = М 92 | w = Ц 93 | x = Ч 94 | y = Н 95 | z = Я 96 | -------------------------------------------------------------------------------- /layouts/vn: -------------------------------------------------------------------------------- 1 | [vn:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = ă 9 | 2 = â 10 | 3 = ê 11 | 4 = ô 12 | 5 = ̀ 13 | 6 = ̉ 14 | 7 = ̃ 15 | 8 = ́ 16 | 9 = ̣ 17 | ; = ; 18 | = = ₫ 19 | [ = ư 20 | \ = \ 21 | ] = ơ 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(vn_shift) 49 | 50 | [vn_shift:S] 51 | ' = " 52 | , = < 53 | - = _ 54 | . = > 55 | / = ? 56 | 1 = Ă 57 | 2 =  58 | 3 = Ê 59 | 4 = Ô 60 | 5 = % 61 | 6 = ^ 62 | 7 = & 63 | 8 = * 64 | 9 = ( 65 | ; = : 66 | = = + 67 | [ = Ư 68 | \ = | 69 | ] = Ơ 70 | a = A 71 | b = B 72 | c = C 73 | d = D 74 | e = E 75 | f = F 76 | g = G 77 | h = H 78 | i = I 79 | j = J 80 | k = K 81 | l = L 82 | m = M 83 | n = N 84 | o = O 85 | p = P 86 | q = Q 87 | r = R 88 | s = S 89 | t = T 90 | u = U 91 | v = V 92 | w = W 93 | x = X 94 | y = Y 95 | z = Z 96 | -------------------------------------------------------------------------------- /layouts/workman: -------------------------------------------------------------------------------- 1 | [workman:layout] 2 | 3 | q = q 4 | w = d 5 | e = r 6 | r = w 7 | t = b 8 | y = j 9 | u = f 10 | i = u 11 | o = p 12 | p = ; 13 | a = a 14 | s = s 15 | d = h 16 | f = t 17 | g = g 18 | h = y 19 | j = n 20 | k = e 21 | l = o 22 | ; = i 23 | ' = ' 24 | z = z 25 | x = x 26 | c = m 27 | v = c 28 | b = v 29 | n = k 30 | m = l 31 | -------------------------------------------------------------------------------- /layouts/za: -------------------------------------------------------------------------------- 1 | [za:layout] 2 | 3 | ' = ' 4 | , = , 5 | - = - 6 | . = . 7 | / = / 8 | 1 = 1 9 | 2 = 2 10 | 3 = 3 11 | 4 = 4 12 | 5 = 5 13 | 6 = 6 14 | 7 = 7 15 | 8 = 8 16 | 9 = 9 17 | ; = ; 18 | = = = 19 | [ = [ 20 | \ = \ 21 | ] = ] 22 | a = a 23 | b = b 24 | c = c 25 | d = d 26 | e = e 27 | f = f 28 | g = g 29 | h = h 30 | i = i 31 | j = j 32 | k = k 33 | l = l 34 | m = m 35 | n = n 36 | o = o 37 | p = p 38 | q = q 39 | r = r 40 | s = s 41 | t = t 42 | u = u 43 | v = v 44 | w = w 45 | x = x 46 | y = y 47 | z = z 48 | shift = layer(za_shift) 49 | altgr = layer(za_altgr) 50 | 51 | [za_shift:S] 52 | ' = " 53 | , = < 54 | - = _ 55 | . = > 56 | / = ? 57 | 1 = ! 58 | 2 = @ 59 | 3 = # 60 | 4 = $ 61 | 5 = % 62 | 6 = ^ 63 | 7 = & 64 | 8 = * 65 | 9 = ( 66 | ; = : 67 | = = + 68 | [ = { 69 | \ = | 70 | ] = } 71 | a = A 72 | b = B 73 | c = C 74 | d = D 75 | e = E 76 | f = F 77 | g = G 78 | h = H 79 | i = I 80 | j = J 81 | k = K 82 | l = L 83 | m = M 84 | n = N 85 | o = O 86 | p = P 87 | q = Q 88 | r = R 89 | s = S 90 | t = T 91 | u = U 92 | v = V 93 | w = W 94 | x = X 95 | y = Y 96 | z = Z 97 | 98 | [za_altgr:G] 99 | , = • 100 | - = \ 101 | 1 = ¹ 102 | 2 = ¥ 103 | 3 = £ 104 | 4 = $ 105 | 5 = € 106 | 7 = { 107 | 8 = [ 108 | 9 = ] 109 | a = ä 110 | b = ” 111 | c = ¢ 112 | d = ḓ 113 | e = ë 114 | f = đ 115 | g = ŋ 116 | h = ħ 117 | i = ï 118 | k = ĸ 119 | l = ḽ 120 | m = ṅ 121 | n = ṋ 122 | o = ö 123 | p = ô 124 | q = @ 125 | r = ê 126 | s = š 127 | t = ṱ 128 | u = ü 129 | v = „ 130 | w = ſ 131 | x = » 132 | y = û 133 | z = « 134 | 135 | [za_altgr+za_shift] 136 | , = × 137 | - = ¿ 138 | . = ÷ 139 | 1 = ¡ 140 | 2 = ⅛ 141 | 3 = £ 142 | 4 = $ 143 | 5 = ⅜ 144 | 6 = ⅝ 145 | 7 = ⅞ 146 | 8 = ™ 147 | 9 = ± 148 | a = Ä 149 | b = “ 150 | c = © 151 | d = Ḓ 152 | e = Ë 153 | f = ª 154 | g = Ŋ 155 | h = Ħ 156 | i = Ï 157 | k = & 158 | l = Ḽ 159 | m = Ṅ 160 | n = Ṋ 161 | o = Ö 162 | p = Ô 163 | q = Ω 164 | r = Ê 165 | s = Š 166 | t = Ṱ 167 | u = 168 | v = ‘ 169 | w = § 170 | x = > 171 | y = 172 | z = < 173 | -------------------------------------------------------------------------------- /src/check.c: -------------------------------------------------------------------------------- 1 | #include "keyd.h" 2 | 3 | static int rc = 0; 4 | 5 | static void validate(const char *path) 6 | { 7 | int ret; 8 | struct config config; 9 | 10 | keyd_log("Parsing b{%s}\n", path); 11 | 12 | ret = config_parse(&config, path); 13 | if (ret != 0) { 14 | if (ret < 0) 15 | keyd_log("\tr{FAILED} (file does not exist?)\n"); 16 | 17 | rc = -1; 18 | } 19 | } 20 | 21 | int check(int argc, char *argv[]) 22 | { 23 | int i; 24 | 25 | if (argc > 1) { 26 | for (i = 1; i < argc; i++) 27 | validate(argv[i]); 28 | } else { 29 | DIR *dh; 30 | int ret; 31 | struct dirent *ent; 32 | 33 | dh = opendir(CONFIG_DIR); 34 | if (!dh) { 35 | perror("chdir"); 36 | return -1; 37 | } 38 | 39 | while ((ent = readdir(dh))) { 40 | char path[PATH_MAX]; 41 | 42 | snprintf(path, sizeof path, "%s/%s", CONFIG_DIR, ent->d_name); 43 | 44 | size_t len = strlen(path); 45 | if (len > 5 && !strcmp(path + len - 5, ".conf")) 46 | validate(path); 47 | } 48 | closedir(dh); 49 | } 50 | 51 | if (rc == 0) 52 | keyd_log("\nNo errors found.\n"); 53 | 54 | return rc; 55 | } 56 | -------------------------------------------------------------------------------- /src/dbg.c: -------------------------------------------------------------------------------- 1 | #include "keyd.h" 2 | 3 | static size_t dbg_print_device_bits(int fd, const char *name, int type, int max, char *out, size_t out_sz) 4 | { 5 | size_t i; 6 | size_t j; 7 | size_t sz = 0; 8 | uint8_t arr[1024] = {0}; 9 | size_t n = (max+7)/8; 10 | int has_set_bits = 0; 11 | 12 | if (ioctl(fd, EVIOCGBIT(type, n), arr) == -1) { 13 | perror("ioctl"); 14 | exit(-1); 15 | } 16 | 17 | sz = snprintf(out, out_sz, "\t%s: ", name); 18 | for (i = 0; i < n; i++) 19 | for (j = 0; j < 8; j++) 20 | if ((arr[i] >> j) & 0x01) { 21 | size_t val = 8*i + j; 22 | 23 | int nw = snprintf(out + sz, out_sz - sz, "%zu ", val); 24 | assert (nw > 0 && ((sz + nw) < out_sz)); 25 | sz += nw; 26 | 27 | has_set_bits = 1; 28 | } 29 | 30 | if (!has_set_bits) { 31 | out[0] = 0; 32 | return 0; 33 | } 34 | 35 | sz += snprintf(out + sz, out_sz - sz, "\n"); 36 | 37 | return sz; 38 | } 39 | 40 | void dbg_print_evdev_details(const char *path) 41 | { 42 | size_t sz = 0; 43 | char out[4096] = {0}; 44 | char name[128]; 45 | 46 | if (log_level < 2) 47 | return; 48 | 49 | int fd = open(path, O_RDONLY); 50 | if (fd < 0) { 51 | dbg2("Failed to open %s", path); 52 | return; 53 | } 54 | 55 | if (ioctl(fd, EVIOCGNAME(sizeof(name)), name) == -1) { 56 | perror("ioctl"); 57 | return; 58 | } 59 | 60 | sz = snprintf(out, sizeof out, "(%s) (%s):\n", path, name); 61 | sz += dbg_print_device_bits(fd, "EV", 0, EV_MAX, out + sz, sizeof(out) - sz); 62 | sz += dbg_print_device_bits(fd, "EV_KEY", EV_KEY, KEY_MAX, out + sz, sizeof(out) - sz); 63 | sz += dbg_print_device_bits(fd, "EV_REL", EV_REL, REL_MAX, out + sz, sizeof(out) - sz); 64 | sz += dbg_print_device_bits(fd, "EV_ABS", EV_ABS, ABS_MAX, out + sz, sizeof(out) - sz); 65 | sz += dbg_print_device_bits(fd, "EV_MSC", EV_MSC, MSC_MAX, out + sz, sizeof(out) - sz); 66 | sz += dbg_print_device_bits(fd, "EV_SW", EV_SW, SW_MAX, out + sz, sizeof(out) - sz); 67 | sz += dbg_print_device_bits(fd, "EV_LED", EV_LED, LED_MAX, out + sz, sizeof(out) - sz); 68 | 69 | _keyd_log(2, "r{DEBUG}: %s", out); 70 | close(fd); 71 | } 72 | -------------------------------------------------------------------------------- /src/device.h: -------------------------------------------------------------------------------- 1 | /* 2 | * keyd - A key remapping daemon. 3 | * 4 | * © 2019 Raheman Vaiya (see also: LICENSE). 5 | */ 6 | #ifndef DEVICE_H 7 | #define DEVICE_H 8 | 9 | #include 10 | 11 | #define CAP_MOUSE 0x1 12 | #define CAP_MOUSE_ABS 0x2 13 | #define CAP_KEYBOARD 0x4 14 | #define CAP_KEY 0x8 // Can emit keys, but is not necessarily a keyboard 15 | 16 | #define MAX_DEVICES 64 17 | 18 | struct device { 19 | /* 20 | * A file descriptor that can be used to monitor events subsequently read with 21 | * device_read_event(). 22 | */ 23 | int fd; 24 | 25 | uint8_t grabbed; 26 | uint8_t capabilities; 27 | uint8_t is_virtual; 28 | 29 | char id[64]; 30 | char name[64]; 31 | char path[256]; 32 | 33 | /* Internal. */ 34 | uint32_t _maxx; 35 | uint32_t _maxy; 36 | uint32_t _minx; 37 | uint32_t _miny; 38 | 39 | uint32_t _pending_rel_x; 40 | uint32_t _pending_rel_y; 41 | 42 | /* Reserved for the user. */ 43 | void *data; 44 | }; 45 | 46 | struct device_event { 47 | enum { 48 | DEV_KEY, 49 | DEV_LED, 50 | 51 | DEV_MOUSE_MOVE, 52 | /* All absolute values are relative to a resolution of 1024x1024. */ 53 | DEV_MOUSE_MOVE_ABS, 54 | DEV_MOUSE_SCROLL, 55 | 56 | DEV_REMOVED, 57 | } type; 58 | 59 | uint8_t code; 60 | uint8_t pressed; 61 | 62 | int32_t x; 63 | int32_t y; 64 | }; 65 | 66 | 67 | struct device_event *device_read_event(struct device *dev); 68 | 69 | int device_scan(struct device devices[MAX_DEVICES]); 70 | int device_grab(struct device *dev); 71 | int device_ungrab(struct device *dev); 72 | 73 | int devmon_create(); 74 | int devmon_read_device(int fd, struct device *dev); 75 | void device_set_led(const struct device *dev, int led, int state); 76 | 77 | #endif 78 | -------------------------------------------------------------------------------- /src/ini.h: -------------------------------------------------------------------------------- 1 | /* 2 | * keyd - A key remapping daemon. 3 | * 4 | * © 2019 Raheman Vaiya (see also: LICENSE). 5 | */ 6 | #ifndef INI_H 7 | #define INI_H 8 | 9 | #include 10 | 11 | #define MAX_SECTIONS 32 12 | #define MAX_SECTION_ENTRIES 1024 13 | 14 | struct ini_entry { 15 | char *key; 16 | char *val; 17 | 18 | size_t lnum; // The line number in the original source file. 19 | }; 20 | 21 | struct ini_section { 22 | char name[256]; 23 | 24 | size_t nr_entries; 25 | size_t lnum; 26 | 27 | struct ini_entry entries[MAX_SECTION_ENTRIES]; 28 | }; 29 | 30 | struct ini { 31 | size_t nr_sections; 32 | 33 | struct ini_section sections[MAX_SECTIONS]; 34 | }; 35 | 36 | /* 37 | * Reads a string of the form: 38 | * 39 | * [section] 40 | * 41 | * # Comment 42 | * 43 | * key1 = val1 44 | * key2 = val2 45 | * key3 46 | * 47 | * [section2] 48 | * ... 49 | * 50 | * Stripping comments and empty lines along the way. 51 | * Each entry is a non comment, non empty line 52 | * sripped of leading whitespace. If a default 53 | * section name is supplied then entries not 54 | * listed under an explicit heading will be 55 | * returned under the named section. If 56 | * no value is specified, val is NULL in 57 | * the corresponding entry. 58 | * 59 | * The returned result is statically allocated and only 60 | * valid until the next invocation. It should not be 61 | * freed. 62 | */ 63 | 64 | struct ini *ini_parse_string(char *s, const char *default_section_name); 65 | 66 | void parse_kvp(char *s, char **key, char **value); 67 | 68 | #endif 69 | -------------------------------------------------------------------------------- /src/ipc.c: -------------------------------------------------------------------------------- 1 | /* 2 | * keyd - A key remapping daemon. 3 | * 4 | * © 2019 Raheman Vaiya (see also: LICENSE). 5 | */ 6 | 7 | #include "keyd.h" 8 | 9 | /* TODO (maybe): settle on an API and publish the protocol. */ 10 | 11 | static void chgid() 12 | { 13 | struct group *g = getgrnam("keyd"); 14 | 15 | if (!g) { 16 | fprintf(stderr, 17 | "WARNING: failed to set effective group to \"keyd\" (make sure the group exists)\n"); 18 | } else { 19 | if (setgid(g->gr_gid)) { 20 | perror("setgid"); 21 | exit(-1); 22 | } 23 | } 24 | } 25 | 26 | int ipc_connect() 27 | { 28 | int sd = socket(AF_UNIX, SOCK_STREAM, 0); 29 | struct sockaddr_un addr = {0}; 30 | 31 | if (sd < 0) { 32 | perror("socket"); 33 | exit(-1); 34 | } 35 | 36 | addr.sun_family = AF_UNIX; 37 | strncpy(addr.sun_path, SOCKET_PATH, sizeof(addr.sun_path)-1); 38 | 39 | if (connect(sd, (struct sockaddr *) &addr, sizeof addr) < 0) { 40 | fprintf(stderr, "ERROR: Failed to connect to \"" SOCKET_PATH "\", make sure the daemon is running and you have permission to access the socket.\n"); 41 | exit(-1); 42 | } 43 | 44 | return sd; 45 | } 46 | 47 | int ipc_create_server() 48 | { 49 | char lockpath[PATH_MAX]; 50 | int sd = socket(AF_UNIX, SOCK_STREAM, 0); 51 | int lfd; 52 | struct sockaddr_un addr = {0}; 53 | 54 | chgid(); 55 | 56 | if (sd < 0) { 57 | perror("socket"); 58 | exit(-1); 59 | } 60 | addr.sun_family = AF_UNIX; 61 | strncpy(addr.sun_path, SOCKET_PATH, sizeof(addr.sun_path)-1); 62 | snprintf(lockpath, sizeof lockpath, "%s.lock", SOCKET_PATH); 63 | lfd = open(lockpath, O_CREAT | O_RDONLY, 0600); 64 | 65 | if (lfd < 0) { 66 | perror("open"); 67 | exit(-1); 68 | } 69 | 70 | if (flock(lfd, LOCK_EX | LOCK_NB)) 71 | return -1; 72 | 73 | unlink(SOCKET_PATH); 74 | if (bind(sd, (struct sockaddr *) &addr, sizeof addr) < 0) { 75 | fprintf(stderr, "failed to bind to socket %s\n", SOCKET_PATH); 76 | exit(-1); 77 | } 78 | 79 | if (listen(sd, 20) < 0) { 80 | perror("listen"); 81 | exit(-1); 82 | } 83 | 84 | chmod(SOCKET_PATH, 0660); 85 | 86 | return sd; 87 | } 88 | -------------------------------------------------------------------------------- /src/log.h: -------------------------------------------------------------------------------- 1 | /* 2 | * keyd - A key remapping daemon. 3 | * 4 | * © 2019 Raheman Vaiya (see also: LICENSE). 5 | */ 6 | #ifndef KEYD_LOG_H 7 | #define KEYD_LOG_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #define keyd_log(fmt, ...) _keyd_log(0, fmt, ##__VA_ARGS__); 15 | 16 | #define dbg(fmt, ...) _keyd_log(1, "r{DEBUG:} b{%s:%d:} "fmt"\n", __FILE__, __LINE__, ##__VA_ARGS__) 17 | #define dbg2(fmt, ...) _keyd_log(2, "r{DEBUG:} b{%s:%d:} "fmt"\n", __FILE__, __LINE__, ##__VA_ARGS__) 18 | 19 | #define err(fmt, ...) snprintf(errstr, sizeof(errstr), fmt, ##__VA_ARGS__); 20 | 21 | void _keyd_log(int level, const char *fmt, ...); 22 | void _vkeyd_log(const char *fmt, va_list ap); 23 | void die(const char *fmt, ...); 24 | 25 | extern int log_level; 26 | extern int suppress_colours; 27 | extern char errstr[2048]; 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /src/macro.h: -------------------------------------------------------------------------------- 1 | #ifndef MACRO_H 2 | #define MACRO_H 3 | 4 | #include 5 | #include 6 | 7 | struct macro_entry { 8 | enum { 9 | MACRO_KEYSEQUENCE, 10 | MACRO_HOLD, 11 | MACRO_RELEASE, 12 | MACRO_UNICODE, 13 | MACRO_TIMEOUT 14 | } type; 15 | 16 | uint16_t data; 17 | }; 18 | 19 | /* 20 | * A series of key sequences optionally punctuated by 21 | * timeouts 22 | */ 23 | struct macro { 24 | struct macro_entry entries[256]; 25 | 26 | uint32_t sz; 27 | }; 28 | 29 | 30 | long macro_execute(void (*output)(void *, uint8_t, uint8_t), 31 | void *ctx, 32 | const struct macro *macro, 33 | size_t timeout); 34 | 35 | int macro_parse(char *s, struct macro *macro); 36 | #endif 37 | -------------------------------------------------------------------------------- /src/string.h: -------------------------------------------------------------------------------- 1 | /* 2 | * keyd - A key remapping daemon. 3 | * 4 | * © 2019 Raheman Vaiya (see also: LICENSE). 5 | */ 6 | #ifndef STRING_H 7 | #define STRING_H 8 | 9 | #include 10 | #include 11 | 12 | int utf8_read_char(const char *_s, uint32_t *code); 13 | int utf8_strlen(const char *s); 14 | 15 | int is_timeval(const char *s); 16 | size_t str_escape(char *s); 17 | #endif 18 | -------------------------------------------------------------------------------- /src/util.c: -------------------------------------------------------------------------------- 1 | #include "keyd.h" 2 | 3 | void xwrite(int fd, const void *buf, size_t sz) 4 | { 5 | size_t nwr = 0; 6 | ssize_t n; 7 | 8 | while(sz != nwr) { 9 | n = write(fd, buf+nwr, sz-nwr); 10 | if (n < 0) { 11 | perror("write"); 12 | exit(-1); 13 | } 14 | nwr += n; 15 | } 16 | } 17 | 18 | void xread(int fd, void *buf, size_t sz) 19 | { 20 | size_t nrd = 0; 21 | ssize_t n; 22 | 23 | while(sz != nrd) { 24 | n = read(fd, buf+nrd, sz-nrd); 25 | if (n < 0) { 26 | perror("read"); 27 | exit(-1); 28 | } 29 | nrd += n; 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /src/vkbd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * keyd - A key remapping daemon. 3 | * 4 | * © 2019 Raheman Vaiya (see also: LICENSE). 5 | */ 6 | #ifndef VIRTUAL_KEYBOARD_H 7 | #define VIRTUAL_KEYBOARD_H 8 | 9 | #include 10 | 11 | struct vkbd; 12 | 13 | struct vkbd *vkbd_init(const char *name); 14 | 15 | void vkbd_mouse_move(const struct vkbd *vkbd, int x, int y); 16 | void vkbd_mouse_move_abs(const struct vkbd *vkbd, int x, int y); 17 | void vkbd_mouse_scroll(const struct vkbd *vkbd, int x, int y); 18 | 19 | void vkbd_send_key(const struct vkbd *vkbd, uint8_t code, int state); 20 | 21 | void free_vkbd(struct vkbd *vkbd); 22 | #endif 23 | -------------------------------------------------------------------------------- /src/vkbd/stdout.c: -------------------------------------------------------------------------------- 1 | /* 2 | * keyd - A key remapping daemon. 3 | * 4 | * © 2019 Raheman Vaiya (see also: LICENSE). 5 | */ 6 | /* Build with make vkbd-stdout. */ 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "../vkbd.h" 16 | #include "../keys.h" 17 | 18 | struct vkbd {}; 19 | 20 | struct vkbd *vkbd_init(const char *name) 21 | { 22 | return NULL; 23 | } 24 | 25 | void vkbd_mouse_scroll(const struct vkbd *vkbd, int x, int y) 26 | { 27 | printf("mouse scroll: x: %d, y: %d\n", x, y); 28 | } 29 | 30 | void vkbd_mouse_move(const struct vkbd *vkbd, int x, int y) 31 | { 32 | printf("mouse movement: x: %d, y: %d\n", x, y); 33 | } 34 | 35 | void vkbd_mouse_move_abs(const struct vkbd *vkbd, int x, int y) 36 | { 37 | printf("absolute mouse movement: x: %d, y: %d\n", x, y); 38 | } 39 | 40 | void vkbd_send_key(const struct vkbd *vkbd, uint8_t code, int state) 41 | { 42 | printf("key: %s, state: %d\n", keycode_table[code].name, state); 43 | } 44 | 45 | void free_vkbd(struct vkbd *vkbd) 46 | { 47 | } 48 | -------------------------------------------------------------------------------- /src/vkbd/usb-gadget.md: -------------------------------------------------------------------------------- 1 | # USB HID gadget 2 | 3 | Linux devices with host and either USB OTG or device ports can be used as USB 4 | to USB converter boards, with the keyboard connected to the USB host port and 5 | the PC to the USB OTG or device port. 6 | 7 | Under this kind of setup, the Linux USB HID gadget driver can be used to emulate 8 | a HID device and `keyd` can be configured to translate evdev input events to 9 | HID reports. 10 | 11 | 12 | # Installation 13 | 14 | git clone https://github.com/rvaiya/keyd 15 | cd keyd 16 | make VKBD=usb-gadget && sudo make install VKBD=usb-gadget 17 | sudo systemctl enable keyd-usb-gadget && sudo systemctl start keyd-usb-gadget 18 | sudo systemctl enable keyd && sudo systemctl start keyd 19 | 20 | The device should show up as` 1d6b:0104 Linux Foundation Multifunction Composite Gadget` 21 | on the host machine. This can be observed on a Linux host by checking the output of 22 | `lsof` or the existence of `/dev/input/by-id/Tux_USB_Gadget_Keyboard`. 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/vkbd/usb-gadget.service.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=usb gadget setup 3 | Requires=systemd-modules-load.service,keyd.service 4 | Before=keyd.service 5 | After=systemd-modules-load.service 6 | 7 | 8 | [Service] 9 | Type=oneshot 10 | RemainAfterExit=yes 11 | ExecStart=/bin/bash @PREFIX@/bin/keyd-usb-gadget.sh 12 | 13 | [Install] 14 | WantedBy=keyd.service 15 | -------------------------------------------------------------------------------- /src/vkbd/usb-gadget.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | modprobe libcomposite 3 | cd /sys/kernel/config/usb_gadget || exit 4 | mkdir g1 5 | cd g1 6 | mkdir configs/c.1 7 | mkdir functions/hid.usb0 8 | echo 1 > functions/hid.usb0/protocol 9 | echo 1 > functions/hid.usb0/subclass 10 | echo 8 > functions/hid.usb0/report_length 11 | echo -ne \\x05\\x01\\x09\\x06\\xa1\\x01\\x05\\x07\\x19\\xe0\\x29\\xe7\\x15\\x00\\x25\\x01\\x75\\x01\\x95\\x08\\x81\\x02\\x95\\x01\\x75\\x08\\x81\\x03\\x95\\x05\\x75\\x01\\x05\\x08\\x19\\x01\\x29\\x05\\x91\\x02\\x95\\x01\\x75\\x03\\x91\\x03\\x95\\x06\\x75\\x08\\x15\\x00\\x25\\x65\\x05\\x07\\x19\\x00\\x29\\x65\\x81\\x00\\xc0 > functions/hid.usb0/report_desc 12 | mkdir strings/0x409 13 | mkdir configs/c.1/strings/0x409 14 | echo 0x0100 > bcdDevice 15 | echo 0x0200 > bcdUSB 16 | echo 0x00 > bDeviceClass 17 | echo 0x00 > bDeviceProtocol 18 | echo 0x00 > bDeviceSubClass 19 | echo 0x08 > bMaxPacketSize0 20 | echo 0x0104 > idProduct 21 | echo 0x1d6b > idVendor 22 | echo "0123456789" > strings/0x409/serialnumber 23 | echo "Tux" > strings/0x409/manufacturer 24 | echo "USB Gadget Keyboard" > strings/0x409/product 25 | echo "Conf 1" > configs/c.1/strings/0x409/configuration 26 | echo 0x80 > configs/c.1/bmAttributes 27 | echo 500 > configs/c.1/MaxPower 28 | ln -s functions/hid.usb0 configs/c.1 29 | ls /sys/class/udc > UDC 30 | -------------------------------------------------------------------------------- /t/altgr-modifier-guard.t: -------------------------------------------------------------------------------- 1 | rightalt down 2 | a down 3 | a up 4 | rightalt up 5 | rightalt down 6 | rightalt up 7 | rightalt down 8 | x down 9 | x up 10 | rightalt up 11 | 12 | rightalt down 13 | control down 14 | rightalt up 15 | control up 16 | a down 17 | a up 18 | rightalt down 19 | control down 20 | rightalt up 21 | control up 22 | rightalt down 23 | rightalt up 24 | rightalt down 25 | x down 26 | x up 27 | rightalt up 28 | -------------------------------------------------------------------------------- /t/chord-disambiguate.t: -------------------------------------------------------------------------------- 1 | a down 2 | b down 3 | 200ms 4 | a up 5 | b up 6 | a down 7 | b down 8 | d down 9 | 200ms 10 | a up 11 | b up 12 | d up 13 | a down 14 | b down 15 | d down 16 | 199ms 17 | a up 18 | b up 19 | d up 20 | 21 | control down 22 | control up 23 | shift down 24 | shift up 25 | a down 26 | b down 27 | d down 28 | a up 29 | b up 30 | d up 31 | -------------------------------------------------------------------------------- /t/chord-double.t: -------------------------------------------------------------------------------- 1 | a down 2 | 20ms 3 | b down 4 | 199ms 5 | a up 6 | b up 7 | j down 8 | k down 9 | 201ms 10 | j up 11 | k up 12 | 13 | a down 14 | b down 15 | a up 16 | b up 17 | c down 18 | c up 19 | -------------------------------------------------------------------------------- /t/chord-hold.t: -------------------------------------------------------------------------------- 1 | a down 2 | b down 3 | 199ms 4 | x down 5 | x up 6 | a up 7 | b up 8 | 1ms 9 | a down 10 | b down 11 | 200ms 12 | x down 13 | x up 14 | a up 15 | b up 16 | 17 | a down 18 | b down 19 | x down 20 | x up 21 | a up 22 | b up 23 | control down 24 | x down 25 | x up 26 | control up 27 | -------------------------------------------------------------------------------- /t/chord.t: -------------------------------------------------------------------------------- 1 | a down 2 | b down 3 | 150ms 4 | a up 5 | b up 6 | x down 7 | x up 8 | a down 9 | b down 10 | 200ms 11 | a up 12 | b up 13 | x down 14 | x up 15 | 16 | a down 17 | b down 18 | a up 19 | b up 20 | x down 21 | x up 22 | control down 23 | control up 24 | x down 25 | x up 26 | -------------------------------------------------------------------------------- /t/chord2.t: -------------------------------------------------------------------------------- 1 | j down 2 | 20ms 3 | k down 4 | 200ms 5 | j up 6 | k up 7 | j down 8 | 100ms 9 | k down 10 | 200ms 11 | j up 12 | k up 13 | 14 | c down 15 | c up 16 | j down 17 | k down 18 | j up 19 | k up 20 | -------------------------------------------------------------------------------- /t/chord3.t: -------------------------------------------------------------------------------- 1 | a down 2 | b down 3 | 200ms 4 | a up 5 | j down 6 | k down 7 | 200ms 8 | b up 9 | j up 10 | k up 11 | 12 | control down 13 | c down 14 | control up 15 | c up 16 | -------------------------------------------------------------------------------- /t/clear.t: -------------------------------------------------------------------------------- 1 | 4 down 2 | 4 up 3 | a down 4 | a up 5 | esc down 6 | esc up 7 | a down 8 | a up 9 | 10 | b down 11 | b up 12 | a down 13 | a up 14 | -------------------------------------------------------------------------------- /t/composite.t: -------------------------------------------------------------------------------- 1 | control down 2 | alt down 3 | h down 4 | h up 5 | control up 6 | alt up 7 | 8 | control down 9 | alt down 10 | alt up 11 | shift down 12 | control up 13 | h down 14 | h up 15 | alt down 16 | shift up 17 | control down 18 | control up 19 | alt up 20 | -------------------------------------------------------------------------------- /t/composite2.t: -------------------------------------------------------------------------------- 1 | control down 2 | shift down 3 | alt down 4 | h down 5 | h up 6 | control up 7 | shift up 8 | alt up 9 | 10 | control down 11 | shift down 12 | alt down 13 | alt up 14 | shift up 15 | control up 16 | left down 17 | left up 18 | alt down 19 | shift down 20 | control down 21 | control up 22 | shift up 23 | alt up 24 | -------------------------------------------------------------------------------- /t/composite3.t: -------------------------------------------------------------------------------- 1 | control down 2 | shift down 3 | alt down 4 | x down 5 | x up 6 | control up 7 | shift up 8 | alt up 9 | 10 | control down 11 | shift down 12 | alt down 13 | x down 14 | x up 15 | control up 16 | shift up 17 | alt up 18 | -------------------------------------------------------------------------------- /t/composite4.t: -------------------------------------------------------------------------------- 1 | control down 2 | alt down 3 | x down 4 | x up 5 | control up 6 | alt up 7 | 8 | control down 9 | alt down 10 | x down 11 | x up 12 | control up 13 | alt up 14 | -------------------------------------------------------------------------------- /t/control.t: -------------------------------------------------------------------------------- 1 | control down 2 | a down 3 | a up 4 | b down 5 | b up 6 | control up 7 | rightcontrol down 8 | a down 9 | a up 10 | rightcontrol up 11 | 12 | control down 13 | control up 14 | b down 15 | b up 16 | control down 17 | b down 18 | b up 19 | control up 20 | control down 21 | control up 22 | b down 23 | b up 24 | control down 25 | control up 26 | -------------------------------------------------------------------------------- /t/disarm.t: -------------------------------------------------------------------------------- 1 | alt down 2 | a down 3 | a up 4 | alt up 5 | 6 | alt down 7 | a down 8 | a up 9 | alt up 10 | -------------------------------------------------------------------------------- /t/disarm2.t: -------------------------------------------------------------------------------- 1 | alt down 2 | alt up 3 | 4 | alt down 5 | alt up 6 | -------------------------------------------------------------------------------- /t/disarm3.t: -------------------------------------------------------------------------------- 1 | alt down 2 | 7 down 3 | 7 up 4 | alt up 5 | 6 | alt down 7 | control down 8 | alt up 9 | control up 10 | x down 11 | x up 12 | alt down 13 | control down 14 | alt up 15 | control up 16 | -------------------------------------------------------------------------------- /t/double-tap.t: -------------------------------------------------------------------------------- 1 | up down 2 | 1ms 3 | up up 4 | up down 5 | 1ms 6 | up up 7 | up down 8 | 200ms 9 | up up 10 | up down 11 | 1ms 12 | up up 13 | 100ms 14 | x down 15 | x up 16 | 17 | a down 18 | a up 19 | c down 20 | c up 21 | b down 22 | b up 23 | x down 24 | x up 25 | -------------------------------------------------------------------------------- /t/layer.t: -------------------------------------------------------------------------------- 1 | 3 down 2 | 2 down 3 | b down 4 | b up 5 | 2 up 6 | 3 up 7 | 8 | control down 9 | shift down 10 | shift up 11 | a down 12 | a up 13 | shift down 14 | shift up 15 | control up 16 | -------------------------------------------------------------------------------- /t/layer1.t: -------------------------------------------------------------------------------- 1 | capslock down 2 | capslock up 3 | a down 4 | a up 5 | 6 | control down 7 | control up 8 | a down 9 | a up 10 | -------------------------------------------------------------------------------- /t/layer2.t: -------------------------------------------------------------------------------- 1 | capslock down 2 | j down 3 | j up 4 | capslock up 5 | 6 | control down 7 | control up 8 | k down 9 | k up 10 | control down 11 | control up 12 | -------------------------------------------------------------------------------- /t/layer3.t: -------------------------------------------------------------------------------- 1 | capslock down 2 | i down 3 | i up 4 | capslock up 5 | 6 | control down 7 | i down 8 | i up 9 | control up 10 | -------------------------------------------------------------------------------- /t/layer4.t: -------------------------------------------------------------------------------- 1 | s down 2 | meta down 3 | i down 4 | i up 5 | meta up 6 | s up 7 | 8 | shift down 9 | meta down 10 | i down 11 | i up 12 | meta up 13 | shift up 14 | -------------------------------------------------------------------------------- /t/layerm.t: -------------------------------------------------------------------------------- 1 | p down 2 | x down 3 | x up 4 | x down 5 | x up 6 | p up 7 | x down 8 | x up 9 | 10 | o down 11 | o up 12 | n down 13 | n up 14 | shift down 15 | x down 16 | x up 17 | x down 18 | x up 19 | shift up 20 | x down 21 | x up 22 | -------------------------------------------------------------------------------- /t/layout-mods.t: -------------------------------------------------------------------------------- 1 | 5 down 2 | a down 3 | b down 4 | b up 5 | a up 6 | 5 up 7 | 8 | [ down 9 | [ up 10 | shift down 11 | [ down 12 | [ up 13 | shift up 14 | -------------------------------------------------------------------------------- /t/layout-mods2.t: -------------------------------------------------------------------------------- 1 | 5 down 2 | b down 3 | a down 4 | b up 5 | a up 6 | 5 up 7 | 8 | shift down 9 | [ down 10 | [ up 11 | shift up 12 | [ down 13 | [ up 14 | -------------------------------------------------------------------------------- /t/layout-seq.t: -------------------------------------------------------------------------------- 1 | 9 down 2 | 9 up 3 | 4 | shift down 5 | meta down 6 | control down 7 | x down 8 | x up 9 | shift up 10 | meta up 11 | control up 12 | -------------------------------------------------------------------------------- /t/layout.t: -------------------------------------------------------------------------------- 1 | - down 2 | - up 3 | x down 4 | x up 5 | - down 6 | - up 7 | alt down 8 | 9 down 9 | 9 up 10 | alt up 11 | x down 12 | x up 13 | 14 | o down 15 | o up 16 | alt down 17 | shift down 18 | meta down 19 | control down 20 | x down 21 | x up 22 | shift up 23 | meta up 24 | control up 25 | alt up 26 | x down 27 | x up 28 | -------------------------------------------------------------------------------- /t/layout2.t: -------------------------------------------------------------------------------- 1 | - down 2 | - up 3 | x down 4 | x up 5 | control down 6 | x down 7 | x up 8 | control up 9 | - down 10 | - up 11 | 12 | o down 13 | o up 14 | control down 15 | o down 16 | o up 17 | control up 18 | -------------------------------------------------------------------------------- /t/macro-disarm.t: -------------------------------------------------------------------------------- 1 | alt down 2 | m down 3 | m up 4 | alt up 5 | 6 | alt down 7 | control down 8 | alt up 9 | control up 10 | control down 11 | x down 12 | x up 13 | control up 14 | m down 15 | m up 16 | alt down 17 | control down 18 | alt up 19 | control up 20 | -------------------------------------------------------------------------------- /t/macro-hold-1.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | b down 3 | b up 4 | 6 up 5 | 6 | control down 7 | control up 8 | control down 9 | n down 10 | control up 11 | n up 12 | control down 13 | control up 14 | -------------------------------------------------------------------------------- /t/macro-hold-2.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | c down 3 | c up 4 | 6 up 5 | 6 | control down 7 | control up 8 | control down 9 | control up 10 | n down 11 | n up 12 | control down 13 | control up 14 | -------------------------------------------------------------------------------- /t/macro-hold.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | e down 3 | e up 4 | 6 up 5 | 6 | control down 7 | control up 8 | control down 9 | control up 10 | o down 11 | n down 12 | o up 13 | n up 14 | control down 15 | 1 down 16 | control up 17 | 1 up 18 | control down 19 | control up 20 | -------------------------------------------------------------------------------- /t/macro-nested.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | m down 3 | m up 4 | 6 up 5 | 6 | control down 7 | control up 8 | m down 9 | m up 10 | a down 11 | a up 12 | c down 13 | c up 14 | control down 15 | control up 16 | -------------------------------------------------------------------------------- /t/macro-unicode-2.t: -------------------------------------------------------------------------------- 1 | 3 down 2 | \ down 3 | \ up 4 | 3 up 5 | 6 | control down 7 | control up 8 | 1 down 9 | 1 up 10 | cancel down 11 | cancel up 12 | o down 13 | o up 14 | y down 15 | y up 16 | 6 down 17 | 6 up 18 | 2 down 19 | 2 up 20 | control down 21 | control up 22 | -------------------------------------------------------------------------------- /t/macro-unicode.t: -------------------------------------------------------------------------------- 1 | \ down 2 | \ up 3 | 4 | cancel down 5 | cancel up 6 | o down 7 | o up 8 | y down 9 | y up 10 | 6 down 11 | 6 up 12 | -------------------------------------------------------------------------------- /t/macro.t: -------------------------------------------------------------------------------- 1 | m down 2 | m up 3 | 4 | control down 5 | h down 6 | h up 7 | control up 8 | o down 9 | o up 10 | n down 11 | n up 12 | e down 13 | e up 14 | -------------------------------------------------------------------------------- /t/meta.t: -------------------------------------------------------------------------------- 1 | meta down 2 | a down 3 | a up 4 | meta up 5 | rightmeta down 6 | a down 7 | a up 8 | rightmeta up 9 | 10 | meta down 11 | control down 12 | meta up 13 | control up 14 | b down 15 | b up 16 | meta down 17 | control down 18 | meta up 19 | control up 20 | meta down 21 | control down 22 | meta up 23 | control up 24 | b down 25 | b up 26 | meta down 27 | control down 28 | meta up 29 | control up 30 | -------------------------------------------------------------------------------- /t/mod.t: -------------------------------------------------------------------------------- 1 | capslock down 2 | a down 3 | b down 4 | capslock up 5 | a up 6 | b up 7 | 8 | control down 9 | a down 10 | b down 11 | control up 12 | a up 13 | b up 14 | -------------------------------------------------------------------------------- /t/mod2.t: -------------------------------------------------------------------------------- 1 | capslock down 2 | a down 3 | capslock up 4 | b down 5 | a up 6 | b up 7 | 8 | control down 9 | a down 10 | control up 11 | b down 12 | a up 13 | b up 14 | -------------------------------------------------------------------------------- /t/mod3.t: -------------------------------------------------------------------------------- 1 | capslock down 2 | a down 3 | b down 4 | a up 5 | b up 6 | capslock up 7 | 8 | control down 9 | a down 10 | b down 11 | a up 12 | b up 13 | control up 14 | -------------------------------------------------------------------------------- /t/oneshot+overload.t: -------------------------------------------------------------------------------- 1 | c down 2 | c up 3 | 6 down 4 | 6 up 5 | 6 | control down 7 | esc down 8 | esc up 9 | control up 10 | -------------------------------------------------------------------------------- /t/oneshot-single-key.t: -------------------------------------------------------------------------------- 1 | 2 down 2 | 2 up 3 | u down 4 | i down 5 | u up 6 | i up 7 | 8 | shift down 9 | u down 10 | shift up 11 | i down 12 | u up 13 | i up 14 | -------------------------------------------------------------------------------- /t/oneshot.t: -------------------------------------------------------------------------------- 1 | c down 2 | c up 3 | b down 4 | b up 5 | 6 | control down 7 | b down 8 | b up 9 | control up 10 | -------------------------------------------------------------------------------- /t/oneshot10.t: -------------------------------------------------------------------------------- 1 | 2 down 2 | 2 up 3 | x down 4 | x up 5 | x down 6 | x up 7 | 8 | shift down 9 | shift up 10 | o down 11 | o up 12 | n down 13 | n up 14 | x down 15 | x up 16 | -------------------------------------------------------------------------------- /t/oneshot11.t: -------------------------------------------------------------------------------- 1 | l down 2 | o down 3 | o up 4 | l up 5 | j down 6 | j up 7 | a down 8 | a up 9 | 10 | control down 11 | j down 12 | j up 13 | control up 14 | a down 15 | a up 16 | -------------------------------------------------------------------------------- /t/oneshot12.t: -------------------------------------------------------------------------------- 1 | 2 down 2 | 2 up 3 | x down 4 | x up 5 | 2 down 6 | a down 7 | a up 8 | 2 up 9 | x down 10 | x up 11 | 12 | shift down 13 | shift up 14 | o down 15 | o up 16 | n down 17 | n up 18 | shift down 19 | a down 20 | a up 21 | shift up 22 | x down 23 | x up 24 | -------------------------------------------------------------------------------- /t/oneshot14.t: -------------------------------------------------------------------------------- 1 | 2 down 2 | w down 3 | 2 up 4 | w up 5 | b down 6 | b up 7 | b down 8 | b up 9 | 10 | shift down 11 | shift up 12 | a down 13 | a up 14 | b down 15 | b up 16 | -------------------------------------------------------------------------------- /t/oneshot2.t: -------------------------------------------------------------------------------- 1 | 2 down 2 | a down 3 | a up 4 | 2 up 5 | 6 | shift down 7 | a down 8 | a up 9 | shift up 10 | -------------------------------------------------------------------------------- /t/oneshot3.t: -------------------------------------------------------------------------------- 1 | c down 2 | 2 down 3 | b down 4 | b up 5 | 2 up 6 | c up 7 | 8 | control down 9 | shift down 10 | shift up 11 | a down 12 | a up 13 | shift down 14 | shift up 15 | control up 16 | -------------------------------------------------------------------------------- /t/oneshot4.t: -------------------------------------------------------------------------------- 1 | c down 2 | 2 down 3 | i down 4 | i up 5 | 2 up 6 | c up 7 | 8 | control down 9 | shift down 10 | i down 11 | i up 12 | shift up 13 | control up 14 | -------------------------------------------------------------------------------- /t/oneshot5.t: -------------------------------------------------------------------------------- 1 | 2 down 2 | c down 3 | 2 up 4 | c up 5 | i down 6 | i up 7 | 8 | shift down 9 | control down 10 | i down 11 | i up 12 | shift up 13 | control up 14 | -------------------------------------------------------------------------------- /t/oneshot6.t: -------------------------------------------------------------------------------- 1 | 2 down 2 | 2 up 3 | c down 4 | c up 5 | i down 6 | i up 7 | 8 | shift down 9 | control down 10 | i down 11 | i up 12 | shift up 13 | control up 14 | -------------------------------------------------------------------------------- /t/oneshot9.t: -------------------------------------------------------------------------------- 1 | c down 2 | c up 3 | i down 4 | i up 5 | 6 | control down 7 | i down 8 | i up 9 | control up 10 | -------------------------------------------------------------------------------- /t/oneshotm.t: -------------------------------------------------------------------------------- 1 | e down 2 | e up 3 | x down 4 | x up 5 | x down 6 | x up 7 | 8 | o down 9 | o up 10 | n down 11 | n up 12 | shift down 13 | x down 14 | x up 15 | shift up 16 | x down 17 | x up 18 | -------------------------------------------------------------------------------- /t/oneshotn.t: -------------------------------------------------------------------------------- 1 | c down 2 | c up 3 | a down 4 | a up 5 | 6 | control down 7 | control up 8 | b down 9 | b up 10 | -------------------------------------------------------------------------------- /t/oneshotn3.t: -------------------------------------------------------------------------------- 1 | c down 2 | 2 down 3 | 2 up 4 | c up 5 | i down 6 | i up 7 | 8 | control down 9 | shift down 10 | i down 11 | i up 12 | shift up 13 | control up 14 | -------------------------------------------------------------------------------- /t/overload-expire.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | 5ms 3 | 6 up 4 | x down 5 | x up 6 | 6 down 7 | 4ms 8 | 6 up 9 | 10 | control down 11 | control up 12 | x down 13 | x up 14 | control down 15 | control up 16 | esc down 17 | esc up 18 | -------------------------------------------------------------------------------- /t/overload-expire2.t: -------------------------------------------------------------------------------- 1 | o down 2 | 4ms 3 | o up 4 | o down 5 | 6ms 6 | o up 7 | 8 | a down 9 | a up 10 | a down 11 | a up 12 | -------------------------------------------------------------------------------- /t/overload-nested.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | o down 3 | a down 4 | a up 5 | o up 6 | 6 up 7 | 8 | control down 9 | meta down 10 | a down 11 | a up 12 | meta up 13 | control up 14 | -------------------------------------------------------------------------------- /t/overload-nested2.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | o down 3 | o up 4 | 6 up 5 | 6 | control down 7 | meta down 8 | meta up 9 | control up 10 | \ down 11 | \ up 12 | control down 13 | control up 14 | -------------------------------------------------------------------------------- /t/overload-oneshot.t: -------------------------------------------------------------------------------- 1 | control down 2 | 7 down 3 | 7 up 4 | control up 5 | x down 6 | x up 7 | 8 | control down 9 | meta down 10 | meta up 11 | x down 12 | x up 13 | control up 14 | -------------------------------------------------------------------------------- /t/overload-same-key.t: -------------------------------------------------------------------------------- 1 | z down 2 | / down 3 | / up 4 | z up 5 | 6 | control down 7 | z down 8 | z up 9 | control up 10 | -------------------------------------------------------------------------------- /t/overload-swap.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | x down 3 | x up 4 | a down 5 | a up 6 | 6 up 7 | 6 down 8 | x down 9 | a down 10 | a up 11 | x up 12 | 6 up 13 | 14 | control down 15 | meta down 16 | meta up 17 | shift down 18 | control up 19 | a down 20 | a up 21 | shift up 22 | control down 23 | meta down 24 | a down 25 | a up 26 | meta up 27 | control up 28 | -------------------------------------------------------------------------------- /t/overload.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | 6 up 3 | 4 | control down 5 | control up 6 | esc down 7 | esc up 8 | -------------------------------------------------------------------------------- /t/overload1.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | a down 3 | a up 4 | 6 up 5 | 6 | control down 7 | a down 8 | a up 9 | control up 10 | -------------------------------------------------------------------------------- /t/overload2.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | a down 3 | 6 up 4 | a up 5 | 6 | control down 7 | a down 8 | control up 9 | a up 10 | -------------------------------------------------------------------------------- /t/overload3.t: -------------------------------------------------------------------------------- 1 | j down 2 | 6 down 3 | j up 4 | 6 up 5 | 6 | j down 7 | control down 8 | j up 9 | control up 10 | esc down 11 | esc up 12 | -------------------------------------------------------------------------------- /t/overload4.t: -------------------------------------------------------------------------------- 1 | control down 2 | 6 down 3 | 6 up 4 | control up 5 | 6 | control down 7 | esc down 8 | esc up 9 | control up 10 | -------------------------------------------------------------------------------- /t/overload5.t: -------------------------------------------------------------------------------- 1 | 7 down 2 | 7 up 3 | x down 4 | x up 5 | 7 down 6 | x down 7 | x up 8 | 7 up 9 | 10 | meta down 11 | control down 12 | meta up 13 | control up 14 | control down 15 | x down 16 | x up 17 | control up 18 | meta down 19 | x down 20 | x up 21 | meta up 22 | -------------------------------------------------------------------------------- /t/overload_2-2.t: -------------------------------------------------------------------------------- 1 | o down 2 | ; down 3 | 11ms 4 | o up 5 | ; up 6 | 7 | control down 8 | control up 9 | shift down 10 | shift up 11 | -------------------------------------------------------------------------------- /t/overload_2.t: -------------------------------------------------------------------------------- 1 | o down 2 | o up 3 | o down 4 | 9ms 5 | o up 6 | o down 7 | 11ms 8 | o up 9 | o down 10 | x down 11 | x up 12 | o up 13 | o down 14 | x down 15 | o up 16 | x up 17 | 18 | a down 19 | a up 20 | a down 21 | a up 22 | control down 23 | control up 24 | a down 25 | x down 26 | x up 27 | a up 28 | a down 29 | x down 30 | a up 31 | x up 32 | -------------------------------------------------------------------------------- /t/overload_3.t: -------------------------------------------------------------------------------- 1 | ' down 2 | x down 3 | x up 4 | ' up 5 | ' down 6 | x down 7 | ' up 8 | x up 9 | ' down 10 | x down 11 | 11ms 12 | ' up 13 | x up 14 | 15 | control down 16 | x down 17 | x up 18 | control up 19 | ' down 20 | x down 21 | ' up 22 | x up 23 | control down 24 | x down 25 | control up 26 | x up 27 | -------------------------------------------------------------------------------- /t/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # TODO: make this more robust 4 | 5 | if [ `whoami` != "root" ]; then 6 | echo "Must be run as root, restarting (sudo $0)" 7 | sudo "$0" "$@" 8 | exit $? 9 | fi 10 | 11 | pgrep keyd && { echo "Stop keyd before running tests"; exit -1; } 12 | 13 | tmpdir=$(mktemp -d) 14 | 15 | cleanup() { 16 | rm -rf "$tmpdir" 17 | kill $pid 18 | 19 | trap - EXIT 20 | exit 21 | } 22 | 23 | trap cleanup INT 24 | 25 | cd "$(dirname "$0")" 26 | cp test.conf "$tmpdir" 27 | 28 | (cd ..;make CONFIG_DIR="$tmpdir") || exit -1 29 | ../bin/keyd > test.log 2>&1 & 30 | 31 | pid=$! 32 | 33 | sleep .7s 34 | if [ $# -ne 0 ]; then 35 | test_files="$(echo "$@"|sed -e 's/ /.t /g').t" 36 | ./runner.py -v $test_files 37 | cleanup 38 | fi 39 | 40 | ./runner.py -ev *.t 41 | cleanup 42 | -------------------------------------------------------------------------------- /t/swap-oneshot.t: -------------------------------------------------------------------------------- 1 | 1 down 2 | 2 down 3 | 300ms 4 | 1 up 5 | 2 up 6 | a down 7 | a up 8 | 9 | b down 10 | b up 11 | -------------------------------------------------------------------------------- /t/swap-toggle.t: -------------------------------------------------------------------------------- 1 | 4 down 2 | 4 up 3 | s down 4 | s up 5 | s down 6 | s up 7 | x down 8 | x up 9 | s down 10 | s up 11 | 12 | a down 13 | a up 14 | shift down 15 | shift up 16 | -------------------------------------------------------------------------------- /t/swap.t: -------------------------------------------------------------------------------- 1 | alt down 2 | ` down 3 | ` up 4 | tab down 5 | tab up 6 | tab down 7 | tab up 8 | a down 9 | a up 10 | alt up 11 | 12 | alt down 13 | control down 14 | alt up 15 | control up 16 | shift down 17 | x down 18 | x up 19 | shift up 20 | shift down 21 | x down 22 | x up 23 | shift up 24 | b down 25 | b up 26 | -------------------------------------------------------------------------------- /t/swap2.t: -------------------------------------------------------------------------------- 1 | alt down 2 | ` down 3 | ` up 4 | ` down 5 | ` up 6 | tab down 7 | tab up 8 | tab down 9 | tab up 10 | a down 11 | a up 12 | alt up 13 | 14 | alt down 15 | control down 16 | alt up 17 | control up 18 | 9 down 19 | 9 up 20 | shift down 21 | x down 22 | x up 23 | shift up 24 | shift down 25 | x down 26 | x up 27 | shift up 28 | b down 29 | b up 30 | -------------------------------------------------------------------------------- /t/swap3.t: -------------------------------------------------------------------------------- 1 | c down 2 | alt down 3 | ` down 4 | ` up 5 | tab down 6 | tab up 7 | tab down 8 | tab up 9 | c up 10 | a down 11 | a up 12 | x down 13 | x up 14 | alt up 15 | c up 16 | 17 | control down 18 | alt down 19 | alt up 20 | shift down 21 | x down 22 | x up 23 | shift up 24 | shift down 25 | x down 26 | x up 27 | shift up 28 | control up 29 | b down 30 | b up 31 | x down 32 | x up 33 | -------------------------------------------------------------------------------- /t/swap4.t: -------------------------------------------------------------------------------- 1 | alt down 2 | 1 down 3 | 1 up 4 | tab down 5 | tab up 6 | tab down 7 | tab up 8 | a down 9 | a up 10 | x down 11 | x up 12 | alt up 13 | 14 | alt down 15 | control down 16 | alt up 17 | control up 18 | tab down 19 | tab up 20 | shift down 21 | x down 22 | x up 23 | shift up 24 | shift down 25 | x down 26 | x up 27 | shift up 28 | b down 29 | b up 30 | x down 31 | x up 32 | -------------------------------------------------------------------------------- /t/swap5.t: -------------------------------------------------------------------------------- 1 | meta down 2 | alt down 3 | 2 down 4 | 2 up 5 | x down 6 | x up 7 | alt up 8 | meta up 9 | 10 | meta down 11 | alt down 12 | control down 13 | alt up 14 | control up 15 | control down 16 | tab down 17 | tab up 18 | x down 19 | x up 20 | control up 21 | meta up 22 | -------------------------------------------------------------------------------- /t/swap6.t: -------------------------------------------------------------------------------- 1 | 6 down 2 | s down 3 | s up 4 | a down 5 | a up 6 | 6 up 7 | 8 | control down 9 | control up 10 | b down 11 | b up 12 | -------------------------------------------------------------------------------- /t/swap8.t: -------------------------------------------------------------------------------- 1 | c down 2 | alt down 3 | ` down 4 | ` up 5 | tab down 6 | tab up 7 | tab down 8 | tab up 9 | c up 10 | a down 11 | a up 12 | x down 13 | x up 14 | alt up 15 | c up 16 | 17 | control down 18 | alt down 19 | alt up 20 | shift down 21 | x down 22 | x up 23 | shift up 24 | shift down 25 | x down 26 | x up 27 | shift up 28 | control up 29 | b down 30 | b up 31 | x down 32 | x up 33 | -------------------------------------------------------------------------------- /t/swap9.t: -------------------------------------------------------------------------------- 1 | alt down 2 | s down 3 | s up 4 | a down 5 | a up 6 | alt up 7 | 8 | alt down 9 | control down 10 | alt up 11 | control up 12 | meta down 13 | a down 14 | a up 15 | b down 16 | b up 17 | meta up 18 | -------------------------------------------------------------------------------- /t/timeout-nested-1.t: -------------------------------------------------------------------------------- 1 | left down 2 | 99ms 3 | left up 4 | left down 5 | 299ms 6 | left up 7 | left down 8 | 300ms 9 | left up 10 | x down 11 | x up 12 | 13 | a down 14 | a up 15 | b down 16 | b up 17 | c down 18 | c up 19 | x down 20 | x up 21 | -------------------------------------------------------------------------------- /t/timeout-nested-2.t: -------------------------------------------------------------------------------- 1 | right down 2 | 200ms 3 | right up 4 | right down 5 | 199ms 6 | right up 7 | 99ms 8 | x down 9 | x up 10 | right down 11 | 200ms 12 | right up 13 | right down 14 | 199ms 15 | right up 16 | 100ms 17 | x down 18 | x up 19 | 20 | c down 21 | c up 22 | a down 23 | a up 24 | x down 25 | x up 26 | c down 27 | c up 28 | b down 29 | b up 30 | x down 31 | x up 32 | -------------------------------------------------------------------------------- /t/timeout-overloadt.t: -------------------------------------------------------------------------------- 1 | delete down 2 | 100ms 3 | delete up 4 | delete down 5 | 99ms 6 | delete up 7 | delete down 8 | 99ms 9 | delete up 10 | 100ms 11 | x down 12 | x up 13 | 14 | leftcontrol down 15 | leftcontrol up 16 | a down 17 | a up 18 | b down 19 | b up 20 | x down 21 | x up 22 | -------------------------------------------------------------------------------- /t/timeout1.t: -------------------------------------------------------------------------------- 1 | = down 2 | 299ms 3 | = up 4 | = down 5 | 301ms 6 | = up 7 | = down 8 | 100ms 9 | x down 10 | 200ms 11 | = up 12 | x up 13 | = down 14 | 300ms 15 | x down 16 | = up 17 | x up 18 | 19 | a down 20 | a up 21 | b down 22 | b up 23 | a down 24 | x down 25 | a up 26 | x up 27 | b down 28 | x down 29 | b up 30 | x up 31 | -------------------------------------------------------------------------------- /t/timeout2.t: -------------------------------------------------------------------------------- 1 | 8 down 2 | x down 3 | x up 4 | 8 up 5 | 8 down 6 | 1ms 7 | 8 up 8 | 8 down 9 | 2ms 10 | 8 up 11 | 12 | control down 13 | x down 14 | x up 15 | control up 16 | control down 17 | control up 18 | a down 19 | a up 20 | b down 21 | b up 22 | -------------------------------------------------------------------------------- /t/timeout3.t: -------------------------------------------------------------------------------- 1 | = down 2 | = up 3 | 299ms 4 | x down 5 | x up 6 | = down 7 | = up 8 | 300ms 9 | x down 10 | x up 11 | 12 | a down 13 | a up 14 | x down 15 | x up 16 | b down 17 | b up 18 | x down 19 | x up 20 | -------------------------------------------------------------------------------- /t/toggle-2.t: -------------------------------------------------------------------------------- 1 | 2 down 2 | 2 up 3 | t down 4 | t up 5 | b down 6 | b up 7 | b down 8 | b up 9 | t down 10 | t up 11 | b down 12 | b up 13 | 14 | shift down 15 | shift up 16 | a down 17 | a up 18 | shift down 19 | shift up 20 | a down 21 | a up 22 | shift down 23 | shift up 24 | b down 25 | b up 26 | -------------------------------------------------------------------------------- /t/toggle.t: -------------------------------------------------------------------------------- 1 | 4 down 2 | 4 up 3 | a down 4 | a up 5 | a down 6 | a up 7 | b down 8 | b up 9 | 10 | b down 11 | b up 12 | b down 13 | b up 14 | -------------------------------------------------------------------------------- /t/toggle2.t: -------------------------------------------------------------------------------- 1 | [ down 2 | [ up 3 | k down 4 | k up 5 | [ down 6 | [ up 7 | 8 | o down 9 | o up 10 | n down 11 | n up 12 | e down 13 | e up 14 | control down 15 | k down 16 | k up 17 | o down 18 | o up 19 | n down 20 | n up 21 | e down 22 | e up 23 | control up 24 | --------------------------------------------------------------------------------