141 lines
5.8 KiB
TOML
141 lines
5.8 KiB
TOML
# MontaukOS Keyboard Layouts
|
|
|
|
# =============================================================================
|
|
# STRUCTURE
|
|
# =============================================================================
|
|
# [registry]
|
|
# layouts: layout ids, in the order they appear in the applet and in the
|
|
# panel switcher. "en" is the base layout and is always available
|
|
# even if this file is missing or malformed.
|
|
#
|
|
# [layouts.<id>]
|
|
# name: full name shown in the settings applet
|
|
# short_name: 2-3 letter tag shown in the desktop panel
|
|
# scancodes: PS/2 scancode set 1 codes this layout overrides
|
|
# base: character produced unshifted, one per scancode
|
|
# shift: character produced with Shift held, one per scancode
|
|
# altgr: character produced with AltGr held, one per scancode
|
|
# dead_keys: (optional) characters that are dead keys in this layout
|
|
|
|
[registry]
|
|
layouts = ["en", "no", "sv", "da", "cs"]
|
|
|
|
# =============================================================================
|
|
# LAYOUTS
|
|
# =============================================================================
|
|
|
|
[layouts.en]
|
|
name = "English (US)"
|
|
short_name = "en"
|
|
# The US scancode table is built into the kernel, so we don't need to override any keys.
|
|
|
|
[layouts.no]
|
|
name = "Norwegian"
|
|
short_name = "no"
|
|
scancodes = [
|
|
0x03, 0x04, 0x05, 0x07, 0x08, 0x09, 0x0a, 0x0b,
|
|
0x0c, 0x0d, 0x12, 0x1a, 0x1b, 0x27, 0x28, 0x29,
|
|
0x2b, 0x33, 0x34, 0x35, 0x56,
|
|
]
|
|
base = [
|
|
0x32, 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, 0x30, # 2 3 4 6 7 8 9 0
|
|
0x2B, 0x5C, 0x00, 0xE5, 0xA8, 0xF8, 0xE6, 0x7C, # + \ . aa ".." oe ae |
|
|
0x27, 0x2C, 0x2E, 0x2D, 0x3C, # ' , . - <
|
|
]
|
|
shift = [
|
|
0x22, 0x23, 0xA4, 0x26, 0x2F, 0x28, 0x29, 0x3D, # " # cur & / ( ) =
|
|
0x3F, 0x60, 0x00, 0xC5, 0x5E, 0xD8, 0xC6, 0xA7, # ? ` . AA ^ OE AE sec
|
|
0x2A, 0x3B, 0x3A, 0x5F, 0x3E, # * ; : _ >
|
|
]
|
|
altgr = [
|
|
0x40, 0xA3, 0x24, 0x00, 0x7B, 0x5B, 0x5D, 0x7D, # @ GBP $ . { [ ] }
|
|
0x00, 0xB4, 0x20AC, 0x00, 0x7E, 0x00, 0x00, 0x00, # . ' EUR . ~ . . .
|
|
0x00, 0x00, 0x00, 0x00, 0x5C, # . . . . backslash
|
|
]
|
|
|
|
[layouts.sv]
|
|
name = "Swedish"
|
|
short_name = "sv"
|
|
scancodes = [
|
|
0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
|
|
0x0b, 0x0c, 0x0d, 0x12, 0x1a, 0x1b, 0x27, 0x28,
|
|
0x29, 0x2b, 0x33, 0x34, 0x35, 0x56,
|
|
]
|
|
base = [
|
|
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, # 2 3 4 5 6 7 8 9
|
|
0x30, 0x2B, 0xB4, 0x00, 0xE5, 0xA8, 0xF6, 0xE4, # 0 + ' . aa ".." oe ae
|
|
0xA7, 0x27, 0x2C, 0x2E, 0x2D, 0x3C, # sec ' , . - <
|
|
]
|
|
shift = [
|
|
0x22, 0x23, 0xA4, 0x25, 0x26, 0x2F, 0x28, 0x29, # " # cur % & / ( )
|
|
0x3D, 0x3F, 0x60, 0x00, 0xC5, 0x5E, 0xD6, 0xC4, # = ? ` . AA ^ OE AE
|
|
0xBD, 0x2A, 0x3B, 0x3A, 0x5F, 0x3E, # 1/2 * ; : _ >
|
|
]
|
|
altgr = [
|
|
0x40, 0xA3, 0x24, 0x20AC, 0xA5, 0x7B, 0x5B, 0x5D, # @ GBP $ EUR YEN { [ ]
|
|
0x7D, 0x5C, 0xB1, 0x20AC, 0x00, 0x7E, 0xF8, 0xE6, # } bslash +- EUR . ~ o/ ae
|
|
0xB6, 0xB4, 0x00, 0xB7, 0x00, 0x7C, # par ' . mid . |
|
|
]
|
|
|
|
[layouts.da]
|
|
name = "Danish"
|
|
short_name = "da"
|
|
scancodes = [
|
|
0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
|
|
0x0b, 0x0c, 0x0d, 0x12, 0x1a, 0x1b, 0x27, 0x28,
|
|
0x29, 0x2b, 0x33, 0x34, 0x35, 0x56,
|
|
]
|
|
base = [
|
|
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, # 2 3 4 5 6 7 8 9
|
|
0x30, 0x2B, 0xB4, 0x00, 0xE5, 0xA8, 0xE6, 0xF8, # 0 + ' . aa ".." ae oe
|
|
0xBD, 0x27, 0x2C, 0x2E, 0x2D, 0x3C, # 1/2 ' , . - <
|
|
]
|
|
shift = [
|
|
0x22, 0x23, 0xA4, 0x25, 0x26, 0x2F, 0x28, 0x29, # " # cur % & / ( )
|
|
0x3D, 0x3F, 0x60, 0x00, 0xC5, 0x5E, 0xC6, 0xD8, # = ? ` . AA ^ AE OE
|
|
0xA7, 0x2A, 0x3B, 0x3A, 0x5F, 0x3E, # sec * ; : _ >
|
|
]
|
|
altgr = [
|
|
0x40, 0xA3, 0x24, 0xBD, 0xA5, 0x7B, 0x5B, 0x5D, # @ GBP $ 1/2 YEN { [ ]
|
|
0x7D, 0xB1, 0x7C, 0x20AC, 0x00, 0x7E, 0xB4, 0x5E, # } +- | EUR . ~ ' ^
|
|
0xBE, 0x00, 0x00, 0xB7, 0x00, 0x5C, # 3/4 . . mid . backslash
|
|
]
|
|
|
|
[layouts.cs]
|
|
name = "Czech"
|
|
short_name = "cs"
|
|
# QWERTZ. The number row types accented letters (digits with Shift), and
|
|
# AltGr on the number row gives the dead accents.
|
|
scancodes = [
|
|
0x29, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
|
|
0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x10, 0x11, 0x12,
|
|
0x15, 0x1a, 0x1b, 0x21, 0x22, 0x25, 0x26, 0x27,
|
|
0x28, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31,
|
|
0x33, 0x34, 0x35, 0x56,
|
|
]
|
|
base = [
|
|
0x3B, 0x2B, 0x11B, 0x161, 0x10D, 0x159, 0x17E, 0xFD, # ; + e-caron s-caron c-caron r-caron z-caron y-acute
|
|
0xE1, 0xED, 0xE9, 0x3D, 0xB4, 0x00, 0x00, 0x00, # a-acute i-acute e-acute = (dead acute) . . .
|
|
0x7A, 0xFA, 0x29, 0x00, 0x00, 0x00, 0x00, 0x16F, # z u-acute ) . . . . u-ring
|
|
0xA7, 0xA8, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, # section (dead diaeresis) y . . . . .
|
|
0x2C, 0x2E, 0x2D, 0x5C, # , . - backslash
|
|
]
|
|
shift = [
|
|
0xB0, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, # (dead ring) 1 2 3 4 5 6 7
|
|
0x38, 0x39, 0x30, 0x25, 0x2C7, 0x00, 0x00, 0x00, # 8 9 0 % (dead caron) . . .
|
|
0x5A, 0x2F, 0x28, 0x00, 0x00, 0x00, 0x00, 0x22, # Z / ( . . . . "
|
|
0x21, 0x27, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, # ! ' Y . . . . .
|
|
0x3F, 0x3A, 0x5F, 0x7C, # ? : _ |
|
|
]
|
|
altgr = [
|
|
0x00, 0x7E, 0x2C7, 0x5E, 0x2D8, 0xB0, 0x2DB, 0x60, # . dead: tilde caron circumflex breve ring ogonek grave
|
|
0x2D9, 0xB4, 0x2DD, 0xA8, 0xB8, 0x5C, 0x7C, 0x20AC, # dead: dot acute double-acute diaeresis cedilla; backslash | EUR
|
|
0x00, 0xF7, 0xD7, 0x5B, 0x5D, 0x142, 0x141, 0x24, # . divide multiply [ ] l-stroke L-stroke $
|
|
0xDF, 0xA4, 0x00, 0x23, 0x26, 0x40, 0x7B, 0x7D, # sharp-s currency . # & @ { }
|
|
0x3C, 0x3E, 0x2A, 0x00, # < > * .
|
|
]
|
|
dead_keys = [
|
|
0xB4, 0x2C7, 0xA8, 0xB0, 0x7E, 0x5E,
|
|
0x2D8, 0x2DB, 0x60, 0x2D9, 0x2DD, 0xB8,
|
|
]
|