// TODO: right Ctrl https://handwiki.org/wiki/images/4/41/KB_Canadian_Multilingual_Standard.svg

export const defaultOskLayout = 'qwerty_custom';
export const oskLayouts = {
    qwerty_custom: {
        name: 'QWERTY - Custom',
        name_short: 'CSA',
        comment: 'Like physical keyboard',
        // A normal key looks like this: {label: "a", labelShift: "A", shape: "normal", keycode: 30, type: "normal"}
        // A modkey looks like this: {label: "Ctrl", shape: "control", keycode: 29, type: "modkey"}
        // key types are: normal, tab, caps, shift, control, fn (normal w/ half height), space, expand
        keys: [
            [
                {
                    keytype: 'normal',
                    label: 'Esc',
                    shape: 'fn',
                    keycode: 1,
                },
                {
                    keytype: 'normal',
                    label: 'F1',
                    shape: 'fn',
                    keycode: 59,
                },
                {
                    keytype: 'normal',
                    label: 'F2',
                    shape: 'fn',
                    keycode: 60,
                },
                {
                    keytype: 'normal',
                    label: 'F3',
                    shape: 'fn',
                    keycode: 61,
                },
                {
                    keytype: 'normal',
                    label: 'F4',
                    shape: 'fn',
                    keycode: 62,
                },
                {
                    keytype: 'normal',
                    label: 'F5',
                    shape: 'fn',
                    keycode: 63,
                },
                {
                    keytype: 'normal',
                    label: 'F6',
                    shape: 'fn',
                    keycode: 64,
                },
                {
                    keytype: 'normal',
                    label: 'F7',
                    shape: 'fn',
                    keycode: 65,
                },
                {
                    keytype: 'normal',
                    label: 'F8',
                    shape: 'fn',
                    keycode: 66,
                },
                {
                    keytype: 'normal',
                    label: 'F9',
                    shape: 'fn',
                    keycode: 67,
                },
                {
                    keytype: 'normal',
                    label: 'F10',
                    shape: 'fn',
                    keycode: 68,
                },
                {
                    keytype: 'normal',
                    label: 'F11',
                    shape: 'fn',
                    keycode: 87,
                },
                {
                    keytype: 'normal',
                    label: 'F12',
                    shape: 'fn',
                    keycode: 88,
                },
                {
                    keytype: 'normal',
                    label: 'Home',
                    shape: 'fn',
                    keycode: 110,
                },
                {
                    keytype: 'normal',
                    label: 'End',
                    shape: 'fn',
                    keycode: 115,
                },
                {
                    keytype: 'normal',
                    label: 'Del',
                    shape: 'fn',
                    keycode: 111,
                },
            ],
            [
                {
                    keytype: 'normal',
                    label: '/',
                    labelShift: '\\',
                    labelAltGr: '|',
                    shape: 'normal',
                    keycode: 41,
                },
                {
                    keytype: 'normal',
                    label: '1',
                    labelShift: '!',
                    shape: 'normal',
                    keycode: 2,
                },
                {
                    keytype: 'normal',
                    label: '2',
                    labelShift: '@',
                    shape: 'normal',
                    keycode: 3,
                },
                {
                    keytype: 'normal',
                    label: '3',
                    labelShift: '#',
                    labelAltGr: '¤',
                    shape: 'normal',
                    keycode: 4,
                },
                {
                    keytype: 'normal',
                    label: '4',
                    labelShift: '$',
                    shape: 'normal',
                    keycode: 5,
                },
                {
                    keytype: 'normal',
                    label: '5',
                    labelShift: '%',
                    shape: 'normal',
                    keycode: 6,
                },
                {
                    keytype: 'normal',
                    label: '6',
                    labelShift: '?',
                    shape: 'normal',
                    keycode: 7,
                },
                {
                    keytype: 'normal',
                    label: '7',
                    labelShift: '&',
                    labelAltGr: '{',
                    shape: 'normal',
                    keycode: 8,
                },
                {
                    keytype: 'normal',
                    label: '8',
                    labelShift: '*',
                    labelAltGr: '}',
                    shape: 'normal',
                    keycode: 9,
                },
                {
                    keytype: 'normal',
                    label: '9',
                    labelShift: '(',
                    labelAltGr: '[',
                    shape: 'normal',
                    keycode: 10,
                },
                {
                    keytype: 'normal',
                    label: '0',
                    labelShift: ')',
                    labelAltGr: ']',
                    shape: 'normal',
                    keycode: 11,
                },
                {
                    keytype: 'normal',
                    label: '-',
                    labelShift: '_',
                    shape: 'normal',
                    keycode: 12,
                },
                {
                    keytype: 'normal',
                    label: '=',
                    labelShift: '+',
                    labelAltGr: '¬',
                    shape: 'normal',
                    keycode: 13,
                },
                {
                    keytype: 'normal',
                    label: 'Backspace',
                    shape: 'expand',
                    keycode: 14,
                },
            ],
            [
                {
                    keytype: 'normal',
                    label: 'Tab',
                    shape: 'tab',
                    keycode: 15,
                },
                {
                    keytype: 'normal',
                    label: 'q',
                    labelShift: 'Q',
                    shape: 'normal',
                    keycode: 16,
                },
                {
                    keytype: 'normal',
                    label: 'w',
                    labelShift: 'W',
                    shape: 'normal',
                    keycode: 17,
                },
                {
                    keytype: 'normal',
                    label: 'e',
                    labelShift: 'E',
                    labelAltGr: '€',
                    shape: 'normal',
                    keycode: 18,
                },
                {
                    keytype: 'normal',
                    label: 'r',
                    labelShift: 'R',
                    shape: 'normal',
                    keycode: 19,
                },
                {
                    keytype: 'normal',
                    label: 't',
                    labelShift: 'T',
                    shape: 'normal',
                    keycode: 20,
                },
                {
                    keytype: 'normal',
                    label: 'y',
                    labelShift: 'Y',
                    shape: 'normal',
                    keycode: 21,
                },
                {
                    keytype: 'normal',
                    label: 'u',
                    labelShift: 'U',
                    shape: 'normal',
                    keycode: 22,
                },
                {
                    keytype: 'normal',
                    label: 'i',
                    labelShift: 'I',
                    shape: 'normal',
                    keycode: 23,
                },
                {
                    keytype: 'normal',
                    label: 'o',
                    labelShift: 'O',
                    shape: 'normal',
                    keycode: 24,
                },
                {
                    keytype: 'normal',
                    label: 'p',
                    labelShift: 'P',
                    shape: 'normal',
                    keycode: 25,
                },
                {
                    keytype: 'normal',
                    label: '^',
                    labelShift: '"',
                    labelAltGr: '`',
                    shape: 'normal',
                    keycode: 26,
                },
                {
                    keytype: 'normal',
                    label: 'ç',
                    labelShift: 'Ç',
                    labelAltGr: '~',
                    shape: 'normal',
                    keycode: 27,
                },
                {
                    keytype: 'normal',
                    label: 'à',
                    labelShift: 'À',
                    shape: 'expand',
                    keycode: 43,
                },
            ],
            [
                {
                    keytype: 'normal',
                    label: 'Caps',
                    shape: 'caps',
                    keycode: 58,
                },
                {
                    keytype: 'normal',
                    label: 'a',
                    labelShift: 'A',
                    shape: 'normal',
                    keycode: 30,
                },
                {
                    keytype: 'normal',
                    label: 's',
                    labelShift: 'S',
                    shape: 'normal',
                    keycode: 31,
                },
                {
                    keytype: 'normal',
                    label: 'd',
                    labelShift: 'D',
                    shape: 'normal',
                    keycode: 32,
                },
                {
                    keytype: 'normal',
                    label: 'f',
                    labelShift: 'F',
                    shape: 'normal',
                    keycode: 33,
                },
                {
                    keytype: 'normal',
                    label: 'g',
                    labelShift: 'G',
                    shape: 'normal',
                    keycode: 34,
                },
                {
                    keytype: 'normal',
                    label: 'h',
                    labelShift: 'H',
                    shape: 'normal',
                    keycode: 35,
                },
                {
                    keytype: 'normal',
                    label: 'j',
                    labelShift: 'J',
                    shape: 'normal',
                    keycode: 36,
                },
                {
                    keytype: 'normal',
                    label: 'k',
                    labelShift: 'K',
                    shape: 'normal',
                    keycode: 37,
                },
                {
                    keytype: 'normal',
                    label: 'l',
                    labelShift: 'L',
                    shape: 'normal',
                    keycode: 38,
                },
                {
                    keytype: 'normal',
                    label: ';',
                    labelShift: ':',
                    labelAltGr: '°',
                    shape: 'normal',
                    keycode: 39,
                },
                {
                    keytype: 'normal',
                    label: 'è',
                    labelShift: 'È',
                    shape: 'normal',
                    keycode: 40,
                },
                {
                    keytype: 'normal',
                    label: 'Enter',
                    shape: 'expand',
                    keycode: 28,
                },
            ],
            [
                {
                    keytype: 'modkey',
                    label: 'Shift',
                    shape: 'shift',
                    keycode: 42,
                },
                {
                    keytype: 'normal',
                    label: 'z',
                    labelShift: 'Z',
                    labelAltGr: '«',
                    shape: 'normal',
                    keycode: 44,
                },
                {
                    keytype: 'normal',
                    label: 'x',
                    labelShift: 'X',
                    labelAltGr: '»',
                    shape: 'normal',
                    keycode: 45,
                },
                {
                    keytype: 'normal',
                    label: 'c',
                    labelShift: 'C',
                    shape: 'normal',
                    keycode: 46,
                },
                {
                    keytype: 'normal',
                    label: 'v',
                    labelShift: 'V',
                    shape: 'normal',
                    keycode: 47,
                },
                {
                    keytype: 'normal',
                    label: 'b',
                    labelShift: 'B',
                    shape: 'normal',
                    keycode: 48,
                },
                {
                    keytype: 'normal',
                    label: 'n',
                    labelShift: 'N',
                    shape: 'normal',
                    keycode: 49,
                },
                {
                    keytype: 'normal',
                    label: 'm',
                    labelShift: 'M',
                    shape: 'normal',
                    keycode: 50,
                },
                {
                    keytype: 'normal',
                    label: ',',
                    labelShift: "'",
                    labelAltGr: '<',
                    shape: 'normal',
                    keycode: 51,
                },
                {
                    keytype: 'normal',
                    label: '.',
                    labelShift: '"',
                    labelAltGr: '>',
                    shape: 'normal',
                    keycode: 52,
                },
                {
                    keytype: 'normal',
                    label: 'é',
                    labelShift: 'É',
                    shape: 'normal',
                    keycode: 53,
                },
                {
                    keytype: 'modkey',
                    label: 'Shift',
                    shape: 'expand',
                    keycode: 54,
                },
            ],
            [
                {
                    keytype: 'modkey',
                    label: 'Ctrl',
                    shape: 'control',
                    keycode: 29,
                },
                {
                    keytype: 'modkey',
                    label: 'Super',
                    shape: 'normal',
                    keycode: 125,
                },
                {
                    keytype: 'modkey',
                    label: 'Alt',
                    shape: 'normal',
                    keycode: 56,
                },
                {
                    keytype: 'normal',
                    label: 'Space',
                    shape: 'space',
                    keycode: 57,
                },
                {
                    keytype: 'normal',
                    label: 'Space',
                    shape: 'space',
                    keycode: 57,
                },
                {
                    keytype: 'modkey',
                    label: 'AltGr',
                    shape: 'normal',
                    keycode: 100,
                },
                {
                    keytype: 'normal',
                    label: 'PrtSc',
                    shape: 'fn',
                    keycode: 99,
                },
                {
                    keytype: 'modkey',
                    label: 'Ctrl',
                    shape: 'control',
                    keycode: 97,
                },
            ],
        ],
    },
};