Added proper keyboard remapping.
This commit is contained in:
parent
8952696c5f
commit
faaffd5955
280 changed files with 98603 additions and 9 deletions
2
cros-keyboard-map/.gitignore
vendored
Normal file
2
cros-keyboard-map/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
cros.conf
|
||||
pkg.log
|
28
cros-keyboard-map/LICENSE
Normal file
28
cros-keyboard-map/LICENSE
Normal file
|
@ -0,0 +1,28 @@
|
|||
BSD 3-Clause License
|
||||
|
||||
Copyright (c) 2023, WeirdTreeThing
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
18
cros-keyboard-map/README.md
Normal file
18
cros-keyboard-map/README.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
<h1 align="center">Utility to generate keyd configurations for use on Chromebooks</h1>
|
||||
|
||||
## List of supported distributions
|
||||
- Alpine
|
||||
- Arch Linux
|
||||
- Chimera Linux
|
||||
- Debian
|
||||
- Fedora
|
||||
- openSUSE
|
||||
- Ubuntu
|
||||
- Void Linux
|
||||
|
||||
### Instructions
|
||||
1. git clone https://github.com/WeirdTreeThing/cros-keyboard-map
|
||||
2. cd cros-keyboard-map
|
||||
3. ./install.sh
|
||||
|
||||
Thanks to rvaiya for creating [keyd](https://github.com/rvaiya/keyd).
|
3
cros-keyboard-map/configs/61-pixel-keyboard.hwdb
Normal file
3
cros-keyboard-map/configs/61-pixel-keyboard.hwdb
Normal file
|
@ -0,0 +1,3 @@
|
|||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGoogle:pn*:pvr*
|
||||
KEYBOARD_KEY_d8=leftmeta
|
||||
|
44
cros-keyboard-map/configs/cros-pixel.conf
Normal file
44
cros-keyboard-map/configs/cros-pixel.conf
Normal file
|
@ -0,0 +1,44 @@
|
|||
[ids]
|
||||
# Pixelbook and Pixelbook Go use AT Keyboard (0001:0001)
|
||||
# Nocturne uses Google hammer (18d1:5030)
|
||||
0001:0001
|
||||
18d1:5030
|
||||
|
||||
[main]
|
||||
f1 = back
|
||||
f2 = refresh
|
||||
f3 = f11
|
||||
f4 = scale
|
||||
f5 = brightnessdown
|
||||
f6 = brightnessup
|
||||
f7 = playpause
|
||||
f8 = mute
|
||||
f9 = volumedown
|
||||
f10 = volumeup
|
||||
f13 = f13
|
||||
|
||||
[meta]
|
||||
f1 = f1
|
||||
f2 = f2
|
||||
f3 = f3
|
||||
f4 = f4
|
||||
f5 = f5
|
||||
f6 = f6
|
||||
f7 = f7
|
||||
f8 = f8
|
||||
f9 = f9
|
||||
f10 = f10
|
||||
f13 = f13
|
||||
|
||||
|
||||
[alt]
|
||||
backspace = delete
|
||||
f5 = kbdillumdown
|
||||
f6 = kbdillumup
|
||||
|
||||
[control]
|
||||
f5 = print
|
||||
|
||||
|
||||
[control+alt]
|
||||
backspace = C-A-delete
|
39
cros-keyboard-map/configs/cros-sarien.conf
Normal file
39
cros-keyboard-map/configs/cros-sarien.conf
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Config for Sarien and its variant, Arcada
|
||||
[ids]
|
||||
# AT keyboard is device 0001:0001
|
||||
0001:0001
|
||||
|
||||
[main]
|
||||
back = back
|
||||
refresh = refresh
|
||||
zoom = f11
|
||||
scale = scale
|
||||
print = print
|
||||
camera = brightnessdown
|
||||
prog1 = brightnessup
|
||||
mute = mute
|
||||
volumedown = volumedown
|
||||
volumeup = volumeup
|
||||
sleep = coffee
|
||||
|
||||
[meta]
|
||||
back = f1
|
||||
refresh = f2
|
||||
zoom = f3
|
||||
scale = f4
|
||||
camera = f5
|
||||
prog1 = f6
|
||||
mute = f7
|
||||
volumedown = f8
|
||||
volumeup = f9
|
||||
switchvideomode = f12
|
||||
|
||||
|
||||
[alt]
|
||||
backspace = delete
|
||||
meta = capslock
|
||||
camera = kbdillumdown
|
||||
prog1 = kbdillumup
|
||||
|
||||
[control+alt]
|
||||
backspace = C-A-delete
|
186
cros-keyboard-map/cros-keyboard-map.py
Normal file
186
cros-keyboard-map/cros-keyboard-map.py
Normal file
|
@ -0,0 +1,186 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import platform
|
||||
|
||||
device_ids = {
|
||||
"k:0000:0000", # cros_ec keyboard
|
||||
"k:0001:0001", # AT keyboard
|
||||
"k:18d1:503c", # Google Inc. Hammer
|
||||
"k:18d1:5050", # Google Inc. Hammer
|
||||
"k:18d1:504c", # Google Inc. Hammer
|
||||
"k:18d1:5052", # Google Inc. Hammer
|
||||
"k:18d1:5057", # Google Inc. Hammer
|
||||
"k:18d1:505b", # Google Inc. Hammer
|
||||
"k:18d1:5030", # Google Inc. Hammer
|
||||
"k:18d1:503d", # Google Inc. Hammer
|
||||
"k:18d1:5044", # Google Inc. Hammer
|
||||
"k:18d1:5061", # Google Inc. Hammer
|
||||
"k:18d1:502b", # Google Inc. Hammer
|
||||
}
|
||||
|
||||
vivaldi_keys = {
|
||||
"x86_64": {
|
||||
"90": "previoussong",
|
||||
"91": "zoom",
|
||||
"92": "scale",
|
||||
"93": "sysrq",
|
||||
"94": "brightnessdown",
|
||||
"95": "brightnessup",
|
||||
"97": "kbdillumdown",
|
||||
"98": "kbdillumup",
|
||||
"99": "nextsong",
|
||||
"9A": "playpause",
|
||||
"9B": "micmute",
|
||||
"9E": "kbdillumtoggle",
|
||||
"A0": "mute",
|
||||
"AE": "volumedown",
|
||||
"B0": "volumeup",
|
||||
"E9": "forward",
|
||||
"EA": "back",
|
||||
"E7": "refresh",
|
||||
},
|
||||
"arm": {
|
||||
"158": "back",
|
||||
"159": "forward",
|
||||
"173": "refresh",
|
||||
"372": "zoom",
|
||||
"120": "scale",
|
||||
"224": "brightnessdown",
|
||||
"225": "brightnessup",
|
||||
"113": "mute",
|
||||
"114": "volumedown",
|
||||
"115": "volumeup",
|
||||
"99" : "sysrq",
|
||||
}
|
||||
}
|
||||
|
||||
def get_arch():
|
||||
return platform.uname().machine
|
||||
|
||||
def get_ids_string(device_ids):
|
||||
return "\n".join(device_ids)
|
||||
|
||||
def get_dt_layout():
|
||||
keys = []
|
||||
keycodes = []
|
||||
|
||||
fdt = libfdt.Fdt(open("/sys/firmware/fdt", "rb").read())
|
||||
currentnode = fdt.first_subnode(0)
|
||||
|
||||
while True:
|
||||
try:
|
||||
if fdt.get_name(currentnode) == "keyboard-controller":
|
||||
prop = fdt.getprop(currentnode, "linux,keymap")
|
||||
keys = prop.as_uint32_list()
|
||||
currentnode = fdt.next_node(currentnode, 10)[0]
|
||||
except:
|
||||
break
|
||||
|
||||
if not keys:
|
||||
return ""
|
||||
|
||||
for key in keys:
|
||||
keycode = str(key & 0xFFFF)
|
||||
if keycode in vivaldi_keys["arm"]:
|
||||
keycodes.append(keycode)
|
||||
return keycodes
|
||||
|
||||
def get_physmap_data():
|
||||
if get_arch() == "x86_64":
|
||||
try:
|
||||
with open("/sys/bus/platform/devices/i8042/serio0/function_row_physmap", "r") as file:
|
||||
return file.read().strip().split()
|
||||
except FileNotFoundError:
|
||||
return ""
|
||||
else:
|
||||
return get_dt_layout()
|
||||
|
||||
def get_functional_row(physmap, use_vivaldi, super_is_held, super_inverted):
|
||||
arch = get_arch()
|
||||
if arch != "x86_64":
|
||||
arch = "arm"
|
||||
|
||||
i = 0
|
||||
result = ""
|
||||
for code in physmap:
|
||||
i += 1
|
||||
# Map zoom to f11 since most applications wont listen to zoom
|
||||
mapping = "f11" if vivaldi_keys[arch][code] == "zoom" \
|
||||
else vivaldi_keys[arch][code]
|
||||
|
||||
match [super_is_held, use_vivaldi, super_inverted]:
|
||||
case [True, True, False] | [False, True, True]:
|
||||
result += f"{vivaldi_keys[arch][code]} = f{i}\n"
|
||||
case [True, False, False] | [False, False, True]:
|
||||
result += f"f{i} = f{i}\n"
|
||||
case [False, True, False] | [True, True, True]:
|
||||
result += f"{vivaldi_keys[arch][code]} = {mapping}\n"
|
||||
case [False, False, False] | [True, False, True]:
|
||||
result += f"f{i} = {mapping}\n"
|
||||
|
||||
return result
|
||||
|
||||
def get_keyd_config(physmap, inverted):
|
||||
config = f"""\
|
||||
[ids]
|
||||
{get_ids_string(device_ids)}
|
||||
|
||||
[main]
|
||||
{get_functional_row(physmap, use_vivaldi=False, super_is_held=False, super_inverted=inverted)}
|
||||
{get_functional_row(physmap, use_vivaldi=True, super_is_held=False, super_inverted=inverted)}
|
||||
f13=coffee
|
||||
sleep=coffee
|
||||
|
||||
[meta]
|
||||
{get_functional_row(physmap, use_vivaldi=False, super_is_held=True, super_inverted=inverted)}
|
||||
{get_functional_row(physmap, use_vivaldi=True, super_is_held=True, super_inverted=inverted)}
|
||||
|
||||
[alt]
|
||||
backspace = delete
|
||||
brightnessdown = kbdillumdown
|
||||
brightnessup = kbdillumup
|
||||
f6 = kbdillumdown
|
||||
f7 = kbdillumup
|
||||
|
||||
[control]
|
||||
f5 = sysrq
|
||||
scale = sysrq
|
||||
|
||||
[altgr]
|
||||
backspace = delete
|
||||
left = home
|
||||
right = end
|
||||
up = pageup
|
||||
down = pagedown
|
||||
|
||||
[control+alt]
|
||||
backspace = C-A-delete
|
||||
"""
|
||||
return config
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-f", "--file", default="cros.conf", help="path to save config (default: cros.conf)")
|
||||
parser.add_argument("-i", "--inverted", action="store_true",
|
||||
help="use functional keys by default and media keys when super is held")
|
||||
args = vars(parser.parse_args())
|
||||
|
||||
|
||||
|
||||
physmap = get_physmap_data()
|
||||
if not physmap:
|
||||
print("no function row mapping found, using default mapping")
|
||||
if get_arch() == "x86_64":
|
||||
physmap = ['EA', 'E9', 'E7', '91', '92', '94', '95', 'A0', 'AE', 'B0']
|
||||
else:
|
||||
physmap = ['158', '159', '173', '372', '120', '224', '225', '113', '114', '115']
|
||||
|
||||
config = get_keyd_config(physmap, args["inverted"])
|
||||
with open(args["file"], "w") as conf:
|
||||
conf.write(config)
|
||||
|
||||
if __name__ == "__main__":
|
||||
if get_arch() != "x86_64":
|
||||
import libfdt
|
||||
main()
|
167
cros-keyboard-map/install.sh
Executable file
167
cros-keyboard-map/install.sh
Executable file
|
@ -0,0 +1,167 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# void, alpine, arch, and suse have packages
|
||||
# need to build on fedora (without terra) and debian/ubuntu
|
||||
|
||||
ROOT=$(pwd)
|
||||
|
||||
# fancy color
|
||||
printf "\033[94m"
|
||||
|
||||
if [ -f /usr/bin/apt ]; then
|
||||
distro="deb"
|
||||
elif [ -f /usr/bin/zypper ]; then
|
||||
distro="suse"
|
||||
elif [ -f /usr/bin/pacman ]; then
|
||||
distro="arch"
|
||||
elif [ -f /usr/bin/dnf4 ]; then
|
||||
distro="fedora"
|
||||
elif [ -f /sbin/apk ]; then
|
||||
distro="alpine"
|
||||
elif [ -f /bin/xbps-install ]; then
|
||||
distro="void"
|
||||
elif grep 'ID=nixos' /etc/os-release &>> pkg.log; then
|
||||
echo "WARNING: This script will not install keyd on NixOS, but can install the configuration for you."
|
||||
printf "Continue? (y/N) "
|
||||
read -r NIXINSTALL
|
||||
[[ $NIXINSTALL =~ ^[Yy]$ ]] || exit 1
|
||||
distro="nixos"
|
||||
fi
|
||||
|
||||
if which sudo &>/dev/null; then
|
||||
privesc="sudo"
|
||||
elif which doas &>/dev/null; then
|
||||
privesc="doas"
|
||||
elif which run0 &>/dev/null; then
|
||||
privesc="run0"
|
||||
fi
|
||||
|
||||
echo "Installing, this may take some time...."
|
||||
|
||||
# Fedora with the terra repo (Ultramarine) has keyd packaged
|
||||
[ "$distro" = "fedora" ] && dnf4 info keyd -y&>> pkg.log && FEDORA_HAS_KEYD=1
|
||||
|
||||
if ! which keyd &>/dev/null && [ "$distro" != "nixos" ] ; then
|
||||
build_keyd=1
|
||||
# if keyd isnt installed
|
||||
|
||||
# Debian-based distros and Fedora don't have keyd in the repos, ask the user to compile it from source.
|
||||
if [ "distro" = "fedora" ] && [ ! "$FEDORA_HAS_KEYD" = "1" ] || [ "$distro" = "deb" ]; then
|
||||
echo "This script can compile keyd for you or you can choose to get it from another source."
|
||||
printf "Compile keyd? (Y/n) "
|
||||
read -r COMPKEYD
|
||||
[[ $COMPKEYD =~ ^[Nn]$ ]] && build_keyd=0
|
||||
fi
|
||||
|
||||
if [ "$build_keyd" = "1" ]; then
|
||||
echo "Installing keyd dependencies"
|
||||
case $distro in
|
||||
deb)
|
||||
$privesc apt install -y build-essential git &>> pkg.log
|
||||
;;
|
||||
fedora)
|
||||
[ ! "$FEDORA_HAS_KEYD" = "1" ] && $privesc dnf4 install -y kernel-headers gcc make &>> pkg.log
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if ( [ "distro" = "fedora" ] && [ ! "$FEDORA_HAS_KEYD" = "1" ] || [ "$distro" = "deb" ] ) && [ "$build_keyd" = "1" ]; then
|
||||
echo "Compiling keyd"
|
||||
git clone https://github.com/rvaiya/keyd &>> pkg.log
|
||||
cd keyd
|
||||
make &>> pkg.log
|
||||
$privesc make install
|
||||
cd ..
|
||||
else
|
||||
echo "Installing keyd"
|
||||
case $distro in
|
||||
suse)
|
||||
$privesc zypper --non-interactive install keyd &>> pkg.log
|
||||
;;
|
||||
arch)
|
||||
$privesc pacman -S --noconfirm keyd &>> pkg.log
|
||||
;;
|
||||
alpine)
|
||||
$privesc apk add --no-interactive keyd &>> pkg.log
|
||||
;;
|
||||
void)
|
||||
$privesc xbps-install -S keyd -y &>> pkg.log
|
||||
;;
|
||||
fedora)
|
||||
$privesc dnf4 install -y keyd &>> pkg.log
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Generating config"
|
||||
# Handle any special cases
|
||||
if (grep -E "^(Nocturne|Atlas|Eve)$" /sys/class/dmi/id/product_name &> /dev/null)
|
||||
then
|
||||
cp configs/cros-pixel.conf cros.conf
|
||||
$privesc mkdir -p /etc/udev/hwdb.d/
|
||||
$privesc cp configs/61-pixel-keyboard.hwdb /etc/udev/hwdb.d/
|
||||
$privesc udevadm hwdb --update
|
||||
$privesc udevadm trigger
|
||||
elif (grep -E "^(Sarien|Arcada)$" /sys/class/dmi/id/product_name &> /dev/null)
|
||||
then
|
||||
cp configs/cros-sarien.conf cros.conf
|
||||
else
|
||||
printf "By default, the top row keys will do their special function (brightness, volume, browser control, etc).\n"
|
||||
printf "Holding the search key will make the top row keys act like fn keys (f1, f2, f3, etc).\n"
|
||||
printf "Would you like to invert this? (y/N) "
|
||||
read -r INVERT
|
||||
if [ "$distro" == "nixos" ] && ! which python3 &>/dev/null; then
|
||||
[[ $INVERT =~ ^[Yy]$ ]] && nix-shell -p python3 --run "python3 cros-keyboard-map.py -i" ||
|
||||
nix-shell -p python3 --run "python3 cros-keyboard-map.py"
|
||||
else
|
||||
[[ $INVERT =~ ^[Yy]$ ]] && python3 cros-keyboard-map.py -i || python3 cros-keyboard-map.py
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Installing config"
|
||||
$privesc mkdir -p /etc/keyd
|
||||
$privesc cp cros.conf /etc/keyd
|
||||
|
||||
echo "Enabling keyd"
|
||||
case $distro in
|
||||
alpine)
|
||||
# Chimera uses apk like alpine but uses dinit instead of openrc
|
||||
if [ -f /usr/bin/dinitctl ]; then
|
||||
$privesc dinitctl start keyd
|
||||
$privesc dinitctl enable keyd
|
||||
else
|
||||
$privesc rc-update add keyd
|
||||
$privesc rc-service keyd restart
|
||||
fi
|
||||
;;
|
||||
void)
|
||||
if [ -f /usr/bin/sv ]; then
|
||||
$privesc ln -s /etc/sv/keyd /var/service
|
||||
$privesc sv enable keyd
|
||||
$privesc sv start keyd
|
||||
else
|
||||
echo "This script can only be used for Void Linux using 'runit' init system. Other init system on Void Linux are currently unsupported."
|
||||
echo "I'M OUTTA HERE!"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
$privesc systemctl enable keyd
|
||||
$privesc systemctl restart keyd
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "Installing libinput configuration"
|
||||
$privesc mkdir -p /etc/libinput
|
||||
if [ -f /etc/libinput/local-overrides.quirks ]; then
|
||||
cat $ROOT/local-overrides.quirks | $privesc tee -a /etc/libinput/local-overrides.quirks > /dev/null
|
||||
else
|
||||
$privesc cp $ROOT/local-overrides.quirks /etc/libinput/local-overrides.quirks
|
||||
fi
|
||||
|
||||
echo "Done"
|
||||
# reset color
|
||||
printf "\033[0m"
|
3
cros-keyboard-map/keyd/.gitattributes
vendored
Normal file
3
cros-keyboard-map/keyd/.gitattributes
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
data/* -diff
|
||||
layouts/* -diff
|
||||
src/unicode.c -diff
|
11
cros-keyboard-map/keyd/.gitignore
vendored
Normal file
11
cros-keyboard-map/keyd/.gitignore
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
*.swp
|
||||
*.swn
|
||||
*.swo
|
||||
*.out
|
||||
tags
|
||||
bin/
|
||||
*.o
|
||||
*.gch
|
||||
__pycache__
|
||||
test.log
|
||||
keyd.service
|
7
cros-keyboard-map/keyd/CONTRIBUTING.md
Normal file
7
cros-keyboard-map/keyd/CONTRIBUTING.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
The best way to contribute is to file an issue with any bugs you find or any
|
||||
features you think belong in keyd. Small issues pertaining to things like
|
||||
compilation on different platforms can be submitted as PRs but please avoid
|
||||
sending in patches which change core functionality without filing an issue
|
||||
first. The key logic can be deceptively simple and contains a few subtleties
|
||||
that need to be managed properly. Additionally, I reserve the right to reject
|
||||
any features which I do not think belong in keyd.
|
21
cros-keyboard-map/keyd/LICENSE
Normal file
21
cros-keyboard-map/keyd/LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT/X Consortium License
|
||||
|
||||
© 2020 Raheman Vaiya <r.vaiya@gmail.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
114
cros-keyboard-map/keyd/Makefile
Normal file
114
cros-keyboard-map/keyd/Makefile
Normal file
|
@ -0,0 +1,114 @@
|
|||
.PHONY: all clean install uninstall debug man compose test-harness
|
||||
VERSION=2.5.0
|
||||
COMMIT=$(shell git describe --no-match --always --abbrev=7 --dirty)
|
||||
VKBD=uinput
|
||||
PREFIX?=/usr/local
|
||||
|
||||
CONFIG_DIR?=/etc/keyd
|
||||
SOCKET_PATH=/var/run/keyd.socket
|
||||
|
||||
CFLAGS:=-DVERSION=\"v$(VERSION)\ \($(COMMIT)\)\" \
|
||||
-I/usr/local/include \
|
||||
-L/usr/local/lib \
|
||||
-Wall \
|
||||
-Wextra \
|
||||
-Wno-unused \
|
||||
-std=c11 \
|
||||
-DSOCKET_PATH=\"$(SOCKET_PATH)\" \
|
||||
-DCONFIG_DIR=\"$(CONFIG_DIR)\" \
|
||||
-DDATA_DIR=\"$(PREFIX)/share/keyd\" \
|
||||
-D_FORTIFY_SOURCE=2 \
|
||||
-D_DEFAULT_SOURCE \
|
||||
-Werror=format-security \
|
||||
$(CFLAGS)
|
||||
|
||||
platform=$(shell uname -s)
|
||||
|
||||
ifeq ($(platform), Linux)
|
||||
COMPAT_FILES=
|
||||
else
|
||||
LDFLAGS+=-linotify
|
||||
COMPAT_FILES=
|
||||
endif
|
||||
|
||||
all:
|
||||
-mkdir bin
|
||||
cp scripts/keyd-application-mapper bin/
|
||||
$(CC) $(CFLAGS) -O3 $(COMPAT_FILES) src/*.c src/vkbd/$(VKBD).c -lpthread -o bin/keyd $(LDFLAGS)
|
||||
debug:
|
||||
CFLAGS="-g -fsanitize=address -Wunused" $(MAKE)
|
||||
compose:
|
||||
-mkdir data
|
||||
./scripts/generate_xcompose
|
||||
man:
|
||||
for f in docs/*.scdoc; do \
|
||||
target=$${f%%.scdoc}.1.gz; \
|
||||
target=data/$${target##*/}; \
|
||||
scdoc < "$$f" | gzip > "$$target"; \
|
||||
done
|
||||
install:
|
||||
|
||||
@if [ -e /run/systemd/system ]; then \
|
||||
sed -e 's#@PREFIX@#$(PREFIX)#' keyd.service.in > keyd.service; \
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/lib/systemd/system/; \
|
||||
install -Dm644 keyd.service $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd.service; \
|
||||
else \
|
||||
echo "NOTE: systemd not found, you will need to manually add keyd to your system's init process."; \
|
||||
fi
|
||||
|
||||
@if [ "$(VKBD)" = "usb-gadget" ]; then \
|
||||
sed -e 's#@PREFIX@#$(PREFIX)#' src/vkbd/usb-gadget.service.in > src/vkbd/usb-gadget.service; \
|
||||
install -Dm644 src/vkbd/usb-gadget.service $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd-usb-gadget.service; \
|
||||
install -Dm755 src/vkbd/usb-gadget.sh $(DESTDIR)$(PREFIX)/bin/keyd-usb-gadget.sh; \
|
||||
fi
|
||||
|
||||
mkdir -p $(DESTDIR)$(CONFIG_DIR)
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/bin/
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/share/keyd/
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/share/keyd/layouts/
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1/
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/share/doc/keyd/
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/share/doc/keyd/examples/
|
||||
|
||||
-groupadd keyd
|
||||
install -m755 bin/* $(DESTDIR)$(PREFIX)/bin/
|
||||
install -m644 docs/*.md $(DESTDIR)$(PREFIX)/share/doc/keyd/
|
||||
install -m644 examples/* $(DESTDIR)$(PREFIX)/share/doc/keyd/examples/
|
||||
install -m644 layouts/* $(DESTDIR)$(PREFIX)/share/keyd/layouts
|
||||
cp -r data/gnome-* $(DESTDIR)$(PREFIX)/share/keyd
|
||||
install -m644 data/*.1.gz $(DESTDIR)$(PREFIX)/share/man/man1/
|
||||
install -m644 data/keyd.compose $(DESTDIR)$(PREFIX)/share/keyd/
|
||||
|
||||
uninstall:
|
||||
-groupdel keyd
|
||||
rm -rf $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd.service \
|
||||
$(DESTDIR)$(PREFIX)/bin/keyd \
|
||||
$(DESTDIR)$(PREFIX)/bin/keyd-application-mapper \
|
||||
$(DESTDIR)$(PREFIX)/share/doc/keyd/ \
|
||||
$(DESTDIR)$(PREFIX)/share/man/man1/keyd*.gz \
|
||||
$(DESTDIR)$(PREFIX)/share/keyd/ \
|
||||
$(DESTDIR)$(PREFIX)/lib/systemd/system/keyd-usb-gadget.service \
|
||||
$(DESTDIR)$(PREFIX)/bin/keyd-usb-gadget.sh \
|
||||
$(DESTDIR)$(PREFIX)/lib/systemd/system/keyd.service
|
||||
clean:
|
||||
-rm -rf bin keyd.service src/vkbd/usb-gadget.service
|
||||
test:
|
||||
@cd t; \
|
||||
for f in *.sh; do \
|
||||
./$$f; \
|
||||
done
|
||||
test-io:
|
||||
-mkdir bin
|
||||
$(CC) \
|
||||
-DDATA_DIR= \
|
||||
-o bin/test-io \
|
||||
t/test-io.c \
|
||||
src/keyboard.c \
|
||||
src/string.c \
|
||||
src/macro.c \
|
||||
src/config.c \
|
||||
src/log.c \
|
||||
src/ini.c \
|
||||
src/keys.c \
|
||||
src/unicode.c && \
|
||||
./bin/test-io t/test.conf t/*.t
|
338
cros-keyboard-map/keyd/README.md
Normal file
338
cros-keyboard-map/keyd/README.md
Normal file
|
@ -0,0 +1,338 @@
|
|||
[](https://ko-fi.com/rvaiya)
|
||||
|
||||
# Impetus
|
||||
|
||||
[](https://repology.org/project/keyd/versions)
|
||||
|
||||
Linux lacks a good key remapping solution. In order to achieve satisfactory
|
||||
results a medley of tools need to be employed (e.g xcape, xmodmap) with the end
|
||||
result often being tethered to a specified environment (X11). keyd attempts to
|
||||
solve this problem by providing a flexible system wide daemon which remaps keys
|
||||
using kernel level input primitives (evdev, uinput).
|
||||
|
||||
# Note on v2
|
||||
|
||||
The config format has undergone several iterations since the first
|
||||
release. For those migrating their configs from v1 it is best
|
||||
to reread the [man page](https://raw.githubusercontent.com/rvaiya/keyd/refs/heads/master/docs/keyd.scdoc) (`man keyd`).
|
||||
|
||||
See also: [changelog](docs/CHANGELOG.md).
|
||||
|
||||
# Goals
|
||||
|
||||
- Speed (a hand tuned input loop written in C that takes <<1ms)
|
||||
- Simplicity (a [config format](#sample-config) that is intuitive)
|
||||
- Consistency (modifiers that [play nicely with layers](https://github.com/rvaiya/keyd/blob/6dc2d5c4ea76802fd192b143bdd53b1787fd6deb/docs/keyd.scdoc#L128) by default)
|
||||
- Modularity (a UNIXy core extensible through the use of an [IPC](https://github.com/rvaiya/keyd/blob/90973686723522c2e44d8e90bb3508a6da625a20/docs/keyd.scdoc#L391) mechanism)
|
||||
|
||||
# Features
|
||||
|
||||
keyd has several unique features many of which are traditionally only
|
||||
found in custom keyboard firmware like [QMK](https://github.com/qmk/qmk_firmware)
|
||||
as well as some which are unique to keyd.
|
||||
|
||||
Some of the more interesting ones include:
|
||||
|
||||
- Layers (with support for [hybrid modifiers](https://github.com/rvaiya/keyd/blob/6dc2d5c4ea76802fd192b143bdd53b1787fd6deb/docs/keyd.scdoc#L128)).
|
||||
- Key overloading (different behaviour on tap/hold).
|
||||
- Keyboard specific configuration.
|
||||
- Instantaneous remapping (no more flashing :)).
|
||||
- A client-server model that facilitates scripting and display server agnostic application remapping. (Currently ships with support for X, sway, and gnome (wayland)).
|
||||
- System wide config (works in a VT).
|
||||
- First class support for modifier overloading.
|
||||
- Unicode support.
|
||||
|
||||
### keyd is for people who:
|
||||
|
||||
- Would like to experiment with custom [layers](https://docs.qmk.fm/feature_layers) (i.e custom shift keys)
|
||||
and oneshot modifiers.
|
||||
- Want to have multiple keyboards with different layouts on the same machine.
|
||||
- Want to be able to remap `C-1` without breaking modifier semantics.
|
||||
- Want a keyboard config format which is easy to grok.
|
||||
- Like tiny daemons that adhere to the Unix philosophy.
|
||||
- Want to put the control and escape keys where God intended.
|
||||
- Wish to be able to switch to a VT to debug something without breaking their keymap.
|
||||
|
||||
### What keyd isn't:
|
||||
|
||||
- A tool for programming individual key up/down events.
|
||||
|
||||
# Dependencies
|
||||
|
||||
- Your favourite C compiler
|
||||
- Linux kernel headers (already present on most systems)
|
||||
|
||||
## Optional
|
||||
|
||||
- python (for application specific remapping)
|
||||
- python-xlib (only for X support)
|
||||
- dbus-python (only for KDE support)
|
||||
|
||||
# Installation
|
||||
|
||||
*Note:* master serves as the development branch, things may occasionally break
|
||||
between releases. Releases are [tagged](https://github.com/rvaiya/keyd/tags), and should be considered stable.
|
||||
|
||||
## From Source
|
||||
|
||||
git clone https://github.com/rvaiya/keyd
|
||||
cd keyd
|
||||
make && sudo make install
|
||||
sudo systemctl enable --now keyd
|
||||
|
||||
# Quickstart
|
||||
|
||||
1. Install and start keyd (e.g `sudo systemctl enable keyd --now`)
|
||||
|
||||
2. Put the following in `/etc/keyd/default.conf`:
|
||||
|
||||
```
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
# Maps capslock to escape when pressed and control when held.
|
||||
capslock = overload(control, esc)
|
||||
|
||||
# Remaps the escape key to capslock
|
||||
esc = capslock
|
||||
```
|
||||
|
||||
Key names can be obtained by using the `keyd monitor` command. Note that while keyd is running, the output of this
|
||||
command will correspond to keyd's output. The original input events can be seen by first stopping keyd and then
|
||||
running the command. See the man page for more details.
|
||||
|
||||
3. Run `sudo keyd reload` to reload the config set.
|
||||
|
||||
4. See the man page (`man keyd`) for a more comprehensive description.
|
||||
|
||||
Config errors will appear in the log output and can be accessed in the usual
|
||||
way using your system's service manager (e.g `sudo journalctl -eu keyd`).
|
||||
|
||||
*Note*: It is possible to render your machine unusable with a bad config file.
|
||||
Should you find yourself in this position, the special key sequence
|
||||
`backspace+escape+enter` should cause keyd to terminate.
|
||||
|
||||
Some mice (e.g the Logitech MX Master) are capable of emitting keys and
|
||||
are consequently matched by the wildcard id. It may be necessary to
|
||||
explicitly blacklist these.
|
||||
|
||||
## Application Specific Remapping (experimental)
|
||||
|
||||
- Add yourself to the keyd group:
|
||||
|
||||
`usermod -aG keyd <user>`
|
||||
|
||||
- Populate `~/.config/keyd/app.conf`:
|
||||
|
||||
E.G
|
||||
|
||||
[alacritty]
|
||||
|
||||
alt.] = macro(C-g n)
|
||||
alt.[ = macro(C-g p)
|
||||
|
||||
[chromium]
|
||||
|
||||
alt.[ = C-S-tab
|
||||
alt.] = macro(C-tab)
|
||||
|
||||
- Run:
|
||||
|
||||
`keyd-application-mapper`
|
||||
|
||||
You will probably want to put `keyd-application-mapper -d` somewhere in your
|
||||
display server initialization logic (e.g ~/.xinitrc) unless you are running Gnome.
|
||||
|
||||
See the man page for more details.
|
||||
|
||||
## SBC support
|
||||
|
||||
Experimental support for single board computers (SBCs) via usb-gadget
|
||||
has been added courtesy of Giorgi Chavchanidze.
|
||||
|
||||
See [usb-gadget.md](src/vkbd/usb-gadget.md) for details.
|
||||
|
||||
## Packages
|
||||
|
||||
Third party packages for the some distributions also exist. If you wish to add
|
||||
yours to the list please file a PR. These are kindly maintained by community
|
||||
members, no personal responsibility is taken for them.
|
||||
|
||||
### Alpine Linux
|
||||
|
||||
[keyd](https://pkgs.alpinelinux.org/packages?name=keyd) package maintained by [@jirutka](https://github.com/jirutka).
|
||||
|
||||
### Arch
|
||||
|
||||
[Arch Linux](https://archlinux.org/packages/extra/x86_64/keyd/) package maintained by Arch packagers.
|
||||
|
||||
### Debian
|
||||
|
||||
Experimental `keyd` and `keyd-application-mapper` packages can be found in the
|
||||
CI build artifacts of the [work-in-progress Debian package
|
||||
repository](https://salsa.debian.org/rhansen/keyd):
|
||||
|
||||
* [amd64 (64-bit)](https://salsa.debian.org/rhansen/keyd/-/jobs/artifacts/debian/latest/browse/debian/output?job=build)
|
||||
* [i386 (32-bit)](https://salsa.debian.org/rhansen/keyd/-/jobs/artifacts/debian/latest/browse/debian/output?job=build%20i386)
|
||||
|
||||
Any Debian Developer who is willing to review the debianization effort and
|
||||
sponsor its upload is encouraged to contact
|
||||
[@rhansen](https://github.com/rhansen) (also see the [Debian ITP
|
||||
bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1060023)).
|
||||
|
||||
### Fedora
|
||||
|
||||
[COPR](https://copr.fedorainfracloud.org/coprs/alternateved/keyd/) package maintained by [@alternateved](https://github.com/alternateved).
|
||||
|
||||
### Gentoo
|
||||
|
||||
[GURU](https://gitweb.gentoo.org/repo/proj/guru.git/tree/app-misc/keyd) package maintained by [jack@pngu.org](mailto:jack@pngu.org).
|
||||
|
||||
### openSUSE
|
||||
[opensuse](https://software.opensuse.org//download.html?project=hardware&package=keyd) package maintained by [@bubbleguuum](https://github.com/bubbleguuum).
|
||||
|
||||
Easy install with `sudo zypper in keyd`.
|
||||
|
||||
### Ubuntu
|
||||
|
||||
Experimental `keyd` and `keyd-application-mapper` packages can be found in the
|
||||
[`ppa:keyd-team/ppa`
|
||||
archive](https://launchpad.net/~keyd-team/+archive/ubuntu/ppa).
|
||||
|
||||
If you wish to help maintain this PPA, please contact
|
||||
[@rhansen](https://github.com/rhansen).
|
||||
|
||||
### Void Linux
|
||||
|
||||
[xbps](https://github.com/void-linux/void-packages/tree/master/srcpkgs/keyd) package maintained by [@Barbaross](https://gitlab.com/Barbaross).
|
||||
|
||||
Easy install with `sudo xbps-install -Su keyd`.
|
||||
|
||||
# Example 1
|
||||
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
leftshift = oneshot(shift)
|
||||
capslock = overload(symbols, esc)
|
||||
|
||||
[symbols]
|
||||
|
||||
d = ~
|
||||
f = /
|
||||
...
|
||||
|
||||
# Example 2
|
||||
|
||||
This overrides specific alt combinations macOS users might
|
||||
be more familiar with, while keeping the rest intact.
|
||||
|
||||
[ids]
|
||||
*
|
||||
|
||||
[alt]
|
||||
|
||||
x = C-x
|
||||
c = C-c
|
||||
v = C-v
|
||||
|
||||
a = C-a
|
||||
f = C-f
|
||||
r = C-r
|
||||
z = C-z
|
||||
|
||||
# Recommended config
|
||||
|
||||
Many users will probably not be interested in taking full advantage of keyd.
|
||||
For those who seek simple quality of life improvements I can recommend the
|
||||
following config:
|
||||
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
shift = oneshot(shift)
|
||||
meta = oneshot(meta)
|
||||
control = oneshot(control)
|
||||
|
||||
leftalt = oneshot(alt)
|
||||
rightalt = oneshot(altgr)
|
||||
|
||||
capslock = overload(control, esc)
|
||||
insert = S-insert
|
||||
|
||||
This overloads the capslock key to function as both escape (when tapped) and
|
||||
control (when held) and remaps all modifiers to 'oneshot' keys. Thus to produce
|
||||
the letter A you can now simply tap shift and then a instead of having to hold
|
||||
it. Finally it remaps insert to S-insert (paste on X11).
|
||||
|
||||
# FAQS
|
||||
|
||||
## Why is my trackpad is interfering with input after enabling keyd?
|
||||
|
||||
libinput, a higher level input component used by most wayland and X11 setups,
|
||||
includes a feature called 'disable-while-typing' that disables the trackpad
|
||||
when typing.
|
||||
|
||||
In order to achieve this, it needs to distinguish between internal and external
|
||||
keyboards, which it does by hard coding a rules for specific hardware
|
||||
('quirks'). Since keyd creates a virtual device which subsumes both external
|
||||
and integrated keyboards, you will need to instruct libinput to regard the keyd
|
||||
virtual device as internal.
|
||||
|
||||
This can be achieved by adding the following to `/etc/libinput/local-overrides.quirks` (which may need to be created):
|
||||
|
||||
```
|
||||
[Serial Keyboards]
|
||||
|
||||
MatchUdevType=keyboard
|
||||
MatchName=keyd*keyboard
|
||||
AttrKeyboardIntegration=internal
|
||||
```
|
||||
|
||||
Credit to @mark-herbert42 and @canadaduane for the original solution.
|
||||
|
||||
## What about xmodmap/setxkbmap/*?
|
||||
|
||||
xmodmap and friends are display server level tools with limited functionality.
|
||||
keyd is a system level solution which implements advanced features like
|
||||
layering and [oneshot](https://docs.qmk.fm/#/one_shot_keys)
|
||||
modifiers. While some X tools offer similar functionality I am not aware of
|
||||
anything that is as flexible as keyd.
|
||||
|
||||
## What about [kmonad](https://github.com/kmonad/kmonad)?
|
||||
|
||||
keyd was written several years ago to allow me to easily experiment with
|
||||
different layouts on my growing keyboard collection. At the time kmonad did not
|
||||
exist and custom keyboard firmware like
|
||||
[QMK](https://github.com/qmk/qmk_firmware) (which inspired keyd) was the only
|
||||
way to get comparable features. I became aware of kmonad after having published
|
||||
keyd. While kmonad is a fine project with similar goals, it takes a different
|
||||
approach and has a different design philosophy.
|
||||
|
||||
Notably keyd was written entirely in C with performance and simplicitly in
|
||||
mind and will likely never be as configurable as kmonad (which is extensible
|
||||
in Haskell). Having said that, it supplies (in the author's opinion) the
|
||||
most valuable features in less than 2000 lines of C while providing
|
||||
a simple language agnostic config format.
|
||||
|
||||
## Why doesn't keyd implement feature X?
|
||||
|
||||
If you feel something is missing or find a bug you are welcome to file an issue
|
||||
on github. keyd has a minimalist (but sane) design philosophy which
|
||||
intentionally omits certain features (e.g execing arbitrary executables
|
||||
as root). Things which already exist in custom keyboard firmware like QMK are
|
||||
good candidates for inclusion.
|
||||
|
||||
# Contributing
|
||||
|
||||
See [CONTRIBUTING](CONTRIBUTING.md).
|
||||
IRC Channel: #keyd on oftc
|
8
cros-keyboard-map/keyd/TODO
Normal file
8
cros-keyboard-map/keyd/TODO
Normal file
|
@ -0,0 +1,8 @@
|
|||
streamline test logic
|
||||
organize tests
|
||||
cleanup manpage
|
||||
[idea] tmux like layer timeouts
|
||||
improved mouse support (integrate moused?)
|
||||
multi-user support (remove keyd group)
|
||||
split up the man page + add FAQ
|
||||
add descriptor state + isolate descriptor logic
|
65
cros-keyboard-map/keyd/data/gnome-extension-45/extension.js
Normal file
65
cros-keyboard-map/keyd/data/gnome-extension-45/extension.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
import GLib from 'gi://GLib';
|
||||
import Shell from 'gi://Shell';
|
||||
import Gio from 'gi://Gio';
|
||||
import { Extension } from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
|
||||
let file = Gio.File.new_for_path(makePipe());
|
||||
let pipe = file.append_to_async(0, 0, null, on_pipe_open);
|
||||
|
||||
function makePipe() {
|
||||
let runtime_dir = GLib.getenv('XDG_RUNTIME_DIR');
|
||||
if (!runtime_dir)
|
||||
runtime_dir = '/run/user/'+new TextDecoder().decode(
|
||||
GLib.spawn_command_line_sync('id -u')[1]
|
||||
).trim();
|
||||
|
||||
let path = runtime_dir + '/keyd.fifo';
|
||||
GLib.spawn_command_line_sync('mkfifo ' + path);
|
||||
|
||||
return path;
|
||||
}
|
||||
|
||||
function send(msg) {
|
||||
if (!pipe)
|
||||
return;
|
||||
|
||||
try {
|
||||
pipe.write(msg, null);
|
||||
} catch {
|
||||
log('pipe closed, reopening...');
|
||||
pipe = null;
|
||||
file.append_to_async(0, 0, null, on_pipe_open);
|
||||
}
|
||||
}
|
||||
|
||||
function on_pipe_open(file, res) {
|
||||
log('pipe opened');
|
||||
pipe = file.append_to_finish(res);
|
||||
}
|
||||
|
||||
export default class KeydExtension extends Extension {
|
||||
enable() {
|
||||
Shell.WindowTracker.get_default().connect('notify::focus-app', () => {
|
||||
const win = global.display.focus_window;
|
||||
const cls = win ? win.get_wm_class() : 'root';
|
||||
const title = win ? win.get_title() : '';
|
||||
|
||||
send(`${cls} ${title}\n`);
|
||||
});
|
||||
|
||||
Main.layoutManager.connectObject(
|
||||
'system-modal-opened', () => {
|
||||
send(`system-modal ${global.stage.get_title()}\n`);
|
||||
},
|
||||
this
|
||||
);
|
||||
|
||||
GLib.spawn_command_line_async('keyd-application-mapper -d');
|
||||
}
|
||||
|
||||
disable() {
|
||||
GLib.spawn_command_line_async('pkill -f keyd-application-mapper');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"name": "keyd",
|
||||
"description": "Used by keyd to obtain active window information.",
|
||||
"uuid": "keyd",
|
||||
"shell-version": [ "45", "46", "47", "48" ]
|
||||
}
|
||||
|
65
cros-keyboard-map/keyd/data/gnome-extension/extension.js
Normal file
65
cros-keyboard-map/keyd/data/gnome-extension/extension.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
const Shell = imports.gi.Shell;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Main = imports.ui.main;
|
||||
|
||||
let file = Gio.File.new_for_path(makePipe());
|
||||
let pipe = file.append_to_async(0, 0, null, on_pipe_open);
|
||||
|
||||
function makePipe() {
|
||||
let runtime_dir = GLib.getenv('XDG_RUNTIME_DIR');
|
||||
if (!runtime_dir)
|
||||
runtime_dir = '/run/user/'+new TextDecoder().decode(
|
||||
GLib.spawn_command_line_sync('id -u')[1]
|
||||
).trim();
|
||||
|
||||
let path = runtime_dir + '/keyd.fifo';
|
||||
GLib.spawn_command_line_sync('mkfifo ' + path);
|
||||
|
||||
return path;
|
||||
}
|
||||
|
||||
function send(msg) {
|
||||
if (!pipe)
|
||||
return;
|
||||
|
||||
try {
|
||||
pipe.write(msg, null);
|
||||
} catch {
|
||||
log('pipe closed, reopening...');
|
||||
pipe = null;
|
||||
file.append_to_async(0, 0, null, on_pipe_open);
|
||||
}
|
||||
}
|
||||
|
||||
function on_pipe_open(file, res) {
|
||||
log('pipe opened');
|
||||
pipe = file.append_to_finish(res);
|
||||
}
|
||||
|
||||
function init() {
|
||||
return {
|
||||
enable: function() {
|
||||
Shell.WindowTracker.get_default().connect('notify::focus-app', () => {
|
||||
const win = global.display.focus_window;
|
||||
const cls = win ? win.get_wm_class() : 'root';
|
||||
const title = win ? win.get_title() : '';
|
||||
|
||||
send(`${cls} ${title}\n`);
|
||||
});
|
||||
|
||||
Main.layoutManager.connectObject(
|
||||
'system-modal-opened', () => {
|
||||
send(`system-modal ${global.stage.get_title()}\n`);
|
||||
},
|
||||
this
|
||||
);
|
||||
|
||||
GLib.spawn_command_line_async('keyd-application-mapper -d');
|
||||
},
|
||||
|
||||
disable: function() {
|
||||
GLib.spawn_command_line_async('pkill -f keyd-application-mapper');
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"name": "keyd",
|
||||
"description": "Used by keyd to obtain active window information.",
|
||||
"uuid": "keyd",
|
||||
"shell-version": [ "42", "43", "44" ]
|
||||
}
|
||||
|
BIN
cros-keyboard-map/keyd/data/keyd-application-mapper.1.gz
Normal file
BIN
cros-keyboard-map/keyd/data/keyd-application-mapper.1.gz
Normal file
Binary file not shown.
BIN
cros-keyboard-map/keyd/data/keyd.1.gz
Normal file
BIN
cros-keyboard-map/keyd/data/keyd.1.gz
Normal file
Binary file not shown.
34493
cros-keyboard-map/keyd/data/keyd.compose
Normal file
34493
cros-keyboard-map/keyd/data/keyd.compose
Normal file
File diff suppressed because it is too large
Load diff
34627
cros-keyboard-map/keyd/data/unicode.txt
Normal file
34627
cros-keyboard-map/keyd/data/unicode.txt
Normal file
File diff suppressed because it is too large
Load diff
242
cros-keyboard-map/keyd/docs/CHANGELOG.md
Normal file
242
cros-keyboard-map/keyd/docs/CHANGELOG.md
Normal file
|
@ -0,0 +1,242 @@
|
|||
# v2.5.0
|
||||
|
||||
- Allow 64 character layer names
|
||||
- Introduce a new device id format to distinguish between devices with identical product/vendor id pairs (backward compatible)
|
||||
- Add KDE/plasma5 support to `keyd-application-mapper`
|
||||
- Gnome v45/v46 application remapping support
|
||||
- Increases the maximum number of descriptors to allow for more advanced configs
|
||||
- Add `setlayout()` to facilitate dynamically set layouts
|
||||
- `toggle()` now activates the layer on key down instead of key up
|
||||
- Improve support for exotic keys
|
||||
- Various minor bug fixes
|
||||
|
||||
# v2.4.3
|
||||
|
||||
## Summary (non exhaustive)
|
||||
|
||||
- Introduces a new layout type
|
||||
- Improves application based remapping suport for wayland/X
|
||||
- Adds `swap` support for toggled layers
|
||||
- Adds support for chording
|
||||
- Numerous bugfixes and stability improvements
|
||||
|
||||
## New Actions:
|
||||
|
||||
- togglem (#270)
|
||||
- clear() (#253)
|
||||
- overloadt (#309)
|
||||
- overloadt2
|
||||
|
||||
## New Commands:
|
||||
|
||||
- listen command (#294, #217)
|
||||
- reload
|
||||
- do
|
||||
- input
|
||||
|
||||
## New timeout and modifier knobs:
|
||||
|
||||
- disable_modifier_guard (#257)
|
||||
- oneshot_timeout option
|
||||
- overload_tap_timeout
|
||||
- macro_sequence_timeout (#255)
|
||||
|
||||
See the manpage for details.
|
||||
|
||||
|
||||
# v2.4.2
|
||||
|
||||
- Add include directive to the config syntax
|
||||
- Ship includable common layouts
|
||||
- Allow comments in the ids section (#245)
|
||||
- Create virtual pointer on initialization (#249)
|
||||
- Misc bug fixes
|
||||
|
||||
# v2.4.1
|
||||
|
||||
- Route button presses through the virtual keyboard (#162)
|
||||
- Improve mouse support
|
||||
- Fix VT repeat bug
|
||||
- Allow overload to accept an arbitrary action (#199)
|
||||
- Add support for full key serquences to swap()
|
||||
- Misc bugfixes
|
||||
|
||||
# v2.4.0
|
||||
|
||||
- Fix macro timeouts
|
||||
- Allow timeouts to be used in conjunction with + (#181)
|
||||
- Add macro2() to allow for per-macro timeout values (#176)
|
||||
- Add command() to allow for command execution
|
||||
- Add [global] section
|
||||
- Improve unicode support
|
||||
- Add support for older kernels (#163)
|
||||
- Clear oneshot on click
|
||||
- Various bugfixes and enhancements
|
||||
|
||||
# v2.3.1-rc
|
||||
|
||||
- Add unicode support
|
||||
- Add noop
|
||||
- Fix keyd-application-mapper hotswapping
|
||||
|
||||
# v2.3.0-rc
|
||||
|
||||
This is a **major release** which breaks **backward compatibility** with
|
||||
non trivial configs. It is best to reread the man page. Minimal
|
||||
breaking changes are expected moving forward.
|
||||
|
||||
- Introduce composite layers
|
||||
- Add timeout()
|
||||
- Simplify layer model
|
||||
- Layer entries are now affected by active modifiers (current layer modifiers excepted)
|
||||
- Eliminate layer types
|
||||
- Eliminate -d
|
||||
|
||||
See [DESIGN.md](DESIGN.md) for a more thorough description of changes.
|
||||
|
||||
# v2.2.7-beta
|
||||
|
||||
- Fix support for symlinked config files (#148)
|
||||
- Improve out of the box handling of alt and meta overloading (#128)
|
||||
- Add unicode support to keyd-application-mapper
|
||||
- Various bugfixes and stability improvements
|
||||
|
||||
# v2.2.5-beta
|
||||
|
||||
- Eliminate udev as a dependency
|
||||
- Permit mapping to modifier key codes (still discouraged)
|
||||
- Support for nested swapping
|
||||
- Improve app detection
|
||||
- Various bug fixes
|
||||
|
||||
# v2.2.4-beta
|
||||
|
||||
- Add support for application mapping by title
|
||||
- Fix macro timeouts
|
||||
- Forbid modifier keycodes as lone right hand values in favour of layers
|
||||
|
||||
# v2.2.3-beta
|
||||
|
||||
- Enable hot swapping of depressed keybindings via -e
|
||||
- Improve support for application remapping
|
||||
|
||||
# v2.2.2-beta
|
||||
|
||||
- Change panic sequence to `backspace+enter+escape` (#94)
|
||||
- Fix overload+modifer behaviour (#95)
|
||||
|
||||
# v2.2.1-beta
|
||||
|
||||
- Move application bindings into ~/.config/keyd/app.conf.
|
||||
- Add -d to keyd-application-mapper.
|
||||
- Fix broken gnome support.
|
||||
|
||||
# v2.2.0-beta
|
||||
|
||||
- Add a new IPC mechanism for dynamically altering the keymap (-e).
|
||||
- Add experimental support for app specific bindings.
|
||||
|
||||
# v2.1.0-beta
|
||||
|
||||
NOTE: This might break some configs (see below)
|
||||
|
||||
- Change default modifier mappings to their full names (i.e `control =
|
||||
layer(control)` instead of `control = layer(C)` in an unmodified key map)`.
|
||||
|
||||
- Modifier names are now syntactic sugar for assigning both associated key
|
||||
codes. E.G `control` corresponds to both `leftcontrol` and `rightcontrol`
|
||||
when assigned instead of just the former. (Note: this also means it is no
|
||||
longer a valid right hand value)
|
||||
|
||||
- Fixes v1 overload regression (#74)
|
||||
|
||||
# v2.0.1-beta
|
||||
|
||||
- Add + syntax to macros to allow for simultaenously held keys.
|
||||
|
||||
# v2.0.0-beta
|
||||
|
||||
Major version update.
|
||||
|
||||
This breaks 1.x configs. The format may ~~change slightly~~ (see [2.3.0-rc](#v230-rc)) before leaving beta,
|
||||
but once it does should remain backwards compatible for the foreseeable future.
|
||||
|
||||
A non exhaustive list of changes can be found below. It is best to forget
|
||||
everything you know and read man page anew.
|
||||
|
||||
- Eliminate layer inheritance in favour of simple types.
|
||||
(layouts are now defined with `:layout` instead of `:main`)
|
||||
- Macros are now repeatable.
|
||||
- Overload now accepts a hold threshold timeout.
|
||||
- Config files are now vendor/product id oriented.
|
||||
- SIGUSR1 now triggers a config reload.
|
||||
- Modifiers are layers by default and can be extended directly.
|
||||
- Config files now end in `.conf`.
|
||||
- `layert()` is now `toggle()`.
|
||||
- All layers are 'modifier layers' (terminological change)
|
||||
- Eliminate the dedicated modifer layout.
|
||||
- Modifiers no longer apply to key sequences defined within a layer.
|
||||
(Layer entries are now always executed verbatim.)
|
||||
|
||||
The old behaviour was unintuitive and can be emulated using nested
|
||||
layers if necessary.
|
||||
|
||||
For most old configs transitioning should be a simple matter of changing
|
||||
the file extension from `.cfg` to `.conf`, replacing `layert` with
|
||||
`toggle`, changing `:main` to `:layout` and adding
|
||||
|
||||
```
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[main]
|
||||
```
|
||||
|
||||
to the top of the file.
|
||||
|
||||
More involved configs may need additional changes, but should be possible
|
||||
to replicate using the new rules. If not, please file an issue on
|
||||
[github](https://github.com/rvaiya/keyd/issues).
|
||||
|
||||
# v1.1.1
|
||||
|
||||
- Make layert behaviour more intuitive when combined with oneshot() and layer().
|
||||
|
||||
# v1.1.0
|
||||
|
||||
- Add layert() to facilitate semipermanent-activation of occluding layers.
|
||||
- Resolve layer conflicts by picking the one which was most recently activated.
|
||||
|
||||
# v1.0.0
|
||||
|
||||
Major version update:
|
||||
|
||||
- Introduce support for modifier layers.
|
||||
- Simplify the config format.
|
||||
- Improve consistency/expected key behaviour.
|
||||
- Symbols can now be assigned directly place of their names (e.g `&` instead of `S-7`).
|
||||
- Macro support.
|
||||
|
||||
*This breaks existing configs*. Moving forward the config format is expected to
|
||||
remain backwards compatible.
|
||||
|
||||
Main Config Changes:
|
||||
|
||||
- Modifiers are now just treated as layers
|
||||
- The default layer is now called main
|
||||
- The modifier layout is distinct from the key layout
|
||||
|
||||
Config migration map:
|
||||
|
||||
```
|
||||
mods_on_hold(C, esc) = overload(C, esc)
|
||||
layer_on_hold(layer, esc) = overload(layer, esc)
|
||||
layer_toggle(layer) = layout(layer)
|
||||
layer(layer) = layer(layer)
|
||||
oneshot(mods) = oneshot(mods)
|
||||
oneshot_layer(layer) = oneshot(layer)
|
||||
[dvorak:default] = [dvorak:main]
|
||||
```
|
||||
|
||||
See the [manpage](man.md) for details.
|
122
cros-keyboard-map/keyd/docs/DESIGN.md
Normal file
122
cros-keyboard-map/keyd/docs/DESIGN.md
Normal file
|
@ -0,0 +1,122 @@
|
|||
This document contains a description of major design iterations.
|
||||
It is not intended to be exhaustive.
|
||||
|
||||
# v2.3.0-rc
|
||||
|
||||
This is a major release which breaks backward compatibility for
|
||||
non-trivial configs (we are still in beta after all :P).
|
||||
|
||||
In the absence of too much blowback, this will probably become the final
|
||||
v2 design.
|
||||
|
||||
Much of this harkens back to v1, with some additional simplifications
|
||||
and enhancements.
|
||||
|
||||
## Notable changes:
|
||||
|
||||
- Introduced composite layers
|
||||
|
||||
- Eliminated sequences in favour of macros (C-x is now just syntactic
|
||||
sugar for macro(C-x)).
|
||||
|
||||
- Actions which previously accepted sequences as a second argument
|
||||
now accept macros of any kind.
|
||||
|
||||
- General stability/speed/memory improvements
|
||||
|
||||
- Made the man page less war and peacey
|
||||
|
||||
## Non backward-compatible changes
|
||||
|
||||
- Replaced three arg overload() with a more flexible timeout() mechanism
|
||||
|
||||
- Layers are now fully transparent. That is, bindings are drawn on the basis
|
||||
of activation order with [main] being active by default.
|
||||
|
||||
- Modifiers now apply to all bindings with the exception of modifiers
|
||||
associated with the active layer.
|
||||
|
||||
Rationale:
|
||||
|
||||
The end result is more intuitive and in conjunction with transparency
|
||||
allows modifiers to be paired with layer entries without having
|
||||
to use layer nesting (#103).
|
||||
|
||||
E.G
|
||||
|
||||
```
|
||||
capslock = layer(nav)
|
||||
|
||||
[nav:C]
|
||||
|
||||
h = left
|
||||
l = right
|
||||
```
|
||||
|
||||
will cause `capslock+h` to produce `left` (rather than `C-left`), while
|
||||
`control+capslock+h` will produce `C-left`, as one might intuit.
|
||||
|
||||
- Abolished layer types. Notably, the concept of a 'layout' no longer exists.
|
||||
|
||||
Rationale:
|
||||
|
||||
This simplifies the lookup logic, elminates the need for dedicated layout
|
||||
actions, and makes it easier to define common bindings for letter layouts
|
||||
since the main layer can be used as a fallback during lookup.
|
||||
|
||||
E.G
|
||||
|
||||
[main]
|
||||
|
||||
capslock = layer(capslock)
|
||||
|
||||
[dvorak]
|
||||
|
||||
a = a
|
||||
s = o
|
||||
...
|
||||
|
||||
[capslock]
|
||||
|
||||
1 = toggle(dvorak)
|
||||
|
||||
- Special characters within macros like ) and \ must be escaped with a backslash.
|
||||
|
||||
- Modifier sequences (e.g `C-M`) are no longer valid layers by default.
|
||||
|
||||
Rationale:
|
||||
|
||||
This was legacy magic from v1 which added a bunch of cruft to the code and
|
||||
seemed to cause confusion by blurring the boundaries between layers and
|
||||
modifiers. Similar results can be achieved by explicitly defining an
|
||||
empty layer with the desired modifier tags:
|
||||
|
||||
I.E
|
||||
|
||||
a = layer(M-C)
|
||||
b = layer(M)
|
||||
|
||||
becomes
|
||||
|
||||
a = layer(meta-control)
|
||||
b = layer(meta)
|
||||
|
||||
[meta-control:M-C]
|
||||
|
||||
Note that in the above sample "meta" does not need to be
|
||||
explicitly defined, since full modifier names are still
|
||||
mapped to their eponymously named layers.
|
||||
|
||||
- Eliminated -d
|
||||
|
||||
Rationale:
|
||||
|
||||
Modern init systems are quite adept at daemonization, and the end user
|
||||
can always redirect/fork using a wrapper script if desired.
|
||||
|
||||
- Eliminated reload on SIGUSR1
|
||||
|
||||
Rationale:
|
||||
|
||||
Startup time has been reduced making the cost of a full
|
||||
restart negligible (and probably more reliable).
|
113
cros-keyboard-map/keyd/docs/keyd-application-mapper.scdoc
Normal file
113
cros-keyboard-map/keyd/docs/keyd-application-mapper.scdoc
Normal file
|
@ -0,0 +1,113 @@
|
|||
keyd-application-mapper(1)
|
||||
|
||||
# NAME
|
||||
|
||||
keyd-application-mapper - remap keys when window focus changes
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
*keyd-application-mapper* [*-d*|*--daemonize*] [*-v*|*--verbose*]
|
||||
|
||||
# OPTIONS
|
||||
|
||||
*-v, --verbose*
|
||||
Write verbose output. This includes printing the window focus events detected.
|
||||
You can use this output to determine what a window's class and title is for the
|
||||
purpose of setting mappings for that window in the config file.
|
||||
|
||||
*-d, --daemonize*
|
||||
Daemonize, write output to _~/.config/keyd/app.log_ instead of stdout.
|
||||
|
||||
# DESCRIPTION
|
||||
|
||||
A script which reads _~/.config/keyd/app.conf_ and applies the supplied
|
||||
bindings whenever a window with a matching class comes into focus.
|
||||
|
||||
You can think of each section as a set of application specific masks applied
|
||||
over the global rules defined in _/etc/keyd/\*.conf_.
|
||||
|
||||
The config file has the following form:
|
||||
|
||||
```
|
||||
[<filter>]
|
||||
|
||||
<expression 1>
|
||||
<expression 2>
|
||||
...
|
||||
```
|
||||
|
||||
Where _<filter>_ has one of the following forms:
|
||||
|
||||
```
|
||||
\[<class exp>\] # Match by window class
|
||||
\[<class exp>|<title exp>\] # Match by class and title
|
||||
```
|
||||
|
||||
and each _<expression>_ is a valid argument to _keyd bind_ (see *Bindings*).
|
||||
|
||||
_<class exp>_ and _<title exp>_ are strings which describe window class and title names
|
||||
to be matched, and may optionally contain unix style wildcards (\*). For example,
|
||||
_[gnome|\*find\*]_ will match any window with a class of _gnome_ and a title
|
||||
containing the substring _find_.
|
||||
|
||||
E.G:
|
||||
|
||||
```
|
||||
[kitty]
|
||||
|
||||
alt.] = C-tab
|
||||
alt.[ = C-S-tab
|
||||
alt.t = C-S-t
|
||||
|
||||
[st-*]
|
||||
|
||||
alt.1 = macro(Inside space st)
|
||||
|
||||
[chromium]
|
||||
|
||||
control.1 = macro(Inside space chrome!)
|
||||
alt.] = C-tab
|
||||
alt.[ = C-S-tab
|
||||
alt.t = C-t
|
||||
```
|
||||
|
||||
Will remap _A-1_ to the the string 'Inside st' when a window with a class
|
||||
that begins with 'st-' (e.g st-256color) is active.
|
||||
|
||||
Window class and title names can be obtained by inspecting the output if the program
|
||||
was started with the _-v, --verbose_ option. If the program was daemonized, you can
|
||||
read the log file output by e.g. _tail\ -f\ ~/.config/keyd/app.log_.
|
||||
A reload may be triggered by sending the script a USR1 signal.
|
||||
|
||||
At the moment X, Sway and Gnome are supported.
|
||||
|
||||
# INSTALLATION
|
||||
|
||||
Installation is a simple matter of running the command _keyd-application-mapper -d_
|
||||
somewhere in your display server initialization logic (e.g _~/.xinitrc_ or
|
||||
_~/.xsession_). If you are running Gnome,
|
||||
running _keyd-application-mapper_ for the first time will install an extension
|
||||
which manages the script lifecycle.
|
||||
|
||||
In order for this to work, keyd must be running and the user must have access
|
||||
to */var/run/keyd.socket* (i.e be a member of the *keyd* group).
|
||||
|
||||
# ENVIRONMENT VARIABLES
|
||||
|
||||
*KEYD_DEBUG*
|
||||
Debug log level. _0_,_1_ can be specified (default: 0).
|
||||
|
||||
# A note on security
|
||||
|
||||
*Any user which can interact with a program that directly controls input devices
|
||||
should be assumed to have full access to the system.*
|
||||
|
||||
While keyd offers slightly better isolation compared to other remappers by dint
|
||||
of mediating access through an IPC mechanism (rather than granting users
|
||||
blanket access to /dev/input/\* and /dev/uinput), it still provides an
|
||||
opportunity for abuse and should be treated with due deference.
|
||||
|
||||
Specifically, access to */var/run/keyd.socket* should only be granted to
|
||||
trusted users and the group _keyd_ should be regarded with the same reverence
|
||||
as _wheel_.
|
||||
|
994
cros-keyboard-map/keyd/docs/keyd.scdoc
Normal file
994
cros-keyboard-map/keyd/docs/keyd.scdoc
Normal file
|
@ -0,0 +1,994 @@
|
|||
keyd(1)
|
||||
|
||||
# NAME
|
||||
|
||||
*keyd* - A key remapping daemon.
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
*keyd* [command] [options]
|
||||
|
||||
# COMMANDS
|
||||
|
||||
*monitor [-t]*
|
||||
Print key events. If -t is supplied, also prints time since the last event in ms. Useful for discovering key names/device ids and debugging.
|
||||
|
||||
*listen*
|
||||
Print layer state changes of the running keyd daemon to stdout. Useful for scripting.
|
||||
|
||||
*bind reset|<binding> [<binding>...]*
|
||||
Apply the supplied bindings. See _Bindings_ for details.
|
||||
|
||||
*reload*
|
||||
Reload config files.
|
||||
|
||||
*list-keys*
|
||||
List valid key names.
|
||||
|
||||
*input [-t <timeout>] <text> [<text>...]*
|
||||
Input the supplied text. If no arguments are given, read the input from STDIN.
|
||||
A timeout in microseconds may optionally be supplied corresponding to the time
|
||||
between emitted events.
|
||||
|
||||
*do [-t <timeout>] [<exp>]*
|
||||
Execute the supplied expression. See MACROS for the format of <exp>. If no arguments are given, the expression is read from STDIN. If supplied, <timeout> corresponds to the macro_sequence_timeout.
|
||||
|
||||
*check [<config file>...]*
|
||||
Validate the supplied config files. If no files are supplied, all files in the config directory are checked.
|
||||
This exits with a non-zero return code if and only if any files fail validation.
|
||||
|
||||
# OPTIONS
|
||||
|
||||
*-v, --version*
|
||||
Print the current version and exit.
|
||||
|
||||
*-h, --help*
|
||||
Print help and exit.
|
||||
|
||||
# DESCRIPTION
|
||||
|
||||
keyd is a system wide key remapping daemon which supports features like
|
||||
layering, oneshot modifiers, and macros. In its most basic form it can be used
|
||||
to define a custom key layout that persists across display server boundaries
|
||||
(e.g wayland/X/tty).
|
||||
|
||||
The program runs in the foreground, printing diagnostic information to the
|
||||
standard output streams, and is intended to be run as a single instance managed
|
||||
by the init system.
|
||||
|
||||
*NOTE:*
|
||||
|
||||
Because keyd modifies your primary input device, it is possible to render your
|
||||
machine unusable with a bad config file. If you find yourself in this situation
|
||||
the panic sequence *<backspace>+<escape>+<enter>* will force keyd to
|
||||
terminate.
|
||||
|
||||
# CONFIGURATION
|
||||
|
||||
Configuration files loosely follow an INI style format consisting of headers of
|
||||
the form _[section_name]_ followed by a set of _bindings_. Lines beginning
|
||||
with a hash are ignored.
|
||||
|
||||
Config files are stored in _/etc/keyd/_ and loaded upon initialization.
|
||||
The reload command can be used to update the working set of config
|
||||
files (e.g sudo keyd reload).
|
||||
|
||||
A valid config file has the extension _.conf_ and *must* begin with an _[ids]_
|
||||
section that has one of the following forms:
|
||||
|
||||
```
|
||||
[ids]
|
||||
|
||||
<id 1 (obtained via keyd monitor)>
|
||||
<id 2>
|
||||
...
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```
|
||||
[ids]
|
||||
|
||||
*
|
||||
-<id 1>
|
||||
-<id 2>
|
||||
...
|
||||
```
|
||||
|
||||
The first form specifies a list of ids to be explicitly matched, while the
|
||||
second matches any id which has not been explicitly excluded.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
[ids]
|
||||
*
|
||||
-0123:4567
|
||||
```
|
||||
|
||||
|
||||
Will match all keyboards which *do not*(2) have the id _0123:4567_, while:
|
||||
|
||||
```
|
||||
[ids]
|
||||
|
||||
0123:4567
|
||||
```
|
||||
|
||||
will exclusively match any devices which do. Device ids can be obtained from
|
||||
the monitor command (see _COMMANDS_). Note that a device id may only be
|
||||
listed in a single config file.
|
||||
|
||||
Each subsequent section of the file corresponds to a _layer_ (with the exception
|
||||
of _[global]_ (see _GLOBALS_).
|
||||
|
||||
Config errors will appear in the log output and can be accessed in the usual
|
||||
way using your system's service manager (e.g sudo journalctl -eu keyd).
|
||||
|
||||
If an id matches more than one device type, the prefix k: may
|
||||
be used to exclusively match keyboards and the prefix m: may be used to
|
||||
exclusively match mice. (E.g m:046d:b01d)
|
||||
|
||||
Note: All keyboards defined within a given config file will share the
|
||||
same state. This is useful for linking separate input devices together
|
||||
(e.g foot pedals).
|
||||
|
||||
Note 2: The wildcard will only match devices which keyd identifies as keyboards.
|
||||
keyd is also capable of *managing mice* (e.g to facilitate clearing
|
||||
of oneshot modifiers on click), but their ids must be explicitly listed.
|
||||
|
||||
Note 3: *Mouse support is currently experimental*, and is mostly confined to
|
||||
traditional mice (e.g touchpads). Adding some mice to
|
||||
your ids section may break your pointer. *It may also be necessary
|
||||
to explicitly blacklist mice which are misidentified as keyboards
|
||||
(e.g if you find your moused misbehaving).*
|
||||
|
||||
## Layers
|
||||
|
||||
A layer is a collection of _bindings_, each of which specifies the behaviour of
|
||||
a particular key. Multiple layers may be active at any given time, forming a
|
||||
stack of occluding keymaps consulted in activation order. The default layer is
|
||||
called _main_ and is where common bindings should be defined.
|
||||
|
||||
For example, the following config snippet defines a layer called _nav_
|
||||
and creates a toggle for it in the _main_ layer:
|
||||
|
||||
```
|
||||
[main]
|
||||
|
||||
capslock = layer(nav)
|
||||
|
||||
[nav]
|
||||
|
||||
h = left
|
||||
k = up
|
||||
j = down
|
||||
l = right
|
||||
```
|
||||
|
||||
When capslock is held, the _nav_ layer occludes the _main_ layer
|
||||
causing _hjkl_ to function as the corresponding arrow keys.
|
||||
|
||||
Unlike most other remapping tools, keyd provides first class support for
|
||||
modifiers. A layer name may optionally end with a ':' followed by a
|
||||
set of modifiers to emulate in the absence of an explicit mapping.
|
||||
*Layer names may consist of a maximum of 64 characters* (including
|
||||
all modifiers).
|
||||
|
||||
These layers play nicely with other modifiers and preserve existing stacking
|
||||
semantics.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
[main]
|
||||
|
||||
capslock = layer(capslock)
|
||||
|
||||
[capslock:C]
|
||||
|
||||
j = down
|
||||
```
|
||||
|
||||
will cause _capslock_ to behave as _control_, except in the case of _capslock+j_, which will
|
||||
emit _down_. This makes it trivial to define custom modifiers which don't interfere with
|
||||
one another.
|
||||
|
||||
Note that bindings are not affected by the modifiers of the layer in which they
|
||||
are defined. Thus *capslock+j* will produce an unmodified *down* keypress, while
|
||||
*shift+capslock+j* will produce *shift+down* as expected.
|
||||
|
||||
|
||||
Formally, each layer heading has the following form:
|
||||
|
||||
```
|
||||
"[" <layer name>[:<modifier set>] "]"
|
||||
```
|
||||
|
||||
Where _<modifier_set>_ has the form:
|
||||
|
||||
_<modifier1>[-<modifier2>]..._
|
||||
|
||||
and each modifier is one of:
|
||||
|
||||
*C* - Control++
|
||||
*M* - Meta/Super++
|
||||
*A* - Alt++
|
||||
*S* - Shift++
|
||||
*G* - AltGr
|
||||
|
||||
Finally, each layer heading is followed by a set of bindings which take the form:
|
||||
|
||||
<key> | <alias> = <key>|<macro>|<action>
|
||||
|
||||
for a description of <action> and <macro> see _ACTIONS_ and _MACROS_.
|
||||
|
||||
By default, each key is bound to itself within the main layer. The exception to this
|
||||
are the modifier keys, which are instead bound to eponymously named layers with the
|
||||
corresponding modifiers.
|
||||
|
||||
For example, _meta_ is actually bound to _layer(meta)_, where _meta_ is
|
||||
internally defined as _meta:M_.
|
||||
|
||||
The full set of modifier bindings are as follows:
|
||||
|
||||
```
|
||||
control = layer(control)
|
||||
meta = layer(meta)
|
||||
shift = layer(shift)
|
||||
leftalt = layer(alt)
|
||||
rightalt = layer(altgr)
|
||||
```
|
||||
|
||||
A consequence of this is that overriding modifier keys is a simple matter of
|
||||
adding the desired bindings to an appropriate pre-defined layer.
|
||||
|
||||
Thus
|
||||
|
||||
```
|
||||
[ids]
|
||||
*
|
||||
|
||||
[control]
|
||||
j = down
|
||||
```
|
||||
|
||||
is a completely valid config, which does what the benighted user might expect. Internally,
|
||||
the full config actually looks something like this:
|
||||
|
||||
```
|
||||
[ids]
|
||||
*
|
||||
|
||||
[main]
|
||||
leftcontrol = layer(control)
|
||||
rightcontrol = layer(control)
|
||||
|
||||
[control:C]
|
||||
j = down
|
||||
```
|
||||
|
||||
If multiple bindings for the same key are present, the most recent one takes precedence.
|
||||
|
||||
A layer heading may also appear multiple times, in which case the layer will
|
||||
contain the sum of all bindings. Note that the layer type may not be reassigned.
|
||||
|
||||
That is:
|
||||
|
||||
```
|
||||
[mylayer:A]
|
||||
a = b
|
||||
c = d
|
||||
|
||||
[mylayer:C]
|
||||
a = x
|
||||
b = c
|
||||
```
|
||||
|
||||
is equivalent to:
|
||||
|
||||
```
|
||||
[mylayer:A]
|
||||
a = x
|
||||
b = c
|
||||
c = d
|
||||
```
|
||||
|
||||
## Composite Layers
|
||||
|
||||
A special kind of layer called a *composite layer* can be defined by creating a
|
||||
layer with a name consisting of existing layers delimited by _+_. The resultant
|
||||
layer will be activated and given precedence when all of its constituents are
|
||||
activated. Composite layers are not allowed to have modifiers attached and
|
||||
cannot be explicitly assigned.
|
||||
|
||||
E.g.
|
||||
|
||||
```
|
||||
[control+alt]
|
||||
h = left
|
||||
```
|
||||
|
||||
will cause the sequence _control+alt+h_ to produce _left_ (ignoring the control
|
||||
and alt modifiers attached to the active control and alt layers), while pressing
|
||||
_control+alt+f1_ preserves those modifiers, emitting exactly what was pressed,
|
||||
as there is no explicit binding for _f1_ on the composite layer.
|
||||
|
||||
|
||||
```
|
||||
[main]
|
||||
capslock = layer(capslock)
|
||||
|
||||
[capslock:C]
|
||||
|
||||
[capslock+shift]
|
||||
h = left
|
||||
```
|
||||
|
||||
Will cause the sequence _capslock+shift+h_ to produce _left_, while preserving the expected functionality of _capslock_ and _shift_ in isolation.
|
||||
|
||||
*Note:* composite layers *must* always be defined _after_ the layers of which they
|
||||
are comprised.
|
||||
|
||||
That is:
|
||||
|
||||
```
|
||||
[layer1]
|
||||
[layer2]
|
||||
[layer1+layer2]
|
||||
```
|
||||
|
||||
and not
|
||||
|
||||
```
|
||||
[layer1+layer2]
|
||||
[layer1]
|
||||
[layer2]
|
||||
```
|
||||
|
||||
## Layouts
|
||||
|
||||
A layout is a special kind of layer intended for modifying alpha keys. Unlike
|
||||
layers, layouts cannot have any associated modifiers, and only one layout may
|
||||
be active at a given time. The default layout is called 'main', and can be
|
||||
changed using the _setlayout()_ action.
|
||||
|
||||
For convenience, keyd ships with a number of common letter layouts in
|
||||
/usr/share/keyd/layouts. Before including these, it is instructive to inspect them.
|
||||
Non-english layouts include a dedicated shift layer (making order of inclusion
|
||||
important) and *require the use of keyd's compose definitions* (see *Unicode
|
||||
Support*)
|
||||
|
||||
E.g.
|
||||
|
||||
```
|
||||
# Include the shipped colemak layout.
|
||||
include layouts/colemak
|
||||
|
||||
[global]
|
||||
default_layout = mylayout
|
||||
|
||||
[mylayout:layout]
|
||||
a = b
|
||||
b = c
|
||||
#etc...
|
||||
|
||||
[control]
|
||||
1 = setlayout(customlayout)
|
||||
2 = setlayout(colemak)
|
||||
```
|
||||
|
||||
|
||||
## Chording
|
||||
|
||||
_Chords_ are groups of keys which are treated as a unit when simultaneously
|
||||
depressed. A chord can be defined by using a group of + delimited key names as
|
||||
a left hand value. The corresponding action will be activated if all keys are
|
||||
struck within the chording interval (_chord_timeout_).
|
||||
|
||||
E.g
|
||||
|
||||
```
|
||||
j+k = esc
|
||||
```
|
||||
|
||||
will cause _esc_ to be produced if both _j_ and _k_ are simultaneously depressed.
|
||||
|
||||
Note: It may be desirable to change the default chording interval (50ms) to
|
||||
account for the physical characteristics of your keyboard.
|
||||
|
||||
## Unicode Support
|
||||
|
||||
If keyd encounters a valid UTF8 sequence as a right hand value, it will try and
|
||||
translate that sequence into a macro which emits a keyd-specific XKB sequence.
|
||||
|
||||
In order for this to work, the sequences defined in the compose file shipped
|
||||
with keyd (_/usr/share/keyd/keyd.compose_) must be accessible. This can be achieved
|
||||
globally by copying the file to the appropriate location in
|
||||
_/usr/share/X11/locale_, or on a per-user basis by symlinking it to
|
||||
~/.XCompose.
|
||||
|
||||
E.g.
|
||||
|
||||
ln -s /usr/share/keyd/keyd.compose ~/.XCompose
|
||||
|
||||
**Additionally you will need to be using the default US layout on your
|
||||
display server.** Users of non-english layouts are advised to set their layout
|
||||
within keyd (see **Layouts**) to avoid conflicts between the display server
|
||||
layout and keyd's unicode functionality.
|
||||
|
||||
**Note:** You may have to restart your applications for this to take effect.
|
||||
|
||||
**Note 2:** The generated compose sequences are affected by modifiers in the
|
||||
normal way. If you want shift to produce a different symbol, you will need to
|
||||
define a custom shift layer (see the included layout files for an example).
|
||||
|
||||
**Note 3:**
|
||||
GTK4 currently has a bug which causes it to crash in the presence of large XCompose files
|
||||
(like /usr/share/keyd/keyd.compose).
|
||||
|
||||
## Aliases
|
||||
|
||||
Each key may optionally be assigned an *alias*. This alias may be used in place
|
||||
of the key as a valid left hand value. Multiple keys may be bound to the same alias,
|
||||
but only one alias may be assigned to a key at a given time.
|
||||
|
||||
For example, the keys 'leftmeta' and 'rightmeta' are bound to the alias *meta*
|
||||
by default. Thus the binding 'meta = a' is equivalent to the bindings 'leftmeta
|
||||
= a' and 'rightmeta = a'.
|
||||
|
||||
Aliases are defined in a special section called 'aliases' where each line takes
|
||||
the form:
|
||||
|
||||
<key> = <name>
|
||||
|
||||
where _<key>_ must be a valid key name.
|
||||
|
||||
Note that <name> may itself be a valid key name, in which case all references
|
||||
to the key within the config file will be replaced with the new key.
|
||||
Additionally, if the assigned alias is a valid key name, the corresponding
|
||||
keycode will be assigned to the key by default. This makes it possible to
|
||||
redefine keys before any bindings are applied and is particularly useful in
|
||||
conjunction with the include mechanism to account for variations in hardware.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
/etc/keyd/common:
|
||||
meta = oneshot(meta)
|
||||
alt = oneshot(alt)
|
||||
|
||||
a = a
|
||||
s = o
|
||||
# etc..
|
||||
|
||||
/etc/keyd/default.conf:
|
||||
[ids]
|
||||
*
|
||||
|
||||
[main]
|
||||
include common
|
||||
|
||||
/etc/keyd/magic_keyboard.conf:
|
||||
[ids]
|
||||
004c:0267
|
||||
|
||||
[aliases]
|
||||
leftalt = meta
|
||||
rightalt = meta
|
||||
rightmeta = alt
|
||||
leftmeta = alt
|
||||
|
||||
[main]
|
||||
include common
|
||||
```
|
||||
|
||||
Allows the user to define a set of universal bindings in /etc/keyd/common
|
||||
without having to explicitly account for the transposed meta and alt keys within
|
||||
the included config snippet.
|
||||
|
||||
## File Inclusion
|
||||
|
||||
Config files may include other files located within the config directory using
|
||||
the _include_ keyword. A line of the form *include <file>* may appear at any
|
||||
point after the [ids] section. The resultant config will behave as though the
|
||||
contents of the included file appear in place of the include statement.
|
||||
|
||||
Making strategic use of these statements makes it possible to share common
|
||||
functionality between configs.
|
||||
|
||||
Include paths are relative and must be placed in one of the following
|
||||
directories:
|
||||
|
||||
- /etc/keyd/
|
||||
- /usr/share/keyd/
|
||||
|
||||
E.g.
|
||||
|
||||
```
|
||||
/etc/keyd/default.conf:
|
||||
[ids]
|
||||
*
|
||||
|
||||
# Add our shared custom bindings.
|
||||
include common
|
||||
|
||||
# Appends bindings to the main layer
|
||||
# defined in /etc/keyd/common (order matters)
|
||||
[main]
|
||||
capslock = layer(capslock)
|
||||
|
||||
[capslock]
|
||||
1 = setlayout(colemak)
|
||||
2 = setlayout(dvorak)
|
||||
|
||||
/etc/keyd/common:
|
||||
[main]
|
||||
|
||||
rightmeta = layer(nav)
|
||||
|
||||
[nav]
|
||||
|
||||
h = left
|
||||
j = down
|
||||
k = up
|
||||
l = right
|
||||
|
||||
/usr/share/keyd/layouts/dvorak:
|
||||
a = a
|
||||
s = o
|
||||
...
|
||||
|
||||
```
|
||||
|
||||
Limitations:
|
||||
|
||||
- All include statements should appear after the [ids] section in the including file.
|
||||
- Included files should not contain an ids section.
|
||||
- Included files should not include other files (inclusion is non-recursive).
|
||||
- Included files should not end in .conf.
|
||||
|
||||
|
||||
# GLOBALS
|
||||
|
||||
A special section called _[global]_ may be defined in the file and can contain
|
||||
any of the following options:
|
||||
|
||||
*macro_timeout:* The time (in milliseconds) separating the initial execution of a macro
|
||||
sequence and the first repetition.
|
||||
(default: 600)
|
||||
|
||||
*macro_repeat_timeout:* The time separating successive executions of a macro.
|
||||
(default: 50)
|
||||
|
||||
*layer_indicator:* If set, this will turn the capslock light on whenever a layer is active.
|
||||
Note: Some wayland compositors will aggressively toggle LED state rendering this option
|
||||
unusable.
|
||||
|
||||
(default: 0)
|
||||
|
||||
*macro_sequence_timeout:* If set, this will add a timeout (*in
|
||||
microseconds*) between each emitted key in a macro sequence. This is
|
||||
useful to avoid overflowing the input buffer on some systems.
|
||||
|
||||
*chord_timeout:* The maximum time between successive keys
|
||||
interpreted as part of a chord.
|
||||
(default: 50)
|
||||
|
||||
*chord_hold_timeout:* The length of time a chord
|
||||
must be held before being activated.
|
||||
(default: 0)
|
||||
|
||||
*oneshot_timeout:* If non-zero, timeout a oneshot layer
|
||||
activation after the supplied number of milliseconds.
|
||||
(default: 0)
|
||||
|
||||
*disable_modifier_guard:* By default, keyd will inject additional
|
||||
control keypresses where necessary in order to prevent programs from
|
||||
seeing additional modifier taps (E.g alt in firefox). If set, this
|
||||
option disables that behaviour.
|
||||
(default: 0)
|
||||
|
||||
*overload_tap_timeout:* If non-zero, ignore the tap behaviour of an
|
||||
overloaded key if it is held for the given number of miliseconds.
|
||||
(default: 0).
|
||||
|
||||
|
||||
*Note:* Unicode characters and key sequences are treated as macros, and
|
||||
are consequently affected by the corresponding timeout options.
|
||||
|
||||
# MACROS
|
||||
|
||||
Various keyd actions accept macro expressions.
|
||||
|
||||
A macro expression has one of the following forms:
|
||||
|
||||
. macro(<exp>)
|
||||
. [<modifier 1>[-<modifier 2>...]-<key>
|
||||
. <char>
|
||||
|
||||
Where _<char>_ is a valid unicode character and _<exp>_ has the form _<token1> [<token2>...]_ and each token is one of:
|
||||
|
||||
- A valid key code.
|
||||
- A type 2 macro.
|
||||
- A contiguous group of unicode characters.
|
||||
- A group of key codes delimited by + to be depressed as a unit.
|
||||
- A timeout of the form _<time>ms_ (where _<time>_ < 1024).
|
||||
|
||||
The following are all valid macro expressions:
|
||||
|
||||
- C-a
|
||||
- macro(C-a)
|
||||
- macro(leftcontrol+leftmeta) # simultaneously taps the left meta and left control keys
|
||||
- A-M-x
|
||||
- macro(Hello space World)
|
||||
- macro(h e l l o space w o r ld) (identical to the above)
|
||||
- macro(C-t 100ms google.com enter)
|
||||
|
||||
Splitting into smaller tokens serves as an escaping mechanism: _macro(space)_
|
||||
inserts a space but _macro(s pace)_ writes "space". Likewise, _macro(3+5)_
|
||||
depresses the 3 and 5 keys as a unit while _macro(3 + 5)_ writes "3+5".
|
||||
|
||||
Some prerequisites are needed for non-ASCII characters to work, see _Unicode Support_.
|
||||
|
||||
# ACTIONS
|
||||
|
||||
A key may optionally be bound to an _action_ which accepts zero or more arguments.
|
||||
|
||||
*layer(<layer>)*
|
||||
Activate the given layer for the duration of the keypress.
|
||||
|
||||
*oneshot(<layer>)*
|
||||
|
||||
If tapped, activate the supplied layer for the duration of the next keypress.
|
||||
|
||||
*swap(<layer>)*
|
||||
Swap the currently active layer with the supplied one. If the current
|
||||
layer is toggled, it is deactivated and the supplied layer is toggled
|
||||
instead. Otherwise, the active layer is deactivated and the supplied
|
||||
layer remains active for the duration of the depression of the
|
||||
activating key. The behaviour of this action is undefined for
|
||||
composite layers.
|
||||
|
||||
```
|
||||
[control]
|
||||
|
||||
x = swap(xlayer)
|
||||
|
||||
[xlayer]
|
||||
|
||||
s = C-s
|
||||
b = S-insert
|
||||
```
|
||||
|
||||
NOTE:
|
||||
|
||||
You probably don't need to use this unless you are trying to do something quite
|
||||
involved. Think hard about whether or not what you are trying to achieve
|
||||
can be done by other means, as it is easy to end up in states which
|
||||
are impossible to exit.
|
||||
|
||||
*setlayout(<layout>)*
|
||||
Set the current layout.
|
||||
|
||||
*clear()*
|
||||
Clear any toggled or oneshot layers.
|
||||
|
||||
*toggle(<layer>)*
|
||||
Permanently toggle the state of the given layer.
|
||||
|
||||
*layerm(<layer>, <macro>)*
|
||||
Identical to *layer*, but executes the supplied macro before the layer change.
|
||||
|
||||
*oneshotm(<layer>, <macro>)*
|
||||
Identical to *oneshot*, but executes the supplied macro before the layer change.
|
||||
|
||||
*swapm(<layer>, <macro>)*
|
||||
Identical to *swap*, but accepts a macro to be executed immediately
|
||||
after the layer change.
|
||||
|
||||
*togglem(<layer>, <macro>)*
|
||||
Equivalent to *toggle*, but additionally executes the supplied macro before
|
||||
toggling the layer.
|
||||
|
||||
*clearm(<macro>)*
|
||||
Identical to *clear*, but executes the supplied macro before clearing layers.
|
||||
|
||||
## Key overloading
|
||||
|
||||
*overload(<layer>, <action>)*
|
||||
Activates the given layer while held and executes <action> on tap.
|
||||
|
||||
*overloadt(<layer>, <action>, <timeout>)*
|
||||
Identical to overload, but only activates the layer if the bound key is
|
||||
held for \<timeout\> milliseconds. This is mainly useful for overloading keys
|
||||
which are commonly struck in sequence (e.g letter keys).
|
||||
|
||||
Note that this will add a visual delay when typing, since overlapping
|
||||
keys will be queued until the timeout expires or the bound key is
|
||||
released.
|
||||
|
||||
*overloadt2(<layer>, <action>, <timeout>)*
|
||||
Identical to overloadt, but additionally resolves as a hold in the
|
||||
event of an intervening key tap.
|
||||
|
||||
*overloadi(<action 1>, <action 2>, <idle timeout>)*
|
||||
Activate <action 1> if the last non-action (i.e symbol) key was struck less
|
||||
than <timeout> milliseconds ago, otherwise activate <action 2>.
|
||||
|
||||
This can be used in combination with other overload timeouts and is particularly
|
||||
useful for overloading letter keys (often called 'homerow mods').
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
a = overloadi(a, overloadt2(control, a, 200), 150)
|
||||
```
|
||||
|
||||
will produce _a_ if and only if:
|
||||
|
||||
- _a_ is struck within 150ms of another non-action key.
|
||||
- _a_ is struck more than 150ms after the last non-action key but held for less than 200ms
|
||||
and there are no intervening key taps.
|
||||
|
||||
This reduces the visual latency by immediately resolving the key as a letter when
|
||||
typed midword, but also facilitates its use as a layer trigger if it is held for a long
|
||||
enough period with no intervening symbols.
|
||||
|
||||
Since this is a common usecase, a macro called *lettermod* (defined below) has been
|
||||
defined to facilitate such definitions.
|
||||
|
||||
*lettermod(<layer>, <key>, <idle timeout>, <hold timeout>)*
|
||||
An alias for:
|
||||
|
||||
*overloadi(<key>, overloadt2(<layer>, <key>, <hold timeout>), <idle timeout>)*
|
||||
|
||||
*timeout(<action 1>, <timeout>, <action 2>)*
|
||||
If no key events occur within _<timeout> ms_, execute <action1>, otherwise
|
||||
execute <action1>.
|
||||
|
||||
E.g.
|
||||
|
||||
timeout(a, 500, layer(control))
|
||||
|
||||
Will cause the assigned key to behave as control if it is held for more than
|
||||
500 ms without any keys being struck in the interval.
|
||||
|
||||
*NOTE:* This is an older option with numerous subtle implications. It is
|
||||
mainly intended to be used in combination with other actions to achieve
|
||||
things which are not otherwise possible. Most users will want to use
|
||||
one of overload functions for simple tap/hold behaviour.
|
||||
|
||||
*macro2(<timeout>, <repeat timeout>, <macro>)*
|
||||
Creates a macro with the given timeout and repeat timeout. If a timeout value of 0 is used,
|
||||
macro repeat is disabled.
|
||||
|
||||
Note that <macro> must be a valid macro expression.
|
||||
|
||||
E.g.
|
||||
```
|
||||
macro2(400, 50, macro(Hello space World))
|
||||
macro2(120, 80, left)
|
||||
```
|
||||
*command(<shell command>)*
|
||||
Execute the given shell command.
|
||||
|
||||
E.g.
|
||||
|
||||
command(brightness down)
|
||||
|
||||
*NOTE:* Commands are executed by the user running the keyd process (probably root),
|
||||
use this feature judiciously.
|
||||
|
||||
*noop*
|
||||
Do nothing.
|
||||
|
||||
# IPC
|
||||
|
||||
To facilitate extensibility, keyd employs a client-server model accessible
|
||||
through the use of *-e*. The keymap can thus be conceived of as a
|
||||
living entity that can be modified at run time.
|
||||
|
||||
In addition to allowing the user to try new bindings on the fly, this
|
||||
enables the user to fully leverage keyd's expressive power from other programs
|
||||
without incurring a performance penalty.
|
||||
|
||||
For instance, the user may use this functionality to write a script which
|
||||
alters the keymap when they switch between different tmux sessions.
|
||||
|
||||
The application remapping tool (*keyd-application-mapper(1)*) which ships with keyd
|
||||
is a good example of this. It is a small python script which performs event
|
||||
detection for the various display servers (e.g X/sway/gnome, etc) and feeds the
|
||||
desired mappings to the core using _-e_.
|
||||
|
||||
*NOTE:* Users with access to the keyd socket should be considered privileged
|
||||
(i.e assumed to have access to the entire system.).
|
||||
|
||||
## Bindings
|
||||
|
||||
The _bind_ command accepts one or more _bindings_, each of which must have the following form:
|
||||
|
||||
\[<layer>.\]<key> = <key>|<macro>|<action>
|
||||
|
||||
Where _<layer>_ is the name of an (existing) layer in which the key is to be bound.
|
||||
|
||||
As a special case, the string "reset" may be used in place of a binding, in
|
||||
which case the current keymap will revert to its original state (all
|
||||
dynamically applied bindings will be dropped).
|
||||
|
||||
Examples:
|
||||
|
||||
```
|
||||
$ keyd bind '- = C-c'
|
||||
$ keyd bind reset '+ = C-c' # Reset the keyboard before applying the '+' binding (drops the previous '-' binding)
|
||||
```
|
||||
|
||||
By default expressions apply to the most recently active keyboard.
|
||||
|
||||
# EXAMPLES
|
||||
|
||||
## Example 1
|
||||
|
||||
Make _esc+q_ toggle the dvorak letter layout.
|
||||
|
||||
```
|
||||
[ids]
|
||||
*
|
||||
|
||||
[main]
|
||||
esc = layer(esc)
|
||||
|
||||
[dvorak]
|
||||
|
||||
a = a
|
||||
s = o
|
||||
...
|
||||
|
||||
[esc]
|
||||
|
||||
q = toggle(dvorak)
|
||||
```
|
||||
|
||||
## Example 2
|
||||
|
||||
Invert the behaviour of the shift key without breaking modifier behaviour.
|
||||
|
||||
```
|
||||
[ids]
|
||||
*
|
||||
|
||||
[main]
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
0 = )
|
||||
|
||||
[shift]
|
||||
0 = 0
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
```
|
||||
|
||||
## Example 3
|
||||
|
||||
Tapping control once causes it to apply to the next key, tapping it twice
|
||||
activates it until it is pressed again, and holding it produces expected
|
||||
behaviour.
|
||||
|
||||
```
|
||||
[main]
|
||||
|
||||
control = oneshot(control)
|
||||
|
||||
[control]
|
||||
|
||||
control = toggle(control)
|
||||
```
|
||||
|
||||
## Example 4
|
||||
|
||||
Meta behaves as normal except when \` is pressed, after which the alt_tab layer
|
||||
is activated for the duration of the leftmeta keypress. Subsequent actuations
|
||||
_will thus produce A-tab instead of M-\\_.
|
||||
|
||||
```
|
||||
[meta]
|
||||
|
||||
` = swap(alt_tab, A-tab)
|
||||
|
||||
[alt_tab:A]
|
||||
|
||||
tab = A-S-tab
|
||||
` = A-tab
|
||||
```
|
||||
|
||||
## Example 5
|
||||
|
||||
```
|
||||
# Uses the compose key functionality of the display server to generate
|
||||
# international glyphs. # For this to work 'setxkbmap -option
|
||||
# compose:menu' must # be run after keyd has started.
|
||||
|
||||
# A list of sequences can be found in /usr/share/X11/locale/en_US.UTF-8/Compose
|
||||
# on most systems.
|
||||
|
||||
|
||||
[main]
|
||||
|
||||
rightalt = layer(dia)
|
||||
|
||||
[dia]
|
||||
|
||||
# Map o to ö
|
||||
o = macro(compose o ")
|
||||
|
||||
# Map e to €
|
||||
e = macro(compose c =)
|
||||
```
|
||||
|
||||
## Example 6
|
||||
|
||||
```
|
||||
# Tapping both shift keys will activate capslock.
|
||||
|
||||
[shift]
|
||||
|
||||
leftshift = capslock
|
||||
rightshift = capslock
|
||||
```
|
||||
|
||||
## Example 7
|
||||
|
||||
Capslock will behave as control in all instances except when used
|
||||
in conjunction with 'h/j/k/l' in which case it will produce arrow
|
||||
keys. If tapped, it will function as escape.
|
||||
|
||||
```
|
||||
[main]
|
||||
capslock = overload(capslock, esc)
|
||||
esc = capslock
|
||||
|
||||
[capslock:C]
|
||||
h = left
|
||||
k = up
|
||||
j = down
|
||||
l = right
|
||||
```
|
||||
|
||||
## Example 8
|
||||
|
||||
Disables the esc and end keys.
|
||||
|
||||
```
|
||||
[main]
|
||||
esc = noop
|
||||
end = noop
|
||||
```
|
||||
|
||||
# ENVIRONMENT VARIABLES
|
||||
|
||||
*KEYD_DEBUG*
|
||||
Debug log level. _0_,_1_,_2_ can be specified (default: 0).
|
||||
|
||||
# AUTHOR
|
||||
|
||||
Written by Raheman Vaiya (2017-).
|
||||
|
||||
# BUGS
|
||||
|
||||
Please file any bugs or feature requests at the following url:
|
||||
|
||||
<https://github.com/rvaiya/keyd/issues>
|
14
cros-keyboard-map/keyd/examples/capslock-esc-basic.conf
Normal file
14
cros-keyboard-map/keyd/examples/capslock-esc-basic.conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
# Usage: Place this file /etc/keyd/default.conf
|
||||
|
||||
# Causes `capslock` to behave as `control` when pressed
|
||||
# and escape when tapped. Note that `control` is what
|
||||
# keyd regards as a 'modifier layer'.
|
||||
# See the man page for more details.
|
||||
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
capslock = overload(control, esc)
|
|
@ -0,0 +1,38 @@
|
|||
# NOTE: to use this, rename this file to default.conf and put in /etc/keyd/
|
||||
|
||||
# Advanced use of capslock as a triple function key:
|
||||
#
|
||||
# - when 'capslock' is tapped (pressed + released), it behaves as ESC key
|
||||
#
|
||||
# - when 'capslock' is held, and used in combination with another key, it
|
||||
# behaves like a 'ctrl' key modifier (just like xcape)
|
||||
#
|
||||
# - when 'capslock' is held, and the 'space' key is tapped, we enter a 3rd
|
||||
# state for "VIM mode" where hjkl keys become arrow keys until capslock
|
||||
# is released.
|
||||
#
|
||||
[ids]
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
capslock = overload(ctrl_vim, esc)
|
||||
|
||||
# ctrl_vim modifier layer; inherits from 'Ctrl' modifier layer
|
||||
|
||||
[ctrl_vim:C]
|
||||
|
||||
space = swap(vim_mode)
|
||||
|
||||
# vim_mode modifier layer; also inherits from 'Ctrl' modifier layer
|
||||
|
||||
[vim_mode:C]
|
||||
|
||||
h = left
|
||||
j = down
|
||||
k = up
|
||||
l = right
|
||||
# forward word
|
||||
w = C-right
|
||||
# backward word
|
||||
b = C-left
|
65
cros-keyboard-map/keyd/examples/chromebook-linux.conf
Normal file
65
cros-keyboard-map/keyd/examples/chromebook-linux.conf
Normal file
|
@ -0,0 +1,65 @@
|
|||
# NOTE: to use this, rename this file to default.conf or `your-chomebook-keyboard-name`.conf and put in /etc/keyd/
|
||||
|
||||
# This is an chromebook like configuration, this remaps function keys 1 through 10 to fall in line with the chromeos remapping
|
||||
# while still allowing for full access to standard linux functions that rely on those function keys, such as TTY access or
|
||||
# terminal programs
|
||||
|
||||
# Using this on an chromebook that has been modified to run linux will make the function keys work as designed originally
|
||||
# for the most part, F4 and F5 are mapped differently due to limitations of `keyd` and lack of functional support for their features
|
||||
# in most linux desktop environments
|
||||
|
||||
# pressing meta+Fn will trigger that FN key
|
||||
# pressing ctrl+alt+Fn will trigger that key stroke
|
||||
|
||||
[ids]
|
||||
*
|
||||
|
||||
## Chromebook function keys
|
||||
[main]
|
||||
f1 = back
|
||||
f2 = forward
|
||||
f3 = refresh
|
||||
f4 = print
|
||||
f5 = A-tab
|
||||
f6 = brightnessdown
|
||||
f7 = brightnessup
|
||||
f8 = mute
|
||||
f9 = volumedown
|
||||
f10 = volumeup
|
||||
|
||||
## Allow F1-10 access through meta+fnX
|
||||
[meta]
|
||||
f1 = f1
|
||||
f2 = f2
|
||||
f3 = f3
|
||||
f4 = f4
|
||||
f5 = f5
|
||||
f6 = f6
|
||||
f7 = f7
|
||||
f8 = f8
|
||||
f9 = f9
|
||||
f10 = f10
|
||||
|
||||
## Allow TTY access
|
||||
[control+alt]
|
||||
f1 = C-A-f1
|
||||
f2 = C-A-f2
|
||||
f3 = C-A-f3
|
||||
f4 = C-A-f4
|
||||
f5 = C-A-f5
|
||||
f6 = C-A-f6
|
||||
f7 = C-A-f7
|
||||
f8 = C-A-f8
|
||||
f9 = C-A-f9
|
||||
f10 = C-A-f10
|
||||
left = home
|
||||
right = end
|
||||
|
||||
[control+alt]
|
||||
up = home
|
||||
down = end
|
||||
|
||||
[alt]
|
||||
backspace = delete
|
||||
up = pageup
|
||||
down = pagedown
|
37
cros-keyboard-map/keyd/examples/extend-layer.conf
Normal file
37
cros-keyboard-map/keyd/examples/extend-layer.conf
Normal file
|
@ -0,0 +1,37 @@
|
|||
# This example demonstrates how to implement a variant of the Extend layer. Notice how
|
||||
# you can pin the layer down with the space bar if you need to do complex operations
|
||||
# using the fingers of both hands. Vim users might prefer to bind left, down up and right
|
||||
# to h, j, k and l respectively.
|
||||
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
capslock = overload(extend, capslock)
|
||||
|
||||
[extend]
|
||||
|
||||
q = overload(alt, escape)
|
||||
y = pageup
|
||||
u = home
|
||||
i = up
|
||||
o = end
|
||||
p = insert
|
||||
a = leftcontrol
|
||||
s = leftshift
|
||||
d = leftmeta
|
||||
f = leftalt
|
||||
h = pagedown
|
||||
j = left
|
||||
k = down
|
||||
l = right
|
||||
semicolon = delete
|
||||
apostrophe = esc
|
||||
n = compose
|
||||
m = backspace
|
||||
comma = space
|
||||
dot = tab
|
||||
slash = enter
|
||||
space = overload(extend, capslock)
|
82
cros-keyboard-map/keyd/examples/half-qwerty.conf
Normal file
82
cros-keyboard-map/keyd/examples/half-qwerty.conf
Normal file
|
@ -0,0 +1,82 @@
|
|||
# NOTE: to use this, rename this file to default.conf and put in /etc/keyd/
|
||||
#
|
||||
# Half-QWERTY emulation example. This is useful for one-handed typing.
|
||||
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
# Maps capslock to escape when pressed and control when held.
|
||||
capslock = overload(control, esc)
|
||||
|
||||
# Space becomes a modifier when pressed in combination with another key,
|
||||
# otherwise outputs a regular space character. When this modifier is used, the
|
||||
# keys are mirrored to the other half of the keyboard.
|
||||
space = overload(mirroring, space)
|
||||
|
||||
# Single quote becomes Ctrl when combined.
|
||||
' = overload(control, ')
|
||||
|
||||
# Alt+Tab is a common combination for switcing windows. When typing with the
|
||||
# right hand it requires pressing space+[+Alt. Adding F12 as another Tab makes
|
||||
# it easier.
|
||||
f12 = tab
|
||||
|
||||
[mirroring]
|
||||
6 = 5
|
||||
7 = 4
|
||||
8 = 3
|
||||
9 = 2
|
||||
0 = 1
|
||||
- = `
|
||||
|
||||
h = g
|
||||
j = f
|
||||
k = d
|
||||
l = s
|
||||
semicolon = a
|
||||
|
||||
y = t
|
||||
u = r
|
||||
i = e
|
||||
o = w
|
||||
p = q
|
||||
[ = tab
|
||||
] = tab
|
||||
\ = esc
|
||||
|
||||
n = b
|
||||
m = v
|
||||
, = c
|
||||
. = x
|
||||
/ = z
|
||||
|
||||
1 = 0
|
||||
2 = 9
|
||||
3 = 8
|
||||
4 = 7
|
||||
5 = 6
|
||||
|
||||
tab = delete
|
||||
q = p
|
||||
w = o
|
||||
e = i
|
||||
r = u
|
||||
t = y
|
||||
|
||||
a = ;
|
||||
s = l
|
||||
d = k
|
||||
f = j
|
||||
g = h
|
||||
|
||||
z = /
|
||||
x = .
|
||||
c = ,
|
||||
v = m
|
||||
b = n
|
||||
|
||||
# TODO: Map space+capslock to return. The naive approach below does not work.
|
||||
# capslock = return
|
24
cros-keyboard-map/keyd/examples/home-row-mods.conf
Normal file
24
cros-keyboard-map/keyd/examples/home-row-mods.conf
Normal file
|
@ -0,0 +1,24 @@
|
|||
# This example demonstrates how to implement one of the variants of home row modifers.
|
||||
# Notice we use the one-shot-shift pattern. This is important to prevent shifting errors
|
||||
# caused by the necessary delay with which characters are emitted under overloadt (on
|
||||
# release, instead of on press). It is not recommended to use home-row shift for typing
|
||||
# for that reason. Home row modifiers are best suited for combinations (i.e., shortcuts).
|
||||
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
a = overloadt(control, a, 200)
|
||||
s = overloadt(shift, s, 200)
|
||||
d = overloadt(meta, d, 200)
|
||||
f = overloadt(alt, f, 200)
|
||||
j = overloadt(alt, j, 200)
|
||||
k = overloadt(meta, k, 200)
|
||||
l = overloadt(shift, l, 200)
|
||||
; = overloadt(control, ;, 200)
|
||||
v = overloadt(altgr, v, 200)
|
||||
m = overloadt(altgr, m, 200)
|
||||
leftshift = oneshot(shift)
|
||||
rightshift = oneshot(shift)
|
23
cros-keyboard-map/keyd/examples/international-glyphs.conf
Normal file
23
cros-keyboard-map/keyd/examples/international-glyphs.conf
Normal file
|
@ -0,0 +1,23 @@
|
|||
# This config demonstrates how international characters can be mapped using
|
||||
# keyd. It works by using the display server's (i.e wayland/X) compose key
|
||||
# functionality in conjunction with macros to generate the glyph of interest.
|
||||
|
||||
# For this to work 'setxkbmap -option compose:menu' must be run after keyd has started.
|
||||
|
||||
# A list of compose sequences can be found in /usr/share/X11/locale/en_US.UTF-8/Compose on most systems.
|
||||
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
rightalt = layer(dia)
|
||||
|
||||
[dia]
|
||||
|
||||
# Map o to ö
|
||||
o = macro(compose o ")
|
||||
|
||||
# Map e to €
|
||||
e = macro(compose c =)
|
38
cros-keyboard-map/keyd/examples/layer-carousel.conf
Normal file
38
cros-keyboard-map/keyd/examples/layer-carousel.conf
Normal file
|
@ -0,0 +1,38 @@
|
|||
# This example demostrates how to implement a layer carousel which behaves as follows:
|
||||
# - Hold space (numbers layer)
|
||||
# - Tap right shift (functions layer)
|
||||
# - Tap left shift (numbers layer)
|
||||
# - Tap left shift (symbols layer)
|
||||
# - Release space (main layer)
|
||||
# By using swap in our secondary layers, the layer held by space (as determined in the
|
||||
# main layer) is replaced and remains active until another swap takes place or the space
|
||||
# is eventually released, which brings us back to the main layer.
|
||||
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
space = overloadt(numbers, space, 200)
|
||||
|
||||
[numbers]
|
||||
|
||||
a = 1
|
||||
# Other numbers here.
|
||||
leftshift = overload(shift, swap(symbols))
|
||||
rightshift = overload(shift, swap(functions))
|
||||
|
||||
[functions]
|
||||
|
||||
a = f1
|
||||
# Other functions here.
|
||||
leftshift = overload(shift, swap(numbers))
|
||||
rightshift = overload(shift, swap(symbols))
|
||||
|
||||
[symbols]
|
||||
|
||||
a = grave
|
||||
# Other symbols here.
|
||||
leftshift = overload(shift, swap(functions))
|
||||
rightshift = overload(shift, swap(numbers))
|
80
cros-keyboard-map/keyd/examples/macos.conf
Normal file
80
cros-keyboard-map/keyd/examples/macos.conf
Normal file
|
@ -0,0 +1,80 @@
|
|||
# NOTE: to use this, rename this file to default.conf and put in /etc/keyd/
|
||||
|
||||
# Mac-Like Configuration Example
|
||||
#
|
||||
# Uses "Alt" button to the left of spacebar as "Cmd" key
|
||||
#
|
||||
# Note:
|
||||
# This 'trick' generally requires that the press+release of the Meta
|
||||
# key will do nothing. On my system, I had to disable the "overlay-key"
|
||||
# in mutter to make it inert:
|
||||
# - `gsettings set org.gnome.mutter overlay-key ''`
|
||||
|
||||
[ids]
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
# Create a new "Cmd" button, with various Mac OS-like features below
|
||||
leftalt = layer(meta_mac)
|
||||
|
||||
# Swap meta/alt
|
||||
leftmeta = alt
|
||||
|
||||
|
||||
# meta_mac modifier layer; inherits from 'Ctrl' modifier layer
|
||||
#
|
||||
# The main part! Using this layer, we can remap our new "Cmd" key to
|
||||
# do almost everything our muscle memory might need...
|
||||
[meta_mac:C]
|
||||
|
||||
# Meta-Space: Open the Launcher (a feature of gnome-shell)
|
||||
# keybinding: ? how did we arrive at M-/ ?
|
||||
space = M-/
|
||||
|
||||
# Switch directly to an open tab (e.g. Firefox, VS code)
|
||||
1 = A-1
|
||||
2 = A-2
|
||||
3 = A-3
|
||||
4 = A-4
|
||||
5 = A-5
|
||||
6 = A-6
|
||||
7 = A-7
|
||||
8 = A-8
|
||||
9 = A-9
|
||||
|
||||
# Copy
|
||||
c = C-insert
|
||||
# Paste
|
||||
v = S-insert
|
||||
# Cut
|
||||
x = S-delete
|
||||
|
||||
# Move cursor to beginning of line
|
||||
left = home
|
||||
# Move cursor to end of Line
|
||||
right = end
|
||||
|
||||
# As soon as tab is pressed (but not yet released), we switch to the
|
||||
# "app_switch_state" overlay where we can handle Meta-Backtick differently.
|
||||
# Also, send a 'M-tab' key tap before entering app_switch_sate.
|
||||
tab = swapm(app_switch_state, M-tab)
|
||||
|
||||
# Meta-Backtick: Switch to next window in the application group
|
||||
# - A-f6 is the default binding for 'cycle-group' in gnome
|
||||
# - keybinding: `gsettings get org.gnome.desktop.wm.keybindings cycle-group`
|
||||
` = A-f6
|
||||
|
||||
|
||||
# app_switch_state modifier layer; inherits from 'Meta' modifier layer
|
||||
[app_switch_state:M]
|
||||
|
||||
# Meta-Tab: Switch to next application
|
||||
# - keybinding: `gsettings get org.gnome.desktop.wm.keybindings switch-applications`
|
||||
tab = M-tab
|
||||
right = M-tab
|
||||
|
||||
# Meta-Backtick: Switch to previous application
|
||||
# - keybinding: `gsettings get org.gnome.desktop.wm.keybindings switch-applications-backward`
|
||||
` = M-S-tab
|
||||
left = M-S-tab
|
53
cros-keyboard-map/keyd/examples/nav-layer.conf
Normal file
53
cros-keyboard-map/keyd/examples/nav-layer.conf
Normal file
|
@ -0,0 +1,53 @@
|
|||
# Goal:
|
||||
#
|
||||
# To create a vi like navigation layer accessible by holding capslock while holding capslock
|
||||
# otherwise behave like the control key (when held) and escape when tapped.
|
||||
#
|
||||
# In essence we want:
|
||||
#
|
||||
# - capslock+h = left
|
||||
# - capslock+j = down
|
||||
# - capslock+k = up
|
||||
# - capslock+l = right
|
||||
#
|
||||
# - capslock+shift+h = C-left
|
||||
# - capslock+shift+l = C-right
|
||||
# - capslock+shift+j = C-down
|
||||
# - capslock+shift+k = C-up
|
||||
#
|
||||
# - capslock = escape (when tapped)
|
||||
#
|
||||
# In all other instances capslock should behave as normal control:
|
||||
#
|
||||
# - capslock+a = C-a
|
||||
# - capslock+b = C-b
|
||||
# - capslock+c = C-c
|
||||
# ...
|
||||
# - capslock+shift+i = C-S-i
|
||||
# - capslock+shift+k = C-S-k
|
||||
# ....
|
||||
|
||||
# This is achieved by creating a composite layer called [capslock+shift]
|
||||
# which is activated whenever capslock and shift are simultaneously
|
||||
# held.
|
||||
|
||||
|
||||
[ids]
|
||||
*
|
||||
|
||||
[main]
|
||||
capslock = overload(capslock, esc)
|
||||
|
||||
[capslock:C]
|
||||
h = left
|
||||
j = down
|
||||
k = up
|
||||
l = right
|
||||
|
||||
# Activates when both capslock and shift is pressed
|
||||
[capslock+shift]
|
||||
h = C-left
|
||||
j = C-down
|
||||
k = C-up
|
||||
l = C-right
|
||||
|
15
cros-keyboard-map/keyd/examples/shift-bar.conf
Normal file
15
cros-keyboard-map/keyd/examples/shift-bar.conf
Normal file
|
@ -0,0 +1,15 @@
|
|||
# This example demostrates how to use the space-bar as a shift key by:
|
||||
# 1. Holding shift
|
||||
# 2. Holding space
|
||||
# 3. Releasing shift
|
||||
# The space-bar will keep the shift layer active until your release it. The advanteage is
|
||||
# that you can type using the fingers of both hands freely. Consider it as an alternative
|
||||
# to caps-word mode (see issue #711).
|
||||
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[shift]
|
||||
|
||||
space = overloadt(shift, space, 200)
|
18
cros-keyboard-map/keyd/examples/simlayer.conf
Normal file
18
cros-keyboard-map/keyd/examples/simlayer.conf
Normal file
|
@ -0,0 +1,18 @@
|
|||
# This example demonstrates what is sometimes called a simlayer: when the layer is
|
||||
# activated, if no action is taken within a specified period of time, another action
|
||||
# takes place. This can be used, for example, to preserve the repeat action of the key
|
||||
# that is being overloaded (backspace in this case).
|
||||
|
||||
[ids]
|
||||
|
||||
*
|
||||
|
||||
[main]
|
||||
|
||||
backspace = timeout(overload(shortcuts, backspace), 500, backspace)
|
||||
|
||||
[shortcuts]
|
||||
|
||||
1 = M-pageup
|
||||
2 = M-pagedown
|
||||
# Other shortcuts here.
|
9
cros-keyboard-map/keyd/keyd.service.in
Normal file
9
cros-keyboard-map/keyd/keyd.service.in
Normal file
|
@ -0,0 +1,9 @@
|
|||
[Unit]
|
||||
Description=key remapping daemon
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=@PREFIX@/bin/keyd
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
127
cros-keyboard-map/keyd/layouts/af
Normal file
127
cros-keyboard-map/keyd/layouts/af
Normal file
|
@ -0,0 +1,127 @@
|
|||
[af:layout]
|
||||
|
||||
' = گ
|
||||
, = و
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = ۱
|
||||
2 = ۲
|
||||
3 = ۳
|
||||
4 = ۴
|
||||
5 = ۵
|
||||
6 = ۶
|
||||
7 = ۷
|
||||
8 = ۸
|
||||
9 = ۹
|
||||
; = ک
|
||||
= = =
|
||||
[ = ج
|
||||
\ = \
|
||||
] = چ
|
||||
a = ش
|
||||
b = ذ
|
||||
c = ز
|
||||
d = ی
|
||||
e = ث
|
||||
f = ب
|
||||
g = ل
|
||||
h = ا
|
||||
i = ه
|
||||
j = ت
|
||||
k = ن
|
||||
l = م
|
||||
m = پ
|
||||
n = د
|
||||
o = خ
|
||||
p = ح
|
||||
q = ض
|
||||
r = ق
|
||||
s = س
|
||||
t = ف
|
||||
u = ع
|
||||
v = ر
|
||||
w = ص
|
||||
x = ط
|
||||
y = غ
|
||||
z = ظ
|
||||
shift = layer(af_shift)
|
||||
altgr = layer(af_altgr)
|
||||
|
||||
[af_shift:S]
|
||||
' = ؛
|
||||
, = >
|
||||
- = ـ
|
||||
. = <
|
||||
/ = ؟
|
||||
1 = !
|
||||
2 = ٬
|
||||
3 = ٫
|
||||
4 =
|
||||
5 = ٪
|
||||
6 = ×
|
||||
7 = ،
|
||||
8 = *
|
||||
; = :
|
||||
= = +
|
||||
[ = }
|
||||
\ = |
|
||||
] = {
|
||||
a = ؤ
|
||||
b =
|
||||
c = ژ
|
||||
d = ي
|
||||
e = ٍ
|
||||
f = إ
|
||||
g = أ
|
||||
h = آ
|
||||
i = ّ
|
||||
j = ة
|
||||
m = ء
|
||||
n = ٔ
|
||||
o = ]
|
||||
p = [
|
||||
q = ْ
|
||||
r = ً
|
||||
s = ئ
|
||||
t = ُ
|
||||
u = َ
|
||||
v = ٰ
|
||||
w = ٌ
|
||||
x = ٓ
|
||||
y = ِ
|
||||
z = ك
|
||||
|
||||
[af_altgr:G]
|
||||
' = ګ
|
||||
. = ۇ
|
||||
/ = ۉ
|
||||
3 = #
|
||||
8 = •
|
||||
9 =
|
||||
[ = ځ
|
||||
] = څ
|
||||
a = ښ
|
||||
b = ڈ
|
||||
c = ږ
|
||||
d = ى
|
||||
e = €
|
||||
f = ې
|
||||
g = ڷ
|
||||
h = ٱ
|
||||
i = ٕ
|
||||
j = ټ
|
||||
k = ڼ
|
||||
l = ں
|
||||
m = ٹ
|
||||
n = ډ
|
||||
r = ﴾
|
||||
s = ۍ
|
||||
t = ﴿
|
||||
u =
|
||||
v = ړ
|
||||
x = ڑ
|
||||
y =
|
||||
z = ے
|
||||
|
||||
[af_altgr+af_shift]
|
169
cros-keyboard-map/keyd/layouts/al
Normal file
169
cros-keyboard-map/keyd/layouts/al
Normal file
|
@ -0,0 +1,169 @@
|
|||
[al:layout]
|
||||
|
||||
' = [
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ë
|
||||
= = =
|
||||
[ = ç
|
||||
\ = ]
|
||||
] = @
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = z
|
||||
z = y
|
||||
shift = layer(al_shift)
|
||||
altgr = layer(al_altgr)
|
||||
|
||||
[al_shift:S]
|
||||
' = {
|
||||
, = ;
|
||||
- = _
|
||||
. = :
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = "
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = Ë
|
||||
= = +
|
||||
[ = Ç
|
||||
\ = }
|
||||
] = '
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Z
|
||||
z = Y
|
||||
|
||||
[al_altgr:G]
|
||||
' = ß
|
||||
, = <
|
||||
. = >
|
||||
1 = ~
|
||||
7 = `
|
||||
; = $
|
||||
[ = ÷
|
||||
\ = ¤
|
||||
] = ×
|
||||
a = æ
|
||||
b = {
|
||||
c = ¢
|
||||
d = Đ
|
||||
e = €
|
||||
f = [
|
||||
g = ]
|
||||
h = ħ
|
||||
i = →
|
||||
k = ł
|
||||
l = ł
|
||||
m = §
|
||||
n = }
|
||||
o = ø
|
||||
p = þ
|
||||
q = \
|
||||
r = ¶
|
||||
s = đ
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = @
|
||||
w = |
|
||||
x = »
|
||||
y = ←
|
||||
z = «
|
||||
|
||||
[al_altgr+al_shift]
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
2 = ⅛
|
||||
3 = £
|
||||
4 = $
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
8 = ™
|
||||
9 = ±
|
||||
a = Æ
|
||||
b = '
|
||||
c = ©
|
||||
d = Ð
|
||||
e = €
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = }
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = §
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = `
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
95
cros-keyboard-map/keyd/layouts/am
Normal file
95
cros-keyboard-map/keyd/layouts/am
Normal file
|
@ -0,0 +1,95 @@
|
|||
[am:layout]
|
||||
|
||||
' = ր
|
||||
, = խ
|
||||
- = է
|
||||
. = շ
|
||||
/ = ռ
|
||||
1 = ֆ
|
||||
2 = ձ
|
||||
3 = ֊
|
||||
4 = ,
|
||||
5 = ։
|
||||
6 = ՞
|
||||
7 = ․
|
||||
8 = ՛
|
||||
9 = )
|
||||
; = պ
|
||||
= = ղ
|
||||
[ = ծ
|
||||
\ = »
|
||||
] = ց
|
||||
a = ջ
|
||||
b = զ
|
||||
c = չ
|
||||
d = գ
|
||||
e = բ
|
||||
f = ե
|
||||
g = ա
|
||||
h = ն
|
||||
i = կ
|
||||
j = ի
|
||||
k = տ
|
||||
l = հ
|
||||
m = ք
|
||||
n = լ
|
||||
o = ը
|
||||
p = թ
|
||||
q = ճ
|
||||
r = ս
|
||||
s = վ
|
||||
t = մ
|
||||
u = ւ
|
||||
v = յ
|
||||
w = փ
|
||||
x = դ
|
||||
y = ո
|
||||
z = ժ
|
||||
shift = layer(am_shift)
|
||||
|
||||
[am_shift:S]
|
||||
' = Ր
|
||||
, = Խ
|
||||
- = Է
|
||||
. = Շ
|
||||
/ = Ռ
|
||||
1 = Ֆ
|
||||
2 = Ձ
|
||||
3 = —
|
||||
4 = $
|
||||
5 = …
|
||||
6 = %
|
||||
7 = և
|
||||
8 = ՚
|
||||
9 = (
|
||||
; = Պ
|
||||
= = Ղ
|
||||
[ = Ծ
|
||||
\ = «
|
||||
] = Ց
|
||||
a = Ջ
|
||||
b = Զ
|
||||
c = Չ
|
||||
d = Գ
|
||||
e = Բ
|
||||
f = Ե
|
||||
g = Ա
|
||||
h = Ն
|
||||
i = Կ
|
||||
j = Ի
|
||||
k = Տ
|
||||
l = Հ
|
||||
m = Ք
|
||||
n = Լ
|
||||
o = Ը
|
||||
p = Թ
|
||||
q = Ճ
|
||||
r = Ս
|
||||
s = Վ
|
||||
t = Մ
|
||||
u = Ւ
|
||||
v = Յ
|
||||
w = Փ
|
||||
x = Դ
|
||||
y = Ո
|
||||
z = Ժ
|
147
cros-keyboard-map/keyd/layouts/ara
Normal file
147
cros-keyboard-map/keyd/layouts/ara
Normal file
|
@ -0,0 +1,147 @@
|
|||
[ara:layout]
|
||||
|
||||
' = ط
|
||||
, = و
|
||||
- = -
|
||||
. = ز
|
||||
/ = ظ
|
||||
` = ذ
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ك
|
||||
= = =
|
||||
[ = ج
|
||||
\ = \
|
||||
] = د
|
||||
a = ش
|
||||
b = ﻻ
|
||||
c = ؤ
|
||||
d = ي
|
||||
e = ث
|
||||
f = ب
|
||||
g = ل
|
||||
h = ا
|
||||
i = ه
|
||||
j = ت
|
||||
k = ن
|
||||
l = م
|
||||
m = ة
|
||||
n = ى
|
||||
o = خ
|
||||
p = ح
|
||||
q = ض
|
||||
r = ق
|
||||
s = س
|
||||
t = ف
|
||||
u = ع
|
||||
v = ر
|
||||
w = ص
|
||||
x = ء
|
||||
y = غ
|
||||
z = ئ
|
||||
shift = layer(ara_shift)
|
||||
altgr = layer(ara_altgr)
|
||||
|
||||
[ara_shift:S]
|
||||
' = "
|
||||
, = ,
|
||||
- = _
|
||||
. = .
|
||||
/ = ؟
|
||||
` = ّ
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = )
|
||||
0 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = <
|
||||
\ = …
|
||||
] = >
|
||||
a = ِ
|
||||
b = ﻵ
|
||||
c = }
|
||||
d = ]
|
||||
e = ُ
|
||||
f = [
|
||||
g = ﻷ
|
||||
h = أ
|
||||
i = ÷
|
||||
j = ـ
|
||||
k = ،
|
||||
l = /
|
||||
m = '
|
||||
n = آ
|
||||
o = ×
|
||||
p = ؛
|
||||
q = َ
|
||||
r = ٌ
|
||||
s = ٍ
|
||||
t = ﻹ
|
||||
u = `
|
||||
v = {
|
||||
w = ً
|
||||
x = ْ
|
||||
y = إ
|
||||
z = ~
|
||||
|
||||
[ara_altgr:G]
|
||||
' = ⟩
|
||||
, = ٬
|
||||
- = –
|
||||
. = ژ
|
||||
/ = ٭
|
||||
1 = ١
|
||||
2 = ٢
|
||||
3 = ٣
|
||||
4 = ٤
|
||||
5 = ٥
|
||||
6 = ٦
|
||||
7 = ٧
|
||||
8 = ٨
|
||||
9 = ٩
|
||||
0 = ̥
|
||||
; = گ
|
||||
= = ≠
|
||||
[ = چ
|
||||
\ = ⟨
|
||||
f = پ
|
||||
h = ٱ
|
||||
k = ٫
|
||||
n = ٰ
|
||||
t = ڤ
|
||||
x = «
|
||||
z = »
|
||||
|
||||
[ara_altgr+ara_shift]
|
||||
' =
|
||||
- = ‑
|
||||
/ =
|
||||
5 = ‰
|
||||
= = ≈
|
||||
[ =
|
||||
\ =
|
||||
] =
|
||||
e =
|
||||
i =
|
||||
p =
|
||||
q =
|
||||
r =
|
||||
u =
|
||||
w =
|
||||
x = ‹
|
||||
y =
|
||||
z = ›
|
177
cros-keyboard-map/keyd/layouts/at
Normal file
177
cros-keyboard-map/keyd/layouts/at
Normal file
|
@ -0,0 +1,177 @@
|
|||
[at:layout]
|
||||
|
||||
' = ä
|
||||
, = ,
|
||||
- = ß
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ö
|
||||
[ = ü
|
||||
\ = #
|
||||
] = +
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = z
|
||||
z = y
|
||||
shift = layer(at_shift)
|
||||
altgr = layer(at_altgr)
|
||||
|
||||
[at_shift:S]
|
||||
' = Ä
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = !
|
||||
2 = "
|
||||
3 = §
|
||||
4 = $
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = Ö
|
||||
[ =
|
||||
\ = '
|
||||
] = *
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Z
|
||||
z = Y
|
||||
|
||||
[at_altgr:G]
|
||||
, = ·
|
||||
- = \
|
||||
. = …
|
||||
/ = –
|
||||
1 = ¹
|
||||
2 = ²
|
||||
3 = ³
|
||||
4 = ¼
|
||||
5 = ½
|
||||
6 = ¬
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
\ = ’
|
||||
] = ~
|
||||
a = æ
|
||||
b = “
|
||||
c = ¢
|
||||
d = ð
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ”
|
||||
o = ø
|
||||
p = þ
|
||||
q = @
|
||||
r = ¶
|
||||
s = ſ
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ſ
|
||||
x = «
|
||||
y = ←
|
||||
z = »
|
||||
|
||||
[at_altgr+at_shift]
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
/ = —
|
||||
1 = ¡
|
||||
2 = ⅛
|
||||
3 = £
|
||||
4 = ¤
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
] = ¯
|
||||
a = Æ
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = €
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = ‹
|
||||
y = ¥
|
||||
z = ›
|
95
cros-keyboard-map/keyd/layouts/au
Normal file
95
cros-keyboard-map/keyd/layouts/au
Normal file
|
@ -0,0 +1,95 @@
|
|||
[au:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(au_shift)
|
||||
|
||||
[au_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = |
|
||||
] = }
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
95
cros-keyboard-map/keyd/layouts/az
Normal file
95
cros-keyboard-map/keyd/layouts/az
Normal file
|
@ -0,0 +1,95 @@
|
|||
[az:layout]
|
||||
|
||||
' = ə
|
||||
, = ç
|
||||
- = -
|
||||
. = ş
|
||||
/ = .
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ı
|
||||
= = =
|
||||
[ = ö
|
||||
\ = \
|
||||
] = ğ
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = ü
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(az_shift)
|
||||
|
||||
[az_shift:S]
|
||||
' = Ə
|
||||
, = Ç
|
||||
- = _
|
||||
. = Ş
|
||||
/ = ,
|
||||
1 = !
|
||||
2 = "
|
||||
3 = Ⅶ
|
||||
4 = ;
|
||||
5 = %
|
||||
6 = :
|
||||
7 = ?
|
||||
8 = *
|
||||
9 = (
|
||||
; = I
|
||||
= = +
|
||||
[ = Ö
|
||||
\ = /
|
||||
] = Ğ
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = İ
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w =
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
171
cros-keyboard-map/keyd/layouts/ba
Normal file
171
cros-keyboard-map/keyd/layouts/ba
Normal file
|
@ -0,0 +1,171 @@
|
|||
[ba:layout]
|
||||
|
||||
' = ć
|
||||
, = ,
|
||||
- = '
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = č
|
||||
= = +
|
||||
[ = š
|
||||
\ = ž
|
||||
] = đ
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = z
|
||||
z = y
|
||||
shift = layer(ba_shift)
|
||||
altgr = layer(ba_altgr)
|
||||
|
||||
[ba_shift:S]
|
||||
' = Ć
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = !
|
||||
2 = "
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = Č
|
||||
= = *
|
||||
[ = Š
|
||||
\ = Ž
|
||||
] = Đ
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Z
|
||||
z = Y
|
||||
|
||||
[ba_altgr:G]
|
||||
' = ß
|
||||
, = <
|
||||
. = >
|
||||
/ = —
|
||||
[ = ÷
|
||||
\ = ¤
|
||||
] = ×
|
||||
a = æ
|
||||
b = {
|
||||
c = ¢
|
||||
d = “
|
||||
e = €
|
||||
f = [
|
||||
g = ]
|
||||
h = ħ
|
||||
i = →
|
||||
k = ł
|
||||
l = ł
|
||||
m = §
|
||||
n = }
|
||||
o = ø
|
||||
p = þ
|
||||
q = \
|
||||
r = ¶
|
||||
s = „
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = @
|
||||
w = |
|
||||
x = ’
|
||||
y = ←
|
||||
z = ‘
|
||||
|
||||
[ba_altgr+ba_shift]
|
||||
, = ×
|
||||
- = ¨
|
||||
. = ÷
|
||||
/ = –
|
||||
1 = ~
|
||||
2 = ˇ
|
||||
3 = ^
|
||||
4 = ˘
|
||||
5 = °
|
||||
6 = ˛
|
||||
7 = `
|
||||
8 = ˙
|
||||
9 = '
|
||||
= = ¸
|
||||
a = Æ
|
||||
b = '
|
||||
c = ©
|
||||
d = «
|
||||
e = €
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = }
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = »
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = `
|
||||
w = Ł
|
||||
x = «
|
||||
y = ¥
|
||||
z = »
|
135
cros-keyboard-map/keyd/layouts/bd
Normal file
135
cros-keyboard-map/keyd/layouts/bd
Normal file
|
@ -0,0 +1,135 @@
|
|||
[bd:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = ১
|
||||
2 = ২
|
||||
3 = ৩
|
||||
4 = ৪
|
||||
5 = ৫
|
||||
6 = ৬
|
||||
7 = ৭
|
||||
8 = ৮
|
||||
9 = ৯
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = ৃ
|
||||
b = ন
|
||||
c = ে
|
||||
d = ি
|
||||
e = ড
|
||||
f = ব
|
||||
g = ্
|
||||
h = া
|
||||
i = হ
|
||||
j = ক
|
||||
k = ত
|
||||
l = দ
|
||||
m = ম
|
||||
n = স
|
||||
o = গ
|
||||
p = ড়
|
||||
q = ঙ
|
||||
r = প
|
||||
s = ু
|
||||
t = ট
|
||||
u = জ
|
||||
v = র
|
||||
w = য
|
||||
x = ো
|
||||
y = চ
|
||||
z = ঁ
|
||||
shift = layer(bd_shift)
|
||||
altgr = layer(bd_altgr)
|
||||
|
||||
[bd_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = |
|
||||
] = }
|
||||
a = ৗ
|
||||
b = ণ
|
||||
c = ৈ
|
||||
d = ী
|
||||
e = ঢ
|
||||
f = ভ
|
||||
g = ।
|
||||
h = অ
|
||||
i = ঞ
|
||||
j = খ
|
||||
k = থ
|
||||
l = ধ
|
||||
m = শ
|
||||
n = ষ
|
||||
o = ঘ
|
||||
p = ঢ়
|
||||
q = ং
|
||||
r = ফ
|
||||
s = ূ
|
||||
t = ঠ
|
||||
u = ঝ
|
||||
v = ল
|
||||
w = য়
|
||||
x = ৌ
|
||||
y = ছ
|
||||
z = ঃ
|
||||
|
||||
[bd_altgr:G]
|
||||
- =
|
||||
. = ়
|
||||
1 = ৴
|
||||
2 = ৵
|
||||
3 = ৶
|
||||
4 = ৳
|
||||
5 = ৷
|
||||
6 = ৸
|
||||
7 = ं
|
||||
= =
|
||||
a = ঋ
|
||||
c = এ
|
||||
d = ই
|
||||
e = ৄ
|
||||
f = ৰ
|
||||
g = ॥
|
||||
h = আ
|
||||
i = ঽ
|
||||
j =
|
||||
k = ৎ
|
||||
l = ঌ
|
||||
q = ৢ
|
||||
s = উ
|
||||
x = ও
|
||||
z = ৺
|
||||
|
||||
[bd_altgr+bd_shift]
|
||||
4 = ৲
|
||||
6 =
|
||||
a = ৠ
|
||||
c = ঐ
|
||||
d = ঈ
|
||||
f = ৱ
|
||||
l = ৡ
|
||||
q = ৣ
|
||||
s = ঊ
|
||||
x = ঔ
|
173
cros-keyboard-map/keyd/layouts/be
Normal file
173
cros-keyboard-map/keyd/layouts/be
Normal file
|
@ -0,0 +1,173 @@
|
|||
[be:layout]
|
||||
|
||||
' = ù
|
||||
, = ;
|
||||
- = )
|
||||
. = :
|
||||
/ = =
|
||||
1 = &
|
||||
2 = é
|
||||
3 = "
|
||||
4 = '
|
||||
5 = (
|
||||
6 = §
|
||||
7 = è
|
||||
8 = !
|
||||
9 = ç
|
||||
; = m
|
||||
= = -
|
||||
\ = µ
|
||||
] = $
|
||||
a = q
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = ,
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = a
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = z
|
||||
x = x
|
||||
y = y
|
||||
z = w
|
||||
shift = layer(be_shift)
|
||||
altgr = layer(be_altgr)
|
||||
|
||||
[be_shift:S]
|
||||
' = %
|
||||
, = .
|
||||
- = °
|
||||
. = /
|
||||
/ = +
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = M
|
||||
= = _
|
||||
\ = £
|
||||
] = *
|
||||
a = Q
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = ?
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = A
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = Z
|
||||
x = X
|
||||
y = Y
|
||||
z = W
|
||||
|
||||
[be_altgr:G]
|
||||
, = •
|
||||
- = \
|
||||
. = ·
|
||||
1 = |
|
||||
2 = @
|
||||
3 = #
|
||||
4 = ¼
|
||||
5 = ½
|
||||
6 = ^
|
||||
7 = {
|
||||
8 = [
|
||||
9 = {
|
||||
[ = [
|
||||
] = ]
|
||||
a = æ
|
||||
b = “
|
||||
c = ¢
|
||||
d = ð
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
n = ”
|
||||
o = œ
|
||||
p = þ
|
||||
q = @
|
||||
r = ¶
|
||||
s = ß
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ſ
|
||||
x = »
|
||||
y = ←
|
||||
z = «
|
||||
|
||||
[be_altgr+be_shift]
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
1 = ¡
|
||||
2 = ⅛
|
||||
3 = £
|
||||
4 = $
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
a = Æ
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = ¢
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Œ
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
136
cros-keyboard-map/keyd/layouts/bg
Normal file
136
cros-keyboard-map/keyd/layouts/bg
Normal file
|
@ -0,0 +1,136 @@
|
|||
[bg:layout]
|
||||
|
||||
' = ч
|
||||
, = р
|
||||
- = -
|
||||
. = л
|
||||
/ = б
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = м
|
||||
= = .
|
||||
[ = ц
|
||||
\ = „
|
||||
] = ;
|
||||
a = ь
|
||||
b = ф
|
||||
c = ъ
|
||||
d = а
|
||||
e = е
|
||||
f = о
|
||||
g = ж
|
||||
h = г
|
||||
i = с
|
||||
j = т
|
||||
k = н
|
||||
l = в
|
||||
m = п
|
||||
n = х
|
||||
o = д
|
||||
p = з
|
||||
q = ,
|
||||
r = и
|
||||
s = я
|
||||
t = ш
|
||||
u = к
|
||||
v = э
|
||||
w = у
|
||||
x = й
|
||||
y = щ
|
||||
z = ю
|
||||
shift = layer(bg_shift)
|
||||
altgr = layer(bg_altgr)
|
||||
|
||||
[bg_shift:S]
|
||||
' = Ч
|
||||
, = Р
|
||||
- = $
|
||||
. = Л
|
||||
/ = Б
|
||||
1 = !
|
||||
2 = ?
|
||||
3 = +
|
||||
4 = "
|
||||
5 = %
|
||||
6 = =
|
||||
7 = :
|
||||
8 = /
|
||||
9 = –
|
||||
; = М
|
||||
= = €
|
||||
[ = Ц
|
||||
\ = “
|
||||
] = §
|
||||
a = ѝ
|
||||
b = Ф
|
||||
c = Ъ
|
||||
d = А
|
||||
e = Е
|
||||
f = О
|
||||
g = Ж
|
||||
h = Г
|
||||
i = С
|
||||
j = Т
|
||||
k = Н
|
||||
l = В
|
||||
m = П
|
||||
n = Х
|
||||
o = Д
|
||||
p = З
|
||||
q = ы
|
||||
r = И
|
||||
s = Я
|
||||
t = Ш
|
||||
u = К
|
||||
v = Э
|
||||
w = У
|
||||
x = Й
|
||||
y = Щ
|
||||
z = Ю
|
||||
|
||||
[bg_altgr:G]
|
||||
, = ®
|
||||
- = ‑
|
||||
3 = †
|
||||
5 = 〈
|
||||
6 = —
|
||||
7 = …
|
||||
8 = ̀
|
||||
\ = «
|
||||
a = ы
|
||||
c = ѫ
|
||||
e = э
|
||||
i = ©
|
||||
j = ™
|
||||
q = ’
|
||||
r = ѝ
|
||||
s = ѣ
|
||||
u = ©
|
||||
x = ѭ
|
||||
|
||||
[bg_altgr+bg_shift]
|
||||
, = ®
|
||||
- = €
|
||||
3 = †
|
||||
5 = 〉
|
||||
6 = —
|
||||
7 = …
|
||||
8 = ́
|
||||
\ = »
|
||||
a = Ы
|
||||
c = Ѫ
|
||||
e = Э
|
||||
i = ©
|
||||
j = ™
|
||||
q = ‘
|
||||
r = Ѝ
|
||||
s = Ѣ
|
||||
u = ©
|
||||
x = Ѭ
|
177
cros-keyboard-map/keyd/layouts/br
Normal file
177
cros-keyboard-map/keyd/layouts/br
Normal file
|
@ -0,0 +1,177 @@
|
|||
[br:layout]
|
||||
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = ;
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ç
|
||||
= = =
|
||||
\ = ]
|
||||
] = [
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(br_shift)
|
||||
altgr = layer(br_altgr)
|
||||
|
||||
[br_shift:S]
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = :
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = Ç
|
||||
= = +
|
||||
\ = }
|
||||
] = {
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[br_altgr:G]
|
||||
' = ~
|
||||
, = •
|
||||
- = \
|
||||
. = ·
|
||||
1 = ¹
|
||||
2 = ²
|
||||
3 = ³
|
||||
4 = £
|
||||
5 = ¢
|
||||
6 = ¬
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
= = §
|
||||
[ = ´
|
||||
\ = º
|
||||
] = ª
|
||||
a = æ
|
||||
b = “
|
||||
c = ©
|
||||
d = ð
|
||||
e = °
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ”
|
||||
o = ø
|
||||
p = þ
|
||||
q = /
|
||||
r = ®
|
||||
s = ß
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ?
|
||||
x = »
|
||||
y = ←
|
||||
z = «
|
||||
|
||||
[br_altgr+br_shift]
|
||||
' = ^
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
1 = ¡
|
||||
2 = ½
|
||||
3 = ¾
|
||||
4 = ¼
|
||||
5 = ⅜
|
||||
6 = ¨
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
[ = `
|
||||
\ = º
|
||||
a = Æ
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = °
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = µ
|
||||
n = ’
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = /
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = ?
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
7
cros-keyboard-map/keyd/layouts/brai
Normal file
7
cros-keyboard-map/keyd/layouts/brai
Normal file
|
@ -0,0 +1,7 @@
|
|||
[brai:layout]
|
||||
|
||||
\ = \
|
||||
shift = layer(brai_shift)
|
||||
|
||||
[brai_shift:S]
|
||||
\ = |
|
183
cros-keyboard-map/keyd/layouts/bt
Normal file
183
cros-keyboard-map/keyd/layouts/bt
Normal file
|
@ -0,0 +1,183 @@
|
|||
[bt:layout]
|
||||
|
||||
' = ཛ
|
||||
, = ས
|
||||
- = ༔
|
||||
. = ཧ
|
||||
/ = ཨ
|
||||
1 = ༡
|
||||
2 = ༢
|
||||
3 = ༣
|
||||
4 = ༤
|
||||
5 = ༥
|
||||
6 = ༦
|
||||
7 = ༧
|
||||
8 = ༨
|
||||
9 = ༩
|
||||
; = ཚ
|
||||
= = །
|
||||
[ = ཇ
|
||||
\ = ཝ
|
||||
] = ཉ
|
||||
a = ཏ
|
||||
b = ར
|
||||
c = འ
|
||||
d = ད
|
||||
e = ག
|
||||
f = ན
|
||||
g = པ
|
||||
h = ཕ
|
||||
i = ོ
|
||||
j = བ
|
||||
k = མ
|
||||
l = ཙ
|
||||
m = ཤ
|
||||
n = ལ
|
||||
o = ཅ
|
||||
p = ཆ
|
||||
q = ཀ
|
||||
r = ང
|
||||
s = ཐ
|
||||
t = ི
|
||||
u = ེ
|
||||
v = ཡ
|
||||
w = ཁ
|
||||
x = ཟ
|
||||
y = ུ
|
||||
z = ཞ
|
||||
shift = layer(bt_shift)
|
||||
altgr = layer(bt_altgr)
|
||||
|
||||
[bt_shift:S]
|
||||
' = ྫ
|
||||
, = ྶ
|
||||
- = ཿ
|
||||
. = ྷ
|
||||
/ = ྸ
|
||||
1 = ༄
|
||||
2 = ༅
|
||||
3 = ༆
|
||||
4 =
|
||||
5 =
|
||||
6 = ༈
|
||||
7 = ༸
|
||||
8 = ༴
|
||||
9 = ༼
|
||||
; = ྪ
|
||||
= = ༑
|
||||
[ = ྗ
|
||||
\ = ྭ
|
||||
] = ྙ
|
||||
a = ྟ
|
||||
b = ྲ
|
||||
c = ཱ
|
||||
d = ྡ
|
||||
e = ྒ
|
||||
f = ྣ
|
||||
g = ྤ
|
||||
h = ྥ
|
||||
i = ཽ
|
||||
j = ྦ
|
||||
k = ྨ
|
||||
l = ྩ
|
||||
m = ྴ
|
||||
n = ླ
|
||||
o = ྕ
|
||||
p = ྖ
|
||||
q = ྐ
|
||||
r = ྔ
|
||||
s = ྠ
|
||||
t = ྀ
|
||||
u = ཻ
|
||||
v = ྱ
|
||||
w = ྑ
|
||||
x = ྯ
|
||||
y = ྄
|
||||
z = ྮ
|
||||
|
||||
[bt_altgr:G]
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = :
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = ཊ
|
||||
b = ཪ
|
||||
c = ༃
|
||||
d = ཌ
|
||||
e =
|
||||
f = ཎ
|
||||
g = ‹
|
||||
h = ›
|
||||
i = ༝
|
||||
j = ༷
|
||||
k = ཾ
|
||||
l = ༹
|
||||
m = ཥ
|
||||
n = ྊ
|
||||
o = ༞
|
||||
p = ༟
|
||||
q = ྈ
|
||||
r = ྃ
|
||||
s = ཋ
|
||||
t = ༚
|
||||
u = ༜
|
||||
v = ༒
|
||||
w = ྉ
|
||||
x = ྾
|
||||
y = ༛
|
||||
z = ༓
|
||||
|
||||
[bt_altgr+bt_shift]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ༁
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = ;
|
||||
= = +
|
||||
[ = ༾
|
||||
\ = ྺ
|
||||
] = ༿
|
||||
a = ྚ
|
||||
b = ྼ
|
||||
c = ྰ
|
||||
d = ྜ
|
||||
e =
|
||||
f = ྞ
|
||||
g = «
|
||||
h = »
|
||||
i = ༗
|
||||
j = ༵
|
||||
m = ྵ
|
||||
n = ྋ
|
||||
o = ༘
|
||||
p = ༙
|
||||
r = ྂ
|
||||
s = ྛ
|
||||
v = ྻ
|
||||
x = ྿
|
||||
z = ༶
|
110
cros-keyboard-map/keyd/layouts/bw
Normal file
110
cros-keyboard-map/keyd/layouts/bw
Normal file
|
@ -0,0 +1,110 @@
|
|||
[bw:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(bw_shift)
|
||||
altgr = layer(bw_altgr)
|
||||
|
||||
[bw_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = |
|
||||
] = }
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[bw_altgr:G]
|
||||
' = ́
|
||||
- = ̄
|
||||
6 = ̂
|
||||
8 = ̇
|
||||
9 = ̆
|
||||
; = ̤
|
||||
|
||||
[bw_altgr+bw_shift]
|
||||
' = ̈
|
||||
- = ̱
|
||||
8 = ̣
|
||||
; = ̤
|
101
cros-keyboard-map/keyd/layouts/by
Normal file
101
cros-keyboard-map/keyd/layouts/by
Normal file
|
@ -0,0 +1,101 @@
|
|||
[by:layout]
|
||||
|
||||
' = э
|
||||
, = б
|
||||
- = -
|
||||
. = ю
|
||||
/ = .
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ж
|
||||
= = =
|
||||
[ = х
|
||||
\ = \
|
||||
] = '
|
||||
a = ф
|
||||
b = і
|
||||
c = с
|
||||
d = в
|
||||
e = у
|
||||
f = а
|
||||
g = п
|
||||
h = р
|
||||
i = ш
|
||||
j = о
|
||||
k = л
|
||||
l = д
|
||||
m = ь
|
||||
n = т
|
||||
o = ў
|
||||
p = з
|
||||
q = й
|
||||
r = к
|
||||
s = ы
|
||||
t = е
|
||||
u = г
|
||||
v = м
|
||||
w = ц
|
||||
x = ч
|
||||
y = н
|
||||
z = я
|
||||
shift = layer(by_shift)
|
||||
altgr = layer(by_altgr)
|
||||
|
||||
[by_shift:S]
|
||||
' = Э
|
||||
, = Б
|
||||
- = _
|
||||
. = Ю
|
||||
/ = ,
|
||||
1 = !
|
||||
2 = "
|
||||
3 = №
|
||||
4 = ;
|
||||
5 = %
|
||||
6 = :
|
||||
7 = ?
|
||||
8 = *
|
||||
9 = (
|
||||
; = Ж
|
||||
= = +
|
||||
[ = Х
|
||||
\ = /
|
||||
] = '
|
||||
a = Ф
|
||||
b = І
|
||||
c = С
|
||||
d = В
|
||||
e = У
|
||||
f = А
|
||||
g = П
|
||||
h = Р
|
||||
i = Ш
|
||||
j = О
|
||||
k = Л
|
||||
l = Д
|
||||
m = Ь
|
||||
n = Т
|
||||
o = Ў
|
||||
p = З
|
||||
q = Й
|
||||
r = К
|
||||
s = Ы
|
||||
t = Е
|
||||
u = Г
|
||||
v = М
|
||||
w = Ц
|
||||
x = Ч
|
||||
y = Н
|
||||
z = Я
|
||||
|
||||
[by_altgr:G]
|
||||
8 = ₽
|
||||
|
||||
[by_altgr+by_shift]
|
115
cros-keyboard-map/keyd/layouts/ca
Normal file
115
cros-keyboard-map/keyd/layouts/ca
Normal file
|
@ -0,0 +1,115 @@
|
|||
[ca:layout]
|
||||
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = é
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
\ = <
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(ca_shift)
|
||||
altgr = layer(ca_altgr)
|
||||
|
||||
[ca_shift:S]
|
||||
, = '
|
||||
- = _
|
||||
. = .
|
||||
/ = É
|
||||
1 = !
|
||||
2 = "
|
||||
3 = /
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ?
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
\ = >
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[ca_altgr:G]
|
||||
' = {
|
||||
, = ¯
|
||||
- = ½
|
||||
. =
|
||||
1 = ±
|
||||
2 = @
|
||||
3 = £
|
||||
4 = ¢
|
||||
5 = ¤
|
||||
6 = ¬
|
||||
7 = ¦
|
||||
8 = ²
|
||||
9 = ³
|
||||
; = ~
|
||||
= = ¾
|
||||
[ = [
|
||||
\ = }
|
||||
] = ]
|
||||
m = µ
|
||||
o = §
|
||||
p = ¶
|
||||
|
||||
[ca_altgr+ca_shift]
|
130
cros-keyboard-map/keyd/layouts/cd
Normal file
130
cros-keyboard-map/keyd/layouts/cd
Normal file
|
@ -0,0 +1,130 @@
|
|||
[cd:layout]
|
||||
|
||||
' = ɔ
|
||||
, = ;
|
||||
- = -
|
||||
. = :
|
||||
/ = !
|
||||
1 = &
|
||||
2 = ́
|
||||
3 = ̀
|
||||
4 = (
|
||||
5 = {
|
||||
6 = }
|
||||
7 = )
|
||||
8 = ̂
|
||||
9 = ̌
|
||||
; = m
|
||||
= = =
|
||||
[ = ɛ
|
||||
\ = "
|
||||
] = *
|
||||
a = q
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = ,
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = a
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = z
|
||||
x = x
|
||||
y = y
|
||||
z = w
|
||||
shift = layer(cd_shift)
|
||||
altgr = layer(cd_altgr)
|
||||
|
||||
[cd_shift:S]
|
||||
' = Ɔ
|
||||
, = .
|
||||
- = _
|
||||
. = /
|
||||
/ = '
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = M
|
||||
= = +
|
||||
[ = Ɛ
|
||||
\ = \
|
||||
] = ^
|
||||
a = Q
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = ?
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = A
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = Z
|
||||
x = X
|
||||
y = Y
|
||||
z = W
|
||||
|
||||
[cd_altgr:G]
|
||||
- = %
|
||||
/ = ’
|
||||
1 = #
|
||||
2 = @
|
||||
3 = «
|
||||
4 = [
|
||||
5 = <
|
||||
6 = >
|
||||
7 = ]
|
||||
8 = »
|
||||
9 = ̍
|
||||
= = ×
|
||||
[ = ^
|
||||
\ = |
|
||||
] = $
|
||||
e = œ
|
||||
i = ɨ
|
||||
m = ̧
|
||||
n = ŋ
|
||||
o = ø
|
||||
q = æ
|
||||
u = ʉ
|
||||
|
||||
[cd_altgr+cd_shift]
|
||||
- = °
|
||||
= = ÷
|
||||
e = Œ
|
||||
i = Ɨ
|
||||
n = Ŋ
|
||||
o = Ø
|
||||
q = Æ
|
||||
u = Ʉ
|
174
cros-keyboard-map/keyd/layouts/ch
Normal file
174
cros-keyboard-map/keyd/layouts/ch
Normal file
|
@ -0,0 +1,174 @@
|
|||
[ch:layout]
|
||||
|
||||
' = ä
|
||||
, = ,
|
||||
- = '
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ö
|
||||
[ = ü
|
||||
\ = $
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = z
|
||||
z = y
|
||||
shift = layer(ch_shift)
|
||||
altgr = layer(ch_altgr)
|
||||
|
||||
[ch_shift:S]
|
||||
' = à
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = +
|
||||
2 = "
|
||||
3 = *
|
||||
4 = ç
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = é
|
||||
[ = è
|
||||
\ = £
|
||||
] = !
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Z
|
||||
z = Y
|
||||
|
||||
[ch_altgr:G]
|
||||
' = {
|
||||
, = •
|
||||
. = ·
|
||||
1 = |
|
||||
2 = @
|
||||
3 = #
|
||||
4 = ¼
|
||||
5 = ½
|
||||
6 = ¬
|
||||
7 = |
|
||||
8 = ¢
|
||||
9 = ]
|
||||
[ = [
|
||||
\ = }
|
||||
] = ]
|
||||
a = æ
|
||||
b = “
|
||||
c = ¢
|
||||
d = ð
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ”
|
||||
o = œ
|
||||
p = þ
|
||||
q = @
|
||||
r = ¶
|
||||
s = ß
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ſ
|
||||
x = »
|
||||
y = ←
|
||||
z = «
|
||||
|
||||
[ch_altgr+ch_shift]
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
1 = ¡
|
||||
2 = ⅛
|
||||
3 = £
|
||||
4 = $
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
a = Æ
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = E
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Œ
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
95
cros-keyboard-map/keyd/layouts/cm
Normal file
95
cros-keyboard-map/keyd/layouts/cm
Normal file
|
@ -0,0 +1,95 @@
|
|||
[cm:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(cm_shift)
|
||||
|
||||
[cm_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = |
|
||||
] = }
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
95
cros-keyboard-map/keyd/layouts/cn
Normal file
95
cros-keyboard-map/keyd/layouts/cn
Normal file
|
@ -0,0 +1,95 @@
|
|||
[cn:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(cn_shift)
|
||||
|
||||
[cn_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = |
|
||||
] = }
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
35
cros-keyboard-map/keyd/layouts/colemak
Normal file
35
cros-keyboard-map/keyd/layouts/colemak
Normal file
|
@ -0,0 +1,35 @@
|
|||
[colemak:layout]
|
||||
|
||||
w = w
|
||||
, = ,
|
||||
s = r
|
||||
a = a
|
||||
c = c
|
||||
g = d
|
||||
q = q
|
||||
e = f
|
||||
] = ]
|
||||
d = s
|
||||
/ = /
|
||||
; = o
|
||||
' = '
|
||||
r = p
|
||||
f = t
|
||||
t = g
|
||||
u = l
|
||||
. = .
|
||||
j = n
|
||||
k = e
|
||||
p = ;
|
||||
o = y
|
||||
z = z
|
||||
h = h
|
||||
i = u
|
||||
[ = [
|
||||
v = v
|
||||
l = i
|
||||
m = m
|
||||
n = k
|
||||
x = x
|
||||
b = b
|
||||
y = j
|
172
cros-keyboard-map/keyd/layouts/cz
Normal file
172
cros-keyboard-map/keyd/layouts/cz
Normal file
|
@ -0,0 +1,172 @@
|
|||
[cz:layout]
|
||||
|
||||
' = §
|
||||
, = ,
|
||||
- = =
|
||||
. = .
|
||||
/ = -
|
||||
1 = +
|
||||
2 = ě
|
||||
3 = š
|
||||
4 = č
|
||||
5 = ř
|
||||
6 = ž
|
||||
7 = ý
|
||||
8 = á
|
||||
9 = í
|
||||
; = ů
|
||||
[ = ú
|
||||
] = )
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = z
|
||||
z = y
|
||||
shift = layer(cz_shift)
|
||||
altgr = layer(cz_altgr)
|
||||
|
||||
[cz_shift:S]
|
||||
' = !
|
||||
, = ?
|
||||
- = %
|
||||
. = :
|
||||
/ = _
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = "
|
||||
[ = /
|
||||
\ = '
|
||||
] = (
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Z
|
||||
z = Y
|
||||
|
||||
[cz_altgr:G]
|
||||
' = '
|
||||
, = <
|
||||
- = \
|
||||
. = >
|
||||
/ = *
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = {
|
||||
; = $
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = ~
|
||||
b = {
|
||||
c = &
|
||||
d = Đ
|
||||
e = €
|
||||
f = [
|
||||
g = ]
|
||||
h = `
|
||||
i = →
|
||||
j = '
|
||||
k = ł
|
||||
l = Ł
|
||||
m = ^
|
||||
n = }
|
||||
o = ø
|
||||
p = þ
|
||||
q = \
|
||||
r = ¶
|
||||
s = đ
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = @
|
||||
w = |
|
||||
x = #
|
||||
y = ←
|
||||
z = °
|
||||
|
||||
[cz_altgr+cz_shift]
|
||||
' = ß
|
||||
, = ×
|
||||
. = ÷
|
||||
[ = ÷
|
||||
\ = |
|
||||
] = ×
|
||||
a = Æ
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = E
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
177
cros-keyboard-map/keyd/layouts/de
Normal file
177
cros-keyboard-map/keyd/layouts/de
Normal file
|
@ -0,0 +1,177 @@
|
|||
[de:layout]
|
||||
|
||||
' = ä
|
||||
, = ,
|
||||
- = ß
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ö
|
||||
[ = ü
|
||||
\ = #
|
||||
] = +
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = z
|
||||
z = y
|
||||
shift = layer(de_shift)
|
||||
altgr = layer(de_altgr)
|
||||
|
||||
[de_shift:S]
|
||||
' = Ä
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = !
|
||||
2 = "
|
||||
3 = §
|
||||
4 = $
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = Ö
|
||||
[ =
|
||||
\ = '
|
||||
] = *
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Z
|
||||
z = Y
|
||||
|
||||
[de_altgr:G]
|
||||
, = ·
|
||||
- = \
|
||||
. = …
|
||||
/ = –
|
||||
1 = ¹
|
||||
2 = ²
|
||||
3 = ³
|
||||
4 = ¼
|
||||
5 = ½
|
||||
6 = ¬
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
\ = ’
|
||||
] = ~
|
||||
a = æ
|
||||
b = “
|
||||
c = ¢
|
||||
d = ð
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ”
|
||||
o = ø
|
||||
p = þ
|
||||
q = @
|
||||
r = ¶
|
||||
s = ſ
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ſ
|
||||
x = «
|
||||
y = ←
|
||||
z = »
|
||||
|
||||
[de_altgr+de_shift]
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
/ = —
|
||||
1 = ¡
|
||||
2 = ⅛
|
||||
3 = £
|
||||
4 = ¤
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
] = ¯
|
||||
a = Æ
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = €
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = ‹
|
||||
y = ¥
|
||||
z = ›
|
170
cros-keyboard-map/keyd/layouts/dk
Normal file
170
cros-keyboard-map/keyd/layouts/dk
Normal file
|
@ -0,0 +1,170 @@
|
|||
[dk:layout]
|
||||
|
||||
' = ø
|
||||
, = ,
|
||||
- = +
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = æ
|
||||
[ = å
|
||||
\ = '
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(dk_shift)
|
||||
altgr = layer(dk_altgr)
|
||||
|
||||
[dk_shift:S]
|
||||
' = Ø
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = !
|
||||
2 = "
|
||||
3 = #
|
||||
4 = ¤
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = Æ
|
||||
[ = Å
|
||||
\ = *
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[dk_altgr:G]
|
||||
- = ±
|
||||
. = ·
|
||||
1 = ¡
|
||||
2 = @
|
||||
3 = £
|
||||
4 = $
|
||||
5 = ½
|
||||
6 = ¥
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
= = |
|
||||
a = ª
|
||||
b = “
|
||||
c = ©
|
||||
d = ð
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ”
|
||||
o = œ
|
||||
p = þ
|
||||
q = @
|
||||
r = ®
|
||||
s = ß
|
||||
t = þ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ſ
|
||||
x = »
|
||||
y = ←
|
||||
z = «
|
||||
|
||||
[dk_altgr+dk_shift]
|
||||
- = ¿
|
||||
1 = ¹
|
||||
2 = ²
|
||||
3 = ³
|
||||
4 = ¼
|
||||
5 = ¢
|
||||
6 = ⅝
|
||||
7 = ÷
|
||||
8 = «
|
||||
9 = »
|
||||
= = ¦
|
||||
\ = ×
|
||||
a = º
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = ¢
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Œ
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Þ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
95
cros-keyboard-map/keyd/layouts/dvorak
Normal file
95
cros-keyboard-map/keyd/layouts/dvorak
Normal file
|
@ -0,0 +1,95 @@
|
|||
[dvorak:layout]
|
||||
|
||||
' = -
|
||||
, = w
|
||||
- = [
|
||||
. = v
|
||||
/ = z
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = s
|
||||
= = ]
|
||||
[ = /
|
||||
\ = \
|
||||
] = =
|
||||
a = a
|
||||
b = x
|
||||
c = j
|
||||
d = e
|
||||
e = .
|
||||
f = u
|
||||
g = i
|
||||
h = d
|
||||
i = c
|
||||
j = h
|
||||
k = t
|
||||
l = n
|
||||
m = m
|
||||
n = b
|
||||
o = r
|
||||
p = l
|
||||
q = '
|
||||
r = p
|
||||
s = o
|
||||
t = y
|
||||
u = g
|
||||
v = k
|
||||
w = ,
|
||||
x = q
|
||||
y = f
|
||||
z = ;
|
||||
shift = layer(dvorak_shift)
|
||||
|
||||
[dvorak_shift:S]
|
||||
' = _
|
||||
, = W
|
||||
- = {
|
||||
. = V
|
||||
/ = Z
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = S
|
||||
= = }
|
||||
[ = ?
|
||||
\ = |
|
||||
] = +
|
||||
a = A
|
||||
b = X
|
||||
c = J
|
||||
d = E
|
||||
e = >
|
||||
f = U
|
||||
g = I
|
||||
h = D
|
||||
i = C
|
||||
j = H
|
||||
k = T
|
||||
l = N
|
||||
m = M
|
||||
n = B
|
||||
o = R
|
||||
p = L
|
||||
q = "
|
||||
r = P
|
||||
s = O
|
||||
t = Y
|
||||
u = G
|
||||
v = K
|
||||
w = <
|
||||
x = Q
|
||||
y = F
|
||||
z = :
|
180
cros-keyboard-map/keyd/layouts/dz
Normal file
180
cros-keyboard-map/keyd/layouts/dz
Normal file
|
@ -0,0 +1,180 @@
|
|||
[dz:layout]
|
||||
|
||||
' = ù
|
||||
, = ;
|
||||
- = )
|
||||
. = :
|
||||
/ = !
|
||||
1 = &
|
||||
2 = é
|
||||
3 = "
|
||||
4 = '
|
||||
5 = (
|
||||
6 = -
|
||||
7 = è
|
||||
8 = _
|
||||
9 = ç
|
||||
; = m
|
||||
= = =
|
||||
\ = *
|
||||
] = $
|
||||
a = q
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = ,
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = a
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = z
|
||||
x = x
|
||||
y = y
|
||||
z = w
|
||||
shift = layer(dz_shift)
|
||||
altgr = layer(dz_altgr)
|
||||
|
||||
[dz_shift:S]
|
||||
' = %
|
||||
, = .
|
||||
- = °
|
||||
. = /
|
||||
/ = §
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = M
|
||||
= = +
|
||||
\ = µ
|
||||
] = £
|
||||
a = Q
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = ?
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = A
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = Z
|
||||
x = X
|
||||
y = Y
|
||||
z = W
|
||||
|
||||
[dz_altgr:G]
|
||||
, = ×
|
||||
- = ]
|
||||
. = ÷
|
||||
/ = ¡
|
||||
2 = ~
|
||||
3 = #
|
||||
4 = {
|
||||
5 = [
|
||||
6 = |
|
||||
7 = `
|
||||
8 = \
|
||||
9 = ^
|
||||
; = ö
|
||||
= = }
|
||||
] = ø
|
||||
a = ä
|
||||
b = ↓
|
||||
c = č
|
||||
d = ḍ
|
||||
e = €
|
||||
f = ‘
|
||||
g = ǧ
|
||||
h = ḥ
|
||||
i = î
|
||||
j = ü
|
||||
k = ï
|
||||
l = ŀ
|
||||
m = ¿
|
||||
n = ¬
|
||||
o = ɛ
|
||||
p = ô
|
||||
q = æ
|
||||
r = ṛ
|
||||
s = ṣ
|
||||
t = ṭ
|
||||
u = û
|
||||
v = ɣ
|
||||
w = ẓ
|
||||
x = »
|
||||
y = ÿ
|
||||
z = «
|
||||
|
||||
[dz_altgr+dz_shift]
|
||||
' = Ù
|
||||
, = ⋅
|
||||
- = ≠
|
||||
. = ∕
|
||||
/ = −
|
||||
2 = É
|
||||
4 = —
|
||||
5 = –
|
||||
6 = ‑
|
||||
7 = È
|
||||
8 = ™
|
||||
9 = Ç
|
||||
; = Ö
|
||||
= = ±
|
||||
] = Ø
|
||||
a = Ä
|
||||
b = ↑
|
||||
c = Č
|
||||
d = Ḍ
|
||||
e = ¢
|
||||
f = ‚
|
||||
g = Ǧ
|
||||
h = Ḥ
|
||||
i = Î
|
||||
j =
|
||||
k = Ï
|
||||
l = Ŀ
|
||||
m = …
|
||||
n = →
|
||||
o = Ɛ
|
||||
p = Ô
|
||||
q = Æ
|
||||
r = Ṛ
|
||||
s = Ṣ
|
||||
t = Ṭ
|
||||
u =
|
||||
v = Ɣ
|
||||
w = Ẓ
|
||||
x = ”
|
||||
y = Ÿ
|
||||
z = “
|
179
cros-keyboard-map/keyd/layouts/ee
Normal file
179
cros-keyboard-map/keyd/layouts/ee
Normal file
|
@ -0,0 +1,179 @@
|
|||
[ee:layout]
|
||||
|
||||
' = ä
|
||||
, = ,
|
||||
- = +
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ö
|
||||
[ = ü
|
||||
\ = '
|
||||
] = õ
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(ee_shift)
|
||||
altgr = layer(ee_altgr)
|
||||
|
||||
[ee_shift:S]
|
||||
' = Ä
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = !
|
||||
2 = "
|
||||
3 = #
|
||||
4 = ¤
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = Ö
|
||||
[ =
|
||||
\ = *
|
||||
] = Õ
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[ee_altgr:G]
|
||||
' = ^
|
||||
, = <
|
||||
- = \
|
||||
. = >
|
||||
/ = |
|
||||
1 = ¹
|
||||
2 = @
|
||||
3 = £
|
||||
4 = $
|
||||
5 = ½
|
||||
6 = ¬
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
= = `
|
||||
\ = ½
|
||||
] = §
|
||||
a = æ
|
||||
b = “
|
||||
c = ¢
|
||||
d = ð
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ”
|
||||
o = ø
|
||||
p = þ
|
||||
q = @
|
||||
r = ¶
|
||||
s = š
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ſ
|
||||
x = »
|
||||
y = ←
|
||||
z = ž
|
||||
|
||||
[ee_altgr+ee_shift]
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
/ = ˙
|
||||
1 = ¡
|
||||
2 = ⅛
|
||||
3 = £
|
||||
4 = $
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
= = '
|
||||
a = Æ
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = ¢
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = Š
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = Ž
|
126
cros-keyboard-map/keyd/layouts/epo
Normal file
126
cros-keyboard-map/keyd/layouts/epo
Normal file
|
@ -0,0 +1,126 @@
|
|||
[epo:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = ĵ
|
||||
\ = \
|
||||
] = ĥ
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = ŝ
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = ĝ
|
||||
x = ĉ
|
||||
y = ŭ
|
||||
z = z
|
||||
shift = layer(epo_shift)
|
||||
altgr = layer(epo_altgr)
|
||||
|
||||
[epo_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = Ĵ
|
||||
\ = |
|
||||
] = Ĥ
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Ŝ
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = Ĝ
|
||||
x = Ĉ
|
||||
y =
|
||||
z = Z
|
||||
|
||||
[epo_altgr:G]
|
||||
5 = €
|
||||
[ = [
|
||||
] = ]
|
||||
a = ‘
|
||||
d = “
|
||||
f = ”
|
||||
m = —
|
||||
n = –
|
||||
o = {
|
||||
p = }
|
||||
q = q
|
||||
s = ’
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
|
||||
[epo_altgr+epo_shift]
|
||||
5 = €
|
||||
[ = {
|
||||
] = }
|
||||
m = —
|
||||
n = –
|
||||
o = {
|
||||
p = }
|
||||
q = Q
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
174
cros-keyboard-map/keyd/layouts/es
Normal file
174
cros-keyboard-map/keyd/layouts/es
Normal file
|
@ -0,0 +1,174 @@
|
|||
[es:layout]
|
||||
|
||||
, = ,
|
||||
- = '
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ñ
|
||||
= = ¡
|
||||
\ = ç
|
||||
] = +
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(es_shift)
|
||||
altgr = layer(es_altgr)
|
||||
|
||||
[es_shift:S]
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = !
|
||||
2 = "
|
||||
3 = ·
|
||||
4 = $
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = Ñ
|
||||
= = ¿
|
||||
\ = Ç
|
||||
] = *
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[es_altgr:G]
|
||||
' = {
|
||||
, = •
|
||||
- = \
|
||||
. = ·
|
||||
1 = |
|
||||
2 = @
|
||||
3 = #
|
||||
4 = ~
|
||||
5 = ½
|
||||
6 = ¬
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
[ = [
|
||||
\ = }
|
||||
] = ]
|
||||
a = æ
|
||||
b = “
|
||||
c = ¢
|
||||
d = ð
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ”
|
||||
o = ø
|
||||
p = þ
|
||||
q = @
|
||||
r = ¶
|
||||
s = ß
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ſ
|
||||
x = »
|
||||
y = ←
|
||||
z = «
|
||||
|
||||
[es_altgr+es_shift]
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
1 = ¡
|
||||
2 = ⅛
|
||||
3 = £
|
||||
4 = $
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
a = Æ
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = ¢
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
84
cros-keyboard-map/keyd/layouts/et
Normal file
84
cros-keyboard-map/keyd/layouts/et
Normal file
|
@ -0,0 +1,84 @@
|
|||
[et:layout]
|
||||
|
||||
' = ፦
|
||||
, = ፣
|
||||
- = -
|
||||
. = ፤
|
||||
/ = ፧
|
||||
1 = ፩
|
||||
2 = ፪
|
||||
3 = ፫
|
||||
4 = ፬
|
||||
5 = ፭
|
||||
6 = ፮
|
||||
7 = ፯
|
||||
8 = ፰
|
||||
9 = ፱
|
||||
; = ።
|
||||
= = =
|
||||
[ = ፀ
|
||||
] = ጨ
|
||||
a =
|
||||
b = በ
|
||||
c = ቸ
|
||||
d = ደ
|
||||
e = ﹩
|
||||
f = ፈ
|
||||
g = ገ
|
||||
h = ሀ
|
||||
i = ﹱ
|
||||
j = ጀ
|
||||
k = ከ
|
||||
l = ለ
|
||||
m = መ
|
||||
n = ነ
|
||||
o = ﹳ
|
||||
p = ፐ
|
||||
q = ቀ
|
||||
r = ረ
|
||||
s = ሰ
|
||||
t = ተ
|
||||
u =
|
||||
v = ሸ
|
||||
w = ወ
|
||||
x = አ
|
||||
y = የ
|
||||
z = ዘ
|
||||
shift = layer(et_shift)
|
||||
|
||||
[et_shift:S]
|
||||
' = ፥
|
||||
- = _
|
||||
/ = ?
|
||||
1 = ፲
|
||||
2 = ፳
|
||||
3 = ፴
|
||||
4 = ፵
|
||||
5 = ፶
|
||||
6 = ፷
|
||||
7 = ፸
|
||||
8 = ፹
|
||||
9 = ፺
|
||||
; = ፡
|
||||
= = +
|
||||
[ = ጸ
|
||||
\ = ‐
|
||||
] = ኀ
|
||||
a = ﹨
|
||||
c = ﹸ
|
||||
d = ዸ
|
||||
e = ﹰ
|
||||
g = ጘ
|
||||
h = ሐ
|
||||
i = ﹲ
|
||||
k = ኸ
|
||||
n = ኘ
|
||||
o = ﹴ
|
||||
p = ጰ
|
||||
q = ቐ
|
||||
s = ሠ
|
||||
t = ጠ
|
||||
u = ﹶ
|
||||
v = ቨ
|
||||
x = ዐ
|
||||
z = ዠ
|
167
cros-keyboard-map/keyd/layouts/fi
Normal file
167
cros-keyboard-map/keyd/layouts/fi
Normal file
|
@ -0,0 +1,167 @@
|
|||
[fi:layout]
|
||||
|
||||
' = ä
|
||||
, = ,
|
||||
- = +
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ö
|
||||
[ = å
|
||||
\ = '
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(fi_shift)
|
||||
altgr = layer(fi_altgr)
|
||||
|
||||
[fi_shift:S]
|
||||
' = Ä
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = !
|
||||
2 = "
|
||||
3 = #
|
||||
4 = ¤
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = Ö
|
||||
[ = Å
|
||||
\ = *
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[fi_altgr:G]
|
||||
' = æ
|
||||
, = ’
|
||||
- = \
|
||||
/ = –
|
||||
2 = @
|
||||
3 = £
|
||||
4 = $
|
||||
5 = ‰
|
||||
6 = ‚
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
; = ø
|
||||
a = ə
|
||||
b = b
|
||||
c = c
|
||||
d = ð
|
||||
e = €
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = ı
|
||||
j = j
|
||||
k = ĸ
|
||||
m = µ
|
||||
n = ŋ
|
||||
o = œ
|
||||
q = q
|
||||
r = r
|
||||
s = ß
|
||||
t = þ
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = ×
|
||||
y = y
|
||||
z = ʒ
|
||||
|
||||
[fi_altgr+fi_shift]
|
||||
' = Æ
|
||||
, = ‘
|
||||
- = ¿
|
||||
1 = ¡
|
||||
2 = ”
|
||||
3 = »
|
||||
4 = «
|
||||
5 = “
|
||||
6 = „
|
||||
8 = <
|
||||
9 = >
|
||||
; = Ø
|
||||
a = Ə
|
||||
b = B
|
||||
c = C
|
||||
d = Ð
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = |
|
||||
j = J
|
||||
m = —
|
||||
n = Ŋ
|
||||
o = Œ
|
||||
q = Q
|
||||
r = R
|
||||
s = ẞ
|
||||
t = Þ
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = ·
|
||||
y = Y
|
||||
z = Ʒ
|
174
cros-keyboard-map/keyd/layouts/fo
Normal file
174
cros-keyboard-map/keyd/layouts/fo
Normal file
|
@ -0,0 +1,174 @@
|
|||
[fo:layout]
|
||||
|
||||
' = ø
|
||||
, = ,
|
||||
- = +
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = æ
|
||||
[ = å
|
||||
\ = '
|
||||
] = ð
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(fo_shift)
|
||||
altgr = layer(fo_altgr)
|
||||
|
||||
[fo_shift:S]
|
||||
' = Ø
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = !
|
||||
2 = "
|
||||
3 = #
|
||||
4 = ¤
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = Æ
|
||||
[ = Å
|
||||
\ = *
|
||||
] = Ð
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[fo_altgr:G]
|
||||
- = ±
|
||||
. = ·
|
||||
/ =
|
||||
1 = ¡
|
||||
2 = @
|
||||
3 = £
|
||||
4 = $
|
||||
5 = ½
|
||||
6 = ¥
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
= = |
|
||||
a = ª
|
||||
b = “
|
||||
c = ©
|
||||
d = ð
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ”
|
||||
o = œ
|
||||
p = þ
|
||||
q = @
|
||||
r = ®
|
||||
s = ß
|
||||
t = þ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ſ
|
||||
x = »
|
||||
y = ←
|
||||
z = «
|
||||
|
||||
[fo_altgr+fo_shift]
|
||||
- = ¿
|
||||
/ = ¯
|
||||
1 = ¹
|
||||
2 = ²
|
||||
3 = ³
|
||||
4 = ¼
|
||||
5 = ¢
|
||||
6 = ⅝
|
||||
7 = ÷
|
||||
8 = «
|
||||
9 = »
|
||||
= = ¦
|
||||
\ = ×
|
||||
a = º
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = ¢
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Œ
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Þ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
177
cros-keyboard-map/keyd/layouts/fr
Normal file
177
cros-keyboard-map/keyd/layouts/fr
Normal file
|
@ -0,0 +1,177 @@
|
|||
[fr:layout]
|
||||
|
||||
' = ù
|
||||
, = ;
|
||||
- = )
|
||||
. = :
|
||||
/ = !
|
||||
1 = &
|
||||
2 = é
|
||||
3 = "
|
||||
4 = '
|
||||
5 = (
|
||||
6 = -
|
||||
7 = è
|
||||
8 = _
|
||||
9 = ç
|
||||
0 = à
|
||||
; = m
|
||||
= = =
|
||||
\ = *
|
||||
] = $
|
||||
a = q
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = ,
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = a
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = z
|
||||
x = x
|
||||
y = y
|
||||
z = w
|
||||
shift = layer(fr_shift)
|
||||
altgr = layer(fr_altgr)
|
||||
|
||||
[fr_shift:S]
|
||||
' = %
|
||||
, = .
|
||||
- = °
|
||||
. = /
|
||||
/ = §
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
0 = 0
|
||||
; = M
|
||||
= = +
|
||||
\ = µ
|
||||
] = £
|
||||
a = Q
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = ?
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = A
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = Z
|
||||
x = X
|
||||
y = Y
|
||||
z = W
|
||||
|
||||
[fr_altgr:G]
|
||||
, = •
|
||||
- = ]
|
||||
. = ·
|
||||
1 = ¹
|
||||
2 = ~
|
||||
3 = #
|
||||
4 = {
|
||||
5 = [
|
||||
6 = |
|
||||
7 = `
|
||||
8 = \
|
||||
9 = ^
|
||||
0 = @
|
||||
; = µ
|
||||
= = }
|
||||
] = ¤
|
||||
a = @
|
||||
b = “
|
||||
c = ¢
|
||||
d = ð
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
n = ”
|
||||
o = ø
|
||||
p = þ
|
||||
q = æ
|
||||
r = ¶
|
||||
s = ß
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = „
|
||||
w = «
|
||||
x = »
|
||||
y = ←
|
||||
z = ł
|
||||
|
||||
[fr_altgr+fr_shift]
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
1 = ¡
|
||||
2 = ⅛
|
||||
3 = £
|
||||
4 = $
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
; = º
|
||||
a = Ω
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = ¢
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
n = ’
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Æ
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = <
|
||||
x = >
|
||||
y = ¥
|
||||
z = Ł
|
174
cros-keyboard-map/keyd/layouts/gb
Normal file
174
cros-keyboard-map/keyd/layouts/gb
Normal file
|
@ -0,0 +1,174 @@
|
|||
[gb:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = #
|
||||
] = ]
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(gb_shift)
|
||||
altgr = layer(gb_altgr)
|
||||
|
||||
[gb_shift:S]
|
||||
' = @
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = "
|
||||
3 = £
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = ~
|
||||
] = }
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[gb_altgr:G]
|
||||
, = •
|
||||
- = \
|
||||
. = ·
|
||||
1 = ¹
|
||||
2 = ²
|
||||
3 = ³
|
||||
4 = €
|
||||
5 = ½
|
||||
6 = ¾
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
a = æ
|
||||
b = “
|
||||
c = ¢
|
||||
d = ð
|
||||
e = e
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ”
|
||||
o = ø
|
||||
p = þ
|
||||
q = @
|
||||
r = ¶
|
||||
s = ß
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ſ
|
||||
x = »
|
||||
y = ←
|
||||
z = «
|
||||
|
||||
[gb_altgr+gb_shift]
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
1 = ¡
|
||||
2 = ⅛
|
||||
3 = £
|
||||
4 = ¼
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
a = Æ
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = E
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
125
cros-keyboard-map/keyd/layouts/ge
Normal file
125
cros-keyboard-map/keyd/layouts/ge
Normal file
|
@ -0,0 +1,125 @@
|
|||
[ge:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = ა
|
||||
b = ბ
|
||||
c = ც
|
||||
d = დ
|
||||
e = ე
|
||||
f = ფ
|
||||
g = გ
|
||||
h = ჰ
|
||||
i = ი
|
||||
j = ჯ
|
||||
k = კ
|
||||
l = ლ
|
||||
m = მ
|
||||
n = ნ
|
||||
o = ო
|
||||
p = პ
|
||||
q = ქ
|
||||
r = რ
|
||||
s = ს
|
||||
t = ტ
|
||||
u = უ
|
||||
v = ვ
|
||||
w = წ
|
||||
x = ხ
|
||||
y = ყ
|
||||
z = ზ
|
||||
shift = layer(ge_shift)
|
||||
altgr = layer(ge_altgr)
|
||||
|
||||
[ge_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = |
|
||||
] = }
|
||||
a = A
|
||||
b = B
|
||||
c = ჩ
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = ჟ
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = ღ
|
||||
s = შ
|
||||
t = თ
|
||||
u = U
|
||||
v = V
|
||||
w = ჭ
|
||||
x = X
|
||||
y = Y
|
||||
z = ძ
|
||||
|
||||
[ge_altgr:G]
|
||||
, = «
|
||||
- = —
|
||||
. = »
|
||||
/ = ჻
|
||||
1 = '
|
||||
2 = „
|
||||
3 = “
|
||||
4 = №
|
||||
5 = €
|
||||
7 = §
|
||||
8 = °
|
||||
= = –
|
||||
\ = ~
|
||||
a = ჺ
|
||||
e = ჱ
|
||||
f = ჶ
|
||||
g = ჹ
|
||||
h = ჵ
|
||||
i = ჲ
|
||||
j = ჷ
|
||||
n = ჼ
|
||||
v = ჳ
|
||||
x = ჴ
|
||||
y = ჸ
|
||||
|
||||
[ge_altgr+ge_shift]
|
||||
\ = ~
|
102
cros-keyboard-map/keyd/layouts/gh
Normal file
102
cros-keyboard-map/keyd/layouts/gh
Normal file
|
@ -0,0 +1,102 @@
|
|||
[gh:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(gh_shift)
|
||||
altgr = layer(gh_altgr)
|
||||
|
||||
[gh_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = ₵
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = |
|
||||
] = }
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[gh_altgr:G]
|
||||
4 = $
|
||||
|
||||
[gh_altgr+gh_shift]
|
||||
4 = ¢
|
94
cros-keyboard-map/keyd/layouts/gn
Normal file
94
cros-keyboard-map/keyd/layouts/gn
Normal file
|
@ -0,0 +1,94 @@
|
|||
[gn:layout]
|
||||
|
||||
' = ߯
|
||||
, = ؛
|
||||
- = )
|
||||
. = ،
|
||||
/ = ߹
|
||||
1 = ߱
|
||||
2 = ߫
|
||||
3 = ߵ
|
||||
4 = ߴ
|
||||
5 = (
|
||||
6 = -
|
||||
7 = ߬
|
||||
8 = ߺ
|
||||
9 = ߭
|
||||
; = ߡ
|
||||
= = =
|
||||
[ = ߳
|
||||
\ = ߑ
|
||||
] = $
|
||||
a = ߫
|
||||
b = ߓ
|
||||
c = ߗ
|
||||
d = ߘ
|
||||
e = ߍ
|
||||
f = ߝ
|
||||
g = ߜ
|
||||
h = ߤ
|
||||
i = ߌ
|
||||
j = ߖ
|
||||
k = ߞ
|
||||
l = ߟ
|
||||
m = ߸
|
||||
n = ߣ
|
||||
o = ߐ
|
||||
p = ߔ
|
||||
q = ߊ
|
||||
r = ߙ
|
||||
s = ߛ
|
||||
t = ߕ
|
||||
u = ߎ
|
||||
v = ߢ
|
||||
w = ߠ
|
||||
x = ،
|
||||
y = ߦ
|
||||
z = ߥ
|
||||
shift = layer(gn_shift)
|
||||
altgr = layer(gn_altgr)
|
||||
|
||||
[gn_shift:S]
|
||||
' = ߸
|
||||
. = /
|
||||
1 = ߁
|
||||
2 = ߂
|
||||
3 = ߃
|
||||
4 = ߄
|
||||
5 = ߅
|
||||
6 = ߆
|
||||
7 = ߇
|
||||
8 = ߈
|
||||
9 = ߉
|
||||
= = +
|
||||
\ = *
|
||||
] = £
|
||||
c = ߩ
|
||||
e = ߋ
|
||||
g = ߷
|
||||
j = ߨ
|
||||
l = ߪ
|
||||
m = ؟
|
||||
n = ߒ
|
||||
o = ߏ
|
||||
r = ߚ
|
||||
u = ߶
|
||||
w = <
|
||||
y = ߧ
|
||||
|
||||
[gn_altgr:G]
|
||||
' = %
|
||||
3 = #
|
||||
4 = ⸜
|
||||
5 = ⸝
|
||||
6 = |
|
||||
7 = `
|
||||
8 = \
|
||||
9 = ^
|
||||
= = }
|
||||
] = ¤
|
||||
|
||||
[gn_altgr+gn_shift]
|
||||
3 = £
|
||||
4 = $
|
||||
9 = ±
|
150
cros-keyboard-map/keyd/layouts/gr
Normal file
150
cros-keyboard-map/keyd/layouts/gr
Normal file
|
@ -0,0 +1,150 @@
|
|||
[gr:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = α
|
||||
b = β
|
||||
c = ψ
|
||||
d = δ
|
||||
e = ε
|
||||
f = φ
|
||||
g = γ
|
||||
h = η
|
||||
i = ι
|
||||
j = ξ
|
||||
k = κ
|
||||
l = λ
|
||||
m = μ
|
||||
n = ν
|
||||
o = ο
|
||||
p = π
|
||||
q = ;
|
||||
r = ρ
|
||||
s = σ
|
||||
t = τ
|
||||
u = θ
|
||||
v = ω
|
||||
w = ς
|
||||
x = χ
|
||||
y = υ
|
||||
z = ζ
|
||||
shift = layer(gr_shift)
|
||||
altgr = layer(gr_altgr)
|
||||
|
||||
[gr_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
= = +
|
||||
[ = {
|
||||
\ = |
|
||||
] = }
|
||||
a = Α
|
||||
b = Β
|
||||
c = Ψ
|
||||
d = Δ
|
||||
e = Ε
|
||||
f = Φ
|
||||
g = Γ
|
||||
h = Η
|
||||
i = Ι
|
||||
j = Ξ
|
||||
k = Κ
|
||||
l = Λ
|
||||
m = Μ
|
||||
n = Ν
|
||||
o = Ο
|
||||
p = Π
|
||||
q = :
|
||||
r = Ρ
|
||||
s = Σ
|
||||
t = Τ
|
||||
u = Θ
|
||||
v = Ω
|
||||
w = Σ
|
||||
x = Χ
|
||||
y = Υ
|
||||
z = Ζ
|
||||
|
||||
[gr_altgr:G]
|
||||
, = «
|
||||
- = ±
|
||||
. = »
|
||||
2 = ½
|
||||
3 = £
|
||||
4 = ¼
|
||||
5 = €
|
||||
6 = ϰ
|
||||
7 = ϗ
|
||||
8 = ₯
|
||||
b = ϐ
|
||||
c = ©
|
||||
d = ↓
|
||||
e = €
|
||||
f = ϕ
|
||||
g = ϝ
|
||||
i = ͻ
|
||||
j = ͼ
|
||||
k = ϟ
|
||||
l = ϲ
|
||||
m = ϻ
|
||||
n = ʹ
|
||||
p = ϡ
|
||||
q = ·
|
||||
r = ®
|
||||
u = ϑ
|
||||
v = ϖ
|
||||
w = ϛ
|
||||
x = →
|
||||
y = ϒ
|
||||
z = ͽ
|
||||
|
||||
[gr_altgr+gr_shift]
|
||||
. = ·
|
||||
1 = ¹
|
||||
2 = ²
|
||||
3 = ³
|
||||
4 = ¾
|
||||
7 = Ϗ
|
||||
d = ↑
|
||||
g = Ϝ
|
||||
i = Ͻ
|
||||
j = Ͼ
|
||||
k = Ϟ
|
||||
l = Ϲ
|
||||
m = Ϻ
|
||||
n = ͵
|
||||
p = Ϡ
|
||||
r = ϱ
|
||||
u = ϴ
|
||||
w = Ϛ
|
||||
x = ←
|
||||
y = ϒ
|
||||
z = Ͽ
|
65
cros-keyboard-map/keyd/layouts/graphite
Normal file
65
cros-keyboard-map/keyd/layouts/graphite
Normal file
|
@ -0,0 +1,65 @@
|
|||
[graphite:layout]
|
||||
q = b
|
||||
w = l
|
||||
e = d
|
||||
r = w
|
||||
t = z
|
||||
y = '
|
||||
u = f
|
||||
i = o
|
||||
o = u
|
||||
p = j
|
||||
[ = ;
|
||||
] = =
|
||||
a = n
|
||||
s = r
|
||||
d = t
|
||||
f = s
|
||||
h = y
|
||||
j = h
|
||||
k = a
|
||||
l = e
|
||||
; = i
|
||||
' = ,
|
||||
z = q
|
||||
c = m
|
||||
v = c
|
||||
b = v
|
||||
n = k
|
||||
m = p
|
||||
, = .
|
||||
. = -
|
||||
shift = layer(graphite_shift)
|
||||
|
||||
[graphite_shift:S]
|
||||
b = B
|
||||
l = L
|
||||
d = D
|
||||
w = W
|
||||
z = Z
|
||||
' = _
|
||||
f = F
|
||||
o = O
|
||||
u = U
|
||||
j = J
|
||||
; = :
|
||||
= = +
|
||||
n = N
|
||||
r = R
|
||||
t = T
|
||||
s = S
|
||||
y = Y
|
||||
h = H
|
||||
a = A
|
||||
e = E
|
||||
i = I
|
||||
, = ?
|
||||
x = X
|
||||
m = M
|
||||
c = C
|
||||
v = V
|
||||
q = Q
|
||||
k = K
|
||||
. = >
|
||||
- = "
|
||||
/ = <
|
64
cros-keyboard-map/keyd/layouts/graphite-angle-kp
Normal file
64
cros-keyboard-map/keyd/layouts/graphite-angle-kp
Normal file
|
@ -0,0 +1,64 @@
|
|||
[graphite-angle-kp:layout]
|
||||
q = b
|
||||
w = l
|
||||
e = d
|
||||
r = w
|
||||
t = z
|
||||
y = '
|
||||
u = f
|
||||
i = o
|
||||
o = u
|
||||
p = j
|
||||
[ = ;
|
||||
] = =
|
||||
a = n
|
||||
s = r
|
||||
d = t
|
||||
f = s
|
||||
h = y
|
||||
j = h
|
||||
k = a
|
||||
l = e
|
||||
; = i
|
||||
' = ,
|
||||
z = x
|
||||
x = m
|
||||
b = q
|
||||
n = k
|
||||
m = p
|
||||
, = .
|
||||
. = -
|
||||
shift = layer(graphite-angle-kp_shift)
|
||||
|
||||
[graphite-angle-kp_shift:S]
|
||||
b = B
|
||||
l = L
|
||||
d = D
|
||||
w = W
|
||||
z = Z
|
||||
y = _
|
||||
f = F
|
||||
o = O
|
||||
u = U
|
||||
j = J
|
||||
; = :
|
||||
= = +
|
||||
n = N
|
||||
r = R
|
||||
t = T
|
||||
s = S
|
||||
y = Y
|
||||
h = H
|
||||
a = A
|
||||
e = E
|
||||
i = I
|
||||
, = ?
|
||||
x = X
|
||||
m = M
|
||||
c = C
|
||||
v = V
|
||||
q = Q
|
||||
k = K
|
||||
. = >
|
||||
- = "
|
||||
/ = <
|
169
cros-keyboard-map/keyd/layouts/hr
Normal file
169
cros-keyboard-map/keyd/layouts/hr
Normal file
|
@ -0,0 +1,169 @@
|
|||
[hr:layout]
|
||||
|
||||
' = ć
|
||||
, = ,
|
||||
- = '
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = č
|
||||
= = +
|
||||
[ = š
|
||||
\ = ž
|
||||
] = đ
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = z
|
||||
z = y
|
||||
shift = layer(hr_shift)
|
||||
altgr = layer(hr_altgr)
|
||||
|
||||
[hr_shift:S]
|
||||
' = Ć
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = !
|
||||
2 = "
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = Č
|
||||
= = *
|
||||
[ = Š
|
||||
\ = Ž
|
||||
] = Đ
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Z
|
||||
z = Y
|
||||
|
||||
[hr_altgr:G]
|
||||
' = ß
|
||||
, = <
|
||||
. = >
|
||||
1 = ~
|
||||
3 = ^
|
||||
5 = °
|
||||
7 = `
|
||||
[ = ÷
|
||||
\ = ¤
|
||||
] = ×
|
||||
a = æ
|
||||
b = {
|
||||
c = ¢
|
||||
d = ”
|
||||
e = €
|
||||
f = [
|
||||
g = ]
|
||||
h = ħ
|
||||
i = →
|
||||
k = ł
|
||||
l = ł
|
||||
m = §
|
||||
n = }
|
||||
o = ø
|
||||
p = þ
|
||||
q = \
|
||||
r = ¶
|
||||
s = „
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = @
|
||||
w = |
|
||||
x = ’
|
||||
y = ←
|
||||
z = ‘
|
||||
|
||||
[hr_altgr+hr_shift]
|
||||
, = ×
|
||||
- = ¨
|
||||
. = ÷
|
||||
2 = ˇ
|
||||
4 = ˘
|
||||
6 = ˛
|
||||
8 = ˙
|
||||
9 = '
|
||||
= = ¸
|
||||
a = Æ
|
||||
b = '
|
||||
c = ©
|
||||
d = «
|
||||
e = €
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = }
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = »
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = `
|
||||
w = Ł
|
||||
x = «
|
||||
y = ¥
|
||||
z = »
|
175
cros-keyboard-map/keyd/layouts/hu
Normal file
175
cros-keyboard-map/keyd/layouts/hu
Normal file
|
@ -0,0 +1,175 @@
|
|||
[hu:layout]
|
||||
|
||||
' = á
|
||||
, = ,
|
||||
- = ü
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = é
|
||||
= = ó
|
||||
[ = ő
|
||||
\ = ű
|
||||
] = ú
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = z
|
||||
z = y
|
||||
shift = layer(hu_shift)
|
||||
altgr = layer(hu_altgr)
|
||||
|
||||
[hu_shift:S]
|
||||
' = Á
|
||||
, = ?
|
||||
- =
|
||||
. = :
|
||||
/ = _
|
||||
1 = '
|
||||
2 = "
|
||||
3 = +
|
||||
4 = !
|
||||
5 = %
|
||||
6 = /
|
||||
7 = =
|
||||
8 = (
|
||||
9 = )
|
||||
; = É
|
||||
= = Ó
|
||||
[ = Ő
|
||||
\ =
|
||||
] = ¬
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Z
|
||||
z = Y
|
||||
|
||||
[hu_altgr:G]
|
||||
' = ß
|
||||
, = ;
|
||||
. = >
|
||||
/ = *
|
||||
1 = ~
|
||||
3 = ^
|
||||
7 = `
|
||||
; = $
|
||||
[ = ÷
|
||||
\ = ¤
|
||||
] = ×
|
||||
a = ä
|
||||
b = {
|
||||
c = &
|
||||
d = Đ
|
||||
e = Ä
|
||||
f = [
|
||||
g = ]
|
||||
h = ħ
|
||||
i = Í
|
||||
j = í
|
||||
k = ł
|
||||
l = Ł
|
||||
m = <
|
||||
n = }
|
||||
o = „
|
||||
p = ”
|
||||
q = \
|
||||
r = ¶
|
||||
s = đ
|
||||
t = ŧ
|
||||
u = €
|
||||
v = @
|
||||
w = |
|
||||
x = #
|
||||
y = –
|
||||
z = >
|
||||
|
||||
[hu_altgr+hu_shift]
|
||||
' = ẞ
|
||||
, = ×
|
||||
- = ¨
|
||||
. = ÷
|
||||
2 = ˇ
|
||||
4 = ˘
|
||||
5 = °
|
||||
6 = ˛
|
||||
8 = ˙
|
||||
9 = ´
|
||||
; = ¢
|
||||
= = ¸
|
||||
a = Ä
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = E
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = í
|
||||
j = Í
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
95
cros-keyboard-map/keyd/layouts/id
Normal file
95
cros-keyboard-map/keyd/layouts/id
Normal file
|
@ -0,0 +1,95 @@
|
|||
[id:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(id_shift)
|
||||
|
||||
[id_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = |
|
||||
] = }
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
173
cros-keyboard-map/keyd/layouts/ie
Normal file
173
cros-keyboard-map/keyd/layouts/ie
Normal file
|
@ -0,0 +1,173 @@
|
|||
[ie:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = #
|
||||
] = ]
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(ie_shift)
|
||||
altgr = layer(ie_altgr)
|
||||
|
||||
[ie_shift:S]
|
||||
' = @
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = "
|
||||
3 = £
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = ~
|
||||
] = }
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[ie_altgr:G]
|
||||
' = æ
|
||||
, = ≤
|
||||
- = –
|
||||
. = ≥
|
||||
/ = ÷
|
||||
1 = ¡
|
||||
2 = ™
|
||||
3 = ©
|
||||
4 = €
|
||||
5 = §
|
||||
7 = ¶
|
||||
9 = ª
|
||||
; = …
|
||||
= = ≠
|
||||
[ = “
|
||||
\ = «
|
||||
] = ‘
|
||||
a = á
|
||||
b = ¨
|
||||
d = ð
|
||||
e = é
|
||||
f = ƒ
|
||||
g = ©
|
||||
i = í
|
||||
j = ı
|
||||
l = ´
|
||||
m = ¯
|
||||
o = ó
|
||||
p = ‚
|
||||
q = œ
|
||||
r = ®
|
||||
s = ß
|
||||
t = þ
|
||||
u = ú
|
||||
x = ×
|
||||
y = ¥
|
||||
z = 〈
|
||||
|
||||
[ie_altgr+ie_shift]
|
||||
' = Æ
|
||||
, = „
|
||||
- = —
|
||||
. = ‚
|
||||
/ = ¿
|
||||
1 = ¹
|
||||
2 = ²
|
||||
3 = ³
|
||||
4 = ¢
|
||||
5 = †
|
||||
6 = ‰
|
||||
7 = ⁊
|
||||
8 = •
|
||||
9 = ·
|
||||
; = ‡
|
||||
= = ±
|
||||
[ = ”
|
||||
\ = »
|
||||
] = ’
|
||||
a = Á
|
||||
c = ¸
|
||||
d = Ð
|
||||
e = É
|
||||
i = Í
|
||||
j = ¼
|
||||
k = ½
|
||||
l = ¾
|
||||
o = Ó
|
||||
q = Œ
|
||||
r = ‰
|
||||
s = ẞ
|
||||
t = Þ
|
||||
u = ¬
|
||||
x = ∼
|
||||
y = µ
|
||||
z = 〉
|
134
cros-keyboard-map/keyd/layouts/il
Normal file
134
cros-keyboard-map/keyd/layouts/il
Normal file
|
@ -0,0 +1,134 @@
|
|||
[il:layout]
|
||||
|
||||
' = ,
|
||||
, = ת
|
||||
- = -
|
||||
. = ץ
|
||||
/ = .
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ף
|
||||
= = =
|
||||
[ = ]
|
||||
\ = \
|
||||
] = [
|
||||
a = ש
|
||||
b = נ
|
||||
c = ב
|
||||
d = ג
|
||||
e = ק
|
||||
f = כ
|
||||
g = ע
|
||||
h = י
|
||||
i = ן
|
||||
j = ח
|
||||
k = ל
|
||||
l = ך
|
||||
m = צ
|
||||
n = מ
|
||||
o = ם
|
||||
p = פ
|
||||
q = /
|
||||
r = ר
|
||||
s = ד
|
||||
t = א
|
||||
u = ו
|
||||
v = ה
|
||||
w = '
|
||||
x = ס
|
||||
y = ט
|
||||
z = ז
|
||||
shift = layer(il_shift)
|
||||
altgr = layer(il_altgr)
|
||||
|
||||
[il_shift:S]
|
||||
' = "
|
||||
, = >
|
||||
- = _
|
||||
. = <
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = )
|
||||
; = :
|
||||
= = +
|
||||
[ = }
|
||||
\ = |
|
||||
] = {
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[il_altgr:G]
|
||||
' = ״
|
||||
, = ’
|
||||
- = ־
|
||||
. = ‚
|
||||
/ = ÷
|
||||
3 = €
|
||||
4 = ₪
|
||||
5 = °
|
||||
6 = ֫
|
||||
7 = ֽ
|
||||
8 = ×
|
||||
9 =
|
||||
; = „
|
||||
= = –
|
||||
[ = ֲ
|
||||
\ = ֻ
|
||||
] = ֿ
|
||||
a = ְ
|
||||
c = ֱ
|
||||
e = ָ
|
||||
g = ױ
|
||||
h = ײ
|
||||
j = ִ
|
||||
l = ”
|
||||
m = ֵ
|
||||
p = ַ
|
||||
q = ׂ
|
||||
r = ֳ
|
||||
s = ּ
|
||||
u = ֹ
|
||||
w = ׁ
|
||||
x = ֶ
|
||||
y = װ
|
||||
|
||||
[il_altgr+il_shift]
|
||||
b = ׆
|
145
cros-keyboard-map/keyd/layouts/in
Normal file
145
cros-keyboard-map/keyd/layouts/in
Normal file
|
@ -0,0 +1,145 @@
|
|||
[in:layout]
|
||||
|
||||
' = ट
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = य
|
||||
1 = १
|
||||
2 = २
|
||||
3 = ३
|
||||
4 = ४
|
||||
5 = ५
|
||||
6 = ६
|
||||
7 = ७
|
||||
8 = ८
|
||||
9 = ९
|
||||
; = च
|
||||
= = ृ
|
||||
[ = ड
|
||||
\ = ॉ
|
||||
] = ़
|
||||
a = ो
|
||||
b = व
|
||||
c = म
|
||||
d = ्
|
||||
e = ा
|
||||
f = ि
|
||||
g = ु
|
||||
h = प
|
||||
i = ग
|
||||
j = र
|
||||
k = क
|
||||
l = त
|
||||
m = स
|
||||
n = ल
|
||||
o = द
|
||||
p = ज
|
||||
q = ौ
|
||||
r = ी
|
||||
s = े
|
||||
t = ू
|
||||
u = ह
|
||||
v = न
|
||||
w = ै
|
||||
x = ं
|
||||
y = ब
|
||||
z = ॆ
|
||||
shift = layer(in_shift)
|
||||
altgr = layer(in_altgr)
|
||||
|
||||
[in_shift:S]
|
||||
' = ठ
|
||||
, = ष
|
||||
- = ः
|
||||
. = ।
|
||||
/ = य़
|
||||
1 = ऍ
|
||||
2 = ॅ
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = छ
|
||||
= = ऋ
|
||||
[ = ढ
|
||||
\ = ऑ
|
||||
] = ञ
|
||||
a = ओ
|
||||
b = ऴ
|
||||
c = ण
|
||||
d = अ
|
||||
e = आ
|
||||
f = इ
|
||||
g = उ
|
||||
h = फ
|
||||
i = घ
|
||||
j = ऱ
|
||||
k = ख
|
||||
l = थ
|
||||
m = श
|
||||
n = ळ
|
||||
o = ध
|
||||
p = झ
|
||||
q = औ
|
||||
r = ई
|
||||
s = ए
|
||||
t = ऊ
|
||||
u = ङ
|
||||
v = ऩ
|
||||
w = ऐ
|
||||
x = ँ
|
||||
y = भ
|
||||
z = ऎ
|
||||
|
||||
[in_altgr:G]
|
||||
, = ॰
|
||||
- = -
|
||||
. = ॥
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ॒
|
||||
= = ॄ
|
||||
[ = ड़
|
||||
\ = \
|
||||
c = ॔
|
||||
f = ॢ
|
||||
i = ग़
|
||||
k = क़
|
||||
p = ज़
|
||||
r = ॣ
|
||||
z = ॓
|
||||
|
||||
[in_altgr+in_shift]
|
||||
' = ॑
|
||||
- = _
|
||||
. = ऽ
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = ₹
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
= = ॠ
|
||||
[ = ढ़
|
||||
\ = |
|
||||
f = ऌ
|
||||
h = फ़
|
||||
k = ख़
|
||||
r = ॡ
|
||||
x = ॐ
|
143
cros-keyboard-map/keyd/layouts/iq
Normal file
143
cros-keyboard-map/keyd/layouts/iq
Normal file
|
@ -0,0 +1,143 @@
|
|||
[iq:layout]
|
||||
|
||||
' = ط
|
||||
, = و
|
||||
- = -
|
||||
. = ز
|
||||
/ = ظ
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ك
|
||||
= = =
|
||||
[ = ج
|
||||
\ = \
|
||||
] = د
|
||||
a = ش
|
||||
b = ﻻ
|
||||
c = ؤ
|
||||
d = ي
|
||||
e = ث
|
||||
f = ب
|
||||
g = ل
|
||||
h = ا
|
||||
i = ه
|
||||
j = ت
|
||||
k = ن
|
||||
l = م
|
||||
m = ة
|
||||
n = ى
|
||||
o = خ
|
||||
p = ح
|
||||
q = ض
|
||||
r = ق
|
||||
s = س
|
||||
t = ف
|
||||
u = ع
|
||||
v = ر
|
||||
w = ص
|
||||
x = ء
|
||||
y = غ
|
||||
z = ئ
|
||||
shift = layer(iq_shift)
|
||||
altgr = layer(iq_altgr)
|
||||
|
||||
[iq_shift:S]
|
||||
' = "
|
||||
, = ,
|
||||
- = _
|
||||
. = .
|
||||
/ = ؟
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = )
|
||||
; = :
|
||||
= = +
|
||||
[ = <
|
||||
\ = …
|
||||
] = >
|
||||
a = ِ
|
||||
b = ﻵ
|
||||
c = }
|
||||
d = ]
|
||||
e = ُ
|
||||
f = [
|
||||
g = ﻷ
|
||||
h = أ
|
||||
i = ÷
|
||||
j = ـ
|
||||
k = ،
|
||||
l = /
|
||||
m = '
|
||||
n = آ
|
||||
o = ×
|
||||
p = ؛
|
||||
q = َ
|
||||
r = ٌ
|
||||
s = ٍ
|
||||
t = ﻹ
|
||||
u = `
|
||||
v = {
|
||||
w = ً
|
||||
x = ْ
|
||||
y = إ
|
||||
z = ~
|
||||
|
||||
[iq_altgr:G]
|
||||
' = ⟩
|
||||
, = ٬
|
||||
- = –
|
||||
. = ژ
|
||||
/ = ٭
|
||||
1 = ١
|
||||
2 = ٢
|
||||
3 = ٣
|
||||
4 = ٤
|
||||
5 = ٥
|
||||
6 = ٦
|
||||
7 = ٧
|
||||
8 = ٨
|
||||
9 = ٩
|
||||
; = گ
|
||||
= = ≠
|
||||
[ = چ
|
||||
\ = ⟨
|
||||
f = پ
|
||||
h = ٱ
|
||||
k = ٫
|
||||
n = ٰ
|
||||
t = ڤ
|
||||
x = «
|
||||
z = »
|
||||
|
||||
[iq_altgr+iq_shift]
|
||||
' =
|
||||
- = ‑
|
||||
/ =
|
||||
5 = ‰
|
||||
= = ≈
|
||||
[ =
|
||||
\ =
|
||||
] =
|
||||
e =
|
||||
i =
|
||||
p =
|
||||
q =
|
||||
r =
|
||||
u =
|
||||
w =
|
||||
x = ‹
|
||||
y =
|
||||
z = ›
|
140
cros-keyboard-map/keyd/layouts/ir
Normal file
140
cros-keyboard-map/keyd/layouts/ir
Normal file
|
@ -0,0 +1,140 @@
|
|||
[ir:layout]
|
||||
|
||||
' = گ
|
||||
, = و
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = ۱
|
||||
2 = ۲
|
||||
3 = ۳
|
||||
4 = ۴
|
||||
5 = ۵
|
||||
6 = ۶
|
||||
7 = ۷
|
||||
8 = ۸
|
||||
9 = ۹
|
||||
; = ک
|
||||
= = =
|
||||
[ = ج
|
||||
\ = \
|
||||
] = چ
|
||||
a = ش
|
||||
b = ذ
|
||||
c = ز
|
||||
d = ی
|
||||
e = ث
|
||||
f = ب
|
||||
g = ل
|
||||
h = ا
|
||||
i = ه
|
||||
j = ت
|
||||
k = ن
|
||||
l = م
|
||||
m = پ
|
||||
n = د
|
||||
o = خ
|
||||
p = ح
|
||||
q = ض
|
||||
r = ق
|
||||
s = س
|
||||
t = ف
|
||||
u = ع
|
||||
v = ر
|
||||
w = ص
|
||||
x = ط
|
||||
y = غ
|
||||
z = ظ
|
||||
shift = layer(ir_shift)
|
||||
altgr = layer(ir_altgr)
|
||||
|
||||
[ir_shift:S]
|
||||
' = ؛
|
||||
, = >
|
||||
- = ـ
|
||||
. = <
|
||||
/ = ؟
|
||||
1 = !
|
||||
2 = ٬
|
||||
3 = ٫
|
||||
4 = ﷼
|
||||
5 = ٪
|
||||
6 = ×
|
||||
7 = ،
|
||||
8 = *
|
||||
9 = )
|
||||
; = :
|
||||
= = +
|
||||
[ = }
|
||||
\ = |
|
||||
] = {
|
||||
a = ؤ
|
||||
b =
|
||||
c = ژ
|
||||
d = ي
|
||||
e = ٍ
|
||||
f = إ
|
||||
g = أ
|
||||
h = آ
|
||||
i = ّ
|
||||
j = ة
|
||||
k = »
|
||||
l = «
|
||||
m = ء
|
||||
n = ٔ
|
||||
o = ]
|
||||
p = [
|
||||
q = ْ
|
||||
r = ً
|
||||
s = ئ
|
||||
t = ُ
|
||||
u = َ
|
||||
v = ٰ
|
||||
w = ٌ
|
||||
x = ٓ
|
||||
y = ِ
|
||||
z = ك
|
||||
|
||||
[ir_altgr:G]
|
||||
' = "
|
||||
, = ,
|
||||
- = _
|
||||
. = '
|
||||
/ = ?
|
||||
1 = `
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = •
|
||||
9 =
|
||||
; = ;
|
||||
= = −
|
||||
[ =
|
||||
\ = ‐
|
||||
] =
|
||||
b =
|
||||
d = ى
|
||||
h = ٱ
|
||||
i =
|
||||
k = ﴾
|
||||
l = ﴿
|
||||
m = …
|
||||
n = ٕ
|
||||
o =
|
||||
p =
|
||||
q = °
|
||||
v = ٖ
|
||||
|
||||
[ir_altgr+ir_shift]
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
175
cros-keyboard-map/keyd/layouts/is
Normal file
175
cros-keyboard-map/keyd/layouts/is
Normal file
|
@ -0,0 +1,175 @@
|
|||
[is:layout]
|
||||
|
||||
, = ,
|
||||
- = ö
|
||||
. = .
|
||||
/ = þ
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = æ
|
||||
= = -
|
||||
[ = ð
|
||||
\ = +
|
||||
] = '
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(is_shift)
|
||||
altgr = layer(is_altgr)
|
||||
|
||||
[is_shift:S]
|
||||
, = ;
|
||||
- = Ö
|
||||
. = :
|
||||
/ = Þ
|
||||
1 = !
|
||||
2 = "
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = Æ
|
||||
= = _
|
||||
[ = Ð
|
||||
\ = *
|
||||
] = ?
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[is_altgr:G]
|
||||
, = •
|
||||
- = \
|
||||
. = ·
|
||||
1 = ¹
|
||||
2 = ²
|
||||
3 = ³
|
||||
4 = ¼
|
||||
5 = ½
|
||||
6 = ¬
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
; = ^
|
||||
\ = `
|
||||
] = ~
|
||||
a = æ
|
||||
b = “
|
||||
c = ¢
|
||||
d = „
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ”
|
||||
o = ø
|
||||
p = |
|
||||
q = @
|
||||
r = ¶
|
||||
s = ß
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ſ
|
||||
x = »
|
||||
y = ←
|
||||
z = «
|
||||
|
||||
[is_altgr+is_shift]
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
1 = ¡
|
||||
2 = ⅛
|
||||
3 = £
|
||||
4 = ¤
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
a = Æ
|
||||
b = ‘
|
||||
c = ©
|
||||
d = “
|
||||
e = ¢
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Ø
|
||||
p = π
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
178
cros-keyboard-map/keyd/layouts/it
Normal file
178
cros-keyboard-map/keyd/layouts/it
Normal file
|
@ -0,0 +1,178 @@
|
|||
[it:layout]
|
||||
|
||||
' = à
|
||||
, = ,
|
||||
- = '
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ò
|
||||
= = ì
|
||||
[ = è
|
||||
\ = ù
|
||||
] = +
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(it_shift)
|
||||
altgr = layer(it_altgr)
|
||||
|
||||
[it_shift:S]
|
||||
' = °
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = !
|
||||
2 = "
|
||||
3 = £
|
||||
4 = $
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = ç
|
||||
= = ^
|
||||
[ = é
|
||||
\ = §
|
||||
] = *
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[it_altgr:G]
|
||||
' = #
|
||||
- = `
|
||||
. = ·
|
||||
1 = ¹
|
||||
2 = ²
|
||||
3 = ³
|
||||
4 = ¼
|
||||
5 = ½
|
||||
6 = ¬
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
; = @
|
||||
= = ~
|
||||
[ = [
|
||||
] = ]
|
||||
a = æ
|
||||
b = ”
|
||||
c = ¢
|
||||
d = ð
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ñ
|
||||
o = ø
|
||||
p = þ
|
||||
q = @
|
||||
r = ¶
|
||||
s = ß
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = “
|
||||
w = ſ
|
||||
x = »
|
||||
y = ←
|
||||
z = «
|
||||
|
||||
[it_altgr+it_shift]
|
||||
, = ×
|
||||
- = ¿
|
||||
/ = ÷
|
||||
1 = ¡
|
||||
4 = ⅛
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
[ = {
|
||||
] = }
|
||||
a = Æ
|
||||
b = ’
|
||||
c = ©
|
||||
d = Ð
|
||||
e = ¢
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = Ñ
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‘
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
95
cros-keyboard-map/keyd/layouts/jp
Normal file
95
cros-keyboard-map/keyd/layouts/jp
Normal file
|
@ -0,0 +1,95 @@
|
|||
[jp:layout]
|
||||
|
||||
' = :
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = ^
|
||||
[ = @
|
||||
\ = ]
|
||||
] = [
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(jp_shift)
|
||||
|
||||
[jp_shift:S]
|
||||
' = *
|
||||
, = <
|
||||
- = =
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = "
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = &
|
||||
7 = '
|
||||
8 = (
|
||||
9 = )
|
||||
; = +
|
||||
= = ~
|
||||
[ = `
|
||||
\ = }
|
||||
] = {
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
95
cros-keyboard-map/keyd/layouts/jv
Normal file
95
cros-keyboard-map/keyd/layouts/jv
Normal file
|
@ -0,0 +1,95 @@
|
|||
[jv:layout]
|
||||
|
||||
' = ꦵ
|
||||
, = ꧈
|
||||
- = ꦎ
|
||||
. = ꧉
|
||||
/ = ꦂ
|
||||
1 = ꧑
|
||||
2 = ꧒
|
||||
3 = ꧓
|
||||
4 = ꧔
|
||||
5 = ꧕
|
||||
6 = ꧖
|
||||
7 = ꧗
|
||||
8 = ꧘
|
||||
9 = ꧙
|
||||
; = ꧇
|
||||
= = ꦉ
|
||||
[ = ꧊
|
||||
\ = ꧀
|
||||
] = ꧌
|
||||
a = ꦻ
|
||||
b = ꦧ
|
||||
c = ꦕ
|
||||
d = ꦢ
|
||||
e = ꦼ
|
||||
f = ꦝ
|
||||
g = ꦒ
|
||||
h = ꦲ
|
||||
i = ꦶ
|
||||
j = ꦗ
|
||||
k = ꦏ
|
||||
l = ꦭ
|
||||
m = ꦩ
|
||||
n = ꦤ
|
||||
o = ꦺ
|
||||
p = ꦥ
|
||||
q = ꦐ
|
||||
r = ꦫ
|
||||
s = ꦱ
|
||||
t = ꦠ
|
||||
u = ꦸ
|
||||
v = ꦛ
|
||||
w = ꦮ
|
||||
x = ꦚ
|
||||
y = ꦪ
|
||||
z = ꦔ
|
||||
shift = layer(jv_shift)
|
||||
|
||||
[jv_shift:S]
|
||||
' = "
|
||||
, = ꦆ
|
||||
- = _
|
||||
. = ꦇ
|
||||
/ = ?
|
||||
1 = ꧆
|
||||
2 = ꧏ
|
||||
3 = ꧃
|
||||
4 = ꧄
|
||||
5 = ꧅
|
||||
6 = ꦿ
|
||||
7 = ꦽ
|
||||
8 = ꦳
|
||||
9 = ꧁
|
||||
; = ꦈ
|
||||
= = ꦋ
|
||||
[ = ꧋
|
||||
\ = ꦅ
|
||||
] = ꧍
|
||||
a = ꦄ
|
||||
b = ꦨ
|
||||
c = ꦖ
|
||||
d = ꦣ
|
||||
e = ꦌ
|
||||
f = ꦞ
|
||||
g = ꦓ
|
||||
h = ꦃ
|
||||
i = ꦷ
|
||||
j = ꦙ
|
||||
k = ꦑ
|
||||
l = ꦊ
|
||||
m = ꦀ
|
||||
n = ꦟ
|
||||
o = ꦴ
|
||||
p = ꦦ
|
||||
q = ꦰ
|
||||
r = ꦬ
|
||||
s = ꦯ
|
||||
t = ꦡ
|
||||
u = ꦹ
|
||||
v = ꦜ
|
||||
w = ꦍ
|
||||
x = ꦘ
|
||||
y = ꦾ
|
||||
z = ꦁ
|
110
cros-keyboard-map/keyd/layouts/ke
Normal file
110
cros-keyboard-map/keyd/layouts/ke
Normal file
|
@ -0,0 +1,110 @@
|
|||
[ke:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(ke_shift)
|
||||
altgr = layer(ke_altgr)
|
||||
|
||||
[ke_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = |
|
||||
] = }
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[ke_altgr:G]
|
||||
' = ́
|
||||
- = ̄
|
||||
6 = ̂
|
||||
8 = ̇
|
||||
9 = ̆
|
||||
; = ̤
|
||||
|
||||
[ke_altgr+ke_shift]
|
||||
' = ̈
|
||||
- = ̱
|
||||
8 = ̣
|
||||
; = ̤
|
95
cros-keyboard-map/keyd/layouts/kg
Normal file
95
cros-keyboard-map/keyd/layouts/kg
Normal file
|
@ -0,0 +1,95 @@
|
|||
[kg:layout]
|
||||
|
||||
' = э
|
||||
, = б
|
||||
- = ө
|
||||
. = ю
|
||||
/ = .
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ж
|
||||
= = ң
|
||||
[ = х
|
||||
\ = ү
|
||||
] = ъ
|
||||
a = ф
|
||||
b = и
|
||||
c = с
|
||||
d = в
|
||||
e = у
|
||||
f = а
|
||||
g = п
|
||||
h = р
|
||||
i = ш
|
||||
j = о
|
||||
k = л
|
||||
l = д
|
||||
m = ь
|
||||
n = т
|
||||
o = щ
|
||||
p = з
|
||||
q = й
|
||||
r = к
|
||||
s = ы
|
||||
t = е
|
||||
u = г
|
||||
v = м
|
||||
w = ц
|
||||
x = ч
|
||||
y = н
|
||||
z = я
|
||||
shift = layer(kg_shift)
|
||||
|
||||
[kg_shift:S]
|
||||
' = Э
|
||||
, = Б
|
||||
- = Ө
|
||||
. = Ю
|
||||
/ = ,
|
||||
1 = !
|
||||
2 = "
|
||||
3 = №
|
||||
4 = ;
|
||||
5 = %
|
||||
6 = :
|
||||
7 = ?
|
||||
8 = *
|
||||
9 = (
|
||||
; = Ж
|
||||
= = Ң
|
||||
[ = Х
|
||||
\ = Ү
|
||||
] = Ъ
|
||||
a = Ф
|
||||
b = И
|
||||
c = С
|
||||
d = В
|
||||
e = У
|
||||
f = А
|
||||
g = П
|
||||
h = Р
|
||||
i = Ш
|
||||
j = О
|
||||
k = Л
|
||||
l = Д
|
||||
m = Ь
|
||||
n = Т
|
||||
o = Щ
|
||||
p = З
|
||||
q = Й
|
||||
r = К
|
||||
s = Ы
|
||||
t = Е
|
||||
u = Г
|
||||
v = М
|
||||
w = Ц
|
||||
x = Ч
|
||||
y = Н
|
||||
z = Я
|
170
cros-keyboard-map/keyd/layouts/kh
Normal file
170
cros-keyboard-map/keyd/layouts/kh
Normal file
|
@ -0,0 +1,170 @@
|
|||
[kh:layout]
|
||||
|
||||
' = ់
|
||||
, =
|
||||
- = ឥ
|
||||
. = ។
|
||||
/ = ៊
|
||||
1 = ១
|
||||
2 = ២
|
||||
3 = ៣
|
||||
4 = ៤
|
||||
5 = ៥
|
||||
6 = ៦
|
||||
7 = ៧
|
||||
8 = ៨
|
||||
9 = ៩
|
||||
; = ើ
|
||||
= = ឲ
|
||||
[ = ៀ
|
||||
\ = ឮ
|
||||
] = ឪ
|
||||
a = ា
|
||||
b = ប
|
||||
c = ច
|
||||
d = ដ
|
||||
e = េ
|
||||
f = ថ
|
||||
g = ង
|
||||
h = ហ
|
||||
i = ិ
|
||||
j = ្
|
||||
k = ក
|
||||
l = ល
|
||||
m = ម
|
||||
n = ន
|
||||
o = ោ
|
||||
p = ផ
|
||||
q = ឆ
|
||||
r = រ
|
||||
s = ស
|
||||
t = ត
|
||||
u = ុ
|
||||
v = វ
|
||||
w = ឹ
|
||||
x = ខ
|
||||
y = យ
|
||||
z = ឋ
|
||||
shift = layer(kh_shift)
|
||||
altgr = layer(kh_altgr)
|
||||
|
||||
[kh_shift:S]
|
||||
' = ៉
|
||||
, =
|
||||
- = ៌
|
||||
. = ៕
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = ៗ
|
||||
3 = "
|
||||
4 = ៛
|
||||
5 = %
|
||||
6 = ៍
|
||||
7 = ័
|
||||
8 = ៏
|
||||
9 = (
|
||||
; =
|
||||
= = =
|
||||
[ = ឿ
|
||||
\ = ឭ
|
||||
] = ឧ
|
||||
a =
|
||||
b = ព
|
||||
c = ជ
|
||||
d = ឌ
|
||||
e = ែ
|
||||
f = ធ
|
||||
g = អ
|
||||
h = ះ
|
||||
i = ី
|
||||
j = ញ
|
||||
k = គ
|
||||
l = ឡ
|
||||
m = ំ
|
||||
n = ណ
|
||||
o = ៅ
|
||||
p = ភ
|
||||
q = ឈ
|
||||
r = ឬ
|
||||
s = ៃ
|
||||
t = ទ
|
||||
u = ូ
|
||||
v =
|
||||
w = ឺ
|
||||
x = ឃ
|
||||
y = ួ
|
||||
z = ឍ
|
||||
|
||||
[kh_altgr:G]
|
||||
' = ៈ
|
||||
, = ,
|
||||
- = x
|
||||
. = .
|
||||
/ = /
|
||||
1 =
|
||||
2 = @
|
||||
3 = ៑
|
||||
4 = $
|
||||
5 = €
|
||||
6 = ៙
|
||||
7 = ៚
|
||||
8 = *
|
||||
9 = {
|
||||
; = ៖
|
||||
= = ៎
|
||||
[ = ឩ
|
||||
\ = \
|
||||
] = ឳ
|
||||
b = ឞ
|
||||
e = ឯ
|
||||
i = ឦ
|
||||
k = ឝ
|
||||
o = ឱ
|
||||
p = ឰ
|
||||
q = ៜ
|
||||
r = ឫ
|
||||
t = ឨ
|
||||
w = ៝
|
||||
|
||||
[kh_altgr+kh_shift]
|
||||
' = ᧶
|
||||
, = ᧾
|
||||
. = ᧿
|
||||
1 = ៱
|
||||
2 = ៲
|
||||
3 = ៳
|
||||
4 = ៴
|
||||
5 = ៵
|
||||
6 = ៶
|
||||
7 = ៷
|
||||
8 = ៸
|
||||
9 = ៹
|
||||
; = ᧵
|
||||
[ = ᧪
|
||||
] = ᧫
|
||||
a = ᧬
|
||||
b = ᧻
|
||||
c = ᧹
|
||||
d = ᧮
|
||||
e = ᧢
|
||||
f = ᧯
|
||||
g = ᧰
|
||||
h = ᧱
|
||||
i = ᧧
|
||||
j = ᧲
|
||||
k = ᧳
|
||||
l = ᧴
|
||||
m = ᧽
|
||||
n = ᧼
|
||||
o = ᧨
|
||||
p = ᧩
|
||||
q = ᧠
|
||||
r = ᧣
|
||||
s = ᧭
|
||||
t = ᧤
|
||||
u = ᧦
|
||||
v = ᧺
|
||||
w = ᧡
|
||||
x = ᧸
|
||||
y = ᧥
|
||||
z = ᧷
|
95
cros-keyboard-map/keyd/layouts/kr
Normal file
95
cros-keyboard-map/keyd/layouts/kr
Normal file
|
@ -0,0 +1,95 @@
|
|||
[kr:layout]
|
||||
|
||||
' = '
|
||||
, = ,
|
||||
- = -
|
||||
. = .
|
||||
/ = /
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ;
|
||||
= = =
|
||||
[ = [
|
||||
\ = \
|
||||
] = ]
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(kr_shift)
|
||||
|
||||
[kr_shift:S]
|
||||
' = "
|
||||
, = <
|
||||
- = _
|
||||
. = >
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = @
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = ^
|
||||
7 = &
|
||||
8 = *
|
||||
9 = (
|
||||
; = :
|
||||
= = +
|
||||
[ = {
|
||||
\ = |
|
||||
] = }
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
95
cros-keyboard-map/keyd/layouts/kz
Normal file
95
cros-keyboard-map/keyd/layouts/kz
Normal file
|
@ -0,0 +1,95 @@
|
|||
[kz:layout]
|
||||
|
||||
' = э
|
||||
, = б
|
||||
- = ө
|
||||
. = ю
|
||||
/ = №
|
||||
1 = "
|
||||
2 = ә
|
||||
3 = і
|
||||
4 = ң
|
||||
5 = ғ
|
||||
6 = ,
|
||||
7 = .
|
||||
8 = ү
|
||||
9 = ұ
|
||||
; = ж
|
||||
= = һ
|
||||
[ = х
|
||||
\ = \
|
||||
] = ъ
|
||||
a = ф
|
||||
b = и
|
||||
c = с
|
||||
d = в
|
||||
e = у
|
||||
f = а
|
||||
g = п
|
||||
h = р
|
||||
i = ш
|
||||
j = о
|
||||
k = л
|
||||
l = д
|
||||
m = ь
|
||||
n = т
|
||||
o = щ
|
||||
p = з
|
||||
q = й
|
||||
r = к
|
||||
s = ы
|
||||
t = е
|
||||
u = г
|
||||
v = м
|
||||
w = ц
|
||||
x = ч
|
||||
y = н
|
||||
z = я
|
||||
shift = layer(kz_shift)
|
||||
|
||||
[kz_shift:S]
|
||||
' = Э
|
||||
, = Б
|
||||
- = Ө
|
||||
. = Ю
|
||||
/ = ?
|
||||
1 = !
|
||||
2 = Ә
|
||||
3 = І
|
||||
4 = Ң
|
||||
5 = Ғ
|
||||
6 = ;
|
||||
7 = :
|
||||
8 = Ү
|
||||
9 = Ұ
|
||||
; = Ж
|
||||
= = Һ
|
||||
[ = Х
|
||||
\ = /
|
||||
] = Ъ
|
||||
a = Ф
|
||||
b = И
|
||||
c = С
|
||||
d = В
|
||||
e = У
|
||||
f = А
|
||||
g = П
|
||||
h = Р
|
||||
i = Ш
|
||||
j = О
|
||||
k = Л
|
||||
l = Д
|
||||
m = Ь
|
||||
n = Т
|
||||
o = Щ
|
||||
p = З
|
||||
q = Й
|
||||
r = К
|
||||
s = Ы
|
||||
t = Е
|
||||
u = Г
|
||||
v = М
|
||||
w = Ц
|
||||
x = Ч
|
||||
y = Н
|
||||
z = Я
|
85
cros-keyboard-map/keyd/layouts/la
Normal file
85
cros-keyboard-map/keyd/layouts/la
Normal file
|
@ -0,0 +1,85 @@
|
|||
[la:layout]
|
||||
|
||||
' = ງ
|
||||
, = ມ
|
||||
- = ຊ
|
||||
. = ໃ
|
||||
/ = ຝ
|
||||
1 = ຢ
|
||||
2 = ຟ
|
||||
3 = ໂ
|
||||
4 = ຖ
|
||||
5 = ຸ
|
||||
6 = ູ
|
||||
7 = ຄ
|
||||
8 = ຕ
|
||||
9 = ຈ
|
||||
; = ວ
|
||||
= = ໍ
|
||||
[ = ບ
|
||||
\ = ໜ
|
||||
] = ລ
|
||||
a = ັ
|
||||
b = ຶ
|
||||
c = ແ
|
||||
d = ກ
|
||||
e = ຳ
|
||||
f = ດ
|
||||
g = ເ
|
||||
h = ້
|
||||
i = ຣ
|
||||
j = ່
|
||||
k = າ
|
||||
l = ສ
|
||||
m = ທ
|
||||
n = ື
|
||||
o = ນ
|
||||
p = ຍ
|
||||
q = ົ
|
||||
r = ພ
|
||||
s = ຫ
|
||||
t = ະ
|
||||
u = ີ
|
||||
v = ອ
|
||||
w = ໄ
|
||||
x = ປ
|
||||
y = ິ
|
||||
z = ຜ
|
||||
shift = layer(la_shift)
|
||||
|
||||
[la_shift:S]
|
||||
' = =
|
||||
, = `
|
||||
- = ໙
|
||||
. = $
|
||||
/ = )
|
||||
1 = ໑
|
||||
2 = ໒
|
||||
3 = ໓
|
||||
4 = ໔
|
||||
5 = ໌
|
||||
6 = ຼ
|
||||
7 = ໕
|
||||
8 = ໖
|
||||
9 = ໗
|
||||
; = %
|
||||
[ = -
|
||||
\ = ໝ
|
||||
] = }
|
||||
c = ຯ
|
||||
d = .
|
||||
f = ,
|
||||
g = :
|
||||
h = ໊
|
||||
i = ຮ
|
||||
j = ໋
|
||||
k = !
|
||||
l = ?
|
||||
m = ໆ
|
||||
p = ຽ
|
||||
r = _
|
||||
s = ;
|
||||
t = +
|
||||
w = ໐
|
||||
x = (
|
||||
z = ₭
|
176
cros-keyboard-map/keyd/layouts/latam
Normal file
176
cros-keyboard-map/keyd/layouts/latam
Normal file
|
@ -0,0 +1,176 @@
|
|||
[latam:layout]
|
||||
|
||||
' = {
|
||||
, = ,
|
||||
- = '
|
||||
. = .
|
||||
/ = -
|
||||
1 = 1
|
||||
2 = 2
|
||||
3 = 3
|
||||
4 = 4
|
||||
5 = 5
|
||||
6 = 6
|
||||
7 = 7
|
||||
8 = 8
|
||||
9 = 9
|
||||
; = ñ
|
||||
= = ¿
|
||||
\ = }
|
||||
] = +
|
||||
a = a
|
||||
b = b
|
||||
c = c
|
||||
d = d
|
||||
e = e
|
||||
f = f
|
||||
g = g
|
||||
h = h
|
||||
i = i
|
||||
j = j
|
||||
k = k
|
||||
l = l
|
||||
m = m
|
||||
n = n
|
||||
o = o
|
||||
p = p
|
||||
q = q
|
||||
r = r
|
||||
s = s
|
||||
t = t
|
||||
u = u
|
||||
v = v
|
||||
w = w
|
||||
x = x
|
||||
y = y
|
||||
z = z
|
||||
shift = layer(latam_shift)
|
||||
altgr = layer(latam_altgr)
|
||||
|
||||
[latam_shift:S]
|
||||
' = [
|
||||
, = ;
|
||||
- = ?
|
||||
. = :
|
||||
/ = _
|
||||
1 = !
|
||||
2 = "
|
||||
3 = #
|
||||
4 = $
|
||||
5 = %
|
||||
6 = &
|
||||
7 = /
|
||||
8 = (
|
||||
9 = )
|
||||
; = Ñ
|
||||
= = ¡
|
||||
\ = ]
|
||||
] = *
|
||||
a = A
|
||||
b = B
|
||||
c = C
|
||||
d = D
|
||||
e = E
|
||||
f = F
|
||||
g = G
|
||||
h = H
|
||||
i = I
|
||||
j = J
|
||||
k = K
|
||||
l = L
|
||||
m = M
|
||||
n = N
|
||||
o = O
|
||||
p = P
|
||||
q = Q
|
||||
r = R
|
||||
s = S
|
||||
t = T
|
||||
u = U
|
||||
v = V
|
||||
w = W
|
||||
x = X
|
||||
y = Y
|
||||
z = Z
|
||||
|
||||
[latam_altgr:G]
|
||||
, = •
|
||||
- = \
|
||||
. = ·
|
||||
1 = |
|
||||
2 = @
|
||||
3 = ·
|
||||
4 = ~
|
||||
5 = ½
|
||||
6 = ¬
|
||||
7 = {
|
||||
8 = [
|
||||
9 = ]
|
||||
; = ~
|
||||
] = ~
|
||||
a = æ
|
||||
b = “
|
||||
c = ¢
|
||||
d = ð
|
||||
e = €
|
||||
f = đ
|
||||
g = ŋ
|
||||
h = ħ
|
||||
i = →
|
||||
k = ĸ
|
||||
l = ł
|
||||
m = µ
|
||||
n = ”
|
||||
o = ø
|
||||
p = þ
|
||||
q = @
|
||||
r = ¶
|
||||
s = ß
|
||||
t = ŧ
|
||||
u = ↓
|
||||
v = „
|
||||
w = ſ
|
||||
x = »
|
||||
y = ←
|
||||
z = «
|
||||
|
||||
[latam_altgr+latam_shift]
|
||||
' = {
|
||||
, = ×
|
||||
- = ¿
|
||||
. = ÷
|
||||
1 = ¡
|
||||
2 = ⅛
|
||||
3 = £
|
||||
4 = $
|
||||
5 = ⅜
|
||||
6 = ⅝
|
||||
7 = ⅞
|
||||
8 = ™
|
||||
9 = ±
|
||||
\ = }
|
||||
a = Æ
|
||||
b = ‘
|
||||
c = ©
|
||||
d = Ð
|
||||
e = ¢
|
||||
f = ª
|
||||
g = Ŋ
|
||||
h = Ħ
|
||||
i = ı
|
||||
k = &
|
||||
l = Ł
|
||||
m = º
|
||||
n = ’
|
||||
o = Ø
|
||||
p = Þ
|
||||
q = Ω
|
||||
r = ®
|
||||
s = ẞ
|
||||
t = Ŧ
|
||||
u = ↑
|
||||
v = ‚
|
||||
w = §
|
||||
x = >
|
||||
y = ¥
|
||||
z = <
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue