Initial uk+us DD keymap_extras migration (#19031)
This commit is contained in:
353
data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson
Normal file
353
data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson
Normal file
File diff suppressed because it is too large
Load Diff
155
data/constants/keycodes/extras/keycodes_us_0.0.1.hjson
Normal file
155
data/constants/keycodes/extras/keycodes_us_0.0.1.hjson
Normal file
@ -0,0 +1,155 @@
|
||||
{
|
||||
"aliases": {
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ : │ " │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ │ │ │ │ │ │ │ < │ > │ ? │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(KC_GRAVE)": {
|
||||
"key": "KC_TILD",
|
||||
"label": "~",
|
||||
"aliases": [
|
||||
"KC_TILDE"
|
||||
]
|
||||
},
|
||||
"S(KC_1)": {
|
||||
"key": "KC_EXLM",
|
||||
"label": "!",
|
||||
"aliases": [
|
||||
"KC_EXCLAIM"
|
||||
]
|
||||
},
|
||||
"S(KC_2)": {
|
||||
"key": "KC_AT",
|
||||
"label": "@"
|
||||
},
|
||||
"S(KC_3)": {
|
||||
"key": "KC_HASH",
|
||||
"label": "#"
|
||||
},
|
||||
"S(KC_4)": {
|
||||
"key": "KC_DLR",
|
||||
"label": "$",
|
||||
"aliases": [
|
||||
"KC_DOLLAR"
|
||||
]
|
||||
},
|
||||
"S(KC_5)": {
|
||||
"key": "KC_PERC",
|
||||
"label": "%",
|
||||
"aliases": [
|
||||
"KC_PERCENT"
|
||||
]
|
||||
},
|
||||
"S(KC_6)": {
|
||||
"key": "KC_CIRC",
|
||||
"label": "^",
|
||||
"aliases": [
|
||||
"KC_CIRCUMFLEX"
|
||||
]
|
||||
},
|
||||
"S(KC_7)": {
|
||||
"key": "KC_AMPR",
|
||||
"label": "&",
|
||||
"aliases": [
|
||||
"KC_AMPERSAND"
|
||||
]
|
||||
},
|
||||
"S(KC_8)": {
|
||||
"key": "KC_ASTR",
|
||||
"label": "*",
|
||||
"aliases": [
|
||||
"KC_ASTERISK"
|
||||
]
|
||||
},
|
||||
"S(KC_9)": {
|
||||
"key": "KC_LPRN",
|
||||
"label": "(",
|
||||
"aliases": [
|
||||
"KC_LEFT_PAREN"
|
||||
]
|
||||
},
|
||||
"S(KC_0)": {
|
||||
"key": "KC_RPRN",
|
||||
"label": ")",
|
||||
"aliases": [
|
||||
"KC_RIGHT_PAREN"
|
||||
]
|
||||
},
|
||||
"S(KC_MINUS)": {
|
||||
"key": "KC_UNDS",
|
||||
"label": "_",
|
||||
"aliases": [
|
||||
"KC_UNDERSCORE"
|
||||
]
|
||||
},
|
||||
"S(KC_EQUAL)": {
|
||||
"key": "KC_PLUS",
|
||||
"label": "+"
|
||||
},
|
||||
"S(KC_LEFT_BRACKET)": {
|
||||
"key": "KC_LCBR",
|
||||
"label": "{",
|
||||
"aliases": [
|
||||
"KC_LEFT_CURLY_BRACE"
|
||||
]
|
||||
},
|
||||
"S(KC_RIGHT_BRACKET)": {
|
||||
"key": "KC_RCBR",
|
||||
"label": "}",
|
||||
"aliases": [
|
||||
"KC_RIGHT_CURLY_BRACE"
|
||||
]
|
||||
},
|
||||
"S(KC_BACKSLASH)": {
|
||||
"key": "KC_PIPE",
|
||||
"label": "|"
|
||||
},
|
||||
"S(KC_SEMICOLON)": {
|
||||
"key": "KC_COLN",
|
||||
"label": ":",
|
||||
"aliases": [
|
||||
"KC_COLON"
|
||||
]
|
||||
},
|
||||
"S(KC_QUOTE)": {
|
||||
"key": "KC_DQUO",
|
||||
"label": "\"",
|
||||
"aliases": [
|
||||
"KC_DOUBLE_QUOTE",
|
||||
"KC_DQT"
|
||||
]
|
||||
},
|
||||
"S(KC_COMMA)": {
|
||||
"key": "KC_LABK",
|
||||
"label": "<",
|
||||
"aliases": [
|
||||
"KC_LEFT_ANGLE_BRACKET",
|
||||
"KC_LT"
|
||||
]
|
||||
},
|
||||
"S(KC_DOT)": {
|
||||
"key": "KC_RABK",
|
||||
"label": ">",
|
||||
"aliases": [
|
||||
"KC_RIGHT_ANGLE_BRACKET",
|
||||
"KC_GT"
|
||||
]
|
||||
},
|
||||
"S(KC_SLASH)": {
|
||||
"key": "KC_QUES",
|
||||
"label": "?",
|
||||
"aliases": [
|
||||
"KC_QUESTION"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@ -11,7 +11,7 @@ from qmk.info import info_json
|
||||
from qmk.json_encoders import InfoJSONEncoder
|
||||
from qmk.json_schema import json_load
|
||||
from qmk.keyboard import find_readme, list_keyboards
|
||||
from qmk.keycodes import load_spec, list_versions
|
||||
from qmk.keycodes import load_spec, list_versions, list_languages
|
||||
|
||||
DATA_PATH = Path('data')
|
||||
TEMPLATE_PATH = DATA_PATH / 'templates/api/'
|
||||
@ -44,6 +44,13 @@ def _resolve_keycode_specs(output_folder):
|
||||
output_file = output_folder / f'constants/keycodes_{version}.json'
|
||||
output_file.write_text(json.dumps(overall, indent=4), encoding='utf-8')
|
||||
|
||||
for lang in list_languages():
|
||||
for version in list_versions(lang):
|
||||
overall = load_spec(version, lang)
|
||||
|
||||
output_file = output_folder / f'constants/keycodes_{lang}_{version}.json'
|
||||
output_file.write_text(json.dumps(overall, indent=4), encoding='utf-8')
|
||||
|
||||
# Purge files consumed by 'load_spec'
|
||||
shutil.rmtree(output_folder / 'constants/keycodes/')
|
||||
|
||||
|
@ -8,6 +8,24 @@ from qmk.path import normpath
|
||||
from qmk.keycodes import load_spec
|
||||
|
||||
|
||||
def _render_key(key):
|
||||
width = 7
|
||||
if 'S(' in key:
|
||||
width += len('S()')
|
||||
if 'A(' in key:
|
||||
width += len('A()')
|
||||
if 'RCTL(' in key:
|
||||
width += len('RCTL()')
|
||||
if 'ALGR(' in key:
|
||||
width += len('ALGR()')
|
||||
return key.ljust(width)
|
||||
|
||||
|
||||
def _render_label(label):
|
||||
label = label.replace("\\", "(backslash)")
|
||||
return label
|
||||
|
||||
|
||||
def _generate_ranges(lines, keycodes):
|
||||
lines.append('')
|
||||
lines.append('enum qk_keycode_ranges {')
|
||||
@ -67,6 +85,22 @@ def _generate_helpers(lines, keycodes):
|
||||
lines.append(f'#define IS_{ group.upper() }_KEYCODE(code) ((code) >= {lo} && (code) <= {hi})')
|
||||
|
||||
|
||||
def _generate_aliases(lines, keycodes):
|
||||
lines.append('')
|
||||
lines.append('// Aliases')
|
||||
for key, value in keycodes["aliases"].items():
|
||||
define = _render_key(value.get("key"))
|
||||
val = _render_key(key)
|
||||
label = _render_label(value.get("label"))
|
||||
|
||||
lines.append(f'#define {define} {val} // {label}')
|
||||
|
||||
lines.append('')
|
||||
for key, value in keycodes["aliases"].items():
|
||||
for alias in value.get("aliases", []):
|
||||
lines.append(f'#define {alias} {value.get("key")}')
|
||||
|
||||
|
||||
@cli.argument('-v', '--version', arg_only=True, required=True, help='Version of keycodes to generate.')
|
||||
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to')
|
||||
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
|
||||
@ -86,3 +120,23 @@ def generate_keycodes(cli):
|
||||
|
||||
# Show the results
|
||||
dump_lines(cli.args.output, keycodes_h_lines, cli.args.quiet)
|
||||
|
||||
|
||||
@cli.argument('-v', '--version', arg_only=True, required=True, help='Version of keycodes to generate.')
|
||||
@cli.argument('-l', '--lang', arg_only=True, required=True, help='Language of keycodes to generate.')
|
||||
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to')
|
||||
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
|
||||
@cli.subcommand('Used by the make system to generate keymap_{lang}.h from keycodes_{lang}_{version}.json', hidden=True)
|
||||
def generate_keycode_extras(cli):
|
||||
"""Generates the header file.
|
||||
"""
|
||||
|
||||
# Build the header file.
|
||||
keycodes_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '#include "keymap.h"', '// clang-format off']
|
||||
|
||||
keycodes = load_spec(cli.args.version, cli.args.lang)
|
||||
|
||||
_generate_aliases(keycodes_h_lines, keycodes)
|
||||
|
||||
# Show the results
|
||||
dump_lines(cli.args.output, keycodes_h_lines, cli.args.quiet)
|
||||
|
@ -2,7 +2,42 @@ from pathlib import Path
|
||||
|
||||
from qmk.json_schema import deep_update, json_load, validate
|
||||
|
||||
CONSTANTS_PATH = Path('data/constants/keycodes/')
|
||||
CONSTANTS_PATH = Path('data/constants/')
|
||||
KEYCODES_PATH = CONSTANTS_PATH / 'keycodes'
|
||||
EXTRAS_PATH = KEYCODES_PATH / 'extras'
|
||||
|
||||
|
||||
def _find_versions(path, prefix):
|
||||
ret = []
|
||||
for file in path.glob(f'{prefix}_[0-9].[0-9].[0-9].hjson'):
|
||||
ret.append(file.stem.split('_')[-1])
|
||||
|
||||
ret.sort(reverse=True)
|
||||
return ret
|
||||
|
||||
|
||||
def _load_fragments(path, prefix, version):
|
||||
file = path / f'{prefix}_{version}.hjson'
|
||||
if not file.exists():
|
||||
raise ValueError(f'Requested keycode spec ({prefix}:{version}) is invalid!')
|
||||
|
||||
# Load base
|
||||
spec = json_load(file)
|
||||
|
||||
# Merge in fragments
|
||||
fragments = path.glob(f'{prefix}_{version}_*.hjson')
|
||||
for file in fragments:
|
||||
deep_update(spec, json_load(file))
|
||||
|
||||
return spec
|
||||
|
||||
|
||||
def _search_path(lang=None):
|
||||
return EXTRAS_PATH if lang else KEYCODES_PATH
|
||||
|
||||
|
||||
def _search_prefix(lang=None):
|
||||
return f'keycodes_{lang}' if lang else 'keycodes'
|
||||
|
||||
|
||||
def _validate(spec):
|
||||
@ -19,26 +54,20 @@ def _validate(spec):
|
||||
raise ValueError(f'Keycode spec contains duplicate keycodes! ({",".join(duplicates)})')
|
||||
|
||||
|
||||
def load_spec(version):
|
||||
def load_spec(version, lang=None):
|
||||
"""Build keycode data from the requested spec file
|
||||
"""
|
||||
if version == 'latest':
|
||||
version = list_versions()[0]
|
||||
version = list_versions(lang)[0]
|
||||
|
||||
file = CONSTANTS_PATH / f'keycodes_{version}.hjson'
|
||||
if not file.exists():
|
||||
raise ValueError(f'Requested keycode spec ({version}) is invalid!')
|
||||
path = _search_path(lang)
|
||||
prefix = _search_prefix(lang)
|
||||
|
||||
# Load base
|
||||
spec = json_load(file)
|
||||
|
||||
# Merge in fragments
|
||||
fragments = CONSTANTS_PATH.glob(f'keycodes_{version}_*.hjson')
|
||||
for file in fragments:
|
||||
deep_update(spec, json_load(file))
|
||||
spec = _load_fragments(path, prefix, version)
|
||||
|
||||
# Sort?
|
||||
spec['keycodes'] = dict(sorted(spec['keycodes'].items()))
|
||||
spec['keycodes'] = dict(sorted(spec.get('keycodes', {}).items()))
|
||||
|
||||
# Validate?
|
||||
_validate(spec)
|
||||
@ -46,12 +75,20 @@ def load_spec(version):
|
||||
return spec
|
||||
|
||||
|
||||
def list_versions():
|
||||
def list_versions(lang=None):
|
||||
"""Return available versions - sorted newest first
|
||||
"""
|
||||
ret = []
|
||||
for file in CONSTANTS_PATH.glob('keycodes_[0-9].[0-9].[0-9].hjson'):
|
||||
ret.append(file.stem.split('_')[1])
|
||||
path = _search_path(lang)
|
||||
prefix = _search_prefix(lang)
|
||||
|
||||
return _find_versions(path, prefix)
|
||||
|
||||
|
||||
def list_languages():
|
||||
"""Return available languages
|
||||
"""
|
||||
ret = set()
|
||||
for file in EXTRAS_PATH.glob('keycodes_*_[0-9].[0-9].[0-9].hjson'):
|
||||
ret.add(file.stem.split('_')[1])
|
||||
|
||||
ret.sort(reverse=True)
|
||||
return ret
|
||||
|
@ -1,39 +1,33 @@
|
||||
/* Copyright 2015-2016 Jack Humbert
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// Copyright 2022 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
88888888888 888 d8b .d888 d8b 888 d8b
|
||||
888 888 Y8P d88P" Y8P 888 Y8P
|
||||
888 888 888 888
|
||||
888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
|
||||
888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
|
||||
888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
|
||||
888 888 888 888 X88 888 888 888 Y8b. 888 X88
|
||||
888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
|
||||
888 888
|
||||
888 888
|
||||
888 888
|
||||
.d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
|
||||
d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
|
||||
888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
|
||||
Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
|
||||
"Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
|
||||
888
|
||||
Y8b d88P
|
||||
"Y88P"
|
||||
*******************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "keymap.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
// Aliases
|
||||
#define UK_GRV KC_GRV // `
|
||||
#define UK_1 KC_1 // 1
|
||||
#define UK_2 KC_2 // 2
|
||||
@ -47,7 +41,6 @@
|
||||
#define UK_0 KC_0 // 0
|
||||
#define UK_MINS KC_MINS // -
|
||||
#define UK_EQL KC_EQL // =
|
||||
// Row 2
|
||||
#define UK_Q KC_Q // Q
|
||||
#define UK_W KC_W // W
|
||||
#define UK_E KC_E // E
|
||||
@ -60,7 +53,6 @@
|
||||
#define UK_P KC_P // P
|
||||
#define UK_LBRC KC_LBRC // [
|
||||
#define UK_RBRC KC_RBRC // ]
|
||||
// Row 3
|
||||
#define UK_A KC_A // A
|
||||
#define UK_S KC_S // S
|
||||
#define UK_D KC_D // D
|
||||
@ -73,7 +65,6 @@
|
||||
#define UK_SCLN KC_SCLN // ;
|
||||
#define UK_QUOT KC_QUOT // '
|
||||
#define UK_HASH KC_NUHS // #
|
||||
// Row 4
|
||||
#define UK_BSLS KC_NUBS // (backslash)
|
||||
#define UK_Z KC_Z // Z
|
||||
#define UK_X KC_X // X
|
||||
@ -85,21 +76,6 @@
|
||||
#define UK_COMM KC_COMM // ,
|
||||
#define UK_DOT KC_DOT // .
|
||||
#define UK_SLSH KC_SLSH // /
|
||||
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ¬ │ ! │ " │ £ │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ : │ @ │ ~ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ | │ │ │ │ │ │ │ │ < │ > │ ? │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define UK_NOT S(UK_GRV) // ¬
|
||||
#define UK_EXLM S(UK_1) // !
|
||||
#define UK_DQUO S(UK_2) // "
|
||||
@ -113,39 +89,21 @@
|
||||
#define UK_RPRN S(UK_0) // )
|
||||
#define UK_UNDS S(UK_MINS) // _
|
||||
#define UK_PLUS S(UK_EQL) // +
|
||||
// Row 2
|
||||
#define UK_LCBR S(UK_LBRC) // {
|
||||
#define UK_RCBR S(UK_RBRC) // }
|
||||
// Row 3
|
||||
#define UK_COLN S(UK_SCLN) // :
|
||||
#define UK_AT S(UK_QUOT) // @
|
||||
#define UK_TILD S(UK_HASH) // ~
|
||||
// Row 4
|
||||
#define UK_PIPE S(UK_BSLS) // |
|
||||
#define UK_LABK S(UK_COMM) // <
|
||||
#define UK_RABK S(UK_DOT) // >
|
||||
#define UK_QUES S(UK_SLSH) // ?
|
||||
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ¦ │ │ │ │ € │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ É │ │ │ │ Ú │ Í │ Ó │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ Á │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define UK_BRKP ALGR(UK_GRV) // ¦
|
||||
#define UK_EURO ALGR(UK_4) // €
|
||||
// Row 2
|
||||
#define UK_EACU ALGR(KC_E) // É
|
||||
#define UK_UACU ALGR(KC_U) // Ú
|
||||
#define UK_IACU ALGR(KC_I) // Í
|
||||
#define UK_OACU ALGR(KC_O) // Ó
|
||||
// Row 3
|
||||
#define UK_AACU ALGR(KC_A) // Á
|
||||
|
||||
|
||||
|
@ -1,52 +1,55 @@
|
||||
// Copyright 2022 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
88888888888 888 d8b .d888 d8b 888 d8b
|
||||
888 888 Y8P d88P" Y8P 888 Y8P
|
||||
888 888 888 888
|
||||
888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
|
||||
888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
|
||||
888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
|
||||
888 888 888 888 X88 888 888 888 Y8b. 888 X88
|
||||
888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
|
||||
888 888
|
||||
888 888
|
||||
888 888
|
||||
.d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
|
||||
d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
|
||||
888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
|
||||
Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
|
||||
"Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
|
||||
888
|
||||
Y8b d88P
|
||||
"Y88P"
|
||||
*******************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "keymap.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ : │ " │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ │ │ │ │ │ │ │ < │ > │ ? │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
// Aliases
|
||||
#define KC_TILD S(KC_GRAVE) // ~
|
||||
#define KC_EXLM S(KC_1) // !
|
||||
#define KC_AT S(KC_2) // @
|
||||
#define KC_HASH S(KC_3) // #
|
||||
#define KC_DLR S(KC_4) // $
|
||||
#define KC_PERC S(KC_5) // %
|
||||
#define KC_CIRC S(KC_6) // ^
|
||||
#define KC_AMPR S(KC_7) // &
|
||||
#define KC_ASTR S(KC_8) // *
|
||||
#define KC_LPRN S(KC_9) // (
|
||||
#define KC_RPRN S(KC_0) // )
|
||||
#define KC_EXLM S(KC_1) // !
|
||||
#define KC_AT S(KC_2) // @
|
||||
#define KC_HASH S(KC_3) // #
|
||||
#define KC_DLR S(KC_4) // $
|
||||
#define KC_PERC S(KC_5) // %
|
||||
#define KC_CIRC S(KC_6) // ^
|
||||
#define KC_AMPR S(KC_7) // &
|
||||
#define KC_ASTR S(KC_8) // *
|
||||
#define KC_LPRN S(KC_9) // (
|
||||
#define KC_RPRN S(KC_0) // )
|
||||
#define KC_UNDS S(KC_MINUS) // _
|
||||
#define KC_PLUS S(KC_EQUAL) // +
|
||||
// Row 2
|
||||
#define KC_LCBR S(KC_LEFT_BRACKET) // {
|
||||
#define KC_LCBR S(KC_LEFT_BRACKET) // {
|
||||
#define KC_RCBR S(KC_RIGHT_BRACKET) // }
|
||||
#define KC_PIPE S(KC_BACKSLASH) // |
|
||||
// Row 3
|
||||
#define KC_PIPE S(KC_BACKSLASH) // |
|
||||
#define KC_COLN S(KC_SEMICOLON) // :
|
||||
#define KC_DQUO S(KC_QUOTE) // "
|
||||
// Row 4
|
||||
#define KC_DQUO S(KC_QUOTE) // "
|
||||
#define KC_LABK S(KC_COMMA) // <
|
||||
#define KC_RABK S(KC_DOT) // >
|
||||
#define KC_RABK S(KC_DOT) // >
|
||||
#define KC_QUES S(KC_SLASH) // ?
|
||||
|
||||
// alias stuff
|
||||
#define KC_TILDE KC_TILD
|
||||
#define KC_EXCLAIM KC_EXLM
|
||||
#define KC_DOLLAR KC_DLR
|
||||
@ -57,16 +60,14 @@
|
||||
#define KC_LEFT_PAREN KC_LPRN
|
||||
#define KC_RIGHT_PAREN KC_RPRN
|
||||
#define KC_UNDERSCORE KC_UNDS
|
||||
|
||||
#define KC_LEFT_CURLY_BRACE KC_LCBR
|
||||
#define KC_RIGHT_CURLY_BRACE KC_RCBR
|
||||
|
||||
#define KC_COLON KC_COLN
|
||||
#define KC_DOUBLE_QUOTE KC_DQUO
|
||||
#define KC_DQT KC_DQUO
|
||||
|
||||
#define KC_LEFT_ANGLE_BRACKET KC_LABK
|
||||
#define KC_LT KC_LABK
|
||||
#define KC_RIGHT_ANGLE_BRACKET KC_RABK
|
||||
#define KC_GT KC_RABK
|
||||
#define KC_QUESTION KC_QUES
|
||||
|
||||
|
Reference in New Issue
Block a user