From 13bbeefc5af557abb1dc577bfafc709c5e09def0 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 20 Dec 2020 19:08:39 +1100 Subject: [PATCH 001/140] Follow symlinks when listing keyboards. (#11250) --- util/list_keyboards.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/list_keyboards.sh b/util/list_keyboards.sh index 672d4a7843a1..7849cf4d91b8 100755 --- a/util/list_keyboards.sh +++ b/util/list_keyboards.sh @@ -3,8 +3,8 @@ # # This allows us to exclude keyboards by including a .noci file. -find keyboards -type f -name rules.mk | grep -v keymaps | while read keyboard; do - keyboard=$(echo $keyboard | sed 's!keyboards/\(.*\)/rules.mk!\1!') +find -L keyboards -type f -name rules.mk | grep -v keymaps | while read keyboard; do + keyboard=$(echo $keyboard | sed 's!keyboards/\(.*\)/rules.mk!\1!') [ "$1" = "noci" -a -e "keyboards/${keyboard}/.noci" ] || echo "$keyboard" done From 0239ce025aca542e4e37ec9003399bab2e92d82b Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 21 Dec 2020 01:46:01 +1100 Subject: [PATCH 002/140] Doctor: add check for .git folder (#11208) Co-authored-by: Erovia --- lib/python/qmk/cli/doctor.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py index 25e2e239cb8c..ea1113c6457f 100755 --- a/lib/python/qmk/cli/doctor.py +++ b/lib/python/qmk/cli/doctor.py @@ -154,6 +154,17 @@ def check_submodules(): return CheckStatus.OK +def check_git_repo(): + """Checks that the .git directory exists inside QMK_HOME. + + This is a decent enough indicator that the qmk_firmware directory is a + proper Git repository, rather than a .zip download from GitHub. + """ + dot_git_dir = QMK_FIRMWARE / '.git' + + return CheckStatus.OK if dot_git_dir.is_dir() else CheckStatus.WARNING + + def check_udev_rules(): """Make sure the udev rules look good. """ @@ -338,6 +349,13 @@ def doctor(cli): cli.log.info('QMK home: {fg_cyan}%s', QMK_FIRMWARE) + # Make sure our QMK home is a Git repo + git_ok = check_git_repo() + + if git_ok == CheckStatus.WARNING: + cli.log.warning("QMK home does not appear to be a Git repository! (no .git folder)") + status = CheckStatus.WARNING + # Make sure the basic CLI tools we need are available and can be executed. bin_ok = check_binaries() From e3211e307ec14c326b03b39806ed7bb11b927d34 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 21 Dec 2020 13:12:07 +1100 Subject: [PATCH 003/140] Fix small typo in V-USB configuration descriptor (#11253) --- tmk_core/protocol/vusb/vusb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index 9b65ba9ac752..9ce75334a5b8 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -680,7 +680,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = { }, .bcdHID = 0x0101, .bCountryCode = 0x00, - .bNumDescriptors = 2, + .bNumDescriptors = 1, .bDescriptorType = USBDESCR_HID_REPORT, .wDescriptorLength = sizeof(raw_hid_report) }, From a380a26ad2fa4cfa580134be81772153b697a1ac Mon Sep 17 00:00:00 2001 From: Erovia Date: Mon, 21 Dec 2020 13:29:36 +0100 Subject: [PATCH 004/140] Split of the doctor codebase (#11255) Co-authored-by: Ryan --- lib/python/qmk/cli/doctor.py | 288 +------------------- lib/python/qmk/os_helpers/__init__.py | 165 +++++++++++ lib/python/qmk/os_helpers/linux/__init__.py | 140 ++++++++++ 3 files changed, 308 insertions(+), 285 deletions(-) create mode 100644 lib/python/qmk/os_helpers/__init__.py create mode 100644 lib/python/qmk/os_helpers/linux/__init__.py diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py index ea1113c6457f..70f32911a4ff 100755 --- a/lib/python/qmk/cli/doctor.py +++ b/lib/python/qmk/cli/doctor.py @@ -3,293 +3,13 @@ Check out the user's QMK environment and make sure it's ready to compile. """ import platform -import re -import shutil -import subprocess -from pathlib import Path -from enum import Enum from milc import cli from milc.questions import yesno from qmk import submodules from qmk.constants import QMK_FIRMWARE from qmk.commands import run - - -class CheckStatus(Enum): - OK = 1 - WARNING = 2 - ERROR = 3 - - -ESSENTIAL_BINARIES = { - 'dfu-programmer': {}, - 'avrdude': {}, - 'dfu-util': {}, - 'avr-gcc': { - 'version_arg': '-dumpversion' - }, - 'arm-none-eabi-gcc': { - 'version_arg': '-dumpversion' - }, - 'bin/qmk': {}, -} - - -def _udev_rule(vid, pid=None, *args): - """ Helper function that return udev rules - """ - rule = "" - if pid: - rule = 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", TAG+="uaccess"' % ( - vid, - pid, - ) - else: - rule = 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", TAG+="uaccess"' % vid - if args: - rule = ', '.join([rule, *args]) - return rule - - -def _deprecated_udev_rule(vid, pid=None): - """ Helper function that return udev rules - - Note: these are no longer the recommended rules, this is just used to check for them - """ - if pid: - return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", MODE:="0666"' % (vid, pid) - else: - return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", MODE:="0666"' % vid - - -def parse_gcc_version(version): - m = re.match(r"(\d+)(?:\.(\d+))?(?:\.(\d+))?", version) - - return { - 'major': int(m.group(1)), - 'minor': int(m.group(2)) if m.group(2) else 0, - 'patch': int(m.group(3)) if m.group(3) else 0, - } - - -def check_arm_gcc_version(): - """Returns True if the arm-none-eabi-gcc version is not known to cause problems. - """ - if 'output' in ESSENTIAL_BINARIES['arm-none-eabi-gcc']: - version_number = ESSENTIAL_BINARIES['arm-none-eabi-gcc']['output'].strip() - cli.log.info('Found arm-none-eabi-gcc version %s', version_number) - - return CheckStatus.OK # Right now all known arm versions are ok - - -def check_avr_gcc_version(): - """Returns True if the avr-gcc version is not known to cause problems. - """ - rc = CheckStatus.ERROR - if 'output' in ESSENTIAL_BINARIES['avr-gcc']: - version_number = ESSENTIAL_BINARIES['avr-gcc']['output'].strip() - - cli.log.info('Found avr-gcc version %s', version_number) - rc = CheckStatus.OK - - parsed_version = parse_gcc_version(version_number) - if parsed_version['major'] > 8: - cli.log.warning('{fg_yellow}We do not recommend avr-gcc newer than 8. Downgrading to 8.x is recommended.') - rc = CheckStatus.WARNING - - return rc - - -def check_avrdude_version(): - if 'output' in ESSENTIAL_BINARIES['avrdude']: - last_line = ESSENTIAL_BINARIES['avrdude']['output'].split('\n')[-2] - version_number = last_line.split()[2][:-1] - cli.log.info('Found avrdude version %s', version_number) - - return CheckStatus.OK - - -def check_dfu_util_version(): - if 'output' in ESSENTIAL_BINARIES['dfu-util']: - first_line = ESSENTIAL_BINARIES['dfu-util']['output'].split('\n')[0] - version_number = first_line.split()[1] - cli.log.info('Found dfu-util version %s', version_number) - - return CheckStatus.OK - - -def check_dfu_programmer_version(): - if 'output' in ESSENTIAL_BINARIES['dfu-programmer']: - first_line = ESSENTIAL_BINARIES['dfu-programmer']['output'].split('\n')[0] - version_number = first_line.split()[1] - cli.log.info('Found dfu-programmer version %s', version_number) - - return CheckStatus.OK - - -def check_binaries(): - """Iterates through ESSENTIAL_BINARIES and tests them. - """ - ok = True - - for binary in sorted(ESSENTIAL_BINARIES): - if not is_executable(binary): - ok = False - - return ok - - -def check_submodules(): - """Iterates through all submodules to make sure they're cloned and up to date. - """ - for submodule in submodules.status().values(): - if submodule['status'] is None: - cli.log.error('Submodule %s has not yet been cloned!', submodule['name']) - return CheckStatus.ERROR - elif not submodule['status']: - cli.log.warning('Submodule %s is not up to date!', submodule['name']) - return CheckStatus.WARNING - - return CheckStatus.OK - - -def check_git_repo(): - """Checks that the .git directory exists inside QMK_HOME. - - This is a decent enough indicator that the qmk_firmware directory is a - proper Git repository, rather than a .zip download from GitHub. - """ - dot_git_dir = QMK_FIRMWARE / '.git' - - return CheckStatus.OK if dot_git_dir.is_dir() else CheckStatus.WARNING - - -def check_udev_rules(): - """Make sure the udev rules look good. - """ - rc = CheckStatus.OK - udev_dir = Path("/etc/udev/rules.d/") - desired_rules = { - 'atmel-dfu': { - _udev_rule("03eb", "2fef"), # ATmega16U2 - _udev_rule("03eb", "2ff0"), # ATmega32U2 - _udev_rule("03eb", "2ff3"), # ATmega16U4 - _udev_rule("03eb", "2ff4"), # ATmega32U4 - _udev_rule("03eb", "2ff9"), # AT90USB64 - _udev_rule("03eb", "2ffb") # AT90USB128 - }, - 'kiibohd': {_udev_rule("1c11", "b007")}, - 'stm32': { - _udev_rule("1eaf", "0003"), # STM32duino - _udev_rule("0483", "df11") # STM32 DFU - }, - 'bootloadhid': {_udev_rule("16c0", "05df")}, - 'usbasploader': {_udev_rule("16c0", "05dc")}, - 'massdrop': {_udev_rule("03eb", "6124", 'ENV{ID_MM_DEVICE_IGNORE}="1"')}, - 'caterina': { - # Spark Fun Electronics - _udev_rule("1b4f", "9203", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Pro Micro 3V3/8MHz - _udev_rule("1b4f", "9205", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Pro Micro 5V/16MHz - _udev_rule("1b4f", "9207", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # LilyPad 3V3/8MHz (and some Pro Micro clones) - # Pololu EleCTRONICS - _udev_rule("1ffb", "0101", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # A-Star 32U4 - # Arduino SA - _udev_rule("2341", "0036", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Leonardo - _udev_rule("2341", "0037", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Micro - # Adafruit INDUSTRIES llC - _udev_rule("239a", "000c", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Feather 32U4 - _udev_rule("239a", "000d", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # ItsyBitsy 32U4 3V3/8MHz - _udev_rule("239a", "000e", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # ItsyBitsy 32U4 5V/16MHz - # dog hunter ag - _udev_rule("2a03", "0036", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Leonardo - _udev_rule("2a03", "0037", 'ENV{ID_MM_DEVICE_IGNORE}="1"') # Micro - } - } - - # These rules are no longer recommended, only use them to check for their presence. - deprecated_rules = { - 'atmel-dfu': {_deprecated_udev_rule("03eb", "2ff4"), _deprecated_udev_rule("03eb", "2ffb"), _deprecated_udev_rule("03eb", "2ff0")}, - 'kiibohd': {_deprecated_udev_rule("1c11")}, - 'stm32': {_deprecated_udev_rule("1eaf", "0003"), _deprecated_udev_rule("0483", "df11")}, - 'bootloadhid': {_deprecated_udev_rule("16c0", "05df")}, - 'caterina': {'ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"', 'ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"'}, - 'tmk': {_deprecated_udev_rule("feed")} - } - - if udev_dir.exists(): - udev_rules = [rule_file for rule_file in udev_dir.glob('*.rules')] - current_rules = set() - - # Collect all rules from the config files - for rule_file in udev_rules: - for line in rule_file.read_text().split('\n'): - line = line.strip() - if not line.startswith("#") and len(line): - current_rules.add(line) - - # Check if the desired rules are among the currently present rules - for bootloader, rules in desired_rules.items(): - if not rules.issubset(current_rules): - deprecated_rule = deprecated_rules.get(bootloader) - if deprecated_rule and deprecated_rule.issubset(current_rules): - cli.log.warning("{fg_yellow}Found old, deprecated udev rules for '%s' boards. The new rules on https://docs.qmk.fm/#/faq_build?id=linux-udev-rules offer better security with the same functionality.", bootloader) - else: - # For caterina, check if ModemManager is running - if bootloader == "caterina": - if check_modem_manager(): - rc = CheckStatus.WARNING - cli.log.warning("{fg_yellow}Detected ModemManager without the necessary udev rules. Please either disable it or set the appropriate udev rules if you are using a Pro Micro.") - rc = CheckStatus.WARNING - cli.log.warning("{fg_yellow}Missing or outdated udev rules for '%s' boards. Run 'sudo cp %s/util/udev/50-qmk.rules /etc/udev/rules.d/'.", bootloader, QMK_FIRMWARE) - - else: - cli.log.warning("{fg_yellow}'%s' does not exist. Skipping udev rule checking...", udev_dir) - - return rc - - -def check_systemd(): - """Check if it's a systemd system - """ - return bool(shutil.which("systemctl")) - - -def check_modem_manager(): - """Returns True if ModemManager is running. - - """ - if check_systemd(): - mm_check = run(["systemctl", "--quiet", "is-active", "ModemManager.service"], timeout=10) - if mm_check.returncode == 0: - return True - else: - """(TODO): Add check for non-systemd systems - """ - return False - - -def is_executable(command): - """Returns True if command exists and can be executed. - """ - # Make sure the command is in the path. - res = shutil.which(command) - if res is None: - cli.log.error("{fg_red}Can't find %s in your path.", command) - return False - - # Make sure the command can be executed - version_arg = ESSENTIAL_BINARIES[command].get('version_arg', '--version') - check = run([command, version_arg], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, timeout=5, universal_newlines=True) - - ESSENTIAL_BINARIES[command]['output'] = check.stdout - - if check.returncode in [0, 1]: # Older versions of dfu-programmer exit 1 - cli.log.debug('Found {fg_cyan}%s', command) - return True - - cli.log.error("{fg_red}Can't run `%s %s`", command, version_arg) - return False +from qmk.os_helpers import CheckStatus, check_binaries, check_binary_versions, check_submodules, check_git_repo def os_tests(): @@ -312,6 +32,7 @@ def os_test_linux(): """Run the Linux specific tests. """ cli.log.info("Detected {fg_cyan}Linux.") + from qmk.os_helpers.linux import check_udev_rules return check_udev_rules() @@ -370,10 +91,7 @@ def doctor(cli): status = CheckStatus.ERROR # Make sure the tools are at the correct version - ver_ok = [] - for check in (check_arm_gcc_version, check_avr_gcc_version, check_avrdude_version, check_dfu_util_version, check_dfu_programmer_version): - ver_ok.append(check()) - + ver_ok = check_binary_versions() if CheckStatus.ERROR in ver_ok: status = CheckStatus.ERROR elif CheckStatus.WARNING in ver_ok and status == CheckStatus.OK: diff --git a/lib/python/qmk/os_helpers/__init__.py b/lib/python/qmk/os_helpers/__init__.py new file mode 100644 index 000000000000..3f64a63a3af5 --- /dev/null +++ b/lib/python/qmk/os_helpers/__init__.py @@ -0,0 +1,165 @@ +"""OS-agnostic helper functions +""" +from enum import Enum +import re +import shutil +import subprocess + +from milc import cli +from qmk.commands import run +from qmk import submodules +from qmk.constants import QMK_FIRMWARE + + +class CheckStatus(Enum): + OK = 1 + WARNING = 2 + ERROR = 3 + + +ESSENTIAL_BINARIES = { + 'dfu-programmer': {}, + 'avrdude': {}, + 'dfu-util': {}, + 'avr-gcc': { + 'version_arg': '-dumpversion' + }, + 'arm-none-eabi-gcc': { + 'version_arg': '-dumpversion' + }, + 'bin/qmk': {}, +} + + +def parse_gcc_version(version): + m = re.match(r"(\d+)(?:\.(\d+))?(?:\.(\d+))?", version) + + return { + 'major': int(m.group(1)), + 'minor': int(m.group(2)) if m.group(2) else 0, + 'patch': int(m.group(3)) if m.group(3) else 0, + } + + +def check_arm_gcc_version(): + """Returns True if the arm-none-eabi-gcc version is not known to cause problems. + """ + if 'output' in ESSENTIAL_BINARIES['arm-none-eabi-gcc']: + version_number = ESSENTIAL_BINARIES['arm-none-eabi-gcc']['output'].strip() + cli.log.info('Found arm-none-eabi-gcc version %s', version_number) + + return CheckStatus.OK # Right now all known arm versions are ok + + +def check_avr_gcc_version(): + """Returns True if the avr-gcc version is not known to cause problems. + """ + rc = CheckStatus.ERROR + if 'output' in ESSENTIAL_BINARIES['avr-gcc']: + version_number = ESSENTIAL_BINARIES['avr-gcc']['output'].strip() + + cli.log.info('Found avr-gcc version %s', version_number) + rc = CheckStatus.OK + + parsed_version = parse_gcc_version(version_number) + if parsed_version['major'] > 8: + cli.log.warning('{fg_yellow}We do not recommend avr-gcc newer than 8. Downgrading to 8.x is recommended.') + rc = CheckStatus.WARNING + + return rc + + +def check_avrdude_version(): + if 'output' in ESSENTIAL_BINARIES['avrdude']: + last_line = ESSENTIAL_BINARIES['avrdude']['output'].split('\n')[-2] + version_number = last_line.split()[2][:-1] + cli.log.info('Found avrdude version %s', version_number) + + return CheckStatus.OK + + +def check_dfu_util_version(): + if 'output' in ESSENTIAL_BINARIES['dfu-util']: + first_line = ESSENTIAL_BINARIES['dfu-util']['output'].split('\n')[0] + version_number = first_line.split()[1] + cli.log.info('Found dfu-util version %s', version_number) + + return CheckStatus.OK + + +def check_dfu_programmer_version(): + if 'output' in ESSENTIAL_BINARIES['dfu-programmer']: + first_line = ESSENTIAL_BINARIES['dfu-programmer']['output'].split('\n')[0] + version_number = first_line.split()[1] + cli.log.info('Found dfu-programmer version %s', version_number) + + return CheckStatus.OK + + +def check_binaries(): + """Iterates through ESSENTIAL_BINARIES and tests them. + """ + ok = True + + for binary in sorted(ESSENTIAL_BINARIES): + if not is_executable(binary): + ok = False + + return ok + + +def check_binary_versions(): + """Check the versions of ESSENTIAL_BINARIES + """ + versions = [] + for check in (check_arm_gcc_version, check_avr_gcc_version, check_avrdude_version, check_dfu_util_version, check_dfu_programmer_version): + versions.append(check()) + return versions + + +def check_submodules(): + """Iterates through all submodules to make sure they're cloned and up to date. + """ + for submodule in submodules.status().values(): + if submodule['status'] is None: + cli.log.error('Submodule %s has not yet been cloned!', submodule['name']) + return CheckStatus.ERROR + elif not submodule['status']: + cli.log.warning('Submodule %s is not up to date!', submodule['name']) + return CheckStatus.WARNING + + return CheckStatus.OK + + +def is_executable(command): + """Returns True if command exists and can be executed. + """ + # Make sure the command is in the path. + res = shutil.which(command) + if res is None: + cli.log.error("{fg_red}Can't find %s in your path.", command) + return False + + # Make sure the command can be executed + version_arg = ESSENTIAL_BINARIES[command].get('version_arg', '--version') + check = run([command, version_arg], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, timeout=5, universal_newlines=True) + + ESSENTIAL_BINARIES[command]['output'] = check.stdout + + if check.returncode in [0, 1]: # Older versions of dfu-programmer exit 1 + cli.log.debug('Found {fg_cyan}%s', command) + return True + + cli.log.error("{fg_red}Can't run `%s %s`", command, version_arg) + return False + + +def check_git_repo(): + """Checks that the .git directory exists inside QMK_HOME. + + This is a decent enough indicator that the qmk_firmware directory is a + proper Git repository, rather than a .zip download from GitHub. + """ + dot_git_dir = QMK_FIRMWARE / '.git' + + return CheckStatus.OK if dot_git_dir.is_dir() else CheckStatus.WARNING diff --git a/lib/python/qmk/os_helpers/linux/__init__.py b/lib/python/qmk/os_helpers/linux/__init__.py new file mode 100644 index 000000000000..86850bf2843c --- /dev/null +++ b/lib/python/qmk/os_helpers/linux/__init__.py @@ -0,0 +1,140 @@ +"""OS-specific functions for: Linux +""" +from pathlib import Path +import shutil + +from milc import cli +from qmk.constants import QMK_FIRMWARE +from qmk.commands import run +from qmk.os_helpers import CheckStatus + + +def _udev_rule(vid, pid=None, *args): + """ Helper function that return udev rules + """ + rule = "" + if pid: + rule = 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", TAG+="uaccess"' % ( + vid, + pid, + ) + else: + rule = 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", TAG+="uaccess"' % vid + if args: + rule = ', '.join([rule, *args]) + return rule + + +def _deprecated_udev_rule(vid, pid=None): + """ Helper function that return udev rules + + Note: these are no longer the recommended rules, this is just used to check for them + """ + if pid: + return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", MODE:="0666"' % (vid, pid) + else: + return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", MODE:="0666"' % vid + + +def check_udev_rules(): + """Make sure the udev rules look good. + """ + rc = CheckStatus.OK + udev_dir = Path("/etc/udev/rules.d/") + desired_rules = { + 'atmel-dfu': { + _udev_rule("03eb", "2fef"), # ATmega16U2 + _udev_rule("03eb", "2ff0"), # ATmega32U2 + _udev_rule("03eb", "2ff3"), # ATmega16U4 + _udev_rule("03eb", "2ff4"), # ATmega32U4 + _udev_rule("03eb", "2ff9"), # AT90USB64 + _udev_rule("03eb", "2ffb") # AT90USB128 + }, + 'kiibohd': {_udev_rule("1c11", "b007")}, + 'stm32': { + _udev_rule("1eaf", "0003"), # STM32duino + _udev_rule("0483", "df11") # STM32 DFU + }, + 'bootloadhid': {_udev_rule("16c0", "05df")}, + 'usbasploader': {_udev_rule("16c0", "05dc")}, + 'massdrop': {_udev_rule("03eb", "6124", 'ENV{ID_MM_DEVICE_IGNORE}="1"')}, + 'caterina': { + # Spark Fun Electronics + _udev_rule("1b4f", "9203", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Pro Micro 3V3/8MHz + _udev_rule("1b4f", "9205", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Pro Micro 5V/16MHz + _udev_rule("1b4f", "9207", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # LilyPad 3V3/8MHz (and some Pro Micro clones) + # Pololu Electronics + _udev_rule("1ffb", "0101", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # A-Star 32U4 + # Arduino SA + _udev_rule("2341", "0036", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Leonardo + _udev_rule("2341", "0037", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Micro + # Adafruit Industries LLC + _udev_rule("239a", "000c", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Feather 32U4 + _udev_rule("239a", "000d", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # ItsyBitsy 32U4 3V3/8MHz + _udev_rule("239a", "000e", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # ItsyBitsy 32U4 5V/16MHz + # dog hunter AG + _udev_rule("2a03", "0036", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Leonardo + _udev_rule("2a03", "0037", 'ENV{ID_MM_DEVICE_IGNORE}="1"') # Micro + } + } + + # These rules are no longer recommended, only use them to check for their presence. + deprecated_rules = { + 'atmel-dfu': {_deprecated_udev_rule("03eb", "2ff4"), _deprecated_udev_rule("03eb", "2ffb"), _deprecated_udev_rule("03eb", "2ff0")}, + 'kiibohd': {_deprecated_udev_rule("1c11")}, + 'stm32': {_deprecated_udev_rule("1eaf", "0003"), _deprecated_udev_rule("0483", "df11")}, + 'bootloadhid': {_deprecated_udev_rule("16c0", "05df")}, + 'caterina': {'ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"', 'ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"'}, + 'tmk': {_deprecated_udev_rule("feed")} + } + + if udev_dir.exists(): + udev_rules = [rule_file for rule_file in udev_dir.glob('*.rules')] + current_rules = set() + + # Collect all rules from the config files + for rule_file in udev_rules: + for line in rule_file.read_text().split('\n'): + line = line.strip() + if not line.startswith("#") and len(line): + current_rules.add(line) + + # Check if the desired rules are among the currently present rules + for bootloader, rules in desired_rules.items(): + if not rules.issubset(current_rules): + deprecated_rule = deprecated_rules.get(bootloader) + if deprecated_rule and deprecated_rule.issubset(current_rules): + cli.log.warning("{fg_yellow}Found old, deprecated udev rules for '%s' boards. The new rules on https://docs.qmk.fm/#/faq_build?id=linux-udev-rules offer better security with the same functionality.", bootloader) + else: + # For caterina, check if ModemManager is running + if bootloader == "caterina": + if check_modem_manager(): + rc = CheckStatus.WARNING + cli.log.warning("{fg_yellow}Detected ModemManager without the necessary udev rules. Please either disable it or set the appropriate udev rules if you are using a Pro Micro.") + rc = CheckStatus.WARNING + cli.log.warning("{fg_yellow}Missing or outdated udev rules for '%s' boards. Run 'sudo cp %s/util/udev/50-qmk.rules /etc/udev/rules.d/'.", bootloader, QMK_FIRMWARE) + + else: + cli.log.warning("{fg_yellow}'%s' does not exist. Skipping udev rule checking...", udev_dir) + + return rc + + +def check_systemd(): + """Check if it's a systemd system + """ + return bool(shutil.which("systemctl")) + + +def check_modem_manager(): + """Returns True if ModemManager is running. + + """ + if check_systemd(): + mm_check = run(["systemctl", "--quiet", "is-active", "ModemManager.service"], timeout=10) + if mm_check.returncode == 0: + return True + else: + """(TODO): Add check for non-systemd systems + """ + return False From 4e0718a3b7d66ab9f2c41641aeee88d9a2c574d7 Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 21 Dec 2020 15:34:40 +0100 Subject: [PATCH 005/140] [Keyboard] add Lily58L keymap (#9870) Co-authored-by: Drashna Jaelre Co-authored-by: Erovia Co-authored-by: Ryan --- keyboards/lily58/keymaps/lily58l/config.h | 39 +++ keyboards/lily58/keymaps/lily58l/keymap.c | 330 +++++++++++++++++++++ keyboards/lily58/keymaps/lily58l/readme.md | 24 ++ keyboards/lily58/keymaps/lily58l/rules.mk | 1 + keyboards/lily58/light/config.h | 53 ++++ keyboards/lily58/light/info.json | 18 ++ keyboards/lily58/light/light.c | 16 + keyboards/lily58/light/light.h | 50 ++++ keyboards/lily58/light/rules.mk | 3 + keyboards/lily58/lily58.h | 2 + 10 files changed, 536 insertions(+) create mode 100644 keyboards/lily58/keymaps/lily58l/config.h create mode 100644 keyboards/lily58/keymaps/lily58l/keymap.c create mode 100644 keyboards/lily58/keymaps/lily58l/readme.md create mode 100644 keyboards/lily58/keymaps/lily58l/rules.mk create mode 100644 keyboards/lily58/light/config.h create mode 100644 keyboards/lily58/light/info.json create mode 100644 keyboards/lily58/light/light.c create mode 100644 keyboards/lily58/light/light.h create mode 100644 keyboards/lily58/light/rules.mk diff --git a/keyboards/lily58/keymaps/lily58l/config.h b/keyboards/lily58/keymaps/lily58l/config.h new file mode 100644 index 000000000000..efecbb844959 --- /dev/null +++ b/keyboards/lily58/keymaps/lily58l/config.h @@ -0,0 +1,39 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2020 Ben Roesner (keycapsss.com) + +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 . +*/ + +#pragma once + +/* Select hand configuration */ +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#ifdef RGBLIGHT_ENABLE +# define RGBLIGHT_ANIMATIONS +# define RGBLIGHT_HUE_STEP 6 // number of steps to cycle through the hue by +# define RGBLIGHT_SAT_STEP 6 // number of steps to increment the saturation by +# define RGBLIGHT_VAL_STEP 6 // number of steps to increment the brightness by +# define RGBLIGHT_SLEEP // the RGB lighting will be switched off when the host goes to sleep +#endif + +// If you are using an Elite C rev3 on the slave side, uncomment the lines below: +// #define SPLIT_USB_DETECT +// #define NO_USB_STARTUP_CHECK diff --git a/keyboards/lily58/keymaps/lily58l/keymap.c b/keyboards/lily58/keymaps/lily58l/keymap.c new file mode 100644 index 000000000000..6683d2242e5d --- /dev/null +++ b/keyboards/lily58/keymaps/lily58l/keymap.c @@ -0,0 +1,330 @@ + /* Copyright 2017 F_YUUCHI + * Copyright 2020 Drashna Jaelre <@drashna> + * Copyright 2020 Ben Roesner (keycapsss.com) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + + +extern uint8_t is_master; + +enum layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + + [_QWERTY] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LALT, KC_LGUI,LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC, KC_RGUI +), +/* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | _ | + | { | } | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ +[_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, _______ +), +/* RAISE + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + +[_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______ +), +/* ADJUST + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | |-------. ,-------| | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | | MODE | HUE- | SAT- | VAL- | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + [_ADJUST] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); + return state; +} + +//SSD1306 OLED update loop, make sure to enable OLED_DRIVER_ENABLE=yes in rules.mk +#ifdef OLED_DRIVER_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_270; + } else { + return OLED_ROTATION_0; + } +} + +void render_lily58_logo(void) { + static const char PROGMEM lily58_logo[] = { + // 'logo', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x80, 0xe0, 0x70, 0x3c, 0x0e, 0x06, 0x0e, 0x3c, 0x70, 0xe0, 0x80, 0x00, 0x00, 0xc0, 0xc0, 0x00, + 0xc0, 0xc0, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0xc0, 0x80, 0x80, 0x80, 0x81, 0x83, 0x83, + 0x07, 0x07, 0x0c, 0x18, 0x70, 0xe0, 0x80, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x80, 0xb6, 0xb6, 0x80, + 0xb0, 0xb0, 0x00, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x30, 0xf0, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xf0, + 0x30, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xe1, 0x71, 0x71, 0xf1, 0xf1, 0xe1, 0xc1, 0x81, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x3f, 0xff, 0xf3, 0xe1, 0xc1, 0xc1, 0x81, 0x81, 0xc3, 0xff, 0x7f, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x70, 0x78, 0xdc, 0xcc, 0x86, 0x06, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x03, 0x02, 0x06, 0x84, 0xe1, 0xfb, 0x38, 0x1c, 0x0c, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x03, 0x03, 0x06, 0x86, 0xcc, 0xdc, 0x78, 0x70, 0x20, 0x00, 0xff, 0xff, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x7e, 0xf8, 0xe0, 0xf0, 0x7e, 0x1f, 0x03, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0xc0, 0xe1, 0xff, 0x7f, 0x3f, 0x00, + 0x00, 0x00, 0x3e, 0xff, 0xff, 0xc1, 0xc0, 0x80, 0x81, 0x81, 0xc3, 0xc3, 0xff, 0xfe, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x06, 0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x06, + 0x06, 0x02, 0x03, 0x01, 0x01, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x06, 0x04, 0x04, 0x04, 0x04, + 0x06, 0x06, 0x06, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x60, 0x60, 0x70, 0x38, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 +}; + oled_write_raw_P(lily58_logo, sizeof(lily58_logo)); +} + + +# define KEYLOG_LEN 6 +char keylog_str[KEYLOG_LEN] = {}; +uint8_t keylogs_str_idx = 0; +uint16_t log_timer = 0; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', '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', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void add_keylog(uint16_t keycode) { + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { + keycode = keycode & 0xFF; + } + + for (uint8_t i = KEYLOG_LEN - 1; i > 0; i--) { + keylog_str[i] = keylog_str[i - 1]; + } + if (keycode < 60) { + keylog_str[0] = code_to_name[keycode]; + } + keylog_str[KEYLOG_LEN - 1] = 0; + + log_timer = timer_read(); +} + +void update_log(void) { + if (timer_elapsed(log_timer) > 750) { + add_keylog(0); + } +} + +void render_keylogger_status(void) { + oled_write_P(PSTR("KLogr"), false); + oled_write(keylog_str, false); +} + +void render_default_layer_state(void) { + oled_write_P(PSTR("Layer"), false); + oled_write_P(PSTR(" "), false); + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("QRTY"), false); + break; + case _LOWER: + oled_write_ln_P(PSTR("LOW"), false); + break; + case _RAISE: + oled_write_P(PSTR("HIGH"), false); + break; + case _ADJUST: + oled_write_ln_P(PSTR("ADJ"), false); + break; + default: + oled_write_ln_P(PSTR("Undefined"), false); + } +} + +void render_keylock_status(led_t led_state) { + oled_write_ln_P(PSTR("Lock"), false); + oled_write_P(PSTR(" "), false); + oled_write_P(PSTR("N"), led_state.num_lock); + oled_write_P(PSTR("C"), led_state.caps_lock); + oled_write_ln_P(PSTR("S"), led_state.scroll_lock); +} + +void render_mod_status(uint8_t modifiers) { + oled_write_ln_P(PSTR("Mods"), false); + oled_write_P(PSTR(" "), false); + oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); + oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL)); + oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT)); + oled_write_P(PSTR("G"), (modifiers & MOD_MASK_GUI)); +} + +void render_status_main(void) { + // Show keyboard layout + render_default_layer_state(); + // Add a empty line + oled_write_P(PSTR("-----"), false); + // Show host keyboard led status + render_keylock_status(host_keyboard_led_state()); + // Add a empty line + oled_write_P(PSTR("-----"), false); + // Show modifier status + render_mod_status(get_mods()); + // Add a empty line + oled_write_P(PSTR("-----"), false); + render_keylogger_status(); +} + +void oled_task_user(void) { + update_log(); + if (is_keyboard_master()) { + render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_lily58_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + add_keylog(keycode); + } + return true; +} +#endif // OLED_DRIVER_ENABLE + + +// Rotary encoder related code +#ifdef ENCODER_ENABLE +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { // Encoder on master side + if(IS_LAYER_ON(_RAISE)) { // on Raise layer + // Cursor control + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + } + else { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + } + else if (index == 1) { // Encoder on slave side + if(IS_LAYER_ON(_LOWER)) { // on Lower layer + // + if (clockwise) { + tap_code(KC_RIGHT); + } else { + tap_code(KC_LEFT); + } + } + else { + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } + } +} +#endif diff --git a/keyboards/lily58/keymaps/lily58l/readme.md b/keyboards/lily58/keymaps/lily58l/readme.md new file mode 100644 index 000000000000..68af9241a947 --- /dev/null +++ b/keyboards/lily58/keymaps/lily58l/readme.md @@ -0,0 +1,24 @@ +# Lily58L + + +A modified Lily58 pcb, with underglow, per key rgb light and rotary encoder support. +- SK6812 Mini-E per key led's (58x) for easy soldering +- 6x SK6812 Mini led's per side for underglow +- Support for 1 rotary encoder on each side + +Left encoder: volume up/down, next/previous track on RAISE layer +Right encoder: cursor down/up, right/left on LOWER layer + +* Keyboard Maintainer: BenRoe [GitHub](https://github.com/BenRoe) / [Twitter](https://twitter.com/keycapsss) +* Hardware Supported: Pro Micro, or Elite-C +* Hardware Availability: [Keycapsss.com](https://keycapsss.com) + +Make example for this keyboard (after setting up your build environment): + + make lily58/light:lily58l + +Flashing example for this keyboard: + + make lily58/light:lily58l:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/lily58/keymaps/lily58l/rules.mk b/keyboards/lily58/keymaps/lily58l/rules.mk new file mode 100644 index 000000000000..fcfd2225bcf8 --- /dev/null +++ b/keyboards/lily58/keymaps/lily58l/rules.mk @@ -0,0 +1 @@ +EXTRAKEY_ENABLE = yes diff --git a/keyboards/lily58/light/config.h b/keyboards/lily58/light/config.h new file mode 100644 index 000000000000..1893dde8eb7d --- /dev/null +++ b/keyboards/lily58/light/config.h @@ -0,0 +1,53 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2017 F_YUUCHI +Copyright 2020 Ben Roesner (keycapsss.com) + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7983 +#define PRODUCT_ID 0x4C4C // "LL" +#define DEVICE_VER 0x0100 +#define MANUFACTURER Keycapsss +#define PRODUCT Lily58L + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 } + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define SOFT_SERIAL_PIN D2 + +#define RGB_DI_PIN D3 +#define RGBLED_SPLIT { 35, 35 } +#define RGBLED_NUM 70 +#define RGBLIGHT_SPLIT +#define RGBLIGHT_LIMIT_VAL 120 + +#define ENCODERS_PAD_A { F4 } +#define ENCODERS_PAD_B { F5 } +#define ENCODERS_PAD_A_RIGHT { F5 } +#define ENCODERS_PAD_B_RIGHT { F4 } diff --git a/keyboards/lily58/light/info.json b/keyboards/lily58/light/info.json new file mode 100644 index 000000000000..a305103a954e --- /dev/null +++ b/keyboards/lily58/light/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "Lily58", + "url": "https://keycapsss.com", + "maintainer": "BenRoe", + "width": 16.5, + "height": 5.25, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.5}, {"x":1, "y":0.375}, {"x":2, "y":0.125}, {"x":3, "y":0}, {"x":4, "y":0.125}, {"x":5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.5}, + {"x":0, "y":1.5}, {"x":1, "y":1.375}, {"x":2, "y":1.125}, {"x":3, "y":1}, {"x":4, "y":1.125}, {"x":5, "y":1.25}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.5}, + {"x":0, "y":2.5}, {"x":1, "y":2.375}, {"x":2, "y":2.125}, {"x":3, "y":2}, {"x":4, "y":2.125}, {"x":5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.5}, + {"x":0, "y":3.5}, {"x":1, "y":3.375}, {"x":2, "y":3.125}, {"x":3, "y":3}, {"x":4, "y":3.125}, {"x":5, "y":3.25}, {"x":6, "y":2.75}, {"x":9.5, "y":2.75}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.5}, + {"x":2.5, "y":4.125}, {"x":3.5, "y":4.15}, {"x":4.5, "y":4.25}, {"x":6, "y":4.25, "h":1.5}, {"x":9.5, "y":4.25, "h":1.5}, {"x":11, "y":4.25}, {"x":12, "y":4.15}, {"x":13, "y":4.15} + ] + } + } +} diff --git a/keyboards/lily58/light/light.c b/keyboards/lily58/light/light.c new file mode 100644 index 000000000000..57a0df93dbe4 --- /dev/null +++ b/keyboards/lily58/light/light.c @@ -0,0 +1,16 @@ +/* +Copyright 2020 Ben Roesner (keycapsss.com) +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 . +*/ + +#include "lily58.h" + diff --git a/keyboards/lily58/light/light.h b/keyboards/lily58/light/light.h new file mode 100644 index 000000000000..833ad13d0034 --- /dev/null +++ b/keyboards/lily58/light/light.h @@ -0,0 +1,50 @@ +#pragma once + +#include "lily58.h" + +#include "quantum.h" + + +#ifndef FLIP_HALF +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, L45, R40, R30, R31, R32, R33, R34, R35, \ + L41, L42, L43, L44, R41, R42, R43, R44 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { KC_NO, L41, L42, L43, L44, L45 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 }, \ + { R35, R34, R33, R32, R31, R30 }, \ + { KC_NO, R44, R43, R42, R41, R40 } \ + } +#else +// Keymap with right side flipped +// (TRRS jack on both halves are to the right) +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, L45, R30, R31, R32, R33, R34, R35, R45, \ + L41, L42, L43, L44, R41, R42, R43, R44 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { KC_NO, L41, L42, L43, L44, L45 }, \ + { R00, R01, R02, R03, R04, R05 }, \ + { R10, R11, R12, R13, R14, R15 }, \ + { R20, R21, R22, R23, R24, R25 }, \ + { R30, R31, R32, R33, R34, R35 }, \ + { KC_NO, R41, R42, R43, R44, R45 } \ + } +#endif diff --git a/keyboards/lily58/light/rules.mk b/keyboards/lily58/light/rules.mk new file mode 100644 index 000000000000..d4957d98e432 --- /dev/null +++ b/keyboards/lily58/light/rules.mk @@ -0,0 +1,3 @@ +ENCODER_ENABLE = yes # ENables the use of one or more encoders +RGBLIGHT_ENABLE = yes # Enable keyboard RGB light +LTO_ENABLE = yes # significantly reduce the compiled size, but disable the legacy TMK Macros and Functions features diff --git a/keyboards/lily58/lily58.h b/keyboards/lily58/lily58.h index 064f847dd256..4f6f262bbc59 100644 --- a/keyboards/lily58/lily58.h +++ b/keyboards/lily58/lily58.h @@ -2,4 +2,6 @@ #ifdef KEYBOARD_lily58_rev1 #include "rev1.h" +#elif KEYBOARD_lily58_light + #include "light.h" #endif From c0dcee96a8cfb82e9a925f562283b2450ba536ec Mon Sep 17 00:00:00 2001 From: Zach White Date: Mon, 21 Dec 2020 06:38:39 -0800 Subject: [PATCH 006/140] Initial list of keyboards to exclude from CI (#11213) --- keyboards/10bleoledhub/.noci | 0 keyboards/1upkeyboards/sweet16/.noci | 0 keyboards/4pplet/waffling60/rev_a/.noci | 0 keyboards/7skb/.noci | 0 keyboards/8pack/.noci | 0 keyboards/8pack/rev11/.noci | 0 keyboards/adkb96/.noci | 0 keyboards/aeboards/ext65/.noci | 0 keyboards/aeboards/ext65/rev1/.noci | 0 keyboards/ai03/equinox/rev0/.noci | 0 keyboards/angel17/.noci | 0 keyboards/angel17/alpha/.noci | 0 keyboards/angel64/.noci | 0 keyboards/angel64/alpha/.noci | 0 keyboards/basekeys/slice/rev1/.noci | 0 keyboards/bat43/.noci | 0 keyboards/bat43/rev1/.noci | 0 keyboards/bear_face/.noci | 0 keyboards/bear_face/v1/.noci | 0 keyboards/bemeier/bmek/rev1/.noci | 0 keyboards/bemeier/bmek/rev2/.noci | 0 keyboards/bigseries/1key/.noci | 0 keyboards/bigseries/2key/.noci | 0 keyboards/bigseries/3key/.noci | 0 keyboards/bpiphany/pegasushoof/.noci | 0 keyboards/bpiphany/pegasushoof/2013/.noci | 0 keyboards/business_card/.noci | 0 keyboards/business_card/alpha/.noci | 0 keyboards/cannonkeys/satisfaction75/.noci | 0 keyboards/cannonkeys/satisfaction75/prototype/.noci | 0 keyboards/chavdai40/rev1/.noci | 0 keyboards/christmas_tree/.noci | 0 keyboards/claw44/.noci | 0 keyboards/converter/sun_usb/.noci | 0 keyboards/converter/sun_usb/type3/.noci | 0 keyboards/cozykeys/speedo/v2/.noci | 0 keyboards/crkbd/.noci | 0 keyboards/crkbd/rev1/common/.noci | 0 keyboards/crkbd/rev1/legacy/.noci | 0 keyboards/duck/octagon/.noci | 0 keyboards/duck/octagon/v1/.noci | 0 keyboards/duck/orion/.noci | 0 keyboards/dztech/dz60rgb/v1/.noci | 0 keyboards/dztech/dz60rgb_ansi/v1/.noci | 0 keyboards/dztech/dz60rgb_wkl/v1/.noci | 0 keyboards/dztech/dz65rgb/v1/.noci | 0 keyboards/eco/.noci | 0 keyboards/eco/rev1/.noci | 0 keyboards/ergo42/.noci | 0 keyboards/ergodash/.noci | 0 keyboards/ergoslab/.noci | 0 keyboards/ergotravel/.noci | 0 keyboards/evyd13/atom47/.noci | 0 keyboards/evyd13/atom47/rev2/.noci | 0 keyboards/fortitude60/.noci | 0 keyboards/getta25/.noci | 0 keyboards/hadron/.noci | 0 keyboards/hadron/ver2/.noci | 0 keyboards/handwired/108key_trackpoint/.noci | 0 keyboards/handwired/2x5keypad/.noci | 0 keyboards/handwired/3dp660/.noci | 0 keyboards/handwired/412_64/.noci | 0 keyboards/handwired/42/.noci | 0 keyboards/handwired/6macro/.noci | 0 keyboards/handwired/aek64/.noci | 0 keyboards/handwired/aplx2/.noci | 0 keyboards/handwired/aranck/.noci | 0 keyboards/handwired/arrow_pad/.noci | 0 keyboards/handwired/atreus50/.noci | 0 keyboards/handwired/bdn9_ble/.noci | 0 keyboards/handwired/bento/.noci | 0 keyboards/handwired/bento/rev1/.noci | 0 keyboards/handwired/bluepill/.noci | 0 keyboards/handwired/bluepill/bluepill70/.noci | 0 keyboards/handwired/boss566y/redragon_vara/.noci | 0 keyboards/handwired/brain/.noci | 0 keyboards/handwired/cans12er/.noci | 0 keyboards/handwired/chiron/.noci | 0 keyboards/handwired/ck4x4/.noci | 0 keyboards/handwired/cmd60/.noci | 0 keyboards/handwired/co60/rev1/.noci | 0 keyboards/handwired/co60/rev6/.noci | 0 keyboards/handwired/co60/rev7/.noci | 0 keyboards/handwired/colorlice/.noci | 0 keyboards/handwired/curiosity/.noci | 0 keyboards/handwired/d48/.noci | 0 keyboards/handwired/dactyl/.noci | 0 keyboards/handwired/dactyl_left/.noci | 0 keyboards/handwired/dactyl_manuform/.noci | 0 keyboards/handwired/dactyl_manuform/4x5/.noci | 0 keyboards/handwired/dactyl_manuform/4x6/.noci | 0 keyboards/handwired/dactyl_manuform/5x6/.noci | 0 keyboards/handwired/dactyl_manuform/5x6_5/.noci | 0 keyboards/handwired/dactyl_manuform/5x7/.noci | 0 keyboards/handwired/dactyl_manuform/6x6/.noci | 0 keyboards/handwired/dactyl_manuform/dmote/62key/.noci | 0 keyboards/handwired/dactyl_promicro/.noci | 0 keyboards/handwired/dactyl_rah/.noci | 0 keyboards/handwired/daishi/.noci | 0 keyboards/handwired/datahand/.noci | 0 keyboards/handwired/ddg_56/.noci | 0 keyboards/handwired/eagleii/.noci | 0 keyboards/handwired/fc200rt_qmk/.noci | 0 keyboards/handwired/fivethirteen/.noci | 0 keyboards/handwired/floorboard/.noci | 0 keyboards/handwired/frenchdev/.noci | 0 keyboards/handwired/freoduo/.noci | 0 keyboards/handwired/fruity60/.noci | 0 keyboards/handwired/gamenum/.noci | 0 keyboards/handwired/hacked_motospeed/.noci | 0 keyboards/handwired/heisenberg/.noci | 0 keyboards/handwired/hexon38/.noci | 0 keyboards/handwired/hnah108/.noci | 0 keyboards/handwired/hnah40/.noci | 0 keyboards/handwired/hnah40rgb/.noci | 0 keyboards/handwired/ibm122m/.noci | 0 keyboards/handwired/jn68m/.noci | 0 keyboards/handwired/jopr/.noci | 0 keyboards/handwired/jot50/.noci | 0 keyboards/handwired/jotanck/.noci | 0 keyboards/handwired/jotpad16/.noci | 0 keyboards/handwired/jtallbean/split_65/.noci | 0 keyboards/handwired/juliet/.noci | 0 keyboards/handwired/k8split/.noci | 0 keyboards/handwired/k_numpad17/.noci | 0 keyboards/handwired/kbod/.noci | 0 keyboards/handwired/ks63/.noci | 0 keyboards/handwired/leftynumpad/.noci | 0 keyboards/handwired/lovelive9/.noci | 0 keyboards/handwired/magicforce61/.noci | 0 keyboards/handwired/magicforce68/.noci | 0 keyboards/handwired/mechboards_micropad/.noci | 0 keyboards/handwired/minorca/.noci | 0 keyboards/handwired/ms_sculpt_mobile/.noci | 0 keyboards/handwired/myskeeb/.noci | 0 keyboards/handwired/nicekey/.noci | 0 keyboards/handwired/not_so_minidox/.noci | 0 keyboards/handwired/novem/.noci | 0 keyboards/handwired/numpad20/.noci | 0 keyboards/handwired/obuwunkunubi/spaget/.noci | 0 keyboards/handwired/onekey/.noci | 0 keyboards/handwired/onekey/blackpill_f401/.noci | 0 keyboards/handwired/onekey/blackpill_f411/.noci | 0 keyboards/handwired/onekey/bluepill/.noci | 0 keyboards/handwired/onekey/elite_c/.noci | 0 keyboards/handwired/onekey/promicro/.noci | 0 keyboards/handwired/onekey/proton_c/.noci | 0 keyboards/handwired/onekey/pytest/.noci | 0 keyboards/handwired/onekey/stm32f0_disco/.noci | 0 keyboards/handwired/onekey/teensy_2/.noci | 0 keyboards/handwired/onekey/teensy_2pp/.noci | 0 keyboards/handwired/onekey/teensy_32/.noci | 0 keyboards/handwired/onekey/teensy_lc/.noci | 0 keyboards/handwired/ortho5x13/.noci | 0 keyboards/handwired/owlet60/.noci | 0 keyboards/handwired/p1800fl/.noci | 0 keyboards/handwired/p65rgb/.noci | 0 keyboards/handwired/pilcrow/.noci | 0 keyboards/handwired/pill60/.noci | 0 keyboards/handwired/pill60/blackpill_f401/.noci | 0 keyboards/handwired/pill60/blackpill_f411/.noci | 0 keyboards/handwired/pill60/bluepill/.noci | 0 keyboards/handwired/postageboard/.noci | 0 keyboards/handwired/postageboard/mini/.noci | 0 keyboards/handwired/postageboard/r1/.noci | 0 keyboards/handwired/prime_exl/.noci | 0 keyboards/handwired/prime_exl_plus/.noci | 0 keyboards/handwired/prkl30/feather/.noci | 0 keyboards/handwired/prkl30/promicro/.noci | 0 keyboards/handwired/promethium/.noci | 0 keyboards/handwired/pterodactyl/.noci | 0 keyboards/handwired/pteron/.noci | 0 keyboards/handwired/pteron38/.noci | 0 keyboards/handwired/pteron44/.noci | 0 keyboards/handwired/qc60/.noci | 0 keyboards/handwired/qc60/proto/.noci | 0 keyboards/handwired/reddot/.noci | 0 keyboards/handwired/retro_refit/.noci | 0 keyboards/handwired/riblee_f401/.noci | 0 keyboards/handwired/riblee_f411/.noci | 0 keyboards/handwired/rs60/.noci | 0 keyboards/handwired/selene/.noci | 0 keyboards/handwired/sick68/.noci | 0 keyboards/handwired/sick_pad/.noci | 0 keyboards/handwired/slash/.noci | 0 keyboards/handwired/space_oddity/.noci | 0 keyboards/handwired/splittest/.noci | 0 keyboards/handwired/splittest/promicro/.noci | 0 keyboards/handwired/splittest/teensy_2/.noci | 0 keyboards/handwired/steamvan/rev1/.noci | 0 keyboards/handwired/sticc14/.noci | 0 keyboards/handwired/stream_cheap/2x3/.noci | 0 keyboards/handwired/stream_cheap/2x4/.noci | 0 keyboards/handwired/stream_cheap/2x5/.noci | 0 keyboards/handwired/swiftrax/astro65/.noci | 0 keyboards/handwired/swiftrax/bebol/.noci | 0 keyboards/handwired/swiftrax/beegboy/.noci | 0 keyboards/handwired/swiftrax/cowfish/.noci | 0 keyboards/handwired/swiftrax/pandamic/.noci | 0 keyboards/handwired/swiftrax/retropad/.noci | 0 keyboards/handwired/swiftrax/unsplit/.noci | 0 keyboards/handwired/symmetric70_proto/.noci | 0 keyboards/handwired/symmetry60/.noci | 0 keyboards/handwired/t111/.noci | 0 keyboards/handwired/tennie/.noci | 0 keyboards/handwired/terminus_mini/.noci | 0 keyboards/handwired/trackpoint/.noci | 0 keyboards/handwired/traveller/.noci | 0 keyboards/handwired/tritium_numpad/.noci | 0 keyboards/handwired/twadlee/tp69/.noci | 0 keyboards/handwired/unk/.noci | 0 keyboards/handwired/unk/rev1/.noci | 0 keyboards/handwired/videowriter/.noci | 0 keyboards/handwired/wabi/.noci | 0 keyboards/handwired/woodpad/.noci | 0 keyboards/handwired/wulkan/.noci | 0 keyboards/handwired/xealous/.noci | 0 keyboards/handwired/xealous/rev1/.noci | 0 keyboards/handwired/xealousbrown/.noci | 0 keyboards/handwired/z150/.noci | 0 keyboards/handwired/zergo/.noci | 0 keyboards/helix/.noci | 0 keyboards/helix/rev1/.noci | 0 keyboards/helix/rev2/.noci | 0 keyboards/helix/rev2/back/.noci | 0 keyboards/helix/rev2/qmk_conf/.noci | 0 keyboards/helix/rev2/sc/.noci | 0 keyboards/helix/rev2/under/.noci | 0 keyboards/hs60/v1/.noci | 0 keyboards/ivy/.noci | 0 keyboards/jian/.noci | 0 keyboards/jian/handwired/.noci | 0 keyboards/jian/rev1/.noci | 0 keyboards/jiran/.noci | 0 keyboards/jiran/rev1/.noci | 0 keyboards/jisplit89/.noci | 0 keyboards/kbdfans/kbd67/hotswap/.noci | 0 keyboards/kbdfans/kbd67/mkii_soldered/.noci | 0 keyboards/kbdfans/kbd67/mkiirgb/v1/.noci | 0 keyboards/kbdfans/kbd67/rev1/.noci | 0 keyboards/kbdfans/kbd75/.noci | 0 keyboards/kbdfans/kbd75/rev1/.noci | 0 keyboards/kbdfans/kbdpad/mk1/.noci | 0 keyboards/keebio/bdn9/.noci | 0 keyboards/keebio/bdn9/rev1/.noci | 0 keyboards/keebio/iris/rev1/.noci | 0 keyboards/keebio/iris/rev1_led/.noci | 0 keyboards/keebio/iris/rev2/.noci | 0 keyboards/keebio/iris/rev3/.noci | 0 keyboards/keebio/kbo5000/.noci | 0 keyboards/keebio/levinson/.noci | 0 keyboards/keebio/levinson/rev1/.noci | 0 keyboards/keebio/levinson/rev2/.noci | 0 keyboards/keebio/nyquist/rev1/.noci | 0 keyboards/keebio/nyquist/rev2/.noci | 0 keyboards/keebio/quefrency/.noci | 0 keyboards/keebio/quefrency/rev1/.noci | 0 keyboards/keebio/rorschach/.noci | 0 keyboards/keebio/sinc/.noci | 0 keyboards/keebio/viterbi/.noci | 0 keyboards/keebio/viterbi/rev1/.noci | 0 keyboards/keycapsss/plaid_pad/.noci | 0 keyboards/keycapsss/plaid_pad/rev1/.noci | 0 keyboards/kinesis/.noci | 0 keyboards/kudox/.noci | 0 keyboards/kudox/columner/.noci | 0 keyboards/kudox/rev1/.noci | 0 keyboards/kudox/rev2/.noci | 0 keyboards/kudox_game/.noci | 0 keyboards/kudox_game/rev1/.noci | 0 keyboards/kyria/.noci | 0 keyboards/launchpad/.noci | 0 keyboards/lets_split/.noci | 0 keyboards/lets_split/rev1/.noci | 0 keyboards/lets_split_eh/.noci | 0 keyboards/lfkeyboards/lfk78/.noci | 0 keyboards/lfkeyboards/lfk78/revb/.noci | 0 keyboards/lfkeyboards/lfk78/revc/.noci | 0 keyboards/lfkeyboards/smk65/.noci | 0 keyboards/lfkeyboards/smk65/revb/.noci | 0 keyboards/lily58/.noci | 0 keyboards/marksard/rhymestone/.noci | 0 keyboards/mechllama/g35/.noci | 0 keyboards/mechllama/g35/v1/.noci | 0 keyboards/mechlovin/adelais/.noci | 0 keyboards/mechlovin/adelais/rgb_led/.noci | 0 keyboards/mechlovin/adelais/rgb_led/rev1/.noci | 0 keyboards/mechlovin/adelais/standard_led/.noci | 0 keyboards/mechlovin/adelais/standard_led/rev2/.noci | 0 keyboards/mechlovin/delphine/.noci | 0 keyboards/mechlovin/hannah60rgb/.noci | 0 keyboards/mechlovin/hannah60rgb/rev1/.noci | 0 keyboards/mechlovin/hannah65/.noci | 0 keyboards/mechlovin/hannah910/.noci | 0 keyboards/mechlovin/hannah910/rev1/.noci | 0 keyboards/mechlovin/hannah910/rev2/.noci | 0 keyboards/mechmini/.noci | 0 keyboards/mechmini/v1/.noci | 0 keyboards/melgeek/mj64/rev1/.noci | 0 keyboards/melgeek/z70ultra/.noci | 0 keyboards/minidox/.noci | 0 keyboards/montsinger/rebound/.noci | 0 keyboards/montsinger/rebound/rev1/.noci | 0 keyboards/montsinger/rebound/rev2/.noci | 0 keyboards/montsinger/rebound/rev3/.noci | 0 keyboards/murcielago/.noci | 0 keyboards/naked48/.noci | 0 keyboards/naked60/.noci | 0 keyboards/naked64/.noci | 0 keyboards/namecard2x4/.noci | 0 keyboards/namecard2x4/rev1/.noci | 0 keyboards/navi10/.noci | 0 keyboards/navi10/rev0/.noci | 0 keyboards/navi10/rev2/.noci | 0 keyboards/nomu30/.noci | 0 keyboards/nomu30/rev1/.noci | 0 keyboards/orthodox/.noci | 0 keyboards/orthodox/rev1/.noci | 0 keyboards/otaku_split/rev0/.noci | 0 keyboards/pabile/p20/ver1/.noci | 0 keyboards/percent/canoe/.noci | 0 keyboards/pimentoso/paddino02/.noci | 0 keyboards/pimentoso/paddino02/rev1/.noci | 0 keyboards/planck/rev1/.noci | 0 keyboards/planck/rev2/.noci | 0 keyboards/planck/rev3/.noci | 0 keyboards/planck/rev4/.noci | 0 keyboards/planck/rev5/.noci | 0 keyboards/ploopyco/trackball/.noci | 0 keyboards/polilla/.noci | 0 keyboards/preonic/rev1/.noci | 0 keyboards/preonic/rev2/.noci | 0 keyboards/primekb/prime_e/.noci | 0 keyboards/primekb/prime_l/.noci | 0 keyboards/primekb/prime_l/v1/.noci | 0 keyboards/projectkb/alice/.noci | 0 keyboards/projectkb/alice/rev1/.noci | 0 keyboards/qwertyydox/.noci | 0 keyboards/redox/.noci | 0 keyboards/redscarf_iiplus/verb/.noci | 0 keyboards/redscarf_iiplus/verc/.noci | 0 keyboards/rgbkb/pan/.noci | 0 keyboards/rgbkb/pan/rev1/.noci | 0 keyboards/rgbkb/sol/.noci | 0 keyboards/rgbkb/sol/rev1/.noci | 0 keyboards/rgbkb/zen/.noci | 0 keyboards/rgbkb/zen/rev1/.noci | 0 keyboards/rgbkb/zygomorph/.noci | 0 keyboards/rominronin/katana60/rev1/.noci | 0 keyboards/s7_elephant/.noci | 0 keyboards/s7_elephant/rev1/.noci | 0 keyboards/sirius/uni660/.noci | 0 keyboards/sirius/uni660/rev1/.noci | 0 keyboards/sofle/.noci | 0 keyboards/spacetime/.noci | 0 keyboards/spacetime/rev1/.noci | 0 keyboards/suihankey/split/.noci | 0 keyboards/suihankey/split/alpha/.noci | 0 keyboards/tkw/stoutgat/v1/.noci | 0 keyboards/treadstone48/.noci | 0 keyboards/treadstone48/rev1/.noci | 0 keyboards/underscore33/.noci | 0 keyboards/underscore33/rev1/.noci | 0 keyboards/vitamins_included/.noci | 0 keyboards/vitamins_included/rev1/.noci | 0 keyboards/whale/sk/.noci | 0 keyboards/xd60/rev2/.noci | 0 keyboards/ymd75/.noci | 0 keyboards/ymd75/rev1/.noci | 0 keyboards/ymd75/rev2/.noci | 0 keyboards/yosino58/.noci | 0 keyboards/zinc/.noci | 0 372 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 keyboards/10bleoledhub/.noci create mode 100644 keyboards/1upkeyboards/sweet16/.noci create mode 100644 keyboards/4pplet/waffling60/rev_a/.noci create mode 100644 keyboards/7skb/.noci create mode 100644 keyboards/8pack/.noci create mode 100644 keyboards/8pack/rev11/.noci create mode 100644 keyboards/adkb96/.noci create mode 100644 keyboards/aeboards/ext65/.noci create mode 100644 keyboards/aeboards/ext65/rev1/.noci create mode 100644 keyboards/ai03/equinox/rev0/.noci create mode 100644 keyboards/angel17/.noci create mode 100644 keyboards/angel17/alpha/.noci create mode 100644 keyboards/angel64/.noci create mode 100644 keyboards/angel64/alpha/.noci create mode 100644 keyboards/basekeys/slice/rev1/.noci create mode 100644 keyboards/bat43/.noci create mode 100644 keyboards/bat43/rev1/.noci create mode 100644 keyboards/bear_face/.noci create mode 100644 keyboards/bear_face/v1/.noci create mode 100644 keyboards/bemeier/bmek/rev1/.noci create mode 100644 keyboards/bemeier/bmek/rev2/.noci create mode 100644 keyboards/bigseries/1key/.noci create mode 100644 keyboards/bigseries/2key/.noci create mode 100644 keyboards/bigseries/3key/.noci create mode 100644 keyboards/bpiphany/pegasushoof/.noci create mode 100644 keyboards/bpiphany/pegasushoof/2013/.noci create mode 100644 keyboards/business_card/.noci create mode 100644 keyboards/business_card/alpha/.noci create mode 100644 keyboards/cannonkeys/satisfaction75/.noci create mode 100644 keyboards/cannonkeys/satisfaction75/prototype/.noci create mode 100644 keyboards/chavdai40/rev1/.noci create mode 100644 keyboards/christmas_tree/.noci create mode 100644 keyboards/claw44/.noci create mode 100644 keyboards/converter/sun_usb/.noci create mode 100644 keyboards/converter/sun_usb/type3/.noci create mode 100644 keyboards/cozykeys/speedo/v2/.noci create mode 100644 keyboards/crkbd/.noci create mode 100644 keyboards/crkbd/rev1/common/.noci create mode 100644 keyboards/crkbd/rev1/legacy/.noci create mode 100644 keyboards/duck/octagon/.noci create mode 100644 keyboards/duck/octagon/v1/.noci create mode 100644 keyboards/duck/orion/.noci create mode 100644 keyboards/dztech/dz60rgb/v1/.noci create mode 100644 keyboards/dztech/dz60rgb_ansi/v1/.noci create mode 100644 keyboards/dztech/dz60rgb_wkl/v1/.noci create mode 100644 keyboards/dztech/dz65rgb/v1/.noci create mode 100644 keyboards/eco/.noci create mode 100644 keyboards/eco/rev1/.noci create mode 100644 keyboards/ergo42/.noci create mode 100644 keyboards/ergodash/.noci create mode 100644 keyboards/ergoslab/.noci create mode 100644 keyboards/ergotravel/.noci create mode 100644 keyboards/evyd13/atom47/.noci create mode 100644 keyboards/evyd13/atom47/rev2/.noci create mode 100644 keyboards/fortitude60/.noci create mode 100644 keyboards/getta25/.noci create mode 100644 keyboards/hadron/.noci create mode 100644 keyboards/hadron/ver2/.noci create mode 100644 keyboards/handwired/108key_trackpoint/.noci create mode 100644 keyboards/handwired/2x5keypad/.noci create mode 100644 keyboards/handwired/3dp660/.noci create mode 100644 keyboards/handwired/412_64/.noci create mode 100644 keyboards/handwired/42/.noci create mode 100644 keyboards/handwired/6macro/.noci create mode 100644 keyboards/handwired/aek64/.noci create mode 100644 keyboards/handwired/aplx2/.noci create mode 100644 keyboards/handwired/aranck/.noci create mode 100644 keyboards/handwired/arrow_pad/.noci create mode 100644 keyboards/handwired/atreus50/.noci create mode 100644 keyboards/handwired/bdn9_ble/.noci create mode 100644 keyboards/handwired/bento/.noci create mode 100644 keyboards/handwired/bento/rev1/.noci create mode 100644 keyboards/handwired/bluepill/.noci create mode 100644 keyboards/handwired/bluepill/bluepill70/.noci create mode 100644 keyboards/handwired/boss566y/redragon_vara/.noci create mode 100644 keyboards/handwired/brain/.noci create mode 100644 keyboards/handwired/cans12er/.noci create mode 100644 keyboards/handwired/chiron/.noci create mode 100644 keyboards/handwired/ck4x4/.noci create mode 100644 keyboards/handwired/cmd60/.noci create mode 100644 keyboards/handwired/co60/rev1/.noci create mode 100644 keyboards/handwired/co60/rev6/.noci create mode 100644 keyboards/handwired/co60/rev7/.noci create mode 100644 keyboards/handwired/colorlice/.noci create mode 100644 keyboards/handwired/curiosity/.noci create mode 100644 keyboards/handwired/d48/.noci create mode 100644 keyboards/handwired/dactyl/.noci create mode 100644 keyboards/handwired/dactyl_left/.noci create mode 100644 keyboards/handwired/dactyl_manuform/.noci create mode 100644 keyboards/handwired/dactyl_manuform/4x5/.noci create mode 100644 keyboards/handwired/dactyl_manuform/4x6/.noci create mode 100644 keyboards/handwired/dactyl_manuform/5x6/.noci create mode 100644 keyboards/handwired/dactyl_manuform/5x6_5/.noci create mode 100644 keyboards/handwired/dactyl_manuform/5x7/.noci create mode 100644 keyboards/handwired/dactyl_manuform/6x6/.noci create mode 100644 keyboards/handwired/dactyl_manuform/dmote/62key/.noci create mode 100644 keyboards/handwired/dactyl_promicro/.noci create mode 100644 keyboards/handwired/dactyl_rah/.noci create mode 100644 keyboards/handwired/daishi/.noci create mode 100644 keyboards/handwired/datahand/.noci create mode 100644 keyboards/handwired/ddg_56/.noci create mode 100644 keyboards/handwired/eagleii/.noci create mode 100644 keyboards/handwired/fc200rt_qmk/.noci create mode 100644 keyboards/handwired/fivethirteen/.noci create mode 100644 keyboards/handwired/floorboard/.noci create mode 100644 keyboards/handwired/frenchdev/.noci create mode 100644 keyboards/handwired/freoduo/.noci create mode 100644 keyboards/handwired/fruity60/.noci create mode 100644 keyboards/handwired/gamenum/.noci create mode 100644 keyboards/handwired/hacked_motospeed/.noci create mode 100644 keyboards/handwired/heisenberg/.noci create mode 100644 keyboards/handwired/hexon38/.noci create mode 100644 keyboards/handwired/hnah108/.noci create mode 100644 keyboards/handwired/hnah40/.noci create mode 100644 keyboards/handwired/hnah40rgb/.noci create mode 100644 keyboards/handwired/ibm122m/.noci create mode 100644 keyboards/handwired/jn68m/.noci create mode 100644 keyboards/handwired/jopr/.noci create mode 100644 keyboards/handwired/jot50/.noci create mode 100644 keyboards/handwired/jotanck/.noci create mode 100644 keyboards/handwired/jotpad16/.noci create mode 100644 keyboards/handwired/jtallbean/split_65/.noci create mode 100644 keyboards/handwired/juliet/.noci create mode 100644 keyboards/handwired/k8split/.noci create mode 100644 keyboards/handwired/k_numpad17/.noci create mode 100644 keyboards/handwired/kbod/.noci create mode 100644 keyboards/handwired/ks63/.noci create mode 100644 keyboards/handwired/leftynumpad/.noci create mode 100644 keyboards/handwired/lovelive9/.noci create mode 100644 keyboards/handwired/magicforce61/.noci create mode 100644 keyboards/handwired/magicforce68/.noci create mode 100644 keyboards/handwired/mechboards_micropad/.noci create mode 100644 keyboards/handwired/minorca/.noci create mode 100644 keyboards/handwired/ms_sculpt_mobile/.noci create mode 100644 keyboards/handwired/myskeeb/.noci create mode 100644 keyboards/handwired/nicekey/.noci create mode 100644 keyboards/handwired/not_so_minidox/.noci create mode 100644 keyboards/handwired/novem/.noci create mode 100644 keyboards/handwired/numpad20/.noci create mode 100644 keyboards/handwired/obuwunkunubi/spaget/.noci create mode 100644 keyboards/handwired/onekey/.noci create mode 100644 keyboards/handwired/onekey/blackpill_f401/.noci create mode 100644 keyboards/handwired/onekey/blackpill_f411/.noci create mode 100644 keyboards/handwired/onekey/bluepill/.noci create mode 100644 keyboards/handwired/onekey/elite_c/.noci create mode 100644 keyboards/handwired/onekey/promicro/.noci create mode 100644 keyboards/handwired/onekey/proton_c/.noci create mode 100644 keyboards/handwired/onekey/pytest/.noci create mode 100644 keyboards/handwired/onekey/stm32f0_disco/.noci create mode 100644 keyboards/handwired/onekey/teensy_2/.noci create mode 100644 keyboards/handwired/onekey/teensy_2pp/.noci create mode 100644 keyboards/handwired/onekey/teensy_32/.noci create mode 100644 keyboards/handwired/onekey/teensy_lc/.noci create mode 100644 keyboards/handwired/ortho5x13/.noci create mode 100644 keyboards/handwired/owlet60/.noci create mode 100644 keyboards/handwired/p1800fl/.noci create mode 100644 keyboards/handwired/p65rgb/.noci create mode 100644 keyboards/handwired/pilcrow/.noci create mode 100644 keyboards/handwired/pill60/.noci create mode 100644 keyboards/handwired/pill60/blackpill_f401/.noci create mode 100644 keyboards/handwired/pill60/blackpill_f411/.noci create mode 100644 keyboards/handwired/pill60/bluepill/.noci create mode 100644 keyboards/handwired/postageboard/.noci create mode 100644 keyboards/handwired/postageboard/mini/.noci create mode 100644 keyboards/handwired/postageboard/r1/.noci create mode 100644 keyboards/handwired/prime_exl/.noci create mode 100644 keyboards/handwired/prime_exl_plus/.noci create mode 100644 keyboards/handwired/prkl30/feather/.noci create mode 100644 keyboards/handwired/prkl30/promicro/.noci create mode 100644 keyboards/handwired/promethium/.noci create mode 100644 keyboards/handwired/pterodactyl/.noci create mode 100644 keyboards/handwired/pteron/.noci create mode 100644 keyboards/handwired/pteron38/.noci create mode 100644 keyboards/handwired/pteron44/.noci create mode 100644 keyboards/handwired/qc60/.noci create mode 100644 keyboards/handwired/qc60/proto/.noci create mode 100644 keyboards/handwired/reddot/.noci create mode 100644 keyboards/handwired/retro_refit/.noci create mode 100644 keyboards/handwired/riblee_f401/.noci create mode 100644 keyboards/handwired/riblee_f411/.noci create mode 100644 keyboards/handwired/rs60/.noci create mode 100644 keyboards/handwired/selene/.noci create mode 100644 keyboards/handwired/sick68/.noci create mode 100644 keyboards/handwired/sick_pad/.noci create mode 100644 keyboards/handwired/slash/.noci create mode 100644 keyboards/handwired/space_oddity/.noci create mode 100644 keyboards/handwired/splittest/.noci create mode 100644 keyboards/handwired/splittest/promicro/.noci create mode 100644 keyboards/handwired/splittest/teensy_2/.noci create mode 100644 keyboards/handwired/steamvan/rev1/.noci create mode 100644 keyboards/handwired/sticc14/.noci create mode 100644 keyboards/handwired/stream_cheap/2x3/.noci create mode 100644 keyboards/handwired/stream_cheap/2x4/.noci create mode 100644 keyboards/handwired/stream_cheap/2x5/.noci create mode 100644 keyboards/handwired/swiftrax/astro65/.noci create mode 100644 keyboards/handwired/swiftrax/bebol/.noci create mode 100644 keyboards/handwired/swiftrax/beegboy/.noci create mode 100644 keyboards/handwired/swiftrax/cowfish/.noci create mode 100644 keyboards/handwired/swiftrax/pandamic/.noci create mode 100644 keyboards/handwired/swiftrax/retropad/.noci create mode 100644 keyboards/handwired/swiftrax/unsplit/.noci create mode 100644 keyboards/handwired/symmetric70_proto/.noci create mode 100644 keyboards/handwired/symmetry60/.noci create mode 100644 keyboards/handwired/t111/.noci create mode 100644 keyboards/handwired/tennie/.noci create mode 100644 keyboards/handwired/terminus_mini/.noci create mode 100644 keyboards/handwired/trackpoint/.noci create mode 100644 keyboards/handwired/traveller/.noci create mode 100644 keyboards/handwired/tritium_numpad/.noci create mode 100644 keyboards/handwired/twadlee/tp69/.noci create mode 100644 keyboards/handwired/unk/.noci create mode 100644 keyboards/handwired/unk/rev1/.noci create mode 100644 keyboards/handwired/videowriter/.noci create mode 100644 keyboards/handwired/wabi/.noci create mode 100644 keyboards/handwired/woodpad/.noci create mode 100644 keyboards/handwired/wulkan/.noci create mode 100644 keyboards/handwired/xealous/.noci create mode 100644 keyboards/handwired/xealous/rev1/.noci create mode 100644 keyboards/handwired/xealousbrown/.noci create mode 100644 keyboards/handwired/z150/.noci create mode 100644 keyboards/handwired/zergo/.noci create mode 100644 keyboards/helix/.noci create mode 100644 keyboards/helix/rev1/.noci create mode 100644 keyboards/helix/rev2/.noci create mode 100644 keyboards/helix/rev2/back/.noci create mode 100644 keyboards/helix/rev2/qmk_conf/.noci create mode 100644 keyboards/helix/rev2/sc/.noci create mode 100644 keyboards/helix/rev2/under/.noci create mode 100644 keyboards/hs60/v1/.noci create mode 100644 keyboards/ivy/.noci create mode 100644 keyboards/jian/.noci create mode 100644 keyboards/jian/handwired/.noci create mode 100644 keyboards/jian/rev1/.noci create mode 100644 keyboards/jiran/.noci create mode 100644 keyboards/jiran/rev1/.noci create mode 100644 keyboards/jisplit89/.noci create mode 100644 keyboards/kbdfans/kbd67/hotswap/.noci create mode 100644 keyboards/kbdfans/kbd67/mkii_soldered/.noci create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v1/.noci create mode 100644 keyboards/kbdfans/kbd67/rev1/.noci create mode 100644 keyboards/kbdfans/kbd75/.noci create mode 100644 keyboards/kbdfans/kbd75/rev1/.noci create mode 100644 keyboards/kbdfans/kbdpad/mk1/.noci create mode 100644 keyboards/keebio/bdn9/.noci create mode 100644 keyboards/keebio/bdn9/rev1/.noci create mode 100644 keyboards/keebio/iris/rev1/.noci create mode 100644 keyboards/keebio/iris/rev1_led/.noci create mode 100644 keyboards/keebio/iris/rev2/.noci create mode 100644 keyboards/keebio/iris/rev3/.noci create mode 100644 keyboards/keebio/kbo5000/.noci create mode 100644 keyboards/keebio/levinson/.noci create mode 100644 keyboards/keebio/levinson/rev1/.noci create mode 100644 keyboards/keebio/levinson/rev2/.noci create mode 100644 keyboards/keebio/nyquist/rev1/.noci create mode 100644 keyboards/keebio/nyquist/rev2/.noci create mode 100644 keyboards/keebio/quefrency/.noci create mode 100644 keyboards/keebio/quefrency/rev1/.noci create mode 100644 keyboards/keebio/rorschach/.noci create mode 100644 keyboards/keebio/sinc/.noci create mode 100644 keyboards/keebio/viterbi/.noci create mode 100644 keyboards/keebio/viterbi/rev1/.noci create mode 100644 keyboards/keycapsss/plaid_pad/.noci create mode 100644 keyboards/keycapsss/plaid_pad/rev1/.noci create mode 100644 keyboards/kinesis/.noci create mode 100644 keyboards/kudox/.noci create mode 100644 keyboards/kudox/columner/.noci create mode 100644 keyboards/kudox/rev1/.noci create mode 100644 keyboards/kudox/rev2/.noci create mode 100644 keyboards/kudox_game/.noci create mode 100644 keyboards/kudox_game/rev1/.noci create mode 100644 keyboards/kyria/.noci create mode 100644 keyboards/launchpad/.noci create mode 100644 keyboards/lets_split/.noci create mode 100644 keyboards/lets_split/rev1/.noci create mode 100644 keyboards/lets_split_eh/.noci create mode 100644 keyboards/lfkeyboards/lfk78/.noci create mode 100644 keyboards/lfkeyboards/lfk78/revb/.noci create mode 100644 keyboards/lfkeyboards/lfk78/revc/.noci create mode 100644 keyboards/lfkeyboards/smk65/.noci create mode 100644 keyboards/lfkeyboards/smk65/revb/.noci create mode 100644 keyboards/lily58/.noci create mode 100644 keyboards/marksard/rhymestone/.noci create mode 100644 keyboards/mechllama/g35/.noci create mode 100644 keyboards/mechllama/g35/v1/.noci create mode 100644 keyboards/mechlovin/adelais/.noci create mode 100644 keyboards/mechlovin/adelais/rgb_led/.noci create mode 100644 keyboards/mechlovin/adelais/rgb_led/rev1/.noci create mode 100644 keyboards/mechlovin/adelais/standard_led/.noci create mode 100644 keyboards/mechlovin/adelais/standard_led/rev2/.noci create mode 100644 keyboards/mechlovin/delphine/.noci create mode 100644 keyboards/mechlovin/hannah60rgb/.noci create mode 100644 keyboards/mechlovin/hannah60rgb/rev1/.noci create mode 100644 keyboards/mechlovin/hannah65/.noci create mode 100644 keyboards/mechlovin/hannah910/.noci create mode 100644 keyboards/mechlovin/hannah910/rev1/.noci create mode 100644 keyboards/mechlovin/hannah910/rev2/.noci create mode 100644 keyboards/mechmini/.noci create mode 100644 keyboards/mechmini/v1/.noci create mode 100644 keyboards/melgeek/mj64/rev1/.noci create mode 100644 keyboards/melgeek/z70ultra/.noci create mode 100644 keyboards/minidox/.noci create mode 100644 keyboards/montsinger/rebound/.noci create mode 100644 keyboards/montsinger/rebound/rev1/.noci create mode 100644 keyboards/montsinger/rebound/rev2/.noci create mode 100644 keyboards/montsinger/rebound/rev3/.noci create mode 100644 keyboards/murcielago/.noci create mode 100644 keyboards/naked48/.noci create mode 100644 keyboards/naked60/.noci create mode 100644 keyboards/naked64/.noci create mode 100644 keyboards/namecard2x4/.noci create mode 100644 keyboards/namecard2x4/rev1/.noci create mode 100644 keyboards/navi10/.noci create mode 100644 keyboards/navi10/rev0/.noci create mode 100644 keyboards/navi10/rev2/.noci create mode 100644 keyboards/nomu30/.noci create mode 100644 keyboards/nomu30/rev1/.noci create mode 100644 keyboards/orthodox/.noci create mode 100644 keyboards/orthodox/rev1/.noci create mode 100644 keyboards/otaku_split/rev0/.noci create mode 100644 keyboards/pabile/p20/ver1/.noci create mode 100644 keyboards/percent/canoe/.noci create mode 100644 keyboards/pimentoso/paddino02/.noci create mode 100644 keyboards/pimentoso/paddino02/rev1/.noci create mode 100644 keyboards/planck/rev1/.noci create mode 100644 keyboards/planck/rev2/.noci create mode 100644 keyboards/planck/rev3/.noci create mode 100644 keyboards/planck/rev4/.noci create mode 100644 keyboards/planck/rev5/.noci create mode 100644 keyboards/ploopyco/trackball/.noci create mode 100644 keyboards/polilla/.noci create mode 100644 keyboards/preonic/rev1/.noci create mode 100644 keyboards/preonic/rev2/.noci create mode 100644 keyboards/primekb/prime_e/.noci create mode 100644 keyboards/primekb/prime_l/.noci create mode 100644 keyboards/primekb/prime_l/v1/.noci create mode 100644 keyboards/projectkb/alice/.noci create mode 100644 keyboards/projectkb/alice/rev1/.noci create mode 100644 keyboards/qwertyydox/.noci create mode 100644 keyboards/redox/.noci create mode 100644 keyboards/redscarf_iiplus/verb/.noci create mode 100644 keyboards/redscarf_iiplus/verc/.noci create mode 100644 keyboards/rgbkb/pan/.noci create mode 100644 keyboards/rgbkb/pan/rev1/.noci create mode 100644 keyboards/rgbkb/sol/.noci create mode 100644 keyboards/rgbkb/sol/rev1/.noci create mode 100644 keyboards/rgbkb/zen/.noci create mode 100644 keyboards/rgbkb/zen/rev1/.noci create mode 100644 keyboards/rgbkb/zygomorph/.noci create mode 100644 keyboards/rominronin/katana60/rev1/.noci create mode 100644 keyboards/s7_elephant/.noci create mode 100644 keyboards/s7_elephant/rev1/.noci create mode 100644 keyboards/sirius/uni660/.noci create mode 100644 keyboards/sirius/uni660/rev1/.noci create mode 100644 keyboards/sofle/.noci create mode 100644 keyboards/spacetime/.noci create mode 100644 keyboards/spacetime/rev1/.noci create mode 100644 keyboards/suihankey/split/.noci create mode 100644 keyboards/suihankey/split/alpha/.noci create mode 100644 keyboards/tkw/stoutgat/v1/.noci create mode 100644 keyboards/treadstone48/.noci create mode 100644 keyboards/treadstone48/rev1/.noci create mode 100644 keyboards/underscore33/.noci create mode 100644 keyboards/underscore33/rev1/.noci create mode 100644 keyboards/vitamins_included/.noci create mode 100644 keyboards/vitamins_included/rev1/.noci create mode 100644 keyboards/whale/sk/.noci create mode 100644 keyboards/xd60/rev2/.noci create mode 100644 keyboards/ymd75/.noci create mode 100644 keyboards/ymd75/rev1/.noci create mode 100644 keyboards/ymd75/rev2/.noci create mode 100644 keyboards/yosino58/.noci create mode 100644 keyboards/zinc/.noci diff --git a/keyboards/10bleoledhub/.noci b/keyboards/10bleoledhub/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/1upkeyboards/sweet16/.noci b/keyboards/1upkeyboards/sweet16/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/4pplet/waffling60/rev_a/.noci b/keyboards/4pplet/waffling60/rev_a/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/7skb/.noci b/keyboards/7skb/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/8pack/.noci b/keyboards/8pack/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/8pack/rev11/.noci b/keyboards/8pack/rev11/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/adkb96/.noci b/keyboards/adkb96/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/aeboards/ext65/.noci b/keyboards/aeboards/ext65/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/aeboards/ext65/rev1/.noci b/keyboards/aeboards/ext65/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ai03/equinox/rev0/.noci b/keyboards/ai03/equinox/rev0/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/angel17/.noci b/keyboards/angel17/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/angel17/alpha/.noci b/keyboards/angel17/alpha/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/angel64/.noci b/keyboards/angel64/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/angel64/alpha/.noci b/keyboards/angel64/alpha/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/basekeys/slice/rev1/.noci b/keyboards/basekeys/slice/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bat43/.noci b/keyboards/bat43/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bat43/rev1/.noci b/keyboards/bat43/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bear_face/.noci b/keyboards/bear_face/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bear_face/v1/.noci b/keyboards/bear_face/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bemeier/bmek/rev1/.noci b/keyboards/bemeier/bmek/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bemeier/bmek/rev2/.noci b/keyboards/bemeier/bmek/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bigseries/1key/.noci b/keyboards/bigseries/1key/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bigseries/2key/.noci b/keyboards/bigseries/2key/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bigseries/3key/.noci b/keyboards/bigseries/3key/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bpiphany/pegasushoof/.noci b/keyboards/bpiphany/pegasushoof/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bpiphany/pegasushoof/2013/.noci b/keyboards/bpiphany/pegasushoof/2013/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/business_card/.noci b/keyboards/business_card/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/business_card/alpha/.noci b/keyboards/business_card/alpha/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/cannonkeys/satisfaction75/.noci b/keyboards/cannonkeys/satisfaction75/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/cannonkeys/satisfaction75/prototype/.noci b/keyboards/cannonkeys/satisfaction75/prototype/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/chavdai40/rev1/.noci b/keyboards/chavdai40/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/christmas_tree/.noci b/keyboards/christmas_tree/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/claw44/.noci b/keyboards/claw44/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/converter/sun_usb/.noci b/keyboards/converter/sun_usb/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/converter/sun_usb/type3/.noci b/keyboards/converter/sun_usb/type3/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/cozykeys/speedo/v2/.noci b/keyboards/cozykeys/speedo/v2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/crkbd/.noci b/keyboards/crkbd/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/crkbd/rev1/common/.noci b/keyboards/crkbd/rev1/common/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/crkbd/rev1/legacy/.noci b/keyboards/crkbd/rev1/legacy/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/duck/octagon/.noci b/keyboards/duck/octagon/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/duck/octagon/v1/.noci b/keyboards/duck/octagon/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/duck/orion/.noci b/keyboards/duck/orion/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/dztech/dz60rgb/v1/.noci b/keyboards/dztech/dz60rgb/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/dztech/dz60rgb_ansi/v1/.noci b/keyboards/dztech/dz60rgb_ansi/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/dztech/dz60rgb_wkl/v1/.noci b/keyboards/dztech/dz60rgb_wkl/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/dztech/dz65rgb/v1/.noci b/keyboards/dztech/dz65rgb/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/eco/.noci b/keyboards/eco/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/eco/rev1/.noci b/keyboards/eco/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ergo42/.noci b/keyboards/ergo42/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ergodash/.noci b/keyboards/ergodash/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ergoslab/.noci b/keyboards/ergoslab/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ergotravel/.noci b/keyboards/ergotravel/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/evyd13/atom47/.noci b/keyboards/evyd13/atom47/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/evyd13/atom47/rev2/.noci b/keyboards/evyd13/atom47/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/fortitude60/.noci b/keyboards/fortitude60/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/getta25/.noci b/keyboards/getta25/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/hadron/.noci b/keyboards/hadron/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/hadron/ver2/.noci b/keyboards/hadron/ver2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/108key_trackpoint/.noci b/keyboards/handwired/108key_trackpoint/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/2x5keypad/.noci b/keyboards/handwired/2x5keypad/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/3dp660/.noci b/keyboards/handwired/3dp660/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/412_64/.noci b/keyboards/handwired/412_64/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/42/.noci b/keyboards/handwired/42/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/6macro/.noci b/keyboards/handwired/6macro/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/aek64/.noci b/keyboards/handwired/aek64/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/aplx2/.noci b/keyboards/handwired/aplx2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/aranck/.noci b/keyboards/handwired/aranck/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/arrow_pad/.noci b/keyboards/handwired/arrow_pad/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/atreus50/.noci b/keyboards/handwired/atreus50/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/bdn9_ble/.noci b/keyboards/handwired/bdn9_ble/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/bento/.noci b/keyboards/handwired/bento/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/bento/rev1/.noci b/keyboards/handwired/bento/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/bluepill/.noci b/keyboards/handwired/bluepill/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/bluepill/bluepill70/.noci b/keyboards/handwired/bluepill/bluepill70/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/boss566y/redragon_vara/.noci b/keyboards/handwired/boss566y/redragon_vara/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/brain/.noci b/keyboards/handwired/brain/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/cans12er/.noci b/keyboards/handwired/cans12er/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/chiron/.noci b/keyboards/handwired/chiron/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/ck4x4/.noci b/keyboards/handwired/ck4x4/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/cmd60/.noci b/keyboards/handwired/cmd60/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/co60/rev1/.noci b/keyboards/handwired/co60/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/co60/rev6/.noci b/keyboards/handwired/co60/rev6/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/co60/rev7/.noci b/keyboards/handwired/co60/rev7/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/colorlice/.noci b/keyboards/handwired/colorlice/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/curiosity/.noci b/keyboards/handwired/curiosity/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/d48/.noci b/keyboards/handwired/d48/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl/.noci b/keyboards/handwired/dactyl/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl_left/.noci b/keyboards/handwired/dactyl_left/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl_manuform/.noci b/keyboards/handwired/dactyl_manuform/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl_manuform/4x5/.noci b/keyboards/handwired/dactyl_manuform/4x5/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl_manuform/4x6/.noci b/keyboards/handwired/dactyl_manuform/4x6/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl_manuform/5x6/.noci b/keyboards/handwired/dactyl_manuform/5x6/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/.noci b/keyboards/handwired/dactyl_manuform/5x6_5/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl_manuform/5x7/.noci b/keyboards/handwired/dactyl_manuform/5x7/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl_manuform/6x6/.noci b/keyboards/handwired/dactyl_manuform/6x6/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/.noci b/keyboards/handwired/dactyl_manuform/dmote/62key/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl_promicro/.noci b/keyboards/handwired/dactyl_promicro/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/dactyl_rah/.noci b/keyboards/handwired/dactyl_rah/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/daishi/.noci b/keyboards/handwired/daishi/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/datahand/.noci b/keyboards/handwired/datahand/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/ddg_56/.noci b/keyboards/handwired/ddg_56/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/eagleii/.noci b/keyboards/handwired/eagleii/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/fc200rt_qmk/.noci b/keyboards/handwired/fc200rt_qmk/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/fivethirteen/.noci b/keyboards/handwired/fivethirteen/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/floorboard/.noci b/keyboards/handwired/floorboard/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/frenchdev/.noci b/keyboards/handwired/frenchdev/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/freoduo/.noci b/keyboards/handwired/freoduo/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/fruity60/.noci b/keyboards/handwired/fruity60/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/gamenum/.noci b/keyboards/handwired/gamenum/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/hacked_motospeed/.noci b/keyboards/handwired/hacked_motospeed/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/heisenberg/.noci b/keyboards/handwired/heisenberg/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/hexon38/.noci b/keyboards/handwired/hexon38/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/hnah108/.noci b/keyboards/handwired/hnah108/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/hnah40/.noci b/keyboards/handwired/hnah40/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/hnah40rgb/.noci b/keyboards/handwired/hnah40rgb/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/ibm122m/.noci b/keyboards/handwired/ibm122m/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/jn68m/.noci b/keyboards/handwired/jn68m/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/jopr/.noci b/keyboards/handwired/jopr/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/jot50/.noci b/keyboards/handwired/jot50/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/jotanck/.noci b/keyboards/handwired/jotanck/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/jotpad16/.noci b/keyboards/handwired/jotpad16/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/jtallbean/split_65/.noci b/keyboards/handwired/jtallbean/split_65/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/juliet/.noci b/keyboards/handwired/juliet/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/k8split/.noci b/keyboards/handwired/k8split/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/k_numpad17/.noci b/keyboards/handwired/k_numpad17/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/kbod/.noci b/keyboards/handwired/kbod/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/ks63/.noci b/keyboards/handwired/ks63/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/leftynumpad/.noci b/keyboards/handwired/leftynumpad/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/lovelive9/.noci b/keyboards/handwired/lovelive9/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/magicforce61/.noci b/keyboards/handwired/magicforce61/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/magicforce68/.noci b/keyboards/handwired/magicforce68/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/mechboards_micropad/.noci b/keyboards/handwired/mechboards_micropad/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/minorca/.noci b/keyboards/handwired/minorca/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/ms_sculpt_mobile/.noci b/keyboards/handwired/ms_sculpt_mobile/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/myskeeb/.noci b/keyboards/handwired/myskeeb/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/nicekey/.noci b/keyboards/handwired/nicekey/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/not_so_minidox/.noci b/keyboards/handwired/not_so_minidox/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/novem/.noci b/keyboards/handwired/novem/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/numpad20/.noci b/keyboards/handwired/numpad20/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/obuwunkunubi/spaget/.noci b/keyboards/handwired/obuwunkunubi/spaget/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/.noci b/keyboards/handwired/onekey/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/blackpill_f401/.noci b/keyboards/handwired/onekey/blackpill_f401/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/blackpill_f411/.noci b/keyboards/handwired/onekey/blackpill_f411/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/bluepill/.noci b/keyboards/handwired/onekey/bluepill/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/elite_c/.noci b/keyboards/handwired/onekey/elite_c/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/promicro/.noci b/keyboards/handwired/onekey/promicro/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/proton_c/.noci b/keyboards/handwired/onekey/proton_c/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/pytest/.noci b/keyboards/handwired/onekey/pytest/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/stm32f0_disco/.noci b/keyboards/handwired/onekey/stm32f0_disco/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/teensy_2/.noci b/keyboards/handwired/onekey/teensy_2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/teensy_2pp/.noci b/keyboards/handwired/onekey/teensy_2pp/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/teensy_32/.noci b/keyboards/handwired/onekey/teensy_32/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/onekey/teensy_lc/.noci b/keyboards/handwired/onekey/teensy_lc/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/ortho5x13/.noci b/keyboards/handwired/ortho5x13/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/owlet60/.noci b/keyboards/handwired/owlet60/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/p1800fl/.noci b/keyboards/handwired/p1800fl/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/p65rgb/.noci b/keyboards/handwired/p65rgb/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pilcrow/.noci b/keyboards/handwired/pilcrow/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pill60/.noci b/keyboards/handwired/pill60/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pill60/blackpill_f401/.noci b/keyboards/handwired/pill60/blackpill_f401/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pill60/blackpill_f411/.noci b/keyboards/handwired/pill60/blackpill_f411/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pill60/bluepill/.noci b/keyboards/handwired/pill60/bluepill/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/postageboard/.noci b/keyboards/handwired/postageboard/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/postageboard/mini/.noci b/keyboards/handwired/postageboard/mini/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/postageboard/r1/.noci b/keyboards/handwired/postageboard/r1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/prime_exl/.noci b/keyboards/handwired/prime_exl/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/prime_exl_plus/.noci b/keyboards/handwired/prime_exl_plus/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/prkl30/feather/.noci b/keyboards/handwired/prkl30/feather/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/prkl30/promicro/.noci b/keyboards/handwired/prkl30/promicro/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/promethium/.noci b/keyboards/handwired/promethium/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pterodactyl/.noci b/keyboards/handwired/pterodactyl/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pteron/.noci b/keyboards/handwired/pteron/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pteron38/.noci b/keyboards/handwired/pteron38/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pteron44/.noci b/keyboards/handwired/pteron44/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/qc60/.noci b/keyboards/handwired/qc60/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/qc60/proto/.noci b/keyboards/handwired/qc60/proto/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/reddot/.noci b/keyboards/handwired/reddot/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/retro_refit/.noci b/keyboards/handwired/retro_refit/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/riblee_f401/.noci b/keyboards/handwired/riblee_f401/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/riblee_f411/.noci b/keyboards/handwired/riblee_f411/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/rs60/.noci b/keyboards/handwired/rs60/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/selene/.noci b/keyboards/handwired/selene/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/sick68/.noci b/keyboards/handwired/sick68/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/sick_pad/.noci b/keyboards/handwired/sick_pad/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/slash/.noci b/keyboards/handwired/slash/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/space_oddity/.noci b/keyboards/handwired/space_oddity/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/splittest/.noci b/keyboards/handwired/splittest/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/splittest/promicro/.noci b/keyboards/handwired/splittest/promicro/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/splittest/teensy_2/.noci b/keyboards/handwired/splittest/teensy_2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/steamvan/rev1/.noci b/keyboards/handwired/steamvan/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/sticc14/.noci b/keyboards/handwired/sticc14/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/stream_cheap/2x3/.noci b/keyboards/handwired/stream_cheap/2x3/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/stream_cheap/2x4/.noci b/keyboards/handwired/stream_cheap/2x4/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/stream_cheap/2x5/.noci b/keyboards/handwired/stream_cheap/2x5/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/swiftrax/astro65/.noci b/keyboards/handwired/swiftrax/astro65/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/swiftrax/bebol/.noci b/keyboards/handwired/swiftrax/bebol/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/swiftrax/beegboy/.noci b/keyboards/handwired/swiftrax/beegboy/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/swiftrax/cowfish/.noci b/keyboards/handwired/swiftrax/cowfish/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/swiftrax/pandamic/.noci b/keyboards/handwired/swiftrax/pandamic/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/swiftrax/retropad/.noci b/keyboards/handwired/swiftrax/retropad/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/swiftrax/unsplit/.noci b/keyboards/handwired/swiftrax/unsplit/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/symmetric70_proto/.noci b/keyboards/handwired/symmetric70_proto/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/symmetry60/.noci b/keyboards/handwired/symmetry60/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/t111/.noci b/keyboards/handwired/t111/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/tennie/.noci b/keyboards/handwired/tennie/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/terminus_mini/.noci b/keyboards/handwired/terminus_mini/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/trackpoint/.noci b/keyboards/handwired/trackpoint/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/traveller/.noci b/keyboards/handwired/traveller/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/tritium_numpad/.noci b/keyboards/handwired/tritium_numpad/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/twadlee/tp69/.noci b/keyboards/handwired/twadlee/tp69/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/unk/.noci b/keyboards/handwired/unk/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/unk/rev1/.noci b/keyboards/handwired/unk/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/videowriter/.noci b/keyboards/handwired/videowriter/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/wabi/.noci b/keyboards/handwired/wabi/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/woodpad/.noci b/keyboards/handwired/woodpad/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/wulkan/.noci b/keyboards/handwired/wulkan/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/xealous/.noci b/keyboards/handwired/xealous/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/xealous/rev1/.noci b/keyboards/handwired/xealous/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/xealousbrown/.noci b/keyboards/handwired/xealousbrown/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/z150/.noci b/keyboards/handwired/z150/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/zergo/.noci b/keyboards/handwired/zergo/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/helix/.noci b/keyboards/helix/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/helix/rev1/.noci b/keyboards/helix/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/helix/rev2/.noci b/keyboards/helix/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/helix/rev2/back/.noci b/keyboards/helix/rev2/back/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/helix/rev2/qmk_conf/.noci b/keyboards/helix/rev2/qmk_conf/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/helix/rev2/sc/.noci b/keyboards/helix/rev2/sc/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/helix/rev2/under/.noci b/keyboards/helix/rev2/under/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/hs60/v1/.noci b/keyboards/hs60/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ivy/.noci b/keyboards/ivy/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/jian/.noci b/keyboards/jian/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/jian/handwired/.noci b/keyboards/jian/handwired/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/jian/rev1/.noci b/keyboards/jian/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/jiran/.noci b/keyboards/jiran/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/jiran/rev1/.noci b/keyboards/jiran/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/jisplit89/.noci b/keyboards/jisplit89/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kbdfans/kbd67/hotswap/.noci b/keyboards/kbdfans/kbd67/hotswap/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/.noci b/keyboards/kbdfans/kbd67/mkii_soldered/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/.noci b/keyboards/kbdfans/kbd67/mkiirgb/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kbdfans/kbd67/rev1/.noci b/keyboards/kbdfans/kbd67/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kbdfans/kbd75/.noci b/keyboards/kbdfans/kbd75/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kbdfans/kbd75/rev1/.noci b/keyboards/kbdfans/kbd75/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kbdfans/kbdpad/mk1/.noci b/keyboards/kbdfans/kbdpad/mk1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/bdn9/.noci b/keyboards/keebio/bdn9/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/bdn9/rev1/.noci b/keyboards/keebio/bdn9/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/iris/rev1/.noci b/keyboards/keebio/iris/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/iris/rev1_led/.noci b/keyboards/keebio/iris/rev1_led/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/iris/rev2/.noci b/keyboards/keebio/iris/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/iris/rev3/.noci b/keyboards/keebio/iris/rev3/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/kbo5000/.noci b/keyboards/keebio/kbo5000/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/levinson/.noci b/keyboards/keebio/levinson/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/levinson/rev1/.noci b/keyboards/keebio/levinson/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/levinson/rev2/.noci b/keyboards/keebio/levinson/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/nyquist/rev1/.noci b/keyboards/keebio/nyquist/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/nyquist/rev2/.noci b/keyboards/keebio/nyquist/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/quefrency/.noci b/keyboards/keebio/quefrency/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/quefrency/rev1/.noci b/keyboards/keebio/quefrency/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/rorschach/.noci b/keyboards/keebio/rorschach/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/sinc/.noci b/keyboards/keebio/sinc/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/viterbi/.noci b/keyboards/keebio/viterbi/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keebio/viterbi/rev1/.noci b/keyboards/keebio/viterbi/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keycapsss/plaid_pad/.noci b/keyboards/keycapsss/plaid_pad/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/keycapsss/plaid_pad/rev1/.noci b/keyboards/keycapsss/plaid_pad/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kinesis/.noci b/keyboards/kinesis/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kudox/.noci b/keyboards/kudox/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kudox/columner/.noci b/keyboards/kudox/columner/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kudox/rev1/.noci b/keyboards/kudox/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kudox/rev2/.noci b/keyboards/kudox/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kudox_game/.noci b/keyboards/kudox_game/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kudox_game/rev1/.noci b/keyboards/kudox_game/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/kyria/.noci b/keyboards/kyria/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/launchpad/.noci b/keyboards/launchpad/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/lets_split/.noci b/keyboards/lets_split/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/lets_split/rev1/.noci b/keyboards/lets_split/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/lets_split_eh/.noci b/keyboards/lets_split_eh/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/lfkeyboards/lfk78/.noci b/keyboards/lfkeyboards/lfk78/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/lfkeyboards/lfk78/revb/.noci b/keyboards/lfkeyboards/lfk78/revb/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/lfkeyboards/lfk78/revc/.noci b/keyboards/lfkeyboards/lfk78/revc/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/lfkeyboards/smk65/.noci b/keyboards/lfkeyboards/smk65/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/lfkeyboards/smk65/revb/.noci b/keyboards/lfkeyboards/smk65/revb/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/lily58/.noci b/keyboards/lily58/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/marksard/rhymestone/.noci b/keyboards/marksard/rhymestone/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechllama/g35/.noci b/keyboards/mechllama/g35/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechllama/g35/v1/.noci b/keyboards/mechllama/g35/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/adelais/.noci b/keyboards/mechlovin/adelais/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/adelais/rgb_led/.noci b/keyboards/mechlovin/adelais/rgb_led/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/.noci b/keyboards/mechlovin/adelais/rgb_led/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/adelais/standard_led/.noci b/keyboards/mechlovin/adelais/standard_led/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/adelais/standard_led/rev2/.noci b/keyboards/mechlovin/adelais/standard_led/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/delphine/.noci b/keyboards/mechlovin/delphine/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/hannah60rgb/.noci b/keyboards/mechlovin/hannah60rgb/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/hannah60rgb/rev1/.noci b/keyboards/mechlovin/hannah60rgb/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/hannah65/.noci b/keyboards/mechlovin/hannah65/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/hannah910/.noci b/keyboards/mechlovin/hannah910/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/hannah910/rev1/.noci b/keyboards/mechlovin/hannah910/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/hannah910/rev2/.noci b/keyboards/mechlovin/hannah910/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechmini/.noci b/keyboards/mechmini/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechmini/v1/.noci b/keyboards/mechmini/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/melgeek/mj64/rev1/.noci b/keyboards/melgeek/mj64/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/melgeek/z70ultra/.noci b/keyboards/melgeek/z70ultra/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/minidox/.noci b/keyboards/minidox/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/montsinger/rebound/.noci b/keyboards/montsinger/rebound/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/montsinger/rebound/rev1/.noci b/keyboards/montsinger/rebound/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/montsinger/rebound/rev2/.noci b/keyboards/montsinger/rebound/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/montsinger/rebound/rev3/.noci b/keyboards/montsinger/rebound/rev3/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/murcielago/.noci b/keyboards/murcielago/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/naked48/.noci b/keyboards/naked48/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/naked60/.noci b/keyboards/naked60/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/naked64/.noci b/keyboards/naked64/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/namecard2x4/.noci b/keyboards/namecard2x4/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/namecard2x4/rev1/.noci b/keyboards/namecard2x4/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/navi10/.noci b/keyboards/navi10/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/navi10/rev0/.noci b/keyboards/navi10/rev0/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/navi10/rev2/.noci b/keyboards/navi10/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/nomu30/.noci b/keyboards/nomu30/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/nomu30/rev1/.noci b/keyboards/nomu30/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/orthodox/.noci b/keyboards/orthodox/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/orthodox/rev1/.noci b/keyboards/orthodox/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/otaku_split/rev0/.noci b/keyboards/otaku_split/rev0/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/pabile/p20/ver1/.noci b/keyboards/pabile/p20/ver1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/percent/canoe/.noci b/keyboards/percent/canoe/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/pimentoso/paddino02/.noci b/keyboards/pimentoso/paddino02/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/pimentoso/paddino02/rev1/.noci b/keyboards/pimentoso/paddino02/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/planck/rev1/.noci b/keyboards/planck/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/planck/rev2/.noci b/keyboards/planck/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/planck/rev3/.noci b/keyboards/planck/rev3/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/planck/rev4/.noci b/keyboards/planck/rev4/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/planck/rev5/.noci b/keyboards/planck/rev5/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ploopyco/trackball/.noci b/keyboards/ploopyco/trackball/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/polilla/.noci b/keyboards/polilla/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/preonic/rev1/.noci b/keyboards/preonic/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/preonic/rev2/.noci b/keyboards/preonic/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/primekb/prime_e/.noci b/keyboards/primekb/prime_e/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/primekb/prime_l/.noci b/keyboards/primekb/prime_l/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/primekb/prime_l/v1/.noci b/keyboards/primekb/prime_l/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/projectkb/alice/.noci b/keyboards/projectkb/alice/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/projectkb/alice/rev1/.noci b/keyboards/projectkb/alice/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/qwertyydox/.noci b/keyboards/qwertyydox/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/redox/.noci b/keyboards/redox/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/redscarf_iiplus/verb/.noci b/keyboards/redscarf_iiplus/verb/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/redscarf_iiplus/verc/.noci b/keyboards/redscarf_iiplus/verc/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/rgbkb/pan/.noci b/keyboards/rgbkb/pan/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/rgbkb/pan/rev1/.noci b/keyboards/rgbkb/pan/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/rgbkb/sol/.noci b/keyboards/rgbkb/sol/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/rgbkb/sol/rev1/.noci b/keyboards/rgbkb/sol/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/rgbkb/zen/.noci b/keyboards/rgbkb/zen/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/rgbkb/zen/rev1/.noci b/keyboards/rgbkb/zen/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/rgbkb/zygomorph/.noci b/keyboards/rgbkb/zygomorph/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/rominronin/katana60/rev1/.noci b/keyboards/rominronin/katana60/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/s7_elephant/.noci b/keyboards/s7_elephant/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/s7_elephant/rev1/.noci b/keyboards/s7_elephant/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/sirius/uni660/.noci b/keyboards/sirius/uni660/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/sirius/uni660/rev1/.noci b/keyboards/sirius/uni660/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/sofle/.noci b/keyboards/sofle/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/spacetime/.noci b/keyboards/spacetime/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/spacetime/rev1/.noci b/keyboards/spacetime/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/suihankey/split/.noci b/keyboards/suihankey/split/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/suihankey/split/alpha/.noci b/keyboards/suihankey/split/alpha/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/tkw/stoutgat/v1/.noci b/keyboards/tkw/stoutgat/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/treadstone48/.noci b/keyboards/treadstone48/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/treadstone48/rev1/.noci b/keyboards/treadstone48/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/underscore33/.noci b/keyboards/underscore33/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/underscore33/rev1/.noci b/keyboards/underscore33/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/vitamins_included/.noci b/keyboards/vitamins_included/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/vitamins_included/rev1/.noci b/keyboards/vitamins_included/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/whale/sk/.noci b/keyboards/whale/sk/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/xd60/rev2/.noci b/keyboards/xd60/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ymd75/.noci b/keyboards/ymd75/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ymd75/rev1/.noci b/keyboards/ymd75/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ymd75/rev2/.noci b/keyboards/ymd75/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/yosino58/.noci b/keyboards/yosino58/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/zinc/.noci b/keyboards/zinc/.noci new file mode 100644 index 000000000000..e69de29bb2d1 From 94535730809d3fb9b466b221b935f27898a17887 Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Tue, 22 Dec 2020 10:14:28 +0100 Subject: [PATCH 007/140] [Keyboard] Add Axolstudio Yeti (#11051) --- keyboards/axolstudio/yeti/config.h | 42 +++ keyboards/axolstudio/yeti/info.json | 285 ++++++++++++++++++ .../axolstudio/yeti/keymaps/default/keymap.c | 34 +++ .../axolstudio/yeti/keymaps/via/keymap.c | 48 +++ .../axolstudio/yeti/keymaps/via/rules.mk | 1 + keyboards/axolstudio/yeti/readme.md | 19 ++ keyboards/axolstudio/yeti/rules.mk | 24 ++ keyboards/axolstudio/yeti/yeti.c | 17 ++ keyboards/axolstudio/yeti/yeti.h | 76 +++++ 9 files changed, 546 insertions(+) create mode 100644 keyboards/axolstudio/yeti/config.h create mode 100644 keyboards/axolstudio/yeti/info.json create mode 100644 keyboards/axolstudio/yeti/keymaps/default/keymap.c create mode 100644 keyboards/axolstudio/yeti/keymaps/via/keymap.c create mode 100644 keyboards/axolstudio/yeti/keymaps/via/rules.mk create mode 100644 keyboards/axolstudio/yeti/readme.md create mode 100644 keyboards/axolstudio/yeti/rules.mk create mode 100644 keyboards/axolstudio/yeti/yeti.c create mode 100644 keyboards/axolstudio/yeti/yeti.h diff --git a/keyboards/axolstudio/yeti/config.h b/keyboards/axolstudio/yeti/config.h new file mode 100644 index 000000000000..34b47bbcacad --- /dev/null +++ b/keyboards/axolstudio/yeti/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2020 kb-elmo + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x525C +#define PRODUCT_ID 0x9F9F +#define DEVICE_VER 0x0001 +#define MANUFACTURER Axolstudio +#define PRODUCT Yeti + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* Keyboard Matrix Assignments */ + +#define MATRIX_ROW_PINS { C7, C6, B6, B5, B4 } +#define MATRIX_COL_PINS { F6, F5, F4, F1, F0, F7, D7, D6, D4, B3, B7, D0, D1, D2, D3, D5 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/axolstudio/yeti/info.json b/keyboards/axolstudio/yeti/info.json new file mode 100644 index 000000000000..442c172d244e --- /dev/null +++ b/keyboards/axolstudio/yeti/info.json @@ -0,0 +1,285 @@ +{ + "keyboard_name": "yeti", + "url": "https://axolstudio.ca/yeti", + "maintainer": "kb-elmo", + "width": 17.75, + "height": 5, + "layouts": { + "LAYOUT_alice": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.25, "y":0}, + {"x":6.25, "y":0}, + {"x":7.25, "y":0}, + {"x":10.25, "y":0}, + {"x":11.25, "y":0}, + {"x":12.25, "y":0}, + {"x":13.25, "y":0}, + {"x":14.25, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0, "w": 2}, + {"x":0, "y":1}, + {"x":1.25, "y":1, "w":1.5}, + {"x":2.75, "y":1}, + {"x":3.75, "y":1}, + {"x":4.75, "y":1}, + {"x":5.75, "y":1}, + {"x":6.75, "y":1}, + {"x":9.75, "y":1}, + {"x":10.75, "y":1}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1}, + {"x":13.75, "y":1}, + {"x":14.75, "y":1}, + {"x":15.75, "y":1}, + {"x":16.75, "y":1, "w":1.5}, + {"x":0, "y":2}, + {"x":1.25, "y":2, "w":1.75}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + {"x":15, "y":2}, + {"x":16, "y":2, "w":2.25}, + {"x":1.25, "y":3, "w":2.25}, + {"x":3.5, "y":3}, + {"x":4.5, "y":3}, + {"x":5.5, "y":3}, + {"x":6.5, "y":3}, + {"x":7.5, "y":3}, + {"x":9.5, "y":3}, + {"x":10.5, "y":3}, + {"x":11.5, "y":3}, + {"x":12.5, "y":3}, + {"x":13.5, "y":3}, + {"x":14.5, "y":3}, + {"x":15.5, "y":3, "w":1.75}, + {"x":17.25, "y":3}, + {"x":1.25, "y":4, "w":1.5}, + {"x":4.25, "y":4, "w":1.5}, + {"x":5.75, "y":4, "w":2}, + {"x":7.75, "y":4, "w":1.25}, + {"x":9.5, "y":4, "w":2.75}, + {"x":12.25, "y":4, "w":1.5}, + {"x":16.75, "y":4, "w":1.5} + ] + }, + "LAYOUT_alice_split_bs": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.25, "y":0}, + {"x":6.25, "y":0}, + {"x":7.25, "y":0}, + {"x":10.25, "y":0}, + {"x":11.25, "y":0}, + {"x":12.25, "y":0}, + {"x":13.25, "y":0}, + {"x":14.25, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":0, "y":1}, + {"x":1.25, "y":1, "w":1.5}, + {"x":2.75, "y":1}, + {"x":3.75, "y":1}, + {"x":4.75, "y":1}, + {"x":5.75, "y":1}, + {"x":6.75, "y":1}, + {"x":9.75, "y":1}, + {"x":10.75, "y":1}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1}, + {"x":13.75, "y":1}, + {"x":14.75, "y":1}, + {"x":15.75, "y":1}, + {"x":16.75, "y":1, "w":1.5}, + {"x":0, "y":2}, + {"x":1.25, "y":2, "w":1.75}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + {"x":15, "y":2}, + {"x":16, "y":2, "w":2.25}, + {"x":1.25, "y":3, "w":2.25}, + {"x":3.5, "y":3}, + {"x":4.5, "y":3}, + {"x":5.5, "y":3}, + {"x":6.5, "y":3}, + {"x":7.5, "y":3}, + {"x":9.5, "y":3}, + {"x":10.5, "y":3}, + {"x":11.5, "y":3}, + {"x":12.5, "y":3}, + {"x":13.5, "y":3}, + {"x":14.5, "y":3}, + {"x":15.5, "y":3, "w":1.75}, + {"x":17.25, "y":3}, + {"x":1.25, "y":4, "w":1.5}, + {"x":4.25, "y":4, "w":1.5}, + {"x":5.75, "y":4, "w":2}, + {"x":7.75, "y":4, "w":1.25}, + {"x":9.5, "y":4, "w":2.75}, + {"x":12.25, "y":4, "w":1.5}, + {"x":16.75, "y":4, "w":1.5} + ] + }, + "LAYOUT_alice_full_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.25, "y":0}, + {"x":6.25, "y":0}, + {"x":7.25, "y":0}, + {"x":10.25, "y":0}, + {"x":11.25, "y":0}, + {"x":12.25, "y":0}, + {"x":13.25, "y":0}, + {"x":14.25, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0, "w":2}, + {"x":0, "y":1}, + {"x":1.25, "y":1, "w":1.5}, + {"x":2.75, "y":1}, + {"x":3.75, "y":1}, + {"x":4.75, "y":1}, + {"x":5.75, "y":1}, + {"x":6.75, "y":1}, + {"x":9.75, "y":1}, + {"x":10.75, "y":1}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1}, + {"x":13.75, "y":1}, + {"x":14.75, "y":1}, + {"x":15.75, "y":1}, + {"x":16.75, "y":1, "w":1.5}, + {"x":0, "y":2}, + {"x":1.25, "y":2, "w":1.75}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + {"x":15, "y":2}, + {"x":16, "y":2, "w":2.25}, + {"x":1.25, "y":3, "w":2.25}, + {"x":3.5, "y":3}, + {"x":4.5, "y":3}, + {"x":5.5, "y":3}, + {"x":6.5, "y":3}, + {"x":7.5, "y":3}, + {"x":9.5, "y":3}, + {"x":10.5, "y":3}, + {"x":11.5, "y":3}, + {"x":12.5, "y":3}, + {"x":13.5, "y":3}, + {"x":14.5, "y":3}, + {"x":15.5, "y":3, "w":2.75}, + {"x":1.25, "y":4, "w":1.5}, + {"x":4.25, "y":4, "w":1.5}, + {"x":5.75, "y":4, "w":2}, + {"x":7.75, "y":4, "w":1.25}, + {"x":9.5, "y":4, "w":2.75}, + {"x":12.25, "y":4, "w":1.5}, + {"x":16.75, "y":4, "w":1.5} + ] + }, + "LAYOUT_alice_split_bs_full_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.25, "y":0}, + {"x":6.25, "y":0}, + {"x":7.25, "y":0}, + {"x":10.25, "y":0}, + {"x":11.25, "y":0}, + {"x":12.25, "y":0}, + {"x":13.25, "y":0}, + {"x":14.25, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":0, "y":1}, + {"x":1.25, "y":1, "w":1.5}, + {"x":2.75, "y":1}, + {"x":3.75, "y":1}, + {"x":4.75, "y":1}, + {"x":5.75, "y":1}, + {"x":6.75, "y":1}, + {"x":9.75, "y":1}, + {"x":10.75, "y":1}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1}, + {"x":13.75, "y":1}, + {"x":14.75, "y":1}, + {"x":15.75, "y":1}, + {"x":16.75, "y":1, "w":1.5}, + {"x":0, "y":2}, + {"x":1.25, "y":2, "w":1.75}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + {"x":15, "y":2}, + {"x":16, "y":2, "w":2.25}, + {"x":1.25, "y":3, "w":2.25}, + {"x":3.5, "y":3}, + {"x":4.5, "y":3}, + {"x":5.5, "y":3}, + {"x":6.5, "y":3}, + {"x":7.5, "y":3}, + {"x":9.5, "y":3}, + {"x":10.5, "y":3}, + {"x":11.5, "y":3}, + {"x":12.5, "y":3}, + {"x":13.5, "y":3}, + {"x":14.5, "y":3}, + {"x":15.5, "y":3, "w":2.75}, + {"x":1.25, "y":4, "w":1.5}, + {"x":4.25, "y":4, "w":1.5}, + {"x":5.75, "y":4, "w":2}, + {"x":7.75, "y":4, "w":1.25}, + {"x":9.5, "y":4, "w":2.75}, + {"x":12.25, "y":4, "w":1.5}, + {"x":16.75, "y":4, "w":1.5} + ] + } + } +} diff --git a/keyboards/axolstudio/yeti/keymaps/default/keymap.c b/keyboards/axolstudio/yeti/keymaps/default/keymap.c new file mode 100644 index 000000000000..b1ae3feb8976 --- /dev/null +++ b/keyboards/axolstudio/yeti/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_alice( + KC_PAUS, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_PSCR, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_F5, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_alice( + KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/axolstudio/yeti/keymaps/via/keymap.c b/keyboards/axolstudio/yeti/keymaps/via/keymap.c new file mode 100644 index 000000000000..63b688b7a38d --- /dev/null +++ b/keyboards/axolstudio/yeti/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_alice_split_bs( + KC_PAUS, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_PSCR, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_F5, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_alice_split_bs( + KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_alice_split_bs( + KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_alice_split_bs( + KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/axolstudio/yeti/keymaps/via/rules.mk b/keyboards/axolstudio/yeti/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/axolstudio/yeti/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/axolstudio/yeti/readme.md b/keyboards/axolstudio/yeti/readme.md new file mode 100644 index 000000000000..6be59ebd26a7 --- /dev/null +++ b/keyboards/axolstudio/yeti/readme.md @@ -0,0 +1,19 @@ +# Axolstudio Yeti + +![yeti](https://i.imgur.com/eoRH6W1l.png) + +**TGR Alice inspired board with some extra heft** + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Axolstudio Yeti PCB +* Hardware Availability: https://axolstudio.ca/yeti + +Make example for this keyboard (after setting up your build environment): + + make axolstudio/yeti:default + +Flashing example for this keyboard: + + make axolstudio/yeti:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/axolstudio/yeti/rules.mk b/keyboards/axolstudio/yeti/rules.mk new file mode 100644 index 000000000000..4253e34a7770 --- /dev/null +++ b/keyboards/axolstudio/yeti/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = alice alice_split_bs diff --git a/keyboards/axolstudio/yeti/yeti.c b/keyboards/axolstudio/yeti/yeti.c new file mode 100644 index 000000000000..9c11b8c78c29 --- /dev/null +++ b/keyboards/axolstudio/yeti/yeti.c @@ -0,0 +1,17 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#include "yeti.h" diff --git a/keyboards/axolstudio/yeti/yeti.h b/keyboards/axolstudio/yeti/yeti.h new file mode 100644 index 000000000000..7c3b5cba1d5e --- /dev/null +++ b/keyboards/axolstudio/yeti/yeti.h @@ -0,0 +1,76 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_alice( \ + k16, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k14, \ + k32, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k31, \ + k48, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k30, \ + k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, k45, k47, \ + k61, k62, k63, k64, k65, k66, k67 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, KC_NO, k14, KC_NO }, \ + { k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31 }, \ + { k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k45, KC_NO, k47 }, \ + { k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, k61, KC_NO, k62, KC_NO, k63, k64, KC_NO, k65, KC_NO, k66, KC_NO, KC_NO, KC_NO, KC_NO, k67 } \ +} + +// Equivalent to LAYOUT_all +#define LAYOUT_alice_split_bs( \ + k16, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k15, \ + k32, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k31, \ + k48, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k30, \ + k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, k45, k47, \ + k61, k62, k63, k64, k65, k66, k67 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, KC_NO, k15 }, \ + { k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31 }, \ + { k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k45, KC_NO, k47 }, \ + { k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, k61, KC_NO, k62, KC_NO, k63, k64, KC_NO, k65, KC_NO, k66, KC_NO, KC_NO, KC_NO, KC_NO, k67 } \ +} + +#define LAYOUT_alice_split_bs_full_rshift( \ + k16, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k15, \ + k32, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k31, \ + k48, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k30, \ + k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, k46, \ + k61, k62, k63, k64, k65, k66, k67 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, KC_NO, k15 }, \ + { k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31 }, \ + { k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, KC_NO, k46, KC_NO }, \ + { k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, k61, KC_NO, k62, KC_NO, k63, k64, KC_NO, k65, KC_NO, k66, KC_NO, KC_NO, KC_NO, KC_NO, k67 } \ +} + +#define LAYOUT_alice_full_rshift( \ + k16, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k14, \ + k32, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k31, \ + k48, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k30, \ + k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, k46, \ + k61, k62, k63, k64, k65, k66, k67 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, KC_NO, k14, KC_NO }, \ + { k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31 }, \ + { k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, KC_NO, k46, KC_NO }, \ + { k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, k61, KC_NO, k62, KC_NO, k63, k64, KC_NO, k65, KC_NO, k66, KC_NO, KC_NO, KC_NO, KC_NO, k67 } \ +} From 54e2bf3edefb670ede2c2c3934dc732264ac6381 Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Tue, 22 Dec 2020 12:23:09 -0500 Subject: [PATCH 008/140] Fix Issue #9533 - Delayed shift state handling (#11220) Co-authored-by: Ryan --- quantum/process_keycode/process_unicode_common.h | 1 - quantum/process_keycode/process_unicodemap.c | 9 +++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/quantum/process_keycode/process_unicode_common.h b/quantum/process_keycode/process_unicode_common.h index 3082fbb5f00d..c10e171ec3fa 100644 --- a/quantum/process_keycode/process_unicode_common.h +++ b/quantum/process_keycode/process_unicode_common.h @@ -75,7 +75,6 @@ typedef union { } unicode_config_t; extern unicode_config_t unicode_config; -extern uint8_t unicode_saved_mods; void unicode_input_mode_init(void); uint8_t get_unicode_input_mode(void); diff --git a/quantum/process_keycode/process_unicodemap.c b/quantum/process_keycode/process_unicodemap.c index fcf676c24e7c..459397014d25 100644 --- a/quantum/process_keycode/process_unicodemap.c +++ b/quantum/process_keycode/process_unicodemap.c @@ -21,8 +21,13 @@ __attribute__((weak)) uint16_t unicodemap_index(uint16_t keycode) { // Keycode is a pair: extract index based on Shift / Caps Lock state uint16_t index = keycode - QK_UNICODEMAP_PAIR; - bool shift = unicode_saved_mods & MOD_MASK_SHIFT; - bool caps = IS_HOST_LED_ON(USB_LED_CAPS_LOCK); + uint8_t mods = get_mods() | get_weak_mods(); +#ifndef NO_ACTION_ONESHOT + mods |= get_oneshot_mods(); +#endif + + bool shift = mods & MOD_MASK_SHIFT; + bool caps = host_keyboard_led_state().caps_lock; if (shift ^ caps) { index >>= 7; } From 2843e7f995fd1c8a011f541802aaad254278d6d4 Mon Sep 17 00:00:00 2001 From: Jack <59737601+wafflekeebs@users.noreply.github.com> Date: Tue, 22 Dec 2020 10:40:04 -0700 Subject: [PATCH 009/140] [Keyboard] Add VIA keymap for the reviung41 (#11102) * Add VIA keymap for reviung41 * Change VID for compatibility * Add GPL header to config.h * Enable link time optimization * Remove config since it might not be needed --- keyboards/reviung41/config.h | 2 +- keyboards/reviung41/keymaps/via/keymap.c | 54 ++++++++++++++++++++++++ keyboards/reviung41/keymaps/via/rules.mk | 3 ++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 keyboards/reviung41/keymaps/via/keymap.c create mode 100644 keyboards/reviung41/keymaps/via/rules.mk diff --git a/keyboards/reviung41/config.h b/keyboards/reviung41/config.h index acac4f0d7673..c68472e7c196 100644 --- a/keyboards/reviung41/config.h +++ b/keyboards/reviung41/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED +#define VENDOR_ID 0x7807 #define PRODUCT_ID 0xDCCB #define DEVICE_VER 0x0001 #define MANUFACTURER gtips diff --git a/keyboards/reviung41/keymaps/via/keymap.c b/keyboards/reviung41/keymaps/via/keymap.c new file mode 100644 index 000000000000..1f0bce741f8e --- /dev/null +++ b/keyboards/reviung41/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2020 @toastedmangoes + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_reviung41( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), + KC_LGUI, MO(1), KC_SPC, MO(2), LT(3, KC_RALT) + ), + + [_LOWER] = LAYOUT_reviung41( + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_GRV, KC_TILD, + _______, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, KC_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, RSFT_T(KC_SPC), + _______, _______, KC_ENT, _______, _______ + ), + + [_RAISE] = LAYOUT_reviung41( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, KC_QUOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, KC_BSPC, _______, _______ + ), + + [_ADJUST] = LAYOUT_reviung41( + RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, XXXXXXX, _______, _______ + ), +}; + diff --git a/keyboards/reviung41/keymaps/via/rules.mk b/keyboards/reviung41/keymaps/via/rules.mk new file mode 100644 index 000000000000..5ed1ee4706b7 --- /dev/null +++ b/keyboards/reviung41/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +RGBLIGHT_ENABLE = yes +LTO_ENABLE = yes From f40b56468366212ffa23de5dd424f24e42bb88bb Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Tue, 22 Dec 2020 12:51:47 -0500 Subject: [PATCH 010/140] Partial fix for Issue #9405 - Caps Lock not working with Unicode Map's XP on Linux (#11232) --- .../process_keycode/process_unicode_common.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/quantum/process_keycode/process_unicode_common.c b/quantum/process_keycode/process_unicode_common.c index 80be3162320b..bac9fbcc0fbd 100644 --- a/quantum/process_keycode/process_unicode_common.c +++ b/quantum/process_keycode/process_unicode_common.c @@ -21,6 +21,7 @@ unicode_config_t unicode_config; uint8_t unicode_saved_mods; +bool unicode_saved_caps_lock; #if UNICODE_SELECTED_MODES != -1 static uint8_t selected[] = {UNICODE_SELECTED_MODES}; @@ -77,6 +78,16 @@ void cycle_unicode_input_mode(int8_t offset) { void persist_unicode_input_mode(void) { eeprom_update_byte(EECONFIG_UNICODEMODE, unicode_config.input_mode); } __attribute__((weak)) void unicode_input_start(void) { + unicode_saved_caps_lock = host_keyboard_led_state().caps_lock; + + // Note the order matters here! + // Need to do this before we mess around with the mods, or else + // UNICODE_KEY_LNX (which is usually Ctrl-Shift-U) might not work + // correctly in the shifted case. + if (unicode_config.input_mode == UC_LNX && unicode_saved_caps_lock) { + tap_code(KC_CAPS); + } + unicode_saved_mods = get_mods(); // Save current mods clear_mods(); // Unregister mods to start from a clean state @@ -107,6 +118,9 @@ __attribute__((weak)) void unicode_input_finish(void) { break; case UC_LNX: tap_code(KC_SPC); + if (unicode_saved_caps_lock) { + tap_code(KC_CAPS); + } break; case UC_WIN: unregister_code(KC_LALT); @@ -125,6 +139,11 @@ __attribute__((weak)) void unicode_input_cancel(void) { unregister_code(UNICODE_KEY_MAC); break; case UC_LNX: + tap_code(KC_ESC); + if (unicode_saved_caps_lock) { + tap_code(KC_CAPS); + } + break; case UC_WINC: tap_code(KC_ESC); break; From bf324c38e3a8929999e459b947b5551bc216cc88 Mon Sep 17 00:00:00 2001 From: Dmitry Nosachev Date: Tue, 22 Dec 2020 21:10:56 +0300 Subject: [PATCH 011/140] [Keyboard] add ASkeyboard Sono1 (#11114) * handwired/sono1 * readme: addition * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/handwired/sono1/chconf.h | 714 ++++++++++++++++++ keyboards/handwired/sono1/config.h | 113 +++ keyboards/handwired/sono1/halconf.h | 525 +++++++++++++ keyboards/handwired/sono1/info.json | 120 +++ .../handwired/sono1/keymaps/debug/keymap.c | 45 ++ .../handwired/sono1/keymaps/debug/readme.md | 1 + .../handwired/sono1/keymaps/default/keymap.c | 168 +++++ .../handwired/sono1/keymaps/default/readme.md | 1 + keyboards/handwired/sono1/mcuconf.h | 209 +++++ keyboards/handwired/sono1/readme.md | 57 ++ keyboards/handwired/sono1/rules.mk | 25 + keyboards/handwired/sono1/sono1.c | 44 ++ keyboards/handwired/sono1/sono1.h | 107 +++ 13 files changed, 2129 insertions(+) create mode 100644 keyboards/handwired/sono1/chconf.h create mode 100644 keyboards/handwired/sono1/config.h create mode 100644 keyboards/handwired/sono1/halconf.h create mode 100644 keyboards/handwired/sono1/info.json create mode 100644 keyboards/handwired/sono1/keymaps/debug/keymap.c create mode 100644 keyboards/handwired/sono1/keymaps/debug/readme.md create mode 100644 keyboards/handwired/sono1/keymaps/default/keymap.c create mode 100644 keyboards/handwired/sono1/keymaps/default/readme.md create mode 100644 keyboards/handwired/sono1/mcuconf.h create mode 100644 keyboards/handwired/sono1/readme.md create mode 100644 keyboards/handwired/sono1/rules.mk create mode 100644 keyboards/handwired/sono1/sono1.c create mode 100644 keyboards/handwired/sono1/sono1.h diff --git a/keyboards/handwired/sono1/chconf.h b/keyboards/handwired/sono1/chconf.h new file mode 100644 index 000000000000..f5e471640c56 --- /dev/null +++ b/keyboards/handwired/sono1/chconf.h @@ -0,0 +1,714 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file rt/templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ +#define _CHIBIOS_RT_CONF_VER_6_0_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_ST_RESOLUTION) +#define CH_CFG_ST_RESOLUTION 32 +#endif + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_CFG_ST_FREQUENCY) +#define CH_CFG_ST_FREQUENCY 100000 +#endif + +/** + * @brief Time intervals data size. + * @note Allowed values are 16, 32 or 64 bits. + */ +#if !defined(CH_CFG_INTERVALS_SIZE) +#define CH_CFG_INTERVALS_SIZE 32 +#endif + +/** + * @brief Time types data size. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_TIME_TYPES_SIZE) +#define CH_CFG_TIME_TYPES_SIZE 32 +#endif + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#if !defined(CH_CFG_ST_TIMEDELTA) +#define CH_CFG_ST_TIMEDELTA 0 +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#if !defined(CH_CFG_TIME_QUANTUM) +#define CH_CFG_TIME_QUANTUM 0 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#if !defined(CH_CFG_MEMCORE_SIZE) +#define CH_CFG_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#if !defined(CH_CFG_NO_IDLE_THREAD) +#define CH_CFG_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) +#define CH_CFG_OPTIMIZE_SPEED TRUE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_TM) +#define CH_CFG_USE_TM FALSE +#endif + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_REGISTRY) +#define CH_CFG_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_WAITEXIT) +#define CH_CFG_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_SEMAPHORES) +#define CH_CFG_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MUTEXES) +#define CH_CFG_USE_MUTEXES TRUE +#endif + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_CONDVARS) +#define CH_CFG_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_EVENTS) +#define CH_CFG_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MESSAGES) +#define CH_CFG_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_MAILBOXES) +#define CH_CFG_USE_MAILBOXES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCORE) +#define CH_CFG_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_CFG_USE_HEAP) +#define CH_CFG_USE_HEAP TRUE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMPOOLS) +#define CH_CFG_USE_MEMPOOLS FALSE +#endif + +/** + * @brief Objects FIFOs APIs. + * @details If enabled then the objects FIFOs APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_OBJ_FIFOS) +#define CH_CFG_USE_OBJ_FIFOS FALSE +#endif + +/** + * @brief Pipes APIs. + * @details If enabled then the pipes APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_PIPES) +#define CH_CFG_USE_PIPES FALSE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#if !defined(CH_CFG_USE_DYNAMIC) +#define CH_CFG_USE_DYNAMIC FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Objects factory options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Objects Factory APIs. + * @details If enabled then the objects factory APIs are included in the + * kernel. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_CFG_USE_FACTORY) +#define CH_CFG_USE_FACTORY FALSE +#endif + +/** + * @brief Maximum length for object names. + * @details If the specified length is zero then the name is stored by + * pointer but this could have unintended side effects. + */ +#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) +#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 +#endif + +/** + * @brief Enables the registry of generic objects. + */ +#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) +#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE +#endif + +/** + * @brief Enables factory for generic buffers. + */ +#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE +#endif + +/** + * @brief Enables factory for semaphores. + */ +#if !defined(CH_CFG_FACTORY_SEMAPHORES) +#define CH_CFG_FACTORY_SEMAPHORES FALSE +#endif + +/** + * @brief Enables factory for mailboxes. + */ +#if !defined(CH_CFG_FACTORY_MAILBOXES) +#define CH_CFG_FACTORY_MAILBOXES FALSE +#endif + +/** + * @brief Enables factory for objects FIFOs. + */ +#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +#define CH_CFG_FACTORY_OBJ_FIFOS FALSE +#endif + +/** + * @brief Enables factory for Pipes. + */ +#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) +#define CH_CFG_FACTORY_PIPES FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_STATISTICS) +#define CH_DBG_STATISTICS FALSE +#endif + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_MASK) +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED +#endif + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) +#define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) +#define CH_DBG_ENABLE_STACK_CHECK FALSE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) +#define CH_DBG_FILL_THREADS FALSE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#if !defined(CH_DBG_THREADS_PROFILING) +#define CH_DBG_THREADS_PROFILING FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System structure extension. + * @details User fields added to the end of the @p ch_system_t structure. + */ +#define CH_CFG_SYSTEM_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief System initialization hook. + * @details User initialization code added to the @p chSysInit() function + * just before interrupts are enabled globally. + */ +#define CH_CFG_SYSTEM_INIT_HOOK() { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p _thread_init() function. + * + * @note It is invoked from within @p _thread_init() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/handwired/sono1/config.h b/keyboards/handwired/sono1/config.h new file mode 100644 index 000000000000..9ccc496e178e --- /dev/null +++ b/keyboards/handwired/sono1/config.h @@ -0,0 +1,113 @@ +/* +Copyright 2020 DmNosachev + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x515A // "QZ" +#define PRODUCT_ID 0x5331 // "S1" +#define DEVICE_VER 0x0001 +#define MANUFACTURER ASKeyboard +#define PRODUCT Sono1 + +/* key matrix size */ +#define MATRIX_ROWS 15 +#define MATRIX_COLS 8 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { A5, B3, A9, A10, B13, B14, B15, A8, B7, B8, B9, C13, A15, A0, A1 } +#define MATRIX_COL_PINS { A4, A3, B11, B10, B1, B0, A7, A6 } +#define UNUSED_PINS { A5 } + +#define LED_KANA_PIN A2 +#define LED_CAPS_LOCK_PIN B5 +#define LED_CTRL_XFER_PIN B6 +#define LED_NUM_LOCK_PIN B4 +#define LED_KB_LOCK_PIN B12 +#define LED_PIN_ON_STATE 0 + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/handwired/sono1/halconf.h b/keyboards/handwired/sono1/halconf.h new file mode 100644 index 000000000000..ff5ae7e8a5f6 --- /dev/null +++ b/keyboards/handwired/sono1/halconf.h @@ -0,0 +1,525 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef HALCONF_H +#define HALCONF_H + +#define _CHIBIOS_HAL_CONF_ +#define _CHIBIOS_HAL_CONF_VER_7_0_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the cryptographic subsystem. + */ +#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) +#define HAL_USE_CRY FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM TRUE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SIO subsystem. + */ +#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) +#define HAL_USE_SIO FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the TRNG subsystem. + */ +#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) +#define HAL_USE_TRNG FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/** + * @brief Enables the WSPI subsystem. + */ +#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) +#define HAL_USE_WSPI FALSE +#endif + +/*===========================================================================*/ +/* PAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) +#define PAL_USE_CALLBACKS FALSE +#endif + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) +#define PAL_USE_WAIT FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/** + * @brief Enforces the driver to use direct callbacks rather than OSAL events. + */ +#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) +#define CAN_ENFORCE_USE_CALLBACKS FALSE +#endif + +/*===========================================================================*/ +/* CRY driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the SW fall-back of the cryptographic driver. + * @details When enabled, this option, activates a fall-back software + * implementation for algorithms not supported by the underlying + * hardware. + * @note Fall-back implementations may not be present for all algorithms. + */ +#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_USE_FALLBACK FALSE +#endif + +/** + * @brief Makes the driver forcibly use the fall-back implementations. + */ +#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_ENFORCE_FALLBACK FALSE +#endif + +/*===========================================================================*/ +/* DAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) +#define DAC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define DAC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the zero-copy API. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/** + * @brief OCR initialization constant for V20 cards. + */ +#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) +#define SDC_INIT_OCR_V20 0x50FF8000U +#endif + +/** + * @brief OCR initialization constant for non-V20 cards. + */ +#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) +#define SDC_INIT_OCR 0x80100000U +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 16 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 256 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 1 +#endif + +/** + * @brief Serial over USB number of buffers. + * @note The default is 2 buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_NUMBER 2 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables circular transfers APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) +#define SPI_USE_CIRCULAR FALSE +#endif + + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/** + * @brief Handling method for SPI CS line. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + +/*===========================================================================*/ +/* UART driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) +#define UART_USE_WAIT FALSE +#endif + +/** + * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define UART_USE_MUTUAL_EXCLUSION FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +/*===========================================================================*/ +/* WSPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) +#define WSPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define WSPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* HALCONF_H */ + +/** @} */ diff --git a/keyboards/handwired/sono1/info.json b/keyboards/handwired/sono1/info.json new file mode 100644 index 000000000000..055f2b3feb04 --- /dev/null +++ b/keyboards/handwired/sono1/info.json @@ -0,0 +1,120 @@ +{ + "keyboard_name": "sono1", + "url": "", + "maintainer": "DmNosachev", + "width": 22.5, + "height": 7.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"F11", "x":0, "y":0}, + {"label":"F12", "x":1.25, "y":0}, + {"label":"F1", "x":2.75, "y":0, "w":1.25}, + {"label":"F2", "x":4, "y":0, "w":1.25}, + {"label":"F3", "x":5.25, "y":0, "w":1.25}, + {"label":"F4", "x":6.5, "y":0, "w":1.25}, + {"label":"F5", "x":7.75, "y":0, "w":1.25}, + {"label":"F6", "x":9.25, "y":0, "w":1.25}, + {"label":"F7", "x":10.5, "y":0, "w":1.25}, + {"label":"F8", "x":11.75, "y":0, "w":1.25}, + {"label":"F9", "x":13, "y":0, "w":1.25}, + {"label":"F10", "x":14.25, "y":0, "w":1.25}, + {"label":"PgUp", "x":16, "y":0}, + {"label":"PgDn", "x":17, "y":0}, + {"label":"LOCK", "x":18.5, "y":0.5}, + {"label":"Home", "x":16, "y":1}, + {"label":"End", "x":17, "y":1}, + {"label":"Esc", "x":0, "y":1.5, "w":1.25}, + {"label":"!", "x":1.25, "y":1.5}, + {"label":"@", "x":2.25, "y":1.5}, + {"label":"#", "x":3.25, "y":1.5}, + {"label":"$", "x":4.25, "y":1.5}, + {"label":"%", "x":5.25, "y":1.5}, + {"label":"^", "x":6.25, "y":1.5}, + {"label":"&", "x":7.25, "y":1.5}, + {"label":"*", "x":8.25, "y":1.5}, + {"label":"(", "x":9.25, "y":1.5}, + {"label":")", "x":10.25, "y":1.5}, + {"label":"_", "x":11.25, "y":1.5}, + {"label":"+", "x":12.25, "y":1.5}, + {"label":"~", "x":13.25, "y":1.5}, + {"label":"BksSpc", "x":14.25, "y":1.5, "w":1.25}, + {"label":"/", "x":18.5, "y":1.5}, + {"label":"*", "x":19.5, "y":1.5}, + {"label":"-", "x":20.5, "y":1.5}, + {"label":"+", "x":21.5, "y":1.5}, + {"label":"Ins", "x":16, "y":2}, + {"label":"Del", "x":17, "y":2}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"{", "x":11.5, "y":2.5}, + {"label":"}", "x":12.5, "y":2.5}, + {"label":"Enter", "x":13.75, "y":2.5, "w":1.75, "h":2}, + {"label":"7", "x":18.5, "y":2.5}, + {"label":"8", "x":19.5, "y":2.5}, + {"label":"9", "x":20.5, "y":2.5}, + {"label":"+=", "x":21.5, "y":2.5}, + {"label":"Ctrl", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":":", "x":10.75, "y":3.5}, + {"label":"\"", "x":11.75, "y":3.5}, + {"label":"|", "x":12.75, "y":3.5}, + {"label":"Up", "x":16, "y":3.5, "w":2}, + {"label":"4", "x":18.5, "y":3.5}, + {"label":"5", "x":19.5, "y":3.5}, + {"label":"6", "x":20.5, "y":3.5}, + {"label":".", "x":21.5, "y":3.5}, + {"label":"Shift", "x":0, "y":4.5, "w":2.5}, + {"label":"Z", "x":2.5, "y":4.5}, + {"label":"X", "x":3.5, "y":4.5}, + {"label":"C", "x":4.5, "y":4.5}, + {"label":"V", "x":5.5, "y":4.5}, + {"label":"B", "x":6.5, "y":4.5}, + {"label":"N", "x":7.5, "y":4.5}, + {"label":"M", "x":8.5, "y":4.5}, + {"label":"<", "x":9.5, "y":4.5}, + {"label":">", "x":10.5, "y":4.5}, + {"label":"?", "x":11.5, "y":4.5}, + {"label":"MUS", "x":12.5, "y":4.5}, + {"label":"Shift", "x":13.5, "y":4.5, "w":2}, + {"label":"Left", "x":16, "y":4.5}, + {"label":"Right", "x":17, "y":4.5}, + {"label":"1", "x":18.5, "y":4.5}, + {"label":"2", "x":19.5, "y":4.5}, + {"label":"3", "x":20.5, "y":4.5}, + {"label":"<", "x":21.5, "y":4.5}, + {"label":"Caps", "x":0, "y":5.5}, + {"label":"Alt", "x":1, "y":5.5}, + {"label":"App", "x":2, "y":5.5, "w":1.25}, + {"label":"GUI", "x":3.25, "y":5.5, "w":1.5}, + {"label":"Space", "x":4.75, "y":5.5, "w":2.25}, + {"label":"Space", "x":7, "y":5.5, "w":2.25}, + {"label":"Enter", "x":9.25, "y":5.5, "w":3}, + {"label":"Ctrl", "x":12.25, "y":5.5, "w":1.5}, + {"label":"Alt", "x":14.5, "y":5.5}, + {"label":"Down", "x":16, "y":5.5, "w":2}, + {"label":"0", "x":18.5, "y":5.5}, + {"label":"000", "x":19.5, "y":5.5}, + {"label":"Enter", "x":20.5, "y":5.5, "w":2}, + {"label":"Fn", "x":5.75, "y":6.5, "w":1.25}, + {"label":"BkSpc", "x":7, "y":6.5, "w":1.25}] + } + } +} \ No newline at end of file diff --git a/keyboards/handwired/sono1/keymaps/debug/keymap.c b/keyboards/handwired/sono1/keymaps/debug/keymap.c new file mode 100644 index 000000000000..3e4eb6eae314 --- /dev/null +++ b/keyboards/handwired/sono1/keymaps/debug/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2020 DmNosachev + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_debug( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // If console is enabled, it will print the matrix position and status of each key pressed +#ifdef CONSOLE_ENABLE + uprintf("row: %u, col: %u, pressed: %u\n", record->event.key.row, record->event.key.col, record->event.pressed); +#endif + return true; +} \ No newline at end of file diff --git a/keyboards/handwired/sono1/keymaps/debug/readme.md b/keyboards/handwired/sono1/keymaps/debug/readme.md new file mode 100644 index 000000000000..8342cd4974d7 --- /dev/null +++ b/keyboards/handwired/sono1/keymaps/debug/readme.md @@ -0,0 +1 @@ +# The default keymap for sono1 diff --git a/keyboards/handwired/sono1/keymaps/default/keymap.c b/keyboards/handwired/sono1/keymaps/default/keymap.c new file mode 100644 index 000000000000..40a49326604c --- /dev/null +++ b/keyboards/handwired/sono1/keymaps/default/keymap.c @@ -0,0 +1,168 @@ +/* Copyright 2020 DmNosachev + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, + _MUS, + _LOCK +}; + +enum custom_keycodes { + MC3Z = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* +,---------------------------------------------------------------------------------------------------------, ,-----, +| F11 | | F12 | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | |PgUp |PgDn | |LOCK | +|-------------------------------------------------------------------------------------------| |-----------| |-----|-----------------, +| Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | —- | += | ~` |BkSpc | |Home | End | | * | / | - | + | +|-------------------------------------------------------------------------------------------| |-----------| |-----------------------| +| Tab | Q | W | E | R | T | Y | U | I | O | P | {[ | }] | Enter | | Ins | Del | | 7 | 8 | 9 | += | +|--------------------------------------------------------------------------------| | `-----------' |-----------------------| +| Ctrl | A | S | D | F | G | H | J | K | L | :; | "' | |\ | | | Up | | 4 | 5 | 6 | . | +|--------------------------------------------------------------------------------`----------' |-----------| |-----------------------| +| Shift | Z | X | C | V | B | N | M | <, | >. | ?/ | MUS | Shift | |Left |Right| | 1 | 2 | 3 | <, | +|-------------------------------------------------------------------------------------------| |-----------| |-----------------------| +|Caps | Alt | App | GUI | Space | Space | Enter | Ctrl | | Alt | | Down | | 0 | 000 | Enter | +`-------------------------------------------------------------------------------------------' `-----------' '-----------------------' + | FN | BackSp| + `--------------' +*/ + [_BASE] = LAYOUT( + KC_F11, KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PGUP, KC_PGDN, MO(_LOCK), + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME, KC_END, KC_PAST, KC_PSLS, KC_PMNS, KC_PPLS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_INS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_EQL, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_UP, KC_P4, KC_P5, KC_P6, KC_PDOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_MUS), KC_RSFT, KC_LEFT, KC_RIGHT, KC_P1, KC_P2, KC_P3, KC_COMM, + KC_CAPS, KC_LALT, KC_APP, KC_LGUI, KC_SPACE, KC_SPACE, KC_ENT, KC_RCTL, KC_RALT, KC_DOWN, KC_P0, MC3Z, KC_PENT, + MO(_FN), KC_BSPC + ), +/* +,---------------------------------------------------------------------------------------------------------, ,-----, +|Reset| | | | | | | | | | | |PrnSc |ScrLk |Pause | | |NumLk| | | +|-------------------------------------------------------------------------------------------| |-----------| |-----|-----------------, +| | | | | | | | | | | | | | | | | | | | | | | | +|-------------------------------------------------------------------------------------------| |-----------| |-----------------------| +| | | | | | | | | Up | |Home |PgUp | | | | | | | | | | | +|--------------------------------------------------------------------------------| | `-----------' |-----------------------| +| | | | | | | |Left |Down |Right| End |PgDn | | | | | | | | | | +|--------------------------------------------------------------------------------`----------' |-----------| |-----------------------| +| | | | | | | | | | | | | | | | | | | | | | +|-------------------------------------------------------------------------------------------| |-----------| |-----------------------| +| | | | | | | BackSpace | | | | | | | | | | +`-------------------------------------------------------------------------------------------' `-----------' '-----------------------' + | |Delete| + `-------------' +*/ +[_FN] = LAYOUT( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_LSCR, KC_PAUS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, _______, _______, _______, + _______, KC_DEL + ), +/* +,---------------------------------------------------------------------------------------------------------, ,-----, +| | | | | | | | | | | | | | | | | | | | | +|-------------------------------------------------------------------------------------------| |-----------| |-----|-----------------, +| | | | | | | | | | | | | | | | | | | | | | | | +|-------------------------------------------------------------------------------------------| |-----------| |-----------------------| +| |MWh+ | M1 | MUp | M2 | | | | | | | | | | | | | | | | | | +|--------------------------------------------------------------------------------| | `-----------' |-----------------------| +| |MWh- | ML | MDn | MR | | | | | | | | | | | | | | | | | +|--------------------------------------------------------------------------------`----------' |-----------| |-----------------------| +| | | | | | | | | | | | | | | | | | | | | | +|-------------------------------------------------------------------------------------------| |-----------| |-----------------------| +| | | | | | | | | | | | | | | | | +`-------------------------------------------------------------------------------------------' `-----------' '-----------------------' + | | | + `-------------' +*/ +[_MUS] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______ + ), +/* +,---------------------------------------------------------------------------------------------------------, ,-----, +| | | | | | | | | | | | | | | | | | | | | +|-------------------------------------------------------------------------------------------| |-----------| |-----|-----------------, +| | | | | | | | | | | | | | | | | | | | | | | | +|-------------------------------------------------------------------------------------------| |-----------| |-----------------------| +| | | | | | | | | | | | | | | | | | | | | | | +|--------------------------------------------------------------------------------| | `-----------' |-----------------------| +| | | | | | | | | | | | | | | | | | | | | | +|--------------------------------------------------------------------------------`----------' |-----------| |-----------------------| +| | | | | | | | | | | | | | | | | | | | | | +|-------------------------------------------------------------------------------------------| |-----------| |-----------------------| +| | | | | | | | | | | | | | | | | +`-------------------------------------------------------------------------------------------' `-----------' '-----------------------' + | | | + `-------------' +*/ +[_LOCK] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MC3Z: + if (record->event.pressed) { + SEND_STRING("000"); + } else { + } + break; + } + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + /* Use LED0 and 4 (Kana and KB Lock as layer indicators) */ + switch (get_highest_layer(state)) { + case _FN: + writePinLow(LED_KANA_PIN); + break; + case _MUS: + writePinLow(LED_KB_LOCK_PIN); + break; + case _LOCK: + writePinLow(LED_KANA_PIN); + writePinLow(LED_KB_LOCK_PIN); + break; + default: // for any other layers, or the default layer + writePinHigh(LED_KANA_PIN); + writePinHigh(LED_KB_LOCK_PIN); + break; + } + return state; +} diff --git a/keyboards/handwired/sono1/keymaps/default/readme.md b/keyboards/handwired/sono1/keymaps/default/readme.md new file mode 100644 index 000000000000..8342cd4974d7 --- /dev/null +++ b/keyboards/handwired/sono1/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for sono1 diff --git a/keyboards/handwired/sono1/mcuconf.h b/keyboards/handwired/sono1/mcuconf.h new file mode 100644 index 000000000000..a645d3c5d5cf --- /dev/null +++ b/keyboards/handwired/sono1/mcuconf.h @@ -0,0 +1,209 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +#define STM32F103_MCUCONF + +/* + * STM32F103 drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 15...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_HSI_ENABLED TRUE +#define STM32_LSI_ENABLED FALSE +#define STM32_HSE_ENABLED TRUE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1 +#define STM32_PLLMUL_VALUE 9 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV2 +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_USB_CLOCK_REQUIRED TRUE +#define STM32_USBPRE STM32_USBPRE_DIV1P5 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_RTCSEL STM32_RTCSEL_HSEDIV +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 + +/* + * ADC driver system settings. + */ +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_ADC1_IRQ_PRIORITY 6 + +/* + * CAN driver system settings. + */ +#define STM32_CAN_USE_CAN1 FALSE +#define STM32_CAN_CAN1_IRQ_PRIORITY 11 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM4 FALSE +#define STM32_GPT_USE_TIM5 FALSE +#define STM32_GPT_USE_TIM8 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 7 +#define STM32_GPT_TIM2_IRQ_PRIORITY 7 +#define STM32_GPT_TIM3_IRQ_PRIORITY 7 +#define STM32_GPT_TIM4_IRQ_PRIORITY 7 +#define STM32_GPT_TIM5_IRQ_PRIORITY 7 +#define STM32_GPT_TIM8_IRQ_PRIORITY 7 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_IRQ_PRIORITY 5 +#define STM32_I2C_I2C2_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_PRIORITY 3 +#define STM32_I2C_I2C2_DMA_PRIORITY 3 +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_USE_TIM4 FALSE +#define STM32_ICU_USE_TIM5 FALSE +#define STM32_ICU_USE_TIM8 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 7 +#define STM32_ICU_TIM2_IRQ_PRIORITY 7 +#define STM32_ICU_TIM3_IRQ_PRIORITY 7 +#define STM32_ICU_TIM4_IRQ_PRIORITY 7 +#define STM32_ICU_TIM5_IRQ_PRIORITY 7 +#define STM32_ICU_TIM8_IRQ_PRIORITY 7 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 TRUE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_USE_TIM4 FALSE +#define STM32_PWM_USE_TIM5 FALSE +#define STM32_PWM_USE_TIM8 FALSE +#define STM32_PWM_TIM1_IRQ_PRIORITY 7 +#define STM32_PWM_TIM2_IRQ_PRIORITY 7 +#define STM32_PWM_TIM3_IRQ_PRIORITY 7 +#define STM32_PWM_TIM4_IRQ_PRIORITY 7 +#define STM32_PWM_TIM5_IRQ_PRIORITY 7 +#define STM32_PWM_TIM8_IRQ_PRIORITY 7 + +/* + * RTC driver system settings. + */ +#define STM32_RTC_IRQ_PRIORITY 15 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USE_USART3 FALSE +#define STM32_SERIAL_USE_UART4 FALSE +#define STM32_SERIAL_USE_UART5 FALSE +#define STM32_SERIAL_USART1_PRIORITY 12 +#define STM32_SERIAL_USART2_PRIORITY 12 +#define STM32_SERIAL_USART3_PRIORITY 12 +#define STM32_SERIAL_UART4_PRIORITY 12 +#define STM32_SERIAL_UART5_PRIORITY 12 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_USE_SPI3 FALSE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI3_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 10 +#define STM32_SPI_SPI2_IRQ_PRIORITY 10 +#define STM32_SPI_SPI3_IRQ_PRIORITY 10 +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 8 +#define STM32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USE_USART3 FALSE +#define STM32_UART_USART1_IRQ_PRIORITY 12 +#define STM32_UART_USART2_IRQ_PRIORITY 12 +#define STM32_UART_USART3_IRQ_PRIORITY 12 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_USART3_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_USB1 TRUE +#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE +#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 +#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/handwired/sono1/readme.md b/keyboards/handwired/sono1/readme.md new file mode 100644 index 000000000000..e21d06e2d9e5 --- /dev/null +++ b/keyboards/handwired/sono1/readme.md @@ -0,0 +1,57 @@ +# QMK-based firmware for ASkeyboard Sono1 keyboard with additional Sono2 numpad + +![Sono1](https://i.imgur.com/eb046DOh.jpeg) + +ASkeyboard Sono1 keyboard conversion project: direct connection of Black Pill to the matrix. + +* Keyboard Maintainer: [DmNosachev](https://github.com/DmNosachev) +* Hardware Supported: [ASkeyboard Sono1](http://www5f.biglobe.ne.jp/~silencium/keyboard/html/alps.html), Black Pill STM32F103C8T6 MCU board. Alternatively you can use any MCU which is supported by QMK and has 28 IO pins or more (15x8 matrix and 5 LEDs): Teensy 2.0++, Blue Pill, etc. + +Make example for this keyboard (after setting up your build environment): + + make handwired/sono1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +# Modding + +## Matrix + +ASkeyboard Sono1 has 15x8 matrix. Sono2 numpad connects directly to the main matrix. + +Rows (R0-RE) and columns (R0-C7): +![Sono1 rows and columns](https://i.imgur.com/5Owazg6h.jpeg) + +## LEDs +Keyboard has 5 LEDs with common anode. Their cathodes are connected to R10–R14 resistors (you may want to replace them to adjust LED brightness for 3.3V voltage). Add 5 wire jumpers to connect them to the corresponding traces. + +![Sono1 LEDs](https://i.imgur.com/opxc2A3h.jpeg) + +## Black Pill +Suggested mount position for the Black Pill (view from the bottom side of the PCB): + +``` + R8 R9 RA RB RC RD RE L0 Vcc C7 C6 C5 C4 C3 C2 C1 C0 Vcc + * | | | * | | | | | | | | | * * * + ,------------------------------------------------------------------------, +,---|GND B8 B9 C13 RST A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B10 B11 3V3| A3 A4 3V3 +| | B7 A15 A13| +|USB| A14| +| | B12 A10 GND| +'---|GND 3V3 B7 B6 B5 B4 B3 A15 A12 A11 A10 A9 A8 B15 B14 B13 B12 | + '------------------------------------------------------------------------' A9 B3 A5 + | | | | * | | | | * * * * + GND L2 L1 L3 L4 R7 R6 R5 R4 R3 R2 R1 R0 +``` +Asterisk sign designates pins of the Black Pill that don't align properly with PCB and need to be rewired. + +![Black Pill](https://i.imgur.com/KQjTWVbh.jpeg) + +1. Desolder all ICs, capacitors and resistors except R10–R14. +1. Solder 4-pin SWD header to Black Pill. +2. Burn [STM32duino bootloader](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/bootloader_only_binaries/generic_boot20_pb12.bin) to Black Pill. +3. Compile and flash the firmware: `make handwired/sono1:default:flash` +4. Connect rows, columns and LED pads to the corresponding pins of the Black Pill. + +## Keymap +'CUR LOCK' key on Sono2 numpad has locking switch by default (Alps SKCL lock). QMK [supports mechanical locking switches](https://docs.qmk.fm/#/faq_keymap?id=mechanical-lock-switch-support) for CapsLock, NumLock and ScrollLock keycodes. diff --git a/keyboards/handwired/sono1/rules.mk b/keyboards/handwired/sono1/rules.mk new file mode 100644 index 000000000000..558598d74ff5 --- /dev/null +++ b/keyboards/handwired/sono1/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F103 + +# Bootloader selection +BOOTLOADER = stm32duino + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/handwired/sono1/sono1.c b/keyboards/handwired/sono1/sono1.c new file mode 100644 index 000000000000..9d8f79141de7 --- /dev/null +++ b/keyboards/handwired/sono1/sono1.c @@ -0,0 +1,44 @@ +/* Copyright 2020 DmNosachev + * + * 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 . + */ + +#include "sono1.h" + +void matrix_init_kb(void) { + /* LED pins setup */ + setPinOutput(LED_KANA_PIN); + setPinOutput(LED_CAPS_LOCK_PIN); + setPinOutput(LED_CTRL_XFER_PIN); + setPinOutput(LED_NUM_LOCK_PIN); + setPinOutput(LED_KB_LOCK_PIN); + + writePinHigh(LED_KANA_PIN); + writePinHigh(LED_CAPS_LOCK_PIN); + writePinHigh(LED_CTRL_XFER_PIN); + writePinHigh(LED_NUM_LOCK_PIN); + writePinHigh(LED_KB_LOCK_PIN); + + matrix_init_user(); +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + writePin(LED_NUM_LOCK_PIN, !led_state.num_lock); + writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock); + writePin(LED_CTRL_XFER_PIN, !led_state.scroll_lock); + } + return res; +} diff --git a/keyboards/handwired/sono1/sono1.h b/keyboards/handwired/sono1/sono1.h new file mode 100644 index 000000000000..c49992d15d85 --- /dev/null +++ b/keyboards/handwired/sono1/sono1.h @@ -0,0 +1,107 @@ +/* Copyright 2020 DmNosachev + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +/* +,---------------------------------------------------------------------------------------------------------, ,-----, +| < | |NumLk| | f1 | f2 | f3 | f4 | f5 | | f6 | f7 | f8 | f9 | f10 | |RlUp |RlDn | |CurLk| +|-------------------------------------------------------------------------------------------| |-----------| |-----|-----------------, +| Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = - | ^ | ^ | BS | |Home |Help | | * | / | - | + | +|-------------------------------------------------------------------------------------------| |-----------| |-----------------------| +| Tab | Q | W | E | R | T | Y | U | I | O | P | ~@ | {[ | Return | | Ins | Del | | 7 | 8 | 9 | = | +|--------------------------------------------------------------------------------| | `-----------' |-----------------------| +| Ctrl | A | S | D | F | G | H | J | K | L | +; | *: | }] | | | Up | | 4 | 5 | 6 | . | +|--------------------------------------------------------------------------------`----------' |-----------| |-----------------------| +| Shift | Z | X | C | V | B | N | M | , | . | ?/ | -- | Shift | |Left |Right| | 1 | 2 | 3 | , | +|-------------------------------------------------------------------------------------------| |-----------| |-----------------------| +|Caps | Opt |Kana | Cmd | Space1 | Space2 | Space3 | Enter | | Alt | | Down | | 0 | 000 | Enter | +`-------------------------------------------------------------------------------------------' `-----------' '-----------------------' + |Thumb1|Thumb2| + `-------------' +*/ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K10, K11, K12, K13, K97, KA0, KD6, \ + K14, K15, K16, K17, K20, K21, K22, K23, K24, K25, K26, K27, K30, K31, K74, KA1, KA2, KC0, KD0, KE0, KC1, \ + K75, K32, K33, K34, K35, K36, K37, K40, K41, K42, K43, K44, K45, K76, KA3, KA4, KD1, KE1, KC2, KD2, \ + K77, K47, K50, K51, K52, K53, K54, K55, K56, K57, K60, K80, K81, KB0, KE2, KC3, KD3, KE3, \ + K82, K61, K62, K63, K64, K65, K66, K67, K70, K71, K72, K73, K83, KB1, KB2, KC4, KD4, KE4, KC5,\ + K84, K85, K86, K87, K90, K91, K92, K93, K94, KB3, KD5, KE5, KC6, \ + K95, K96 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, XXX, K47 }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, K67 }, \ + { K70, K71, K72, K73, K74, K75, K76, K77 }, \ + { K80, K81, K82, K83, K84, K85, K86, K87 }, \ + { K90, K91, K92, K93, K94, K95, K96, K97 }, \ + { KA0, KA1, KA2, KA3, KA4, XXX, XXX, XXX }, \ + { KB0, KB1, KB2, KB3, XXX, XXX, XXX, XXX }, \ + { KC0, KC1, KC2, KC3, KC4, KC5, KC6, XXX }, \ + { KD0, KD1, KD2, KD3, KD4, KD5, KD6, XXX }, \ + { KE0, KE1, KE2, KE3, KE4, KE5, XXX, XXX } \ +} + +#define LAYOUT_debug( \ + K00, K01, K02, K03, K04, K05, K06, K07, \ + K10, K11, K12, K13, K14, K15, K16, K17, \ + K20, K21, K22, K23, K24, K25, K26, K27, \ + K30, K31, K32, K33, K34, K35, K36, K37, \ + K40, K41, K42, K43, K44, K45, K46, K47, \ + K50, K51, K52, K53, K54, K55, K56, K57, \ + K60, K61, K62, K63, K64, K65, K66, K67, \ + K70, K71, K72, K73, K74, K75, K76, K77, \ + K80, K81, K82, K83, K84, K85, K86, K87, \ + K90, K91, K92, K93, K94, K95, K96, K97, \ + KA0, KA1, KA2, KA3, KA4, KA5, KA6, KA7, \ + KB0, KB1, KB2, KB3, KB4, KB5, KB6, KB7, \ + KC0, KC1, KC2, KC3, KC4, KC5, KC6, KC7, \ + KD0, KD1, KD2, KD3, KD4, KD5, KD6, KD7, \ + KE0, KE1, KE2, KE3, KE4, KE5, KE6, KE7 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, K67 }, \ + { K70, K71, K72, K73, K74, K75, K76, K77 }, \ + { K80, K81, K82, K83, K84, K85, K86, K87 }, \ + { K90, K91, K92, K93, K94, K95, K96, K97 }, \ + { KA0, KA1, KA2, KA3, KA4, KA5, KA6, KA7 }, \ + { KB0, KB1, KB2, KB3, KB4, KB5, KB6, KB7 }, \ + { KC0, KC1, KC2, KC3, KC4, KC5, KC6, KC7 }, \ + { KD0, KD1, KD2, KD3, KD4, KD5, KD6, KD7 }, \ + { KE0, KE1, KE2, KE3, KE4, KE5, KE6, KE7 } \ +} From 71b52416d87c38f170085608203abeaafcc0735a Mon Sep 17 00:00:00 2001 From: cjcodell1 <26935146+cjcodell1@users.noreply.github.com> Date: Tue, 22 Dec 2020 13:39:29 -0500 Subject: [PATCH 012/140] [Keyboard] Add Nimrod (#11141) Co-authored-by: Ryan --- keyboards/nimrod/config.h | 54 +++++ keyboards/nimrod/info.json | 209 ++++++++++++++++++ keyboards/nimrod/keymaps/default/config.h | 21 ++ keyboards/nimrod/keymaps/default/keymap.c | 60 +++++ keyboards/nimrod/keymaps/default/readme.md | 3 + keyboards/nimrod/keymaps/default/rules.mk | 1 + .../keymaps/default_center_space/config.h | 21 ++ .../keymaps/default_center_space/keymap.c | 68 ++++++ .../keymaps/default_center_space/readme.md | 3 + .../keymaps/default_center_space/rules.mk | 1 + .../keymaps/default_left_space/config.h | 21 ++ .../keymaps/default_left_space/keymap.c | 68 ++++++ .../keymaps/default_left_space/readme.md | 3 + .../keymaps/default_left_space/rules.mk | 1 + .../keymaps/default_right_space/config.h | 21 ++ .../keymaps/default_right_space/keymap.c | 68 ++++++ .../keymaps/default_right_space/readme.md | 3 + .../keymaps/default_right_space/rules.mk | 1 + .../keymaps/default_split_space/config.h | 21 ++ .../keymaps/default_split_space/keymap.c | 80 +++++++ .../keymaps/default_split_space/readme.md | 3 + .../keymaps/default_split_space/rules.mk | 1 + keyboards/nimrod/nimrod.c | 16 ++ keyboards/nimrod/nimrod.h | 85 +++++++ keyboards/nimrod/readme.md | 19 ++ keyboards/nimrod/rules.mk | 24 ++ 26 files changed, 876 insertions(+) create mode 100644 keyboards/nimrod/config.h create mode 100644 keyboards/nimrod/info.json create mode 100644 keyboards/nimrod/keymaps/default/config.h create mode 100644 keyboards/nimrod/keymaps/default/keymap.c create mode 100644 keyboards/nimrod/keymaps/default/readme.md create mode 100644 keyboards/nimrod/keymaps/default/rules.mk create mode 100644 keyboards/nimrod/keymaps/default_center_space/config.h create mode 100644 keyboards/nimrod/keymaps/default_center_space/keymap.c create mode 100644 keyboards/nimrod/keymaps/default_center_space/readme.md create mode 100644 keyboards/nimrod/keymaps/default_center_space/rules.mk create mode 100644 keyboards/nimrod/keymaps/default_left_space/config.h create mode 100644 keyboards/nimrod/keymaps/default_left_space/keymap.c create mode 100644 keyboards/nimrod/keymaps/default_left_space/readme.md create mode 100644 keyboards/nimrod/keymaps/default_left_space/rules.mk create mode 100644 keyboards/nimrod/keymaps/default_right_space/config.h create mode 100644 keyboards/nimrod/keymaps/default_right_space/keymap.c create mode 100644 keyboards/nimrod/keymaps/default_right_space/readme.md create mode 100644 keyboards/nimrod/keymaps/default_right_space/rules.mk create mode 100644 keyboards/nimrod/keymaps/default_split_space/config.h create mode 100644 keyboards/nimrod/keymaps/default_split_space/keymap.c create mode 100644 keyboards/nimrod/keymaps/default_split_space/readme.md create mode 100644 keyboards/nimrod/keymaps/default_split_space/rules.mk create mode 100644 keyboards/nimrod/nimrod.c create mode 100644 keyboards/nimrod/nimrod.h create mode 100644 keyboards/nimrod/readme.md create mode 100644 keyboards/nimrod/rules.mk diff --git a/keyboards/nimrod/config.h b/keyboards/nimrod/config.h new file mode 100644 index 000000000000..4faa3f4e2881 --- /dev/null +++ b/keyboards/nimrod/config.h @@ -0,0 +1,54 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6274 +#define PRODUCT_ID 0x720D +#define DEVICE_VER 0x0001 +#define MANUFACTURER breadtamer +#define PRODUCT nimrod + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 10 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { F5, B6, D7, C6 } +#define MATRIX_COL_PINS { D1, F4, B5, B4, E6, F6, F7, B1, B3, B2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/nimrod/info.json b/keyboards/nimrod/info.json new file mode 100644 index 000000000000..4df94c284276 --- /dev/null +++ b/keyboards/nimrod/info.json @@ -0,0 +1,209 @@ +{ + "keyboard_name": "Nimrod", + "url": "http://www.keyboard-layout-editor.com/#/gists/5a6b4ee1ca9738c4ed90fe95ef35fdf6", + "maintainer": "Breadtamer", + "width": 12.5, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x10": { + "layout": [ + { "x": 0, "y": 0, "w": 1.25 }, + { "x": 1.25, "y": 0, "w": 1.25 }, + { "x": 2.5, "y": 0, "w": 1.25 }, + { "x": 3.75, "y": 0, "w": 1.25 }, + { "x": 5, "y": 0, "w": 1.25 }, + { "x": 6.25, "y": 0, "w": 1.25 }, + { "x": 7.5, "y": 0, "w": 1.25 }, + { "x": 8.75, "y": 0, "w": 1.25 }, + { "x": 10, "y": 0, "w": 1.25 }, + { "x": 11.25, "y": 0, "w": 1.25 }, + { "x": 0, "y": 1, "w": 1.25 }, + { "x": 1.25, "y": 1, "w": 1.25 }, + { "x": 2.5, "y": 1, "w": 1.25 }, + { "x": 3.75, "y": 1, "w": 1.25 }, + { "x": 5, "y": 1, "w": 1.25 }, + { "x": 6.25, "y": 1, "w": 1.25 }, + { "x": 7.5, "y": 1, "w": 1.25 }, + { "x": 8.75, "y": 1, "w": 1.25 }, + { "x": 10, "y": 1, "w": 1.25 }, + { "x": 11.25, "y": 1, "w": 1.25 }, + { "x": 0, "y": 2, "w": 1.25 }, + { "x": 1.25, "y": 2, "w": 1.25 }, + { "x": 2.5, "y": 2, "w": 1.25 }, + { "x": 3.75, "y": 2, "w": 1.25 }, + { "x": 5, "y": 2, "w": 1.25 }, + { "x": 6.25, "y": 2, "w": 1.25 }, + { "x": 7.5, "y": 2, "w": 1.25 }, + { "x": 8.75, "y": 2, "w": 1.25 }, + { "x": 10, "y": 2, "w": 1.25 }, + { "x": 11.25, "y": 2, "w": 1.25 }, + { "x": 0, "y": 3, "w": 1.25 }, + { "x": 1.25, "y": 3, "w": 1.25 }, + { "x": 2.5, "y": 3, "w": 1.25 }, + { "x": 3.75, "y": 3, "w": 1.25 }, + { "x": 5, "y": 3, "w": 1.25 }, + { "x": 6.25, "y": 3, "w": 1.25 }, + { "x": 7.5, "y": 3, "w": 1.25 }, + { "x": 8.75, "y": 3, "w": 1.25 }, + { "x": 10, "y": 3, "w": 1.25 }, + { "x": 11.25, "y": 3, "w": 1.25 } + ] + }, + "LAYOUT_left_space": { + "layout": [ + { "x": 0, "y": 0, "w": 1.25 }, + { "x": 1.25, "y": 0, "w": 1.25 }, + { "x": 2.5, "y": 0, "w": 1.25 }, + { "x": 3.75, "y": 0, "w": 1.25 }, + { "x": 5, "y": 0, "w": 1.25 }, + { "x": 6.25, "y": 0, "w": 1.25 }, + { "x": 7.5, "y": 0, "w": 1.25 }, + { "x": 8.75, "y": 0, "w": 1.25 }, + { "x": 10, "y": 0, "w": 1.25 }, + { "x": 11.25, "y": 0, "w": 1.25 }, + { "x": 0, "y": 1, "w": 1.25 }, + { "x": 1.25, "y": 1, "w": 1.25 }, + { "x": 2.5, "y": 1, "w": 1.25 }, + { "x": 3.75, "y": 1, "w": 1.25 }, + { "x": 5, "y": 1, "w": 1.25 }, + { "x": 6.25, "y": 1, "w": 1.25 }, + { "x": 7.5, "y": 1, "w": 1.25 }, + { "x": 8.75, "y": 1, "w": 1.25 }, + { "x": 10, "y": 1, "w": 1.25 }, + { "x": 11.25, "y": 1, "w": 1.25 }, + { "x": 0, "y": 2, "w": 1.25 }, + { "x": 1.25, "y": 2, "w": 1.25 }, + { "x": 2.5, "y": 2, "w": 1.25 }, + { "x": 3.75, "y": 2, "w": 1.25 }, + { "x": 5, "y": 2, "w": 1.25 }, + { "x": 6.25, "y": 2, "w": 1.25 }, + { "x": 7.5, "y": 2, "w": 1.25 }, + { "x": 8.75, "y": 2, "w": 1.25 }, + { "x": 10, "y": 2, "w": 1.25 }, + { "x": 11.25, "y": 2, "w": 1.25 }, + { "x": 0, "y": 3, "w": 6.25 }, + { "x": 6.25, "y": 3, "w": 1.25 }, + { "x": 7.5, "y": 3, "w": 1.25 }, + { "x": 8.75, "y": 3, "w": 1.25 }, + { "x": 10, "y": 3, "w": 1.25 }, + { "x": 11.25, "y": 3, "w": 1.25 } + ] + }, + "LAYOUT_center_space": { + "layout": [ + { "x": 0, "y": 0, "w": 1.25 }, + { "x": 1.25, "y": 0, "w": 1.25 }, + { "x": 2.5, "y": 0, "w": 1.25 }, + { "x": 3.75, "y": 0, "w": 1.25 }, + { "x": 5, "y": 0, "w": 1.25 }, + { "x": 6.25, "y": 0, "w": 1.25 }, + { "x": 7.5, "y": 0, "w": 1.25 }, + { "x": 8.75, "y": 0, "w": 1.25 }, + { "x": 10, "y": 0, "w": 1.25 }, + { "x": 11.25, "y": 0, "w": 1.25 }, + { "x": 0, "y": 1, "w": 1.25 }, + { "x": 1.25, "y": 1, "w": 1.25 }, + { "x": 2.5, "y": 1, "w": 1.25 }, + { "x": 3.75, "y": 1, "w": 1.25 }, + { "x": 5, "y": 1, "w": 1.25 }, + { "x": 6.25, "y": 1, "w": 1.25 }, + { "x": 7.5, "y": 1, "w": 1.25 }, + { "x": 8.75, "y": 1, "w": 1.25 }, + { "x": 10, "y": 1, "w": 1.25 }, + { "x": 11.25, "y": 1, "w": 1.25 }, + { "x": 0, "y": 2, "w": 1.25 }, + { "x": 1.25, "y": 2, "w": 1.25 }, + { "x": 2.5, "y": 2, "w": 1.25 }, + { "x": 3.75, "y": 2, "w": 1.25 }, + { "x": 5, "y": 2, "w": 1.25 }, + { "x": 6.25, "y": 2, "w": 1.25 }, + { "x": 7.5, "y": 2, "w": 1.25 }, + { "x": 8.75, "y": 2, "w": 1.25 }, + { "x": 10, "y": 2, "w": 1.25 }, + { "x": 11.25, "y": 2, "w": 1.25 }, + { "x": 0, "y": 3, "w": 1.25 }, + { "x": 1.25, "y": 3, "w": 1.25 }, + { "x": 2.5, "y": 3, "w": 6.25 }, + { "x": 8.75, "y": 3, "w": 1.25 }, + { "x": 10, "y": 3, "w": 1.25 }, + { "x": 11.25, "y": 3, "w": 1.25 } + ] + }, + "LAYOUT_right_space": { + "layout": [ + { "x": 0, "y": 0, "w": 1.25 }, + { "x": 1.25, "y": 0, "w": 1.25 }, + { "x": 2.5, "y": 0, "w": 1.25 }, + { "x": 3.75, "y": 0, "w": 1.25 }, + { "x": 5, "y": 0, "w": 1.25 }, + { "x": 6.25, "y": 0, "w": 1.25 }, + { "x": 7.5, "y": 0, "w": 1.25 }, + { "x": 8.75, "y": 0, "w": 1.25 }, + { "x": 10, "y": 0, "w": 1.25 }, + { "x": 11.25, "y": 0, "w": 1.25 }, + { "x": 0, "y": 1, "w": 1.25 }, + { "x": 1.25, "y": 1, "w": 1.25 }, + { "x": 2.5, "y": 1, "w": 1.25 }, + { "x": 3.75, "y": 1, "w": 1.25 }, + { "x": 5, "y": 1, "w": 1.25 }, + { "x": 6.25, "y": 1, "w": 1.25 }, + { "x": 7.5, "y": 1, "w": 1.25 }, + { "x": 8.75, "y": 1, "w": 1.25 }, + { "x": 10, "y": 1, "w": 1.25 }, + { "x": 11.25, "y": 1, "w": 1.25 }, + { "x": 0, "y": 2, "w": 1.25 }, + { "x": 1.25, "y": 2, "w": 1.25 }, + { "x": 2.5, "y": 2, "w": 1.25 }, + { "x": 3.75, "y": 2, "w": 1.25 }, + { "x": 5, "y": 2, "w": 1.25 }, + { "x": 6.25, "y": 2, "w": 1.25 }, + { "x": 7.5, "y": 2, "w": 1.25 }, + { "x": 8.75, "y": 2, "w": 1.25 }, + { "x": 10, "y": 2, "w": 1.25 }, + { "x": 11.25, "y": 2, "w": 1.25 }, + { "x": 0, "y": 3, "w": 1.25 }, + { "x": 1.25, "y": 3, "w": 1.25 }, + { "x": 2.5, "y": 3, "w": 1.25 }, + { "x": 3.75, "y": 3, "w": 1.25 }, + { "x": 5, "y": 3, "w": 1.25 }, + { "x": 6.25, "y": 3, "w": 6.25 } + ] + }, + "LAYOUT_split_space": { + "layout": [ + { "x": 0, "y": 0, "w": 1.25 }, + { "x": 1.25, "y": 0, "w": 1.25 }, + { "x": 2.5, "y": 0, "w": 1.25 }, + { "x": 3.75, "y": 0, "w": 1.25 }, + { "x": 5, "y": 0, "w": 1.25 }, + { "x": 6.25, "y": 0, "w": 1.25 }, + { "x": 7.5, "y": 0, "w": 1.25 }, + { "x": 8.75, "y": 0, "w": 1.25 }, + { "x": 10, "y": 0, "w": 1.25 }, + { "x": 11.25, "y": 0, "w": 1.25 }, + { "x": 0, "y": 1, "w": 1.25 }, + { "x": 1.25, "y": 1, "w": 1.25 }, + { "x": 2.5, "y": 1, "w": 1.25 }, + { "x": 3.75, "y": 1, "w": 1.25 }, + { "x": 5, "y": 1, "w": 1.25 }, + { "x": 6.25, "y": 1, "w": 1.25 }, + { "x": 7.5, "y": 1, "w": 1.25 }, + { "x": 8.75, "y": 1, "w": 1.25 }, + { "x": 10, "y": 1, "w": 1.25 }, + { "x": 11.25, "y": 1, "w": 1.25 }, + { "x": 0, "y": 2, "w": 1.25 }, + { "x": 1.25, "y": 2, "w": 1.25 }, + { "x": 2.5, "y": 2, "w": 1.25 }, + { "x": 3.75, "y": 2, "w": 1.25 }, + { "x": 5, "y": 2, "w": 1.25 }, + { "x": 6.25, "y": 2, "w": 1.25 }, + { "x": 7.5, "y": 2, "w": 1.25 }, + { "x": 8.75, "y": 2, "w": 1.25 }, + { "x": 10, "y": 2, "w": 1.25 }, + { "x": 11.25, "y": 2, "w": 1.25 }, + { "x": 0, "y": 3, "w": 6.25 }, + { "x": 6.25, "y": 3, "w": 6.25 } + ] + } + } +} diff --git a/keyboards/nimrod/keymaps/default/config.h b/keyboards/nimrod/keymaps/default/config.h new file mode 100644 index 000000000000..9684b5caedf3 --- /dev/null +++ b/keyboards/nimrod/keymaps/default/config.h @@ -0,0 +1,21 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#pragma once + +#ifdef COMBO_ENABLE +# define COMBO_COUNT 3 +# define COMBO_TERM 150 +#endif diff --git a/keyboards/nimrod/keymaps/default/keymap.c b/keyboards/nimrod/keymaps/default/keymap.c new file mode 100644 index 000000000000..3a113bbc8cd0 --- /dev/null +++ b/keyboards/nimrod/keymaps/default/keymap.c @@ -0,0 +1,60 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _NUM_SYM +}; + +enum combo_events { + COMBO_TAB, + COMBO_ESC, + COMBO_DEL, +}; + +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_ortho_4x10( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_SF, KC_G, KC_H, KC_SJ, KC_K, KC_L, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, MO(_NUM_SYM), KC_SPC, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT + ), + + [_NUM_SYM] = LAYOUT_ortho_4x10( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, + KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE, KC_BSLASH, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; + +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [COMBO_TAB] = COMBO(combo_tab,KC_TAB), + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), + [COMBO_DEL] = COMBO(combo_del,KC_DEL), + +}; +#endif diff --git a/keyboards/nimrod/keymaps/default/readme.md b/keyboards/nimrod/keymaps/default/readme.md new file mode 100644 index 000000000000..b93c8f8469eb --- /dev/null +++ b/keyboards/nimrod/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default Nimrod Layout + +This is the recommended full grid layout. diff --git a/keyboards/nimrod/keymaps/default/rules.mk b/keyboards/nimrod/keymaps/default/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/nimrod/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/nimrod/keymaps/default_center_space/config.h b/keyboards/nimrod/keymaps/default_center_space/config.h new file mode 100644 index 000000000000..9684b5caedf3 --- /dev/null +++ b/keyboards/nimrod/keymaps/default_center_space/config.h @@ -0,0 +1,21 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#pragma once + +#ifdef COMBO_ENABLE +# define COMBO_COUNT 3 +# define COMBO_TERM 150 +#endif diff --git a/keyboards/nimrod/keymaps/default_center_space/keymap.c b/keyboards/nimrod/keymaps/default_center_space/keymap.c new file mode 100644 index 000000000000..0ebb2bb9e7ec --- /dev/null +++ b/keyboards/nimrod/keymaps/default_center_space/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _NUM_SYM, + _NAV +}; + +enum combo_events { + COMBO_TAB, + COMBO_ESC, + COMBO_DEL, +}; + +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_center_space( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_SF, KC_G, KC_H, KC_SJ, KC_K, KC_L, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCTL, KC_LALT, LT(_NAV, KC_SPC), MO(_NUM_SYM), KC_BSPC, KC_RGUI + ), + + [_NUM_SYM] = LAYOUT_center_space( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, + KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE, KC_BSLASH, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_NAV] = LAYOUT_center_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; + +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [COMBO_TAB] = COMBO(combo_tab,KC_TAB), + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), + [COMBO_DEL] = COMBO(combo_del,KC_DEL), + +}; +#endif diff --git a/keyboards/nimrod/keymaps/default_center_space/readme.md b/keyboards/nimrod/keymaps/default_center_space/readme.md new file mode 100644 index 000000000000..4912b44c4087 --- /dev/null +++ b/keyboards/nimrod/keymaps/default_center_space/readme.md @@ -0,0 +1,3 @@ +# Center Space Nimrod Layout + +This is the layout for a center space bottom row. diff --git a/keyboards/nimrod/keymaps/default_center_space/rules.mk b/keyboards/nimrod/keymaps/default_center_space/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/nimrod/keymaps/default_center_space/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/nimrod/keymaps/default_left_space/config.h b/keyboards/nimrod/keymaps/default_left_space/config.h new file mode 100644 index 000000000000..9684b5caedf3 --- /dev/null +++ b/keyboards/nimrod/keymaps/default_left_space/config.h @@ -0,0 +1,21 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#pragma once + +#ifdef COMBO_ENABLE +# define COMBO_COUNT 3 +# define COMBO_TERM 150 +#endif diff --git a/keyboards/nimrod/keymaps/default_left_space/keymap.c b/keyboards/nimrod/keymaps/default_left_space/keymap.c new file mode 100644 index 000000000000..c03130b811b1 --- /dev/null +++ b/keyboards/nimrod/keymaps/default_left_space/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _NUM_SYM, + _NAV +}; + +enum combo_events { + COMBO_TAB, + COMBO_ESC, + COMBO_DEL, +}; + +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_left_space( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_SF, KC_G, KC_H, KC_SJ, KC_K, KC_L, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + LT(_NAV, KC_SPC), MO(_NUM_SYM), KC_BSPC, KC_RGUI, KC_RALT, KC_RCTL + ), + + [_NUM_SYM] = LAYOUT_left_space( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, + KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE, KC_BSLASH, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_NAV] = LAYOUT_left_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; + +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [COMBO_TAB] = COMBO(combo_tab,KC_TAB), + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), + [COMBO_DEL] = COMBO(combo_del,KC_DEL), + +}; +#endif diff --git a/keyboards/nimrod/keymaps/default_left_space/readme.md b/keyboards/nimrod/keymaps/default_left_space/readme.md new file mode 100644 index 000000000000..e331b9c297a2 --- /dev/null +++ b/keyboards/nimrod/keymaps/default_left_space/readme.md @@ -0,0 +1,3 @@ +# Left Space Nimrod Layout + +This is the layout for a left space bottom row. diff --git a/keyboards/nimrod/keymaps/default_left_space/rules.mk b/keyboards/nimrod/keymaps/default_left_space/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/nimrod/keymaps/default_left_space/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/nimrod/keymaps/default_right_space/config.h b/keyboards/nimrod/keymaps/default_right_space/config.h new file mode 100644 index 000000000000..9684b5caedf3 --- /dev/null +++ b/keyboards/nimrod/keymaps/default_right_space/config.h @@ -0,0 +1,21 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#pragma once + +#ifdef COMBO_ENABLE +# define COMBO_COUNT 3 +# define COMBO_TERM 150 +#endif diff --git a/keyboards/nimrod/keymaps/default_right_space/keymap.c b/keyboards/nimrod/keymaps/default_right_space/keymap.c new file mode 100644 index 000000000000..b6d108ed079f --- /dev/null +++ b/keyboards/nimrod/keymaps/default_right_space/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _NUM_SYM, + _NAV +}; + +enum combo_events { + COMBO_TAB, + COMBO_ESC, + COMBO_DEL, +}; + +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_right_space( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_SF, KC_G, KC_H, KC_SJ, KC_K, KC_L, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, MO(_NUM_SYM), LT(_NAV, KC_SPC) + ), + + [_NUM_SYM] = LAYOUT_right_space( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, + KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE, KC_BSLASH, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_NAV] = LAYOUT_right_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; + +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [COMBO_TAB] = COMBO(combo_tab,KC_TAB), + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), + [COMBO_DEL] = COMBO(combo_del,KC_DEL), + +}; +#endif diff --git a/keyboards/nimrod/keymaps/default_right_space/readme.md b/keyboards/nimrod/keymaps/default_right_space/readme.md new file mode 100644 index 000000000000..65e6ec80b8f4 --- /dev/null +++ b/keyboards/nimrod/keymaps/default_right_space/readme.md @@ -0,0 +1,3 @@ +# Right Space Nimrod Layout + +This is the layout for a right space bottom row. diff --git a/keyboards/nimrod/keymaps/default_right_space/rules.mk b/keyboards/nimrod/keymaps/default_right_space/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/nimrod/keymaps/default_right_space/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/nimrod/keymaps/default_split_space/config.h b/keyboards/nimrod/keymaps/default_split_space/config.h new file mode 100644 index 000000000000..ad0cd6ffdd6f --- /dev/null +++ b/keyboards/nimrod/keymaps/default_split_space/config.h @@ -0,0 +1,21 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#pragma once + +#ifdef COMBO_ENABLE +# define COMBO_COUNT 5 +# define COMBO_TERM 150 +#endif diff --git a/keyboards/nimrod/keymaps/default_split_space/keymap.c b/keyboards/nimrod/keymaps/default_split_space/keymap.c new file mode 100644 index 000000000000..8b4fe2add04a --- /dev/null +++ b/keyboards/nimrod/keymaps/default_split_space/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _NUM_SYM, + _NAV +}; + +enum combo_events { + COMBO_BSPC, + COMBO_NUMBAK, + COMBO_TAB, + COMBO_ESC, + COMBO_DEL, +}; + +#define KC_CA LCTL_T(KC_A) +#define KC_AS LALT_T(KC_S) +#define KC_GD LGUI_T(KC_D) +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) +#define KC_GK RGUI_T(KC_K) +#define KC_AL RALT_T(KC_L) +#define KC_CENT RCTL_T(KC_ENT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_space( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_CA, KC_AS, KC_GD, KC_SF, KC_G, KC_H, KC_SJ, KC_GK, KC_AL, KC_CENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + LT(_NUM_SYM, KC_BSPC), LT(_NAV, KC_SPC) + ), + + [_NUM_SYM] = LAYOUT_split_space( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, + KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE, KC_BSLASH, + KC_TRNS, KC_TRNS + ), + + [_NAV] = LAYOUT_split_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + +}; + +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END}; +const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END}; +const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), + [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), + [COMBO_TAB] = COMBO(combo_tab,KC_TAB), + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), + [COMBO_DEL] = COMBO(combo_del,KC_DEL), + +}; +#endif diff --git a/keyboards/nimrod/keymaps/default_split_space/readme.md b/keyboards/nimrod/keymaps/default_split_space/readme.md new file mode 100644 index 000000000000..aab94d2f036d --- /dev/null +++ b/keyboards/nimrod/keymaps/default_split_space/readme.md @@ -0,0 +1,3 @@ +# Split Space Nimrod Layout + +This is the layout for a split space bottom row. diff --git a/keyboards/nimrod/keymaps/default_split_space/rules.mk b/keyboards/nimrod/keymaps/default_split_space/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/nimrod/keymaps/default_split_space/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/nimrod/nimrod.c b/keyboards/nimrod/nimrod.c new file mode 100644 index 000000000000..bed03197f80c --- /dev/null +++ b/keyboards/nimrod/nimrod.c @@ -0,0 +1,16 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#include "nimrod.h" diff --git a/keyboards/nimrod/nimrod.h b/keyboards/nimrod/nimrod.h new file mode 100644 index 000000000000..253154905c11 --- /dev/null +++ b/keyboards/nimrod/nimrod.h @@ -0,0 +1,85 @@ +/* Copyright 2020 cjcodell1 + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_ortho_4x10( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39 } \ +} + +#define LAYOUT_left_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K32, K35, K36, K37, K38, K39 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \ + { XXX, XXX, K32, XXX, XXX, K35, K36, K37, K38, K39 } \ +} + +#define LAYOUT_center_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K30, K31, K34, K37, K38, K39 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \ + { K30, K31, XXX, XXX, K34, XXX, XXX, K37, K38, K39 } \ +} + +#define LAYOUT_right_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K30, K31, K32, K33, K34, K37 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \ + { K30, K31, K32, K33, K34, XXX, XXX, K37, XXX, XXX } \ +} + +#define LAYOUT_split_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K32, K37 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \ + { XXX, XXX, K32, XXX, XXX, XXX, XXX, K37, XXX, XXX } \ +} diff --git a/keyboards/nimrod/readme.md b/keyboards/nimrod/readme.md new file mode 100644 index 000000000000..3fb5724acdd3 --- /dev/null +++ b/keyboards/nimrod/readme.md @@ -0,0 +1,19 @@ +# Nimrod + +![Nimrod](https://i.imgur.com/OtaetJgl.jpg) + +The Nimrod is a 4x10 ortholinear keyboard designed by cjcodell1. + +* Keyboard Maintainer: [Breadtamer](https://github.com/cjcodell1) +* Hardware Supported: [Nimrod PCB](https://github.com/cjcodell1/nimrod) +* Hardware Availability: [Top and Bottom Plates](https://github.com/cjcodell1/nimrod) + +Make example for this keyboard (after setting up your build environment): + + make nimrod:default + +Flashing example for this keyboard: + + make nimrod:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/nimrod/rules.mk b/keyboards/nimrod/rules.mk new file mode 100644 index 000000000000..05eec6a66dd8 --- /dev/null +++ b/keyboards/nimrod/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = ortho_4x10 From 4eebefada7618c07e881b45f79570a5f807a760c Mon Sep 17 00:00:00 2001 From: Nathan13888 <29968201+Nathan13888@users.noreply.github.com> Date: Tue, 22 Dec 2020 14:27:27 -0500 Subject: [PATCH 013/140] [Keyboard] YMD75 rev 3: fix BACKLIGHT_PIN (#11172) * YMD75 rev 3: fix BACKLIGHT_PIN Update backlight LED pin used by QMK to control the per-key backlight for YMD75 rev 3 * YMD75 rev 3: fix BACKLIGHT_PIN - fix comments * YMD75: move BACKLIGHT_PIN definitions to the respective versions Signed-off-by: Nathan13888 <29968201+Nathan13888@users.noreply.github.com> --- keyboards/ymd75/config.h | 1 - keyboards/ymd75/rev1/config.h | 1 + keyboards/ymd75/rev2/config.h | 1 + keyboards/ymd75/rev3/config.h | 1 + 4 files changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/ymd75/config.h b/keyboards/ymd75/config.h index 69102014fd00..cf3d3fd8dfb7 100644 --- a/keyboards/ymd75/config.h +++ b/keyboards/ymd75/config.h @@ -27,7 +27,6 @@ along with this program. If not, see . #define MANUFACTURER YMDK #define PRODUCT YMD75 / MT84 -#define BACKLIGHT_PIN D4 #define BACKLIGHT_LEVELS 12 #define RGB_DI_PIN E2 diff --git a/keyboards/ymd75/rev1/config.h b/keyboards/ymd75/rev1/config.h index d9796d9d72b2..bd169471af1d 100644 --- a/keyboards/ymd75/rev1/config.h +++ b/keyboards/ymd75/rev1/config.h @@ -24,5 +24,6 @@ along with this program. If not, see . #define MATRIX_COLS 15 #define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7 } #define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2, D7 } +#define BACKLIGHT_PIN D4 #define DIODE_DIRECTION COL2ROW #define DEVICE_VER 0x0100 diff --git a/keyboards/ymd75/rev2/config.h b/keyboards/ymd75/rev2/config.h index a9578d720d20..41a75e62714e 100644 --- a/keyboards/ymd75/rev2/config.h +++ b/keyboards/ymd75/rev2/config.h @@ -5,5 +5,6 @@ #define MATRIX_COLS 15 #define MATRIX_ROW_PINS { B7, B6, B5, B4, B3, B0 } #define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2, D7 } +#define BACKLIGHT_PIN D4 #define DIODE_DIRECTION COL2ROW #define DEVICE_VER 0x0200 diff --git a/keyboards/ymd75/rev3/config.h b/keyboards/ymd75/rev3/config.h index 6118b96b8b26..cbed2e00eeeb 100644 --- a/keyboards/ymd75/rev3/config.h +++ b/keyboards/ymd75/rev3/config.h @@ -4,6 +4,7 @@ #define MATRIX_COLS 9 #define MATRIX_ROW_PINS { B7, B3, B2, B1, B0, E6, F0, F1, F4, F5, F6, F7 } #define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4 } +#define BACKLIGHT_PIN B6 // change the backlight pin that has since changed in Rev 3 #define DIODE_DIRECTION ROW2COL #define DEVICE_VER 0x0300 #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 4 From ce7d3855f479c57cc050993df5ea7d1479e0cdb9 Mon Sep 17 00:00:00 2001 From: SpacebarRacecar <42380065+SpacebarRacecar@users.noreply.github.com> Date: Tue, 22 Dec 2020 20:28:34 +0100 Subject: [PATCH 014/140] Update to personal keymaps (#11171) --- .../prime_o/keymaps/spacebarracecar/keymap.c | 328 +++--------------- 1 file changed, 40 insertions(+), 288 deletions(-) diff --git a/keyboards/primekb/prime_o/keymaps/spacebarracecar/keymap.c b/keyboards/primekb/prime_o/keymaps/spacebarracecar/keymap.c index 244b165f1666..9014fbc5b6cd 100644 --- a/keyboards/primekb/prime_o/keymaps/spacebarracecar/keymap.c +++ b/keyboards/primekb/prime_o/keymaps/spacebarracecar/keymap.c @@ -4,8 +4,6 @@ #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define LEFTNUM - enum layers { _BASE, _RAISE, @@ -15,41 +13,39 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -#ifdef LEFTNUM - /* Base ,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|- |* |/ |Numlock |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |\ | +|- |* |/ |Backspace|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |\ | |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|+ |7 |8 |9 |Tab |Q |W |E |R |T |Z |U |I |O |P |Backspace| -|---------+---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|= |4 |5 |6 |Esc/Nav |A |S |D |F |G |H |J |K |L |; |' | +| |7 |8 |9 |Tab |Q |W |E |R |T |Z |U |I |O |P |Backspace| +|+ |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| +| |4 |5 |6 |Esc/Nav |A |S |D |F |G |H |J |K |L |; |' | |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Backspace|1 |2 |3 |(/LShift |Y |X |C |V |B |N |M |, |. |/ |)/RShift | -|---------+---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Enter |. |0 |00 |RCtrl | |Alt |Win |Lower |Space |Enter |Raise |Win |AltGr | |LCtrl | +| |1 |2 |3 |(/LShift |Y |X |C |V |B |N |M |, |. |/ |)/RShift | +|Enter |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| +| |. |0 |00 |RCtrl | |Alt |Win |Lower |Space |Enter |Raise |Win |AltGr | |LCtrl | `---------------------------------------------------------------------------------------------------------------------------------------------------------------' */ [_BASE] = LAYOUT( - KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, CU_GRV, DE_1, DE_2, CU_3, DE_4, DE_5, CU_6, CU_7, CU_8, CU_9, CU_0, CU_BSLS, + KC_PMNS, KC_PAST, KC_PSLS, KC_BSPC, CU_GRV, DE_1, DE_2, CU_3, DE_4, DE_5, CU_6, CU_7, CU_8, CU_9, CU_0, CU_BSLS, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, CU_Z, DE_U, DE_I, DE_O, DE_P, KC_BSPC, - CU_EQL, KC_P4, KC_P5, KC_P6, CU_NAV, DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, CU_SCLN, CU_QUOT, - KC_BSPC, KC_P1, KC_P2, KC_P3, CU_LSFT, CU_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, CU_COMM, CU_DOT, CU_SLSH, CU_RSFT, + KC_PPLS, KC_P4, KC_P5, KC_P6, CU_NAV, DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, CU_SCLN, CU_QUOT, + KC_PENT, KC_P1, KC_P2, KC_P3, CU_LSFT, CU_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, CU_COMM, CU_DOT, CU_SLSH, CU_RSFT, KC_PENT, KC_PDOT, KC_P0, KC_P00, KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, LOWER, KC_SPC, CTLENT, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL ), /* Lower ,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|- |* |/ |Numlock |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | | +|- |* |/ |Backspace|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | | |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|+ |7 |8 |9 |~ |! |" |# |$ |% |^ |& |* |( |) | | -|---------+---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|= |4 |5 |6 | |@ |Strg+X |Strg+C |Strg+V | | |_ |+ |{ |} || | +| |7 |8 |9 |~ |! |" |# |$ |% |^ |& |* |( |) | | +|+ |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| +| |4 |5 |6 | |@ |Strg+X |Strg+C |Strg+V | | |_ |+ |{ |} || | |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Backspace|1 |2 |3 | |? | | | | | | | | | | | -|---------+---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Enter |. |0 |00 | | | | | | | | | | | | | +| |1 |2 |3 | |? | | | | | | | | | | | +|Enter |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| +| |. |0 |00 | | | | | | | | | | | | | `---------------------------------------------------------------------------------------------------------------------------------------------------------------' */ @@ -63,15 +59,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Raise ,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|- |* |/ |Numlock |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | | +|- |* |/ |Backspace|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | | |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|+ |7 |8 |9 |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | | -|---------+---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|= |4 |5 |6 | |F1 |F2 |F3 |F4 |F5 |F6 |- |= |[ |] |\ | +| |7 |8 |9 |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | | +|+ |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| +| |4 |5 |6 | |F1 |F2 |F3 |F4 |F5 |F6 |- |= |[ |] |\ | |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Backspace|1 |2 |3 | |F7 |F8 |F9 |F10 |F11 |F12 | | | | | | -|---------+---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Enter |. |0 |00 | | | | | | | | | | | | | +| |1 |2 |3 | |F7 |F8 |F9 |F10 |F11 |F12 | | | | | | +|Enter |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| +| |. |0 |00 | | | | | | | | | | | | | `---------------------------------------------------------------------------------------------------------------------------------------------------------------' */ @@ -85,15 +81,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Deadkey ,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|- |* |/ |Numlock | | | | | | | | | | | | | +|- |* |/ |Backspace| | | | | | | | | | | | | |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|+ |7 |8 |9 | | | | | | | |Ü | |Ö | | | -|---------+---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|= |4 |5 |6 | |Ä |ß | | | | | | | | | | +| |7 |8 |9 | | | | | | | |Ü | |Ö | | | +|+ |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| +| |4 |5 |6 | |Ä |ß | | | | | | | | | | |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Backspace|1 |2 |3 | | | | | | | | | | | | | -|---------+---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Enter |. |0 |00 | | | | | |" |" | | | | | | +| |1 |2 |3 | | | | | | | | | | | | | +|Enter |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| +| |. |0 |00 | | | | | |" |" | | | | | | `---------------------------------------------------------------------------------------------------------------------------------------------------------------' */ @@ -109,20 +105,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,---------------------------------------------------------------------------------------------------------------------------------------------------------------. |- |* |/ |Numlock |Escape | | | | | | | | | | | | |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|+ |7 |8 |9 |ALT F4 |PageDown |Up |PageUp |Home | | | |Win+Up | | |Del | -|---------+---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|= |4 |5 |6 | |Left |Down |Right |End | | |Win+Left |Win+Down |Win+Right| |Enter | +| |7 |8 |9 |ALT F4 |PageDown |Up |PageUp |Home | | | |Win+Up | | |Del | +|= |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| +| |4 |5 |6 | |Left |Down |Right |End | | |Win+Left |Win+Down |Win+Right| |Enter | |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Backspace|1 |2 |3 | |Prev |Pause |Next |LowerVol |RaiseVol |Mute | | | | | | -|---------+---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Enter |. |0 |00 |RESET |ESCT | | | | | | | | | |Game | +| |1 |2 |3 | |Prev |Pause |Next |LowerVol |RaiseVol |Mute | | | | | | +|Enter |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| +| |. |0 |00 |RESET |ESCT | | | | | | | | | |Game | `---------------------------------------------------------------------------------------------------------------------------------------------------------------' */ [_NAV] = LAYOUT( - _______, _______, _______, _______, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL, - _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, GUIL, GUID, GUIR, EMOJI, KC_ENT, + _______, _______, _______, KC_NLCK, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + CU_EQL, _______, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL, + CU_EQL, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, GUIL, GUID, GUIR, EMOJI, KC_ENT, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, RESET, ALTF4, _______, _______, _______, KC_SPC, CTLENT, _______, _______, _______, _______, CU_GAME ), @@ -136,250 +132,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -#elif defined CENTERNUM - -/* Base -,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|` |1 |2 |3 |4 |5 |Numlock |/ |* |= |6 |7 |8 |9 |0 |\ | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Tab |Q |W |E |R |T |7 |8 |9 |- |Z |U |I |O |P |Backspace| -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Esc/Nav |A |S |D |F |G |4 |5 |6 |+ |H |J |K |L |; |' | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|(/LShift |Y |X |C |V |B |1 |2 |3 |Tab |N |M |, |. |/ |)/RShift | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|RCtrl | |Alt |Win |Lower |Space |00 |0 |. |Enter |Enter |Raise |Win |AltGr | |LCtrl | -`---------------------------------------------------------------------------------------------------------------------------------------------------------------' -*/ - -[_BASE] = LAYOUT( - CU_GRV, DE_1, DE_2, CU_3, DE_4, DE_5, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, CU_6, CU_7, CU_8, CU_9, CU_0, CU_BSLS, - KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_P7, KC_P8, KC_P9, KC_PPLS, CU_Z, DE_U, DE_I, DE_O, DE_P, KC_BSPC, - CU_NAV, DE_A, DE_S, DE_D, DE_F, DE_G, KC_P4, KC_P5, KC_P6, CU_EQL, DE_H, DE_J, DE_K, DE_L, CU_SCLN, CU_QUOT, - CU_LSFT, CU_Y, DE_X, DE_C, DE_V, DE_B, KC_P1, KC_P2, KC_P3, KC_TAB, DE_N, DE_M, CU_COMM, CU_DOT, CU_SLSH, CU_RSFT, - KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_P00, KC_P0, KC_PDOT, KC_PENT, CTLENT, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL -), - -/* Lower -,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|` |1 |2 |3 |4 |5 |Numlock |/ |* |- |6 |7 |8 |9 |0 | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|~ |! |" |# |$ |% |7 |8 |9 |+ |^ |& |* |( |) | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |@ |Strg+X |Strg+C |Strg+V | |4 |5 |6 |= | |_ |+ |{ |} || | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |? | | | | |1 |2 |3 |Tab | | | | | | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| | | | | | |00 |0 |. |Enter | | | | | | | -`---------------------------------------------------------------------------------------------------------------------------------------------------------------' -*/ - -[_LOWER] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - DE_TILD, DE_EXLM, DE_DQOT, DE_HASH, DE_DLR, DE_PERC, _______, _______, _______, _______, CU_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, _______, - _______, DE_AT, CTRLX, CTRLC, CTRLV, XXXXXXX, _______, _______, _______, _______, XXXXXXX, DE_UNDS, DE_PLUS, DE_LCBR, DE_RCBR, DE_PIPE, - _______, DE_EURO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, XXXXXXX, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -/* Raise -,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|` |1 |2 |3 |4 |5 |Numlock |/ |* |- |6 |7 |8 |9 |0 | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|` |1 |2 |3 |4 |5 |7 |8 |9 |+ |6 |7 |8 |9 |0 | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |F1 |F2 |F3 |F4 |F5 |4 |5 |6 |= |F6 |- |= |[ |] |\ | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |F7 |F8 |F9 |F10 |F11 |1 |2 |3 |Tab |F12 | | | | | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| | | | | | |00 |0 |. |Enter | | | | | | | -`---------------------------------------------------------------------------------------------------------------------------------------------------------------' -*/ - -[_RAISE] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - CU_GRV, DE_1, DE_2, CU_3, DE_4, DE_5, _______, _______, _______, _______, CU_6, CU_7, CU_8, CU_9, CU_0, _______, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, KC_F6, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, CU_BSLS, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, _______, KC_F12, XXXXXXX, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -/* Deadkey -,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -| | | | | | |Numlock |/ |* |- | | | | | | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| | | | | | |7 |8 |9 |+ | |Ü | |Ö | | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |Ä |ß | | | |4 |5 |6 |= | | | | | | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| | | | | | |1 |2 |3 |Tab | | | | | | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| | | | | |" |00 |0 |. |Enter |" | | | | | | -`---------------------------------------------------------------------------------------------------------------------------------------------------------------' -*/ - -[_DEADKEY] = LAYOUT( - CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, _______, _______, _______, _______, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, - KC_TAB, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, _______, _______, _______, _______, CU_ED, CU_UE, CU_ED, CU_OE, CU_ED, _______, - _______, CU_AE, CU_SS, CU_ED, CU_ED, CU_ED, _______, _______, _______, _______, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_DDQ, - _______, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, _______, _______, _______, _______, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, _______, - _______, _______, _______, _______, _______, CU_DDQ, _______, _______, _______, _______, CU_DDQ, _______, _______, _______, _______, _______ -), - -/* Navigation -,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|Escape | | | | | |Numlock |/ |* |- | | | | | | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|ALT F4 |PageDown |Up |PageUp |Home | |7 |8 |9 |+ | | |Win+Up | | |Del | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |Left |Down |Right |End | |4 |5 |6 |= | |Win+Left |Win+Down |Win+Right| |Enter | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |Prev |Pause |Next |LowerVol |RaiseVol |1 |2 |3 |Tab |Mute | | | | | | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|RESET |ESCT | | | | |00 |0 |. |Enter | | | | | |Game | -`---------------------------------------------------------------------------------------------------------------------------------------------------------------' -*/ - -[_NAV] = LAYOUT( - KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, _______, _______, _______, _______, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, _______, _______, _______, _______, XXXXXXX, GUIL, GUID, GUIR, EMOJI, KC_ENT, - _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, _______, _______, _______, _______, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - RESET, CU_ESCT, ALTF4, _______, _______, KC_SPC, _______, _______, _______, _______, CTLENT, _______, _______, _______, _______, CU_GAME -), - -// Can be used to place macros on the numpad -[_GAME] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) - -#else - -/* Base -,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |\ |Numlock |/ |* |= | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Tab |Q |W |E |R |T |Z |U |I |O |P |Backspace|7 |8 |9 |- | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|Esc/Nav |A |S |D |F |G |H |J |K |L |; |' |4 |5 |6 |+ | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|(/LShift |Y |X |C |V |B |N |M |, |. |/ |)/RShift |1 |2 |3 |Tab | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ -|RCtrl | |Alt |Win |Lower |Space |Enter |Raise |Win |AltGr | |LCtrl |00 |0 |. |Enter | -`---------------------------------------------------------------------------------------------------------------------------------------------------------------' -*/ - -[_BASE] = LAYOUT( - CU_GRV, DE_1, DE_2, CU_3, DE_4, DE_5, CU_6, CU_7, CU_8, CU_9, CU_0, CU_BSLS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, CU_Z, DE_U, DE_I, DE_O, DE_P, KC_BSPC, KC_P7, KC_P8, KC_P9, KC_PPLS, - CU_NAV, DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, CU_SCLN, CU_QUOT, KC_P4, KC_P5, KC_P6, CU_EQL, - CU_LSFT, CU_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, CU_COMM, CU_DOT, CU_SLSH, CU_RSFT, KC_P1, KC_P2, KC_P3, KC_TAB, - KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, LOWER, KC_SPC, CTLENT, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_P00, KC_P0, KC_PDOT, KC_PENT -), - -/* Lower -,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | |Numlock |/ |* |- | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|~ |! |" |# |$ |% |^ |& |* |( |) | |7 |8 |9 |+ | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |@ |Strg+X |Strg+C |Strg+V | | |_ |+ |{ |} || |4 |5 |6 |= | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |? | | | | | | | | | | |1 |2 |3 |Tab | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ -| | | | | | | | | | | | |00 |0 |. |Enter | -`---------------------------------------------------------------------------------------------------------------------------------------------------------------' -*/ - -[_LOWER] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - DE_TILD, DE_EXLM, DE_DQOT, DE_HASH, DE_DLR, DE_PERC, CU_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, _______, _______, _______, _______, _______, - _______, DE_AT, CTRLX, CTRLC, CTRLV, XXXXXXX, XXXXXXX, DE_UNDS, DE_PLUS, DE_LCBR, DE_RCBR, DE_PIPE, _______, _______, _______, _______, - _______, DE_EURO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -/* Raise -,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | |Numlock |/ |* |- | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | |7 |8 |9 |+ | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |F1 |F2 |F3 |F4 |F5 |F6 |- |= |[ |] |\ |4 |5 |6 |= | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |F7 |F8 |F9 |F10 |F11 |F12 | | | | | |1 |2 |3 |Tab | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ -| | | | | | | | | | | | |00 |0 |. |Enter | -`---------------------------------------------------------------------------------------------------------------------------------------------------------------' -*/ - -[_RAISE] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - CU_GRV, DE_1, DE_2, CU_3, DE_4, DE_5, CU_6, CU_7, CU_8, CU_9, CU_0, _______, _______, _______, _______, _______, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, CU_BSLS, _______, _______, _______, _______, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -/* Deadkey -,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -| | | | | | | | | | | | |Numlock |/ |* |- | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| | | | | | | |Ü | |Ö | | |7 |8 |9 |+ | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |Ä |ß | | | | | | | | | |4 |5 |6 |= | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| | | | | | | | | | | | |1 |2 |3 |Tab | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ -| | | | | |" |" | | | | | |00 |0 |. |Enter | -`---------------------------------------------------------------------------------------------------------------------------------------------------------------' -*/ - -[_DEADKEY] = LAYOUT( - CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, _______, _______, _______, _______, - KC_TAB, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_UE, CU_ED, CU_OE, CU_ED, _______, _______, _______, _______, _______, - _______, CU_AE, CU_SS, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_DDQ, _______, _______, _______, _______, - _______, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, CU_DDQ, CU_DDQ, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -/* Navigation -,---------------------------------------------------------------------------------------------------------------------------------------------------------------. -|Escape | | | | | | | | | | | |Numlock |/ |* |- | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -|ALT F4 |PageDown |Up |PageUp |Home | | | |Win+Up | | |Del |7 |8 |9 |+ | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |Left |Down |Right |End | | |Win+Left |Win+Down |Win+Right| |Enter |4 |5 |6 |= | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| -| |Prev |Pause |Next |LowerVol |RaiseVol |Mute | | | | | |1 |2 |3 |Tab | -|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ -|RESET |ESCT | | | | | | | | | |Game |00 |0 |. |Enter | -`---------------------------------------------------------------------------------------------------------------------------------------------------------------' -*/ - -[_NAV] = LAYOUT( - KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, - _______, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL, _______, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, GUIL, GUID, GUIR, EMOJI, KC_ENT, _______, _______, _______, _______, - _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, - RESET, CU_ESCT, ALTF4, _______, _______, KC_SPC, CTLENT, _______, _______, _______, _______, CU_GAME, _______, _______, _______, _______ -), - -// Can be used to place macros on the numpad -[_GAME] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) - -#endif - }; bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { From 78b2f120e50e3db7c6f2b114907dbe50d82e6090 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 23 Dec 2020 07:33:04 +1100 Subject: [PATCH 015/140] V-USB: Fix initial dropped keypress (#11263) --- tmk_core/protocol/vusb/main.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tmk_core/protocol/vusb/main.c b/tmk_core/protocol/vusb/main.c index 0e3447d926d1..2e8bb2fbbc71 100644 --- a/tmk_core/protocol/vusb/main.c +++ b/tmk_core/protocol/vusb/main.c @@ -98,14 +98,13 @@ int main(void) { clock_prescale_set(clock_div_1); #endif keyboard_setup(); - - host_set_driver(vusb_driver()); setup_usb(); sei(); + keyboard_init(); + host_set_driver(vusb_driver()); wait_ms(50); - keyboard_init(); #ifdef SLEEP_LED_ENABLE sleep_led_init(); #endif From dee506c096902316136f11dca2f560a62fd61e53 Mon Sep 17 00:00:00 2001 From: Kishor Prins Date: Tue, 22 Dec 2020 16:04:55 -0500 Subject: [PATCH 016/140] Updated Raw HID docs to clarify packet/report length (#11211) Co-authored-by: Ryan --- docs/feature_rawhid.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_rawhid.md b/docs/feature_rawhid.md index 01e215be45cd..4a688fcba725 100644 --- a/docs/feature_rawhid.md +++ b/docs/feature_rawhid.md @@ -29,7 +29,7 @@ void raw_hid_receive(uint8_t *data, uint8_t length) { } ``` -`raw_hid_receive` can receive variable size packets from host with maximum length `RAW_EPSIZE`. `raw_hid_send` on the other hand can send packets to host of exactly `RAW_EPSIZE` length, therefore it should be used with data of length `RAW_EPSIZE`. +These two functions send and receive packets of length `RAW_EPSIZE` bytes to and from the host (32 on LUFA/ChibiOS/V-USB, 64 on ATSAM). Make sure to flash raw enabled firmware before proceeding with working on the host side. From fd177582adbd6847bbe620ae1a6ffd7a85370f2d Mon Sep 17 00:00:00 2001 From: Reza Jelveh Date: Wed, 23 Dec 2020 08:44:49 +0800 Subject: [PATCH 017/140] chibios: honor PLATFORMASM in chibios build (#11219) --- tmk_core/chibios.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index e53edccee21f..733f2d60fe49 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -207,7 +207,7 @@ CHIBISRC = $(STARTUPSRC) \ $(CHIBIOS)/os/various/syscalls.c # Ensure the ASM files are not subjected to LTO -- it'll strip out interrupt handlers otherwise. -QUANTUM_LIB_SRC += $(STARTUPASM) $(PORTASM) $(OSALASM) +QUANTUM_LIB_SRC += $(STARTUPASM) $(PORTASM) $(OSALASM) $(PLATFORMASM) CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC)) From dc7081a8233e5d709d09cc09adafdc42efd9c8a0 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Wed, 23 Dec 2020 11:50:12 +0900 Subject: [PATCH 018/140] [Keymap] fix and update helix/rev3_5rows:five_rows (#11191) * [Keymap] fix and update helix/rev3_5rows:five_rows * fix rgblight animation selection * use `DEBUG_MATRIX_SCAN_RATE_ENABLE` insted of keyboard_post_init_user_scan.c * Change the initial value of the ENCODER_ENABLE to 'no' in 'keymaps/five_rows/rules.mk' * Add 'HELIX=debug/no-debug' option into 'rev3_5rows/keymaps/five_rows/rules.mk' * Add '#define OLED_UPDATE_INTERVAL 100' 'rev3_5rows/keymaps/five_rows/config.h' * add LED_ANIMATIONS_LEVEL macro into rev3_5rows/keymaps/five_rows/ * Change OLED_UPDATE_INTERVAL value in rev3_5rows/keymaps/five_rows/config.h --- .../rev3_5rows/keymaps/five_rows/config.h | 30 +++++++++++ .../five_rows/keyboard_post_init_user_scan.c | 7 --- .../rev3_5rows/keymaps/five_rows/rules.mk | 51 +++++++++++++++++-- 3 files changed, 76 insertions(+), 12 deletions(-) delete mode 100644 keyboards/helix/rev3_5rows/keymaps/five_rows/keyboard_post_init_user_scan.c diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h index 416e8fd7c414..205867e5b717 100644 --- a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h +++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h @@ -22,6 +22,9 @@ along with this program. If not, see . #ifndef CONFIG_USER_H #define CONFIG_USER_H +#undef OLED_UPDATE_INTERVAL +#define OLED_UPDATE_INTERVAL 50 + #undef TAPPING_TERM #define TAPPING_TERM 300 #define PERMISSIVE_HOLD @@ -33,7 +36,19 @@ along with this program. If not, see . // If you need more program area, try select and reduce rgblight modes to use. // Selection of RGBLIGHT MODE to use. +#undef RGBLIGHT_ANIMATIONS +#undef RGBLIGHT_EFFECT_BREATHING +#undef RGBLIGHT_EFFECT_RAINBOW_MOOD +#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL +#undef RGBLIGHT_EFFECT_SNAKE +#undef RGBLIGHT_EFFECT_KNIGHT +#undef RGBLIGHT_EFFECT_CHRISTMAS +#undef RGBLIGHT_EFFECT_STATIC_GRADIENT +#undef RGBLIGHT_EFFECT_RGB_TEST +#undef RGBLIGHT_EFFECT_ALTERNATING + #if defined(LED_ANIMATIONS) +# if LED_ANIMATIONS_LEVEL > 1 #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL @@ -43,6 +58,21 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_STATIC_GRADIENT //#define RGBLIGHT_EFFECT_RGB_TEST //#define RGBLIGHT_EFFECT_ALTERNATING +# else + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + //#define RGBLIGHT_EFFECT_RAINBOW_SWIRL + //#define RGBLIGHT_EFFECT_SNAKE + //#define RGBLIGHT_EFFECT_KNIGHT + //#define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + //#define RGBLIGHT_EFFECT_RGB_TEST + //#define RGBLIGHT_EFFECT_ALTERNATING +# endif #endif #endif /* CONFIG_USER_H */ + +#ifdef DEBUG_CONFIG +# include "debug_config.h" +#endif diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/keyboard_post_init_user_scan.c b/keyboards/helix/rev3_5rows/keymaps/five_rows/keyboard_post_init_user_scan.c deleted file mode 100644 index 7c84e1ed8d02..000000000000 --- a/keyboards/helix/rev3_5rows/keymaps/five_rows/keyboard_post_init_user_scan.c +++ /dev/null @@ -1,7 +0,0 @@ -#include QMK_KEYBOARD_H - -void keyboard_post_init_user(void) { -#if defined(DEBUG_MATRIX_SCAN_RATE) - debug_enable = true; -#endif -} diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk b/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk index 21261fa20af2..7344797643eb 100644 --- a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk +++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk @@ -10,12 +10,14 @@ # yes, no +1500 # yes, yes +3200 # no, yes +400 +ENCODER_ENABLE = no LTO_ENABLE = no # if firmware size over limit, try this option +LED_ANIMATIONS = yes ifneq ($(strip $(HELIX)),) define KEYMAP_OPTION_PARSE - # $xinfo .$1.x #debug - # parse 'dispoff', 'consle', 'back', 'oled' + # parse 'dispoff', 'consle', 'back', 'oled', 'no-ani', 'mini-ani', 'lto', 'no-lto', 'no-enc', 'scan' + $(if $(SHOW_PARCE),$(info parse .$1.)) #debug ifeq ($(strip $1),dispoff) OLED_DRIVER_ENABLE = no RGBLIGHT_ENABLE = no @@ -23,18 +25,43 @@ ifneq ($(strip $(HELIX)),) ifeq ($(strip $1),console) CONSOLE_ENABLE = yes endif + ifeq ($(strip $1),debug) + DEBUG_CONFIG = yes + endif + ifneq ($(filter nodebug no-debug no_debug,$(strip $1)),) + DEBUG_CONFIG = no + endif + ifneq ($(filter enc,$(strip $1)),) + ENCODER_ENABLE = yes + endif + ifneq ($(filter noenc no-enc no_enc,$(strip $1)),) + ENCODER_ENABLE = no + endif ifeq ($(strip $1),oled) OLED_DRIVER_ENABLE = yes endif ifeq ($(strip $1),back) RGBLIGHT_ENABLE = yes endif + ifneq ($(filter na no_ani no-ani,$(strip $1)),) + LED_ANIMATIONS = no + endif + ifneq ($(filter mini-ani mini_ani,$(strip $1)),) + LED_ANIMATIONS = mini + endif + ifneq ($(filter ani animation,$(strip $1)),) + LED_ANIMATIONS = yes + endif + ifeq ($(strip $1),lto) + LTO_ENABLE = yes + endif + ifneq ($(filter nolto no-lto no_lto,$(strip $1)),) + LTO_ENABLE = no + endif ifeq ($(strip $1),scan) # use DEBUG_MATRIX_SCAN_RATE # see docs/newbs_testing_debugging.md - OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE - CONSOLE_ENABLE = yes - SRC += keyboard_post_init_user_scan.c + DEBUG_MATRIX_SCAN_RATE_ENABLE = yes endif endef # end of KEYMAP_OPTION_PARSE @@ -42,3 +69,17 @@ ifneq ($(strip $(HELIX)),) $(eval $(foreach A_OPTION_NAME,$(subst $(COMMA), ,$(HELIX)), \ $(call KEYMAP_OPTION_PARSE,$(A_OPTION_NAME)))) endif + +ifeq ($(strip $(LED_ANIMATIONS)), yes) + OPT_DEFS += -DLED_ANIMATIONS + OPT_DEFS += -DLED_ANIMATIONS_LEVEL=2 +endif + +ifeq ($(strip $(LED_ANIMATIONS)), mini) + OPT_DEFS += -DLED_ANIMATIONS + OPT_DEFS += -DLED_ANIMATIONS_LEVEL=1 +endif + +ifeq ($(strip $(DEBUG_CONFIG)), yes) + OPT_DEFS += -DDEBUG_CONFIG +endif From 806aa9bc67c77c3899e60c1daef560680865568c Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 23 Dec 2020 15:01:44 +1100 Subject: [PATCH 019/140] Remove comments about custom ldscript for Teensy LC (#11224) --- keyboards/boston_meetup/2019/rules.mk | 1 - keyboards/ckeys/thedora/rules.mk | 1 - keyboards/clueboard/66_hotswap/gen1/rules.mk | 1 - keyboards/hadron/ver3/rules.mk | 1 - keyboards/infinity60/rules.mk | 1 - keyboards/jm60/rules.mk | 1 - keyboards/planck/ez/rules.mk | 1 - keyboards/planck/keymaps/ishtob/rule.mk | 1 - keyboards/planck/rev6/rules.mk | 1 - keyboards/preonic/rev3/rules.mk | 1 - keyboards/tkc/candybar/lefty/rules.mk | 1 - keyboards/tkc/candybar/righty/rules.mk | 1 - quantum/mcu_selection.mk | 1 - 13 files changed, 13 deletions(-) diff --git a/keyboards/boston_meetup/2019/rules.mk b/keyboards/boston_meetup/2019/rules.mk index aa35ba753943..05e29b029da8 100644 --- a/keyboards/boston_meetup/2019/rules.mk +++ b/keyboards/boston_meetup/2019/rules.mk @@ -6,7 +6,6 @@ MCU = STM32F303 # BACKLIGHT_ENABLE = no BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/ckeys/thedora/rules.mk b/keyboards/ckeys/thedora/rules.mk index 92665ffb6d6f..c88f4907c103 100755 --- a/keyboards/ckeys/thedora/rules.mk +++ b/keyboards/ckeys/thedora/rules.mk @@ -6,7 +6,6 @@ MCU = STM32F303 # BACKLIGHT_ENABLE = no BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/clueboard/66_hotswap/gen1/rules.mk b/keyboards/clueboard/66_hotswap/gen1/rules.mk index 48740725a10b..0f5f71ac6da8 100644 --- a/keyboards/clueboard/66_hotswap/gen1/rules.mk +++ b/keyboards/clueboard/66_hotswap/gen1/rules.mk @@ -9,7 +9,6 @@ LED_MATRIX_DRIVER = IS31FL3731 # comment out to disable the options. # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/hadron/ver3/rules.mk b/keyboards/hadron/ver3/rules.mk index 6c13bd2bc1f4..8f1c65c8d288 100644 --- a/keyboards/hadron/ver3/rules.mk +++ b/keyboards/hadron/ver3/rules.mk @@ -6,7 +6,6 @@ MCU = STM32F303 # BACKLIGHT_ENABLE = no BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/infinity60/rules.mk b/keyboards/infinity60/rules.mk index dce10b5717fd..8f962a53d778 100644 --- a/keyboards/infinity60/rules.mk +++ b/keyboards/infinity60/rules.mk @@ -17,7 +17,6 @@ BOARD = MCHCK_K20 # comment out to disable the options. # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/jm60/rules.mk b/keyboards/jm60/rules.mk index a513461fc866..2a2a080b7f0e 100644 --- a/keyboards/jm60/rules.mk +++ b/keyboards/jm60/rules.mk @@ -8,7 +8,6 @@ BOARD = JM60_BOARD # comment out to disable the options. # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/planck/ez/rules.mk b/keyboards/planck/ez/rules.mk index 18eada389f1a..ad79454a59e3 100644 --- a/keyboards/planck/ez/rules.mk +++ b/keyboards/planck/ez/rules.mk @@ -6,7 +6,6 @@ MCU = STM32F303 # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/planck/keymaps/ishtob/rule.mk b/keyboards/planck/keymaps/ishtob/rule.mk index 0f71be62b73b..a6ffdf639c1f 100755 --- a/keyboards/planck/keymaps/ishtob/rule.mk +++ b/keyboards/planck/keymaps/ishtob/rule.mk @@ -3,7 +3,6 @@ # BACKLIGHT_ENABLE = no BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/planck/rev6/rules.mk b/keyboards/planck/rev6/rules.mk index 02d6b8953560..22dc321af6c1 100644 --- a/keyboards/planck/rev6/rules.mk +++ b/keyboards/planck/rev6/rules.mk @@ -6,7 +6,6 @@ MCU = STM32F303 # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/preonic/rev3/rules.mk b/keyboards/preonic/rev3/rules.mk index a5fc16a2e57e..a51dc2157097 100644 --- a/keyboards/preonic/rev3/rules.mk +++ b/keyboards/preonic/rev3/rules.mk @@ -6,7 +6,6 @@ MCU = STM32F303 # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/tkc/candybar/lefty/rules.mk b/keyboards/tkc/candybar/lefty/rules.mk index 1edad08350e8..c761d2b30b14 100644 --- a/keyboards/tkc/candybar/lefty/rules.mk +++ b/keyboards/tkc/candybar/lefty/rules.mk @@ -8,7 +8,6 @@ MCU = STM32F072 LTO_ENABLE = yes BACKLIGHT_ENABLE = no BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/tkc/candybar/righty/rules.mk b/keyboards/tkc/candybar/righty/rules.mk index 1edad08350e8..c761d2b30b14 100644 --- a/keyboards/tkc/candybar/righty/rules.mk +++ b/keyboards/tkc/candybar/righty/rules.mk @@ -8,7 +8,6 @@ MCU = STM32F072 LTO_ENABLE = yes BACKLIGHT_ENABLE = no BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/quantum/mcu_selection.mk b/quantum/mcu_selection.mk index 9518a6463f54..6b11eb498721 100644 --- a/quantum/mcu_selection.mk +++ b/quantum/mcu_selection.mk @@ -16,7 +16,6 @@ ifneq ($(findstring MKL26Z64, $(MCU)),) # Linker script to use # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ # or /ld/ - # - NOTE: a custom ld script is needed for EEPROM on Teensy LC MCU_LDSCRIPT ?= MKL26Z64 # Startup code to use From e9ed5d757164d363582a436e3a71186847c9b7af Mon Sep 17 00:00:00 2001 From: Rustam Zagirov Date: Wed, 23 Dec 2020 08:34:33 +0300 Subject: [PATCH 020/140] ergodox_ez/stamm update (#11236) --- keyboards/ergodox_ez/keymaps/stamm/keymap.c | 136 ++++++++----------- keyboards/ergodox_ez/keymaps/stamm/readme.md | 68 ++++------ 2 files changed, 81 insertions(+), 123 deletions(-) diff --git a/keyboards/ergodox_ez/keymaps/stamm/keymap.c b/keyboards/ergodox_ez/keymaps/stamm/keymap.c index e2d9964ba53d..890fbdc02311 100644 --- a/keyboards/ergodox_ez/keymaps/stamm/keymap.c +++ b/keyboards/ergodox_ez/keymaps/stamm/keymap.c @@ -31,14 +31,10 @@ #define NO_BSLS_ALT KC_EQUAL #define LSA_T(kc) MT(MOD_LSFT | MOD_LALT, kc) -#define E_NUMBERS LT(_3_NUMBERS,KC_E) -#define R_MOUSE LT(_4_MOUSE,KC_R) -#define O_NUMBERS LT(_3_NUMBERS,KC_O) -#define U_MOUSE LT(_4_MOUSE,KC_U) -#define R_NUMBERS LT(_3_NUMBERS,KC_R) -#define W_MOUSE LT(_4_MOUSE,KC_W) -#define LEFT_NUMBERS LT(_3_NUMBERS, KC_LEFT) -#define RIGHT_MOUSE LT(_4_MOUSE, KC_RIGHT) +#define E_NUMBERS LT(_1_NUMBERS, KC_E) +#define R_MOUSE LT(_2_MOUSE, KC_R) + +#define ARROWS MO(_3_ARROW) enum custom_keycodes { RGB_SLD = EZ_SAFE_RANGE, @@ -50,20 +46,19 @@ uint16_t alt_tab_timer = 0; // we will be using them soon. enum layers { _0_BASE, - _1_BEAKL, - _2_WORKMAN, - _3_NUMBERS, - _4_MOUSE, + _1_NUMBERS, + _2_MOUSE, + _3_ARROW, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_0_BASE] = LAYOUT_ergodox( - KC_NONUS_BSLASH, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_AUDIO_MUTE, - KC_LEAD, KC_Q, KC_W, E_NUMBERS, R_MOUSE, KC_T, TG(_1_BEAKL), - LCTL(KC_B), LSFT_T(KC_A), LCTL_T(KC_S), LALT_T(KC_D), LGUI_T(KC_F), KC_G, - KC_BSLASH, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(_2_WORKMAN), - ALT_TAB, XXXXXXX, XXXXXXX, LEFT_NUMBERS, RIGHT_MOUSE, + KC_NONUS_BSLASH, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_AUDIO_MUTE, + KC_LEAD, KC_Q, KC_W, E_NUMBERS, R_MOUSE, KC_T, XXXXXXX, + LCTL(KC_B), LSFT_T(KC_A), LCTL_T(KC_S), LALT_T(KC_D), LGUI_T(KC_F), KC_G, + KC_BSLASH, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, + ALT_TAB, XXXXXXX, XXXXXXX, MO(_1_NUMBERS), ARROWS, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, XXXXXXX, KC_ENTER, KC_TAB, KC_ESCAPE, @@ -71,50 +66,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRACKET, KC_H, RGUI_T(KC_J), RALT_T(KC_K), RCTL_T(KC_L), RSFT_T(KC_SCOLON), KC_QUOTE, KC_RBRACKET, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_EQUAL, - KC_DOWN, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, XXXXXXX, KC_ESCAPE, KC_BSPACE, KC_SPACE ), -[_1_BEAKL] = LAYOUT_ergodox( - _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_H, O_NUMBERS, U_MOUSE, KC_X, _______, - _______, LSFT_T(KC_Y), LCTL_T(KC_I), LALT_T(KC_E), LGUI_T(KC_A), KC_DOT, - _______, KC_J, KC_SLASH, KC_COMMA, KC_K, KC_QUOTE, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, - _______, KC_G, KC_C, KC_R, KC_F, KC_Z, _______, - KC_D, RGUI_T(KC_S), RALT_T(KC_T), RCTL_T(KC_N), RSFT_T(KC_B), KC_SCOLON, - _______, KC_W, _______, KC_L, KC_P, KC_V, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - _______, _______, _______ -), -[_2_WORKMAN] = LAYOUT_ergodox( - _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_D, R_NUMBERS, W_MOUSE, KC_B, _______, - _______, _______, _______, LALT_T(KC_H), LGUI_T(KC_T), _______, - _______, _______, _______, KC_M, KC_C, KC_V, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, - _______, KC_J, KC_F, KC_U, KC_P, KC_SCOLON, _______, - KC_Y, RGUI_T(KC_N), RALT_T(KC_E), RCTL_T(KC_O), RSFT_T(KC_I), _______, - _______, KC_K, KC_L, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - _______, _______, _______ -), -[_3_NUMBERS] = LAYOUT_ergodox( +[_1_NUMBERS] = LAYOUT_ergodox( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -133,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______ ), -[_4_MOUSE] = LAYOUT_ergodox( +[_2_MOUSE] = LAYOUT_ergodox( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -152,12 +109,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_VAD, RGB_VAI, _______, + _______, _______, _______ +), +[_3_ARROW] = LAYOUT_ergodox( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, + _______, + _______, _______, _______ ), }; /* bool suspended = false; */ +void keyboard_post_init_user(void) { + rgblight_disable(); +} bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { @@ -184,24 +165,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_state_t layer_state_set_user(layer_state_t state) { ergodox_led_all_off(); + /* rgblight_disable(); */ switch (get_highest_layer(state)) { - case _1_BEAKL: + case _1_NUMBERS: ergodox_right_led_1_on(); + /* rgblight_enable(); + rgblight_mode(1); + rgblight_sethsv(HSV_BLUE);*/ break; - case _2_WORKMAN: + case _2_MOUSE: ergodox_right_led_2_on(); break; - case _3_NUMBERS: + case _3_ARROW: ergodox_right_led_3_on(); break; - case _4_MOUSE: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - break; - /* case 6: */ - /* ergodox_right_led_2_on(); */ - /* ergodox_right_led_3_on(); */ - /* break; */ /* case 7: */ /* ergodox_right_led_1_on(); */ /* ergodox_right_led_2_on(); */ @@ -219,9 +196,9 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { switch (keycode) { /* case SFT_T(KC_SPC): */ /* return TAPPING_TERM + 1250; */ - case LT(_3_NUMBERS, KC_E): + case E_NUMBERS: return 200; - case LT(_4_MOUSE, KC_R): + case LT(_2_MOUSE, KC_R): return 200; /* case LGUI_T(KC_F): */ /* return 50; */ @@ -231,8 +208,8 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { } bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case LT(_3_NUMBERS, KC_E): - case LT(_4_MOUSE, KC_R): + case E_NUMBERS: + case R_MOUSE: case LSFT_T(KC_A): case LCTL_T(KC_S): case LALT_T(KC_D): @@ -241,8 +218,7 @@ bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { case RALT_T(KC_K): case RCTL_T(KC_L): case RSFT_T(KC_SCOLON): - case LEFT_NUMBERS: - case RIGHT_MOUSE: + case ARROWS: return true; default: return false; @@ -252,8 +228,8 @@ bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case LT(_3_NUMBERS, KC_E): - case LT(_4_MOUSE, KC_R): + case LT(_1_NUMBERS, KC_E): + case R_MOUSE: case LSFT_T(KC_A): case LCTL_T(KC_S): case LALT_T(KC_D): @@ -262,8 +238,7 @@ bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) { case RALT_T(KC_K): case RCTL_T(KC_L): case RSFT_T(KC_SCOLON): - case LEFT_NUMBERS: - case RIGHT_MOUSE: + case ARROWS: return false; default: return true; @@ -291,6 +266,9 @@ void matrix_scan_user(void) { SEQ_ONE_KEY(KC_S) { SEND_STRING ("sudo -i\n"); } + SEQ_ONE_KEY(KC_H) { + SEND_STRING ("--help\n"); + } SEQ_TWO_KEYS(KC_D, KC_D) { SEND_STRING(SS_LGUI("ac")); /* SEND_STRING(SS_LGUI("a") SS_LGUI("c")); */ diff --git a/keyboards/ergodox_ez/keymaps/stamm/readme.md b/keyboards/ergodox_ez/keymaps/stamm/readme.md index f2cdc7ea1a8b..9ca886aa922e 100644 --- a/keyboards/ergodox_ez/keymaps/stamm/readme.md +++ b/keyboards/ergodox_ez/keymaps/stamm/readme.md @@ -1,12 +1,11 @@ # Stamm layouts for ergodox_ez -5 layers: +4 layers: * QUERTY -* BEAKL15 -* WORKMAN * Numbers * Mouse +* Arrows On home row there are hold dual keys: - shift, ctrl, alt, cmd — on the fingers on the left hand @@ -17,17 +16,17 @@ Hold E switch to layer with numbers. Hold R switch to mouse controll layer. ``` - 0 Base + 0_Base ╭────────┬─────┬─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────┬─────┬─────┬────────╮ │ ` │ ! │ @ │ # │ $ │ % │Mute │ │Capsl│ ^ │ & │ * │ ( │ ) │ - │ ├────────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼────────┤ -│ Lead │ Q │ W │E|LT3│R|LT4│ T │ TG1 │ │ │ Y │ U │ I │ O │ P │ [ │ +│ Lead │ Q │ W │E|LT1│R|LT2│ T │ │ │ │ Y │ U │ I │ O │ P │ [ │ ├────────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼────────┤ │Ctrl + B│A | ⇧│S | ⌃│D | ⌥│F | ⌘│ G ├─────┤ ├─────┤ H │J | ⌘│K | ⌥│L | ⌃│; | ⇧│ ' │ -├────────┼─────┼─────┼─────┼─────┼─────┤ TG2 │ │ ] ├─────┼─────┼─────┼─────┼─────┼────────┤ +├────────┼─────┼─────┼─────┼─────┼─────┤ │ │ ] ├─────┼─────┼─────┼─────┼─────┼────────┤ │ \ │ Z │ X │ C │ V │ B │ │ │ │ N │ M │ , │ . │ / │ = │ ╰──┬─────┼─────┼─────┼─────┼─────┼─────┴─────╯ ╰─────┴─────┼─────┼─────┼─────┼─────┼─────┬──╯ - │⎇ + T│ │ │←|LT3│→|LT4│ │ ↓ │ ↑ │ │ │ │ + │⎇ + T│ │ │ │Arrow│ │ │ │ │ │ │ ╰─────┴─────┴─────┴─────┴─────╯ ╭─────┬─────╮ ╭─────┬─────╮ ╰─────┴─────┴─────┴─────┴─────╯ │Vol- │Vol+ │ │Play │Next │ ╭─────┼─────┼─────┤ ├─────┼─────┼─────╮ @@ -36,17 +35,17 @@ Hold R switch to mouse controll layer. │ │ │ Esc │ │ Esc │ │ │ ╰─────┴─────┴─────╯ ╰─────┴─────┴─────╯ - 1 Beakl + 1_Numbers ╭────────┬─────┬─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────┬─────┬─────┬────────╮ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +│ │ F1 │ F2 │ F3 │ F4 │ F5 │ │ │ │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ ├────────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼────────┤ -│ │ │ H │O|LT3│U|LT4│ X │ │ │ │ G │ C │ R │ F │ Z │ │ +│ │ │ │ │ │ │ │ │ │ │ 7 │ 8 │ 9 │ * │ F12 │ ├────────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼────────┤ -│ │Y | ⇧│I | ⌃│E | ⌥│A | ⌘│ . ├─────┤ ├─────┤ D │S | ⌘│T | ⌥│N | ⌃│B | ⇧│ ; │ +│ │ │ │ │ │ ├─────┤ ├─────┤ │ 4 │ 5 │ 6 │ + │ │ ├────────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼────────┤ -│ │ J │ / │ , │ K │ ' │ │ │ │ W │ │ L │ P │ V │ │ +│ │ │ │ │ │ │ │ │ │ │ 1 │ 2 │ 3 │ \ │ │ ╰──┬─────┼─────┼─────┼─────┼─────┼─────┴─────╯ ╰─────┴─────┼─────┼─────┼─────┼─────┼─────┬──╯ - │ │ │ │ │ │ │ │ │ │ │ │ + │Reset│ │ │ │ │ │ 0 │ . │ │ = │ │ ╰─────┴─────┴─────┴─────┴─────╯ ╭─────┬─────╮ ╭─────┬─────╮ ╰─────┴─────┴─────┴─────┴─────╯ │ │ │ │ │ │ ╭─────┼─────┼─────┤ ├─────┼─────┼─────╮ @@ -55,60 +54,41 @@ Hold R switch to mouse controll layer. │ │ │ │ │ │ │ │ ╰─────┴─────┴─────╯ ╰─────┴─────┴─────╯ - 2 Workman + 2_Mouse ╭────────┬─────┬─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────┬─────┬─────┬────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├────────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼────────┤ -│ │ │ D │R|LT3│W|LT4│ B │ │ │ │ J │ F │ U │ P │ ; │ │ -├────────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼────────┤ -│ │ │ │H | ⌥│T | ⌘│ ├─────┤ ├─────┤ Y │N | ⌘│E | ⌥│O | ⌃│I | ⇧│ │ +│ │ │ │ │ │ │ │ │RgbMo│RgbTo│MsBtn│MsUp │MsBtn│ │ │ ├────────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼────────┤ -│ │ │ │ M │ C │ V │ │ │ │ K │ L │ │ │ │ │ +│ │ │ │ │ │ ├─────┤ ├─────┤RgbSl│MsLef│MsDow│MsRig│ │ │ +├────────┼─────┼─────┼─────┼─────┼─────┤ │ │Toggl├─────┼─────┼─────┼─────┼─────┼────────┤ +│ │ │ │ │ │ │ │ │ │ │MsWhU│ │MsWhD│ │ │ ╰──┬─────┼─────┼─────┼─────┼─────┼─────┴─────╯ ╰─────┴─────┼─────┼─────┼─────┼─────┼─────┬──╯ │ │ │ │ │ │ │ │ │ │ │ │ ╰─────┴─────┴─────┴─────┴─────╯ ╭─────┬─────╮ ╭─────┬─────╮ ╰─────┴─────┴─────┴─────┴─────╯ - │ │ │ │ │ │ + │RgbHu│RgbHu│ │RgbVa│RgbVa│ ╭─────┼─────┼─────┤ ├─────┼─────┼─────╮ │ │ │ │ │ │ │ │ │ │ ├─────┤ ├─────┤ │ │ │ │ │ │ │ │ │ │ ╰─────┴─────┴─────╯ ╰─────┴─────┴─────╯ - 3 Numbers + 3_Arrow ╭────────┬─────┬─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────┬─────┬─────┬────────╮ -│ │ F1 │ F2 │ F3 │ F4 │ F5 │ │ │ │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├────────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼────────┤ -│ │ │ │ │ │ │ │ │ │ │ 7 │ 8 │ 9 │ * │ F12 │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├────────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼────────┤ -│ │ │ │ │ │ ├─────┤ ├─────┤ │ 4 │ 5 │ 6 │ + │ │ +│ │ │ │ │ │ ├─────┤ ├─────┤ ← │ ↓ │ ↑ │ → │ │ │ ├────────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼────────┤ -│ │ │ │ │ │ │ │ │ │ │ 1 │ 2 │ 3 │ \ │ │ -╰──┬─────┼─────┼─────┼─────┼─────┼─────┴─────╯ ╰─────┴─────┼─────┼─────┼─────┼─────┼─────┬──╯ - │Reset│ │ │ │ │ │ 0 │ . │ │ = │ │ - ╰─────┴─────┴─────┴─────┴─────╯ ╭─────┬─────╮ ╭─────┬─────╮ ╰─────┴─────┴─────┴─────┴─────╯ - │ │ │ │ │ │ - ╭─────┼─────┼─────┤ ├─────┼─────┼─────╮ - │ │ │ │ │ │ │ │ - │ │ ├─────┤ ├─────┤ │ │ - │ │ │ │ │ │ │ │ - ╰─────┴─────┴─────╯ ╰─────┴─────┴─────╯ - - 4 Mouse -╭────────┬─────┬─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────┬─────┬─────┬────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├────────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼────────┤ -│ │ │ │ │ │ │ │ │RgbMo│RgbTo│MsBtn│MsUp │MsBtn│ │ │ -├────────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼────────┤ -│ │ │ │ │ │ ├─────┤ ├─────┤RgbSl│MsLef│MsDow│MsRig│ │ │ -├────────┼─────┼─────┼─────┼─────┼─────┤ │ │Toggl├─────┼─────┼─────┼─────┼─────┼────────┤ -│ │ │ │ │ │ │ │ │ │ │MsWhU│ │MsWhD│ │ │ ╰──┬─────┼─────┼─────┼─────┼─────┼─────┴─────╯ ╰─────┴─────┼─────┼─────┼─────┼─────┼─────┬──╯ │ │ │ │ │ │ │ │ │ │ │ │ ╰─────┴─────┴─────┴─────┴─────╯ ╭─────┬─────╮ ╭─────┬─────╮ ╰─────┴─────┴─────┴─────┴─────╯ - │RgbHu│RgbHu│ │RgbVa│RgbVa│ + │ │ │ │ │ │ ╭─────┼─────┼─────┤ ├─────┼─────┼─────╮ │ │ │ │ │ │ │ │ - │ │ ├─────┤ ├─────┤ │ 75 │ + │ │ ├─────┤ ├─────┤ │ │ │ │ │ │ │ │ │ │ ╰─────┴─────┴─────╯ ╰─────┴─────┴─────╯ From d5f3f7c126553b5485766ed666810ec3f3339894 Mon Sep 17 00:00:00 2001 From: Ibnu Daru Aji Date: Wed, 23 Dec 2020 12:53:14 +0700 Subject: [PATCH 021/140] [Keyboard] corrected VID/PID and layout for squiggle (#11198) * corrected the pid and added a new layout. * following drashna's suggestion. --- keyboards/squiggle/config.h | 4 +- keyboards/squiggle/keymaps/default38/config.h | 25 +++ keyboards/squiggle/keymaps/default38/keymap.c | 157 ++++++++++++++++++ .../squiggle/keymaps/default38/readme.md | 6 + keyboards/squiggle/keymaps/default38/rules.mk | 1 + keyboards/squiggle/rev1/rev1.h | 17 ++ 6 files changed, 208 insertions(+), 2 deletions(-) create mode 100644 keyboards/squiggle/keymaps/default38/config.h create mode 100644 keyboards/squiggle/keymaps/default38/keymap.c create mode 100644 keyboards/squiggle/keymaps/default38/readme.md create mode 100644 keyboards/squiggle/keymaps/default38/rules.mk diff --git a/keyboards/squiggle/config.h b/keyboards/squiggle/config.h index 85bf32d9a9d3..6aca2c1b188b 100644 --- a/keyboards/squiggle/config.h +++ b/keyboards/squiggle/config.h @@ -20,8 +20,8 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0x6955 -#define PRODUCT_ID 0x2073 +#define VENDOR_ID 0x1209 +#define PRODUCT_ID 0x6969 #define MANUFACTURER ibnuda #define PRODUCT squiggle diff --git a/keyboards/squiggle/keymaps/default38/config.h b/keyboards/squiggle/keymaps/default38/config.h new file mode 100644 index 000000000000..9b7c369ddaca --- /dev/null +++ b/keyboards/squiggle/keymaps/default38/config.h @@ -0,0 +1,25 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako + +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 . +*/ + +#pragma once + +#define COMBO_TERM 100 +#define COMBO_COUNT 38 +#define IGNORE_MOD_TAP_INTERRUPT +#define PERMISSIVE_HOLD diff --git a/keyboards/squiggle/keymaps/default38/keymap.c b/keyboards/squiggle/keymaps/default38/keymap.c new file mode 100644 index 000000000000..c42b9e783d64 --- /dev/null +++ b/keyboards/squiggle/keymaps/default38/keymap.c @@ -0,0 +1,157 @@ +/* Copyright 2020 Ibnu D. Aji + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// enum for combos. +enum combos { + // left hand combinations. + Q_W, + W_E, + E_R, + Z_X, + C_X, + C_V, + + // right hand combinations. + P_O, + O_U, + U_I, + SLASH_DOT, + DOT_COMMA, + COMMA_M, + + // both hands combinations. + SLASH_Z, + COMMA_X, + J_F, +}; + +enum { + _BASE, + _LOWER, + _RAISE, + _ADJUST, +}; + +// thumb keys. +#define ALT_ENT ALT_T(KC_ENT) +#define SFT_ESC SFT_T(KC_ESC) + +// home row mods. +#define CT_S RCTL_T(KC_S) +#define CT_L RCTL_T(KC_L) +#define SH_A RSFT_T(KC_A) +#define SH_SCLN RSFT_T(KC_SCLN) +#define AL_D RALT_T(KC_D) +#define AL_K RALT_T(KC_K) +#define GU_G RGUI_T(KC_G) +#define GU_H RGUI_T(KC_H) + +// layer toggle. +#define LW_BSPC LT(_LOWER, KC_BSPC) +#define RS_SPC LT(_RAISE, KC_SPC) + +// idk, man. not used, i guess. +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) +#define ADDDD MO(_ADJUST) +#define MUIS MO(_MUIS) + +// common shortcuts for windows and linux that i use. +#define NXTTAB LCTL(KC_PGDN) +#define PRVTAB LCTL(KC_PGUP) +#define UPTAB LCTL(LSFT(KC_PGUP)) +#define DNTAB LCTL(LSFT(KC_PGDN)) +#define NXTWIN LALT(KC_TAB) +#define PRVWIN LALT(LSFT(KC_TAB)) +#define CALDL LCTL(LALT(KC_DELT)) +#define TSKMGR LCTL(LSFT(KC_ESC)) +#define EXPLR LGUI(KC_E) +#define LCKGUI LGUI(KC_L) +#define CONPST LSFT(KC_INS) +#define CLSGUI LALT(KC_F4) + +// left hand combinations. +const uint16_t PROGMEM q_w_combo[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM w_e_combo[] = {KC_W, KC_E, COMBO_END}; +const uint16_t PROGMEM e_r_combo[] = {KC_E, KC_R, COMBO_END}; +const uint16_t PROGMEM z_x_combo[] = {KC_Z, KC_X, COMBO_END}; +const uint16_t PROGMEM x_c_combo[] = {KC_X, KC_C, COMBO_END}; +const uint16_t PROGMEM c_v_combo[] = {KC_C, KC_V, COMBO_END}; + +// right hand combinations. +const uint16_t PROGMEM p_o_combo[] = {KC_P, KC_O, COMBO_END}; +const uint16_t PROGMEM o_u_combo[] = {KC_O, KC_U, COMBO_END}; +const uint16_t PROGMEM u_i_combo[] = {KC_U, KC_I, COMBO_END}; +const uint16_t PROGMEM slash_dot_combo[] = {KC_SLSH, KC_DOT, COMBO_END}; +const uint16_t PROGMEM dot_comma_combo[] = {KC_DOT, KC_COMM,COMBO_END}; +const uint16_t PROGMEM comma_m_combo[] = {KC_COMM, KC_M, COMBO_END}; + +// both hand combinations. +const uint16_t PROGMEM z_slash_combo[] = {KC_Z, KC_SLSH, COMBO_END}; +const uint16_t PROGMEM x_comma_combo[] = {KC_X, KC_COMM, COMBO_END}; +const uint16_t PROGMEM j_f_combo[] = {KC_F, KC_J, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + // left hand combinations. + [Q_W] = COMBO(q_w_combo, KC_TAB), + [W_E] = COMBO(w_e_combo, KC_DQT), + [E_R] = COMBO(e_r_combo, KC_UNDS), + [Z_X] = COMBO(z_x_combo, KC_ENT), + [C_X] = COMBO(x_c_combo, LCTL(KC_W)), + [C_V] = COMBO(c_v_combo, KC_DELT), + + // right hand combinations. + [P_O] = COMBO(p_o_combo, KC_BSPC), + [O_U] = COMBO(o_u_combo, KC_QUOT), + [U_I] = COMBO(u_i_combo, KC_MINS), + [SLASH_DOT] = COMBO(slash_dot_combo, KC_PIPE), + [DOT_COMMA] = COMBO(dot_comma_combo, KC_APP), + [COMMA_M] = COMBO(comma_m_combo, KC_DELT), + + // both hand combinations. + [SLASH_Z] = COMBO(z_slash_combo, KC_HOME), + [COMMA_X] = COMBO(x_comma_combo, KC_END), + [J_F] = COMBO(j_f_combo, KC_ENT), +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = LAYOUT_thumbrow( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + SH_A, CT_S, AL_D, KC_F, GU_G, GU_H, KC_J, AL_K, CT_L, SH_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, + LOWER, KC_BSPC,KC_LSFT,KC_ESC, KC_ENT, KC_LALT,KC_SPC, RAISE +), + +[_RAISE] = LAYOUT_thumbrow( + KC_EXLM,KC_AT, KC_UP, KC_LCBR,KC_RCBR, KC_BSLS,KC_7, KC_8, KC_9, KC_ASTR , + KC_HASH,KC_LEFT,KC_DOWN,KC_RGHT,KC_DLR, KC_EQL, KC_4, KC_5, KC_6, KC_0 , + KC_LBRC,KC_RBRC,KC_LPRN,KC_RPRN,KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS , + LOWER, ADDDD, _______,KC_ESC, KC_ENT, ALT_ENT,RS_SPC, RAISE +), +[_LOWER] = LAYOUT_thumbrow( + KC_ESC, KC_QUES,KC_UNDS,KC_F1, KC_F2, KC_F3, KC_F4, KC_MINS,KC_SLSH,KC_BSPC , + KC_LSFT,KC_TAB, KC_PGUP,KC_F5, KC_F6, KC_F7, KC_F8, KC_HOME,KC_LALT,KC_ENT , + KC_CLCK,KC_SLCK,KC_PGDN,KC_F9, KC_F10, KC_F11, KC_F12, KC_END, KC_INS, KC_SLSH , + LOWER, ADDDD, _______,KC_ESC, KC_ENT, ALT_ENT,ADDDD, RAISE +), +[_ADJUST] = LAYOUT_thumbrow( + _______,EXPLR, KC_UP, PRVTAB, PRVWIN, NXTWIN, NXTTAB, _______,_______,LCKGUI, + TSKMGR, KC_LEFT,KC_DOWN,KC_RGHT,UPTAB, DNTAB, KC_ENT, KC_LGUI,_______,CALDL, + _______,CLSGUI, _______,CONPST, RESET, _______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______,_______ +), +}; diff --git a/keyboards/squiggle/keymaps/default38/readme.md b/keyboards/squiggle/keymaps/default38/readme.md new file mode 100644 index 000000000000..7487986dbf6f --- /dev/null +++ b/keyboards/squiggle/keymaps/default38/readme.md @@ -0,0 +1,6 @@ +# The default keymap for squiggle with thumb row + +Because of the key count in this board is less than 40, it uses combo +extensively. +For example, to input `KC_TAB`, you have to press `KC_Q` and `KC_W` +simultaneously. diff --git a/keyboards/squiggle/keymaps/default38/rules.mk b/keyboards/squiggle/keymaps/default38/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/squiggle/keymaps/default38/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/squiggle/rev1/rev1.h b/keyboards/squiggle/rev1/rev1.h index f2751ab78a15..e1eec2059475 100644 --- a/keyboards/squiggle/rev1/rev1.h +++ b/keyboards/squiggle/rev1/rev1.h @@ -82,3 +82,20 @@ { R24, R23, R22, R21, R20 }, \ { ___, R33, R32, R31, R30 }, \ } + +#define LAYOUT_thumbrow(\ + L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ + L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ + L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ + L31, L32, L33, L34, R30, R31, R32, R33 \ +) \ +{ \ + { L00, L01, L02, L03, L04 }, \ + { L10, L11, L12, L13, L14 }, \ + { L20, L21, L22, L23, L24 }, \ + { ___, L31, L32, L33, L34 }, \ + { R04, R03, R02, R01, R00 }, \ + { R14, R13, R12, R11, R10 }, \ + { R24, R23, R22, R21, R20 }, \ + { ___, R33, R32, R31, R30 }, \ +} From 498d89f4b345e3f5bccbbb8ac82df4eb7c582b1b Mon Sep 17 00:00:00 2001 From: Daniele De Vincenti <34176349+Napan0s@users.noreply.github.com> Date: Wed, 23 Dec 2020 06:59:26 +0100 Subject: [PATCH 022/140] [Docs] Add clarification on use of custom RGB Matrix effect (#11176) * Update feature_rgb_matrix.md Added more clarification on how to use a newly created rgb effect as it was unclear that the prefix 'RGB_MATRIX_CUSTOM_' had to be added. Also included an example consistent with the documentation example. * Update docs/feature_rgb_matrix.md Co-authored-by: Ryan * Update docs/feature_rgb_matrix.md Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Joel Challis --- docs/feature_rgb_matrix.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index f8b0653551f4..a9e711c9f23c 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -306,6 +306,12 @@ To declare new effects, create a new `rgb_matrix_user/kb.inc` that looks somethi `rgb_matrix_user.inc` should go in the root of the keymap directory. `rgb_matrix_kb.inc` should go in the root of the keyboard directory. +To use custom effects in your code, simply prepend `RGB_MATRIX_CUSTOM_` to the effect name specified in `RGB_MATRIX_EFFECT()`. For example, an effect declared as `RGB_MATRIX_EFFECT(my_cool_effect)` would be referenced with: + +```c +rgb_matrix_mode(RGB_MATRIX_CUSTOM_my_cool_effect); +``` + ```c // !!! DO NOT ADD #pragma once !!! // From e52b4797d3b1cec8e7ae8f092e10880c506f0cf0 Mon Sep 17 00:00:00 2001 From: Blake Date: Wed, 23 Dec 2020 06:00:55 +0000 Subject: [PATCH 023/140] [Keyboard] Scarlet numpad VIA support added (#11188) * Initial test version of Scarlet keyboard * First commit of DElec Scarlet * Change to new Draytronics branding * Update to keyboard details Update to keyboard details and link to Draytronics website. * Update keyboards/draytronics/scarlet/scarlet.h Co-authored-by: Joel Challis * Update keyboards/draytronics/scarlet/rules.mk Co-authored-by: Joel Challis * Update keyboards/draytronics/scarlet/readme.md Co-authored-by: Joel Challis * Update keyboards/draytronics/scarlet/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/draytronics/scarlet/config.h Co-authored-by: Joel Challis * Update keymap.c * Update config.h * Update scarlet.h * Update keyboards/draytronics/scarlet/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/draytronics/scarlet/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/draytronics/scarlet/scarlet.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/draytronics/scarlet/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * provide info.json layout to fix qmk configurator * Correctly name keyboard in info.json * Added website and layout key labels to info.json * VIA support. Thanks sirdicholas * Readme change, link to VIA design file. Co-authored-by: Blake Drayson Co-authored-by: Joel Challis Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- .../draytronics/scarlet/keymaps/via/keymap.c | 51 +++++++++++++++++++ .../draytronics/scarlet/keymaps/via/rules.mk | 2 + keyboards/draytronics/scarlet/readme.md | 2 + 3 files changed, 55 insertions(+) create mode 100644 keyboards/draytronics/scarlet/keymaps/via/keymap.c create mode 100644 keyboards/draytronics/scarlet/keymaps/via/rules.mk diff --git a/keyboards/draytronics/scarlet/keymaps/via/keymap.c b/keyboards/draytronics/scarlet/keymaps/via/keymap.c new file mode 100644 index 000000000000..86169ff30bcc --- /dev/null +++ b/keyboards/draytronics/scarlet/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/*Copyright 2020 Blake Drayson / Draytronics + +Special thanks to sirdicholas for the VIA support config files + +VIA Design Config File +https://www.draytronics.co.uk/f_scarlet/draytronics_scarlet_via_config.json + +Contact info@draytronics.co.uk + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_numpad_5x4( + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT), + [1] = LAYOUT_numpad_5x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS ), + [2] = LAYOUT_numpad_5x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS ), + [3] = LAYOUT_numpad_5x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS ), +}; diff --git a/keyboards/draytronics/scarlet/keymaps/via/rules.mk b/keyboards/draytronics/scarlet/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/draytronics/scarlet/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/draytronics/scarlet/readme.md b/keyboards/draytronics/scarlet/readme.md index 4f1c5e0f56df..4a548ec8d636 100644 --- a/keyboards/draytronics/scarlet/readme.md +++ b/keyboards/draytronics/scarlet/readme.md @@ -17,3 +17,5 @@ Flashing example for this keyboard: make draytronics/scarlet:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +VIA design config file avaliable [here](https://www.draytronics.co.uk/f_scarlet/draytronics_scarlet_via_config.json) From 7c0cb186811c7a77e7aa7aabe28b926c33caa58d Mon Sep 17 00:00:00 2001 From: Anthony Marin <38014984+smyjpmu@users.noreply.github.com> Date: Wed, 23 Dec 2020 01:23:29 -0500 Subject: [PATCH 024/140] [Keyboard] HID Technologies vendor id correction (#11225) * add bastyl * no need to copy the folder anymore * clean up according to PR rules * remove via, fix disposition * add reset button on right half * Update readme.md * Update keyboards/hidtech/bastyl/bastyl.h Co-authored-by: Joel Challis * Update keyboards/hidtech/bastyl/rules.mk Co-authored-by: Joel Challis * Update keyboards/hidtech/bastyl/config.h Co-authored-by: Joel Challis * move json, remove via files * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * add GPL to c and h files * Update keyboards/hidtech/bastyl/info.json Change order to match layout macro Co-authored-by: Joel Challis * Update keyboards/hidtech/bastyl/config.h Co-authored-by: Drashna Jaelre * serial define can be ommited, is used by default * Corrected VENDOR_ID Incorrect VENDOR_ID has been updated to the correct one. Co-authored-by: Quentin Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- keyboards/hidtech/bastyl/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/hidtech/bastyl/config.h b/keyboards/hidtech/bastyl/config.h index ed33d845171e..f89e993abe3c 100644 --- a/keyboards/hidtech/bastyl/config.h +++ b/keyboards/hidtech/bastyl/config.h @@ -18,7 +18,7 @@ #pragma once #include "config_common.h" -#define VENDOR_ID 0xA76A +#define VENDOR_ID 0xA8F7 #define PRODUCT_ID 0x1827 #define DEVICE_VER 0x0001 #define MANUFACTURER HID Technologies From d898d4a6fca2eb36105e45ec481e3b4b05e8afd9 Mon Sep 17 00:00:00 2001 From: TerryMathews Date: Wed, 23 Dec 2020 01:27:55 -0500 Subject: [PATCH 025/140] [Keyboard] Portico: Initial support for TKC Portico (#11215) * Portico: Initial support for TKC Portico * Portico: added GPL header to keymap files * Update keyboards/tkc/portico/rules.mk Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/tkc/portico/config.h | 73 +++++++++ keyboards/tkc/portico/info.json | 79 ++++++++++ .../tkc/portico/keymaps/default/keymap.c | 49 ++++++ keyboards/tkc/portico/keymaps/via/keymap.c | 49 ++++++ keyboards/tkc/portico/keymaps/via/rules.mk | 2 + keyboards/tkc/portico/portico.c | 139 ++++++++++++++++++ keyboards/tkc/portico/portico.h | 36 +++++ keyboards/tkc/portico/readme.md | 22 +++ keyboards/tkc/portico/rules.mk | 24 +++ 9 files changed, 473 insertions(+) create mode 100644 keyboards/tkc/portico/config.h create mode 100644 keyboards/tkc/portico/info.json create mode 100644 keyboards/tkc/portico/keymaps/default/keymap.c create mode 100644 keyboards/tkc/portico/keymaps/via/keymap.c create mode 100644 keyboards/tkc/portico/keymaps/via/rules.mk create mode 100644 keyboards/tkc/portico/portico.c create mode 100644 keyboards/tkc/portico/portico.h create mode 100644 keyboards/tkc/portico/readme.md create mode 100644 keyboards/tkc/portico/rules.mk diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h new file mode 100644 index 000000000000..4a7da833f79c --- /dev/null +++ b/keyboards/tkc/portico/config.h @@ -0,0 +1,73 @@ +/* +Copyright 2020 Terry Mathews + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x544B //TK +#define PRODUCT_ID 0x0008 +#define DEVICE_VER 0x0001 +#define MANUFACTURER TKC +#define PRODUCT Portico + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS { B6, C6, C7, F7, D2 } +#define MATRIX_COL_PINS { D3, D5, D4, D6, D7, B4, B5, F6, F5, F4, F1, B0, B1, B2, B3 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_LED_PROCESS_LIMIT 4 +# define RGB_MATRIX_LED_FLUSH_LIMIT 26 +# define DEBOUNCE 3 +# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_KEYPRESSES +# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define DISABLE_RGB_MATRIX_BAND_SAT +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define DISABLE_RGB_MATRIX_SPLASH +# define DISABLE_RGB_MATRIX_MULTISPLASH +# define DISABLE_RGB_MATRIX_SOLID_SPLASH +# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +# define DISABLE_RGB_MATRIX_DIGITAL_RAIN +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 +# define DRIVER_ADDR_1 0x74 +# define DRIVER_ADDR_2 0x77 +# define DRIVER_COUNT 2 +# define DRIVER_1_LED_TOTAL 36 +# define DRIVER_2_LED_TOTAL 31 +# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#endif diff --git a/keyboards/tkc/portico/info.json b/keyboards/tkc/portico/info.json new file mode 100644 index 000000000000..dd8431b71876 --- /dev/null +++ b/keyboards/tkc/portico/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "TKC Portico", + "url": "", + "maintainer": "TerryMathews", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"~", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Home", "x":15, "y":0}, + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"PgUp", "x":15, "y":1}, + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgDn", "x":15, "y":2}, + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"", "x":14, "y":3}, + {"label":"End", "x":15, "y":3}, + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Fn", "x":10, "y":4, "w":1.25}, + {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, + {"label":"", "x":13, "y":4}, + {"label":"", "x":14, "y":4}, + {"label":"", "x":15, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/tkc/portico/keymaps/default/keymap.c b/keyboards/tkc/portico/keymaps/default/keymap.c new file mode 100644 index 000000000000..41034ce6d71f --- /dev/null +++ b/keyboards/tkc/portico/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2020 Terry Mathews + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP, + KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, KC_PGDN, + KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/tkc/portico/keymaps/via/keymap.c b/keyboards/tkc/portico/keymaps/via/keymap.c new file mode 100644 index 000000000000..41034ce6d71f --- /dev/null +++ b/keyboards/tkc/portico/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2020 Terry Mathews + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP, + KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, KC_PGDN, + KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/tkc/portico/keymaps/via/rules.mk b/keyboards/tkc/portico/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/tkc/portico/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c new file mode 100644 index 000000000000..e4fd7410786a --- /dev/null +++ b/keyboards/tkc/portico/portico.c @@ -0,0 +1,139 @@ +/* +Copyright 2020 Terry Mathews + +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 . +*/ + +#include "portico.h" + +#ifdef RGB_MATRIX_ENABLE + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + { 0, C2_1, C3_1, C4_1 }, + { 0, C1_1, C3_2, C4_2 }, + { 0, C1_2, C2_2, C4_3 }, + { 0, C1_3, C2_3, C3_3 }, + { 0, C1_4, C2_4, C3_4 }, + { 0, C1_5, C2_5, C3_5 }, + { 0, C1_6, C2_6, C3_6 }, + { 0, C1_7, C2_7, C3_7 }, + { 0, C1_8, C2_8, C3_8 }, + { 1, C2_1, C3_1, C4_1 }, + { 1, C1_1, C3_2, C4_2 }, + { 1, C1_2, C2_2, C4_3 }, + { 1, C1_3, C2_3, C3_3 }, + { 1, C1_4, C2_4, C3_4 }, + { 1, C1_5, C2_5, C3_5 }, + + { 0, C9_1, C8_1, C7_1 }, + { 0, C9_2, C8_2, C7_2 }, + { 0, C9_3, C8_3, C7_3 }, + { 0, C9_4, C8_4, C7_4 }, + { 0, C9_5, C8_5, C7_5 }, + { 0, C9_6, C8_6, C7_6 }, + { 0, C9_7, C8_7, C6_6 }, + { 0, C9_8, C7_7, C6_7 }, + { 0, C8_8, C7_8, C6_8 }, + { 1, C9_1, C8_1, C7_1 }, + { 1, C9_2, C8_2, C7_2 }, + { 1, C9_3, C8_3, C7_3 }, + { 1, C9_4, C8_4, C7_4 }, + { 1, C9_5, C8_5, C7_5 }, + { 1, C9_6, C8_6, C7_6 }, + + { 0, C1_9, C3_10, C4_10 }, + { 0, C1_10, C2_10, C4_11 }, + { 0, C1_11, C2_11, C3_11 }, + { 0, C1_12, C2_12, C3_12 }, + { 0, C1_13, C2_13, C3_13 }, + { 0, C1_14, C2_14, C3_14 }, + { 0, C1_15, C2_15, C3_15 }, + { 0, C1_16, C2_16, C3_16 }, + { 1, C1_10, C2_10, C4_11 }, + { 1, C1_11, C2_11, C3_11 }, + { 1, C1_12, C2_12, C3_12 }, + { 1, C1_13, C2_13, C3_13 }, + { 1, C1_14, C2_14, C3_14 }, + { 1, C9_7, C8_7, C6_6 }, + + { 0, C2_9, C3_9, C4_9 }, + { 0, C9_12, C8_12, C7_12 }, + { 0, C9_13, C8_13, C7_13 }, + { 0, C9_14, C8_14, C7_14 }, + { 0, C9_15, C8_15, C6_14 }, + { 0, C9_16, C7_15, C6_15 }, + { 1, C2_9, C3_9, C4_9 }, + { 1, C1_9, C3_10, C4_10 }, + { 1, C9_9, C8_9, C7_9 }, + { 1, C9_10, C8_10, C7_10 }, + { 1, C9_11, C8_11, C7_11 }, + { 1, C9_14, C8_14, C7_14 }, + { 1, C1_15, C2_15, C3_15 }, + { 1, C1_16, C2_16, C3_16 }, + + { 0, C9_9, C8_9, C7_9 }, + { 0, C9_10, C8_10, C7_10 }, + { 0, C9_11, C8_11, C7_11 }, + { 0, C8_16, C7_16, C6_16 }, + { 1, C9_12, C8_12, C7_12 }, + { 1, C9_13, C8_13, C7_13 }, + { 1, C9_15, C8_15, C6_14 }, + { 1, C9_16, C7_15, C6_15 }, + { 1, C8_16, C7_16, C6_16 } +}; + +led_config_t g_led_config = { + { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, + { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, + { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 } + }, { + { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, + { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, + { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, + { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, + { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 152, 64 }, { 171, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } + }, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4 + } +}; + +void suspend_power_down_kb(void) { + rgb_matrix_set_suspend_state(true); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + rgb_matrix_set_suspend_state(false); + suspend_wakeup_init_user(); +} + +void rgb_matrix_indicators_kb(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); + } + else { + rgb_matrix_set_color(30, 0x00, 0x00, 0x00); + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_driver.flush(); + } +} +#endif diff --git a/keyboards/tkc/portico/portico.h b/keyboards/tkc/portico/portico.h new file mode 100644 index 000000000000..6aac8fdbb790 --- /dev/null +++ b/keyboards/tkc/portico/portico.h @@ -0,0 +1,36 @@ +/* +Copyright 2020 Terry Mathews + +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E } \ +} diff --git a/keyboards/tkc/portico/readme.md b/keyboards/tkc/portico/readme.md new file mode 100644 index 000000000000..ff73822c8560 --- /dev/null +++ b/keyboards/tkc/portico/readme.md @@ -0,0 +1,22 @@ +# TKC Portico + +![Photo](https://cdn.shopify.com/s/files/1/1679/2319/products/Portico_BoW_1_590x.png?v=1604373859) + +A 65% keyboard kit with per-key and underglow RGB lighting + +* Keyboard Maintainer: [TerryMathews](https://github.com/TerryMathews) +* Hardware Supported: TKC Portico +* Hardware Availability: TBA + + +Reset board into bootloader by holding down Esc key while plugging in USB-C cable. + +Make example for this keyboard (after setting up your build environment): + + make tkc/portico:default + +Flashing example for this keyboard: + + make tkc/portico:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/tkc/portico/rules.mk b/keyboards/tkc/portico/rules.mk new file mode 100644 index 000000000000..f6dc3311c61b --- /dev/null +++ b/keyboards/tkc/portico/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes # Use RGB matrix +RGB_MATRIX_DRIVER = IS31FL3731 From b2ab0af905821a3526ca94a2192578b2c827542e Mon Sep 17 00:00:00 2001 From: Nick Blyumberg Date: Wed, 23 Dec 2020 01:37:01 -0500 Subject: [PATCH 026/140] [Docs] Update links in main README.md (#11284) It looks like features.md was deprecated and content was split into other files. This results in a broken link on the main page which, if removed, would have no impact to the remainder of the documentation. This would also: resolve #9239 resolve #10293 resolve #10447 --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 4fd872688586..d6cde53c90f8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -24,7 +24,7 @@ Totally new to QMK? There are two ways to get started: ## Make It Yours -QMK has lots of [features](features.md) to explore, and a good deal of reference documentation to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md). +QMK has lots of features to explore, and a good deal of reference documentation to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md). ## Need help? From d40d1e4024f3c4909c5d658a2c358f3142073d24 Mon Sep 17 00:00:00 2001 From: Perry Hargrave Date: Tue, 22 Dec 2020 23:25:20 -0800 Subject: [PATCH 027/140] [keymap] Adds tofu65 with split spacebar (#10831) * [keymap] Adds tofu65 with split spacebar * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/readme.md Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/rev2.h Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * keymap:tofu65: remove unneeded config.h * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan Co-authored-by: Ryan --- .../rev2/keymaps/ansi_split_space/keymap.c | 59 +++++++++++++++++++ .../rev2/keymaps/ansi_split_space/readme.md | 1 + keyboards/kbdfans/kbd67/rev2/rev2.h | 15 +++++ 3 files changed, 75 insertions(+) create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/readme.md diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c b/keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c new file mode 100644 index 000000000000..551e04cbf996 --- /dev/null +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c @@ -0,0 +1,59 @@ +/* Copyright 2018 'mechmerlin' + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|End | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | fn |win| space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ +[0] = LAYOUT_65_ansi_split_space( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_ESC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + MO(2), KC_LGUI, KC_LALT, MO(1), KC_LGUI, KC_SPC, KC_RALT, MO(2), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + + /* Keymap Fn Layer + * ,----------------------------------------------------------------. + * |~ `|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Del |Ins | + * |----------------------------------------------------------------| + * | | |Up | | | | | |PSc|SLk|Pau|Up | | | | + * |----------------------------------------------------------------| + * | |Lef|Dow|Rig| | | | |Hom|PUp|Lef|Rig| | | + * |----------------------------------------------------------------| + * | | | | | | | | |End|PDn|Dow| |PUp| | + * |----------------------------------------------------------------| + * | | | | | | | |Hom|PDn|End | + * `----------------------------------------------------------------' + */ +[1] = LAYOUT_65_ansi_split_space( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,KC_INS, + _______,_______, KC_UP,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS, KC_UP,_______, _______,_______, + _______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,_______,_______,KC_HOME,KC_PGUP,KC_LEFT,KC_RGHT, _______,_______, + _______,_______,_______,_______,_______,_______,_______,_______, KC_END,KC_PGDN,KC_DOWN, _______,KC_PGUP,_______, + _______, _______, _______,_______, _______, _______, _______,_______,_______,KC_HOME,KC_PGDN, KC_END), + +}; diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/readme.md b/keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/readme.md new file mode 100644 index 000000000000..980bf97c2014 --- /dev/null +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/readme.md @@ -0,0 +1 @@ +# Keymap for kbd67 rev.2 tofu65, with split spacebar diff --git a/keyboards/kbdfans/kbd67/rev2/rev2.h b/keyboards/kbdfans/kbd67/rev2/rev2.h index 5eb76243ad01..76bb8f71f94e 100644 --- a/keyboards/kbdfans/kbd67/rev2/rev2.h +++ b/keyboards/kbdfans/kbd67/rev2/rev2.h @@ -101,3 +101,18 @@ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F }, \ } + +#define LAYOUT_65_ansi_split_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F }, \ + { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \ + { K40, K41, KC_NO, K43, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} From cc4b93b330e3cfa50b00dd6edea3f9abcf15c05d Mon Sep 17 00:00:00 2001 From: Barry Huang Date: Wed, 23 Dec 2020 17:22:31 +0800 Subject: [PATCH 028/140] Helen 80 addition (#11133) Co-authored-by: james sa Co-authored-by: James Sa --- keyboards/playkbtw/helen80/config.h | 74 +++++++++++++ keyboards/playkbtw/helen80/helen80.c | 20 ++++ keyboards/playkbtw/helen80/helen80.h | 38 +++++++ keyboards/playkbtw/helen80/info.json | 101 ++++++++++++++++++ .../playkbtw/helen80/keymaps/default/keymap.c | 44 ++++++++ .../helen80/keymaps/default/readme.md | 3 + .../playkbtw/helen80/keymaps/via/keymap.c | 44 ++++++++ .../playkbtw/helen80/keymaps/via/rules.mk | 2 + keyboards/playkbtw/helen80/readme.md | 17 +++ keyboards/playkbtw/helen80/rules.mk | 30 ++++++ 10 files changed, 373 insertions(+) create mode 100644 keyboards/playkbtw/helen80/config.h create mode 100644 keyboards/playkbtw/helen80/helen80.c create mode 100644 keyboards/playkbtw/helen80/helen80.h create mode 100644 keyboards/playkbtw/helen80/info.json create mode 100644 keyboards/playkbtw/helen80/keymaps/default/keymap.c create mode 100644 keyboards/playkbtw/helen80/keymaps/default/readme.md create mode 100644 keyboards/playkbtw/helen80/keymaps/via/keymap.c create mode 100644 keyboards/playkbtw/helen80/keymaps/via/rules.mk create mode 100644 keyboards/playkbtw/helen80/readme.md create mode 100644 keyboards/playkbtw/helen80/rules.mk diff --git a/keyboards/playkbtw/helen80/config.h b/keyboards/playkbtw/helen80/config.h new file mode 100644 index 000000000000..d2a7bc8b9821 --- /dev/null +++ b/keyboards/playkbtw/helen80/config.h @@ -0,0 +1,74 @@ +/* Copyright 2020 Play Keyboard + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x706B +#define PRODUCT_ID 0x4845 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Play Keyboard +#define PRODUCT Helen 80 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { E6, B7, D4, F0, D6, D7 } +#define MATRIX_COL_PINS { D1, D0, F7, F6, F5, D5, D3, D2, C7, C6, B5, F4, F1, B4, B0 } + +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B6 +// #define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 87 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 180 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#endif + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ \ No newline at end of file diff --git a/keyboards/playkbtw/helen80/helen80.c b/keyboards/playkbtw/helen80/helen80.c new file mode 100644 index 000000000000..4f943ccd3146 --- /dev/null +++ b/keyboards/playkbtw/helen80/helen80.c @@ -0,0 +1,20 @@ +/* Copyright 2020 Play Keyboard + * + * 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 . + */ + +#include "helen80.h" + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ \ No newline at end of file diff --git a/keyboards/playkbtw/helen80/helen80.h b/keyboards/playkbtw/helen80/helen80.h new file mode 100644 index 000000000000..37bb2f85c515 --- /dev/null +++ b/keyboards/playkbtw/helen80/helen80.h @@ -0,0 +1,38 @@ +/* Copyright 2020 Play Keyboard + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_tkl_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K3D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K5B, K5C, K3E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K5D, K5E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E }, \ +} + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/playkbtw/helen80/info.json b/keyboards/playkbtw/helen80/info.json new file mode 100644 index 000000000000..941ecf640e70 --- /dev/null +++ b/keyboards/playkbtw/helen80/info.json @@ -0,0 +1,101 @@ +{ + "keyboard_name": "helen80", + "url": "", + "maintainer": "yj7272098", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"label":"K00 (E6,D1)", "x":0, "y":0}, + {"label":"K01 (E6,D0)", "x":2, "y":0}, + {"label":"K02 (E6,F7)", "x":3, "y":0}, + {"label":"K03 (E6,F6)", "x":4, "y":0}, + {"label":"K04 (E6,F5)", "x":5, "y":0}, + {"label":"K05 (E6,D5)", "x":6.5, "y":0}, + {"label":"K06 (E6,D3)", "x":7.5, "y":0}, + {"label":"K07 (E6,D2)", "x":8.5, "y":0}, + {"label":"K08 (E6,C7)", "x":9.5, "y":0}, + {"label":"K09 (E6,C6)", "x":11, "y":0}, + {"label":"K0A (E6,B5)", "x":12, "y":0}, + {"label":"K0B (E6,F4)", "x":13, "y":0}, + {"label":"K0C (E6,F1)", "x":14, "y":0}, + {"label":"K0D (E6,B4)", "x":15.25, "y":0}, + {"label":"K0E (E6,B0)", "x":16.25, "y":0}, + {"label":"K3D (F0,B4)", "x":17.25, "y":0}, + {"label":"K10 (B7,D1)", "x":0, "y":1.5}, + {"label":"K11 (B7,D0)", "x":1, "y":1.5}, + {"label":"K12 (B7,F7)", "x":2, "y":1.5}, + {"label":"K13 (B7,F6)", "x":3, "y":1.5}, + {"label":"K14 (B7,F5)", "x":4, "y":1.5}, + {"label":"K15 (B7,D5)", "x":5, "y":1.5}, + {"label":"K16 (B7,D3)", "x":6, "y":1.5}, + {"label":"K17 (B7,D2)", "x":7, "y":1.5}, + {"label":"K18 (B7,C7)", "x":8, "y":1.5}, + {"label":"K19 (B7,C6)", "x":9, "y":1.5}, + {"label":"K1A (B7,B5)", "x":10, "y":1.5}, + {"label":"K1B (B7,F4)", "x":11, "y":1.5}, + {"label":"K1C (B7,F1)", "x":12, "y":1.5}, + {"label":"K1E (B7,B0)", "x":13, "y":1.5, "w":2}, + {"label":"K5B (D7,F4)", "x":15.25, "y":1.5}, + {"label":"K5C (D7,F1)", "x":16.25, "y":1.5}, + {"label":"K3E (F0,B0)", "x":17.25, "y":1.5}, + {"label":"K20 (D4,D1)", "x":0, "y":2.5, "w":1.5}, + {"label":"K21 (D4,D0)", "x":1.5, "y":2.5}, + {"label":"K22 (D4,F7)", "x":2.5, "y":2.5}, + {"label":"K23 (D4,F6)", "x":3.5, "y":2.5}, + {"label":"K24 (D4,F5)", "x":4.5, "y":2.5}, + {"label":"K25 (D4,D5)", "x":5.5, "y":2.5}, + {"label":"K26 (D4,D3)", "x":6.5, "y":2.5}, + {"label":"K27 (D4,D2)", "x":7.5, "y":2.5}, + {"label":"K28 (D4,C7)", "x":8.5, "y":2.5}, + {"label":"K29 (D4,C6)", "x":9.5, "y":2.5}, + {"label":"K2A (D4,B5)", "x":10.5, "y":2.5}, + {"label":"K2B (D4,F4)", "x":11.5, "y":2.5}, + {"label":"K2C (D4,F1)", "x":12.5, "y":2.5}, + {"label":"K2D (D4,B4)", "x":13.5, "y":2.5, "w":1.5}, + {"label":"K2E (D4,B0)", "x":15.25, "y":2.5}, + {"label":"K5D (D7,B4)", "x":16.25, "y":2.5}, + {"label":"K5E (D7,B0)", "x":17.25, "y":2.5}, + {"label":"K30 (F0,D1)", "x":0, "y":3.5, "w":1.75}, + {"label":"K31 (F0,D0)", "x":1.75, "y":3.5}, + {"label":"K32 (F0,F7)", "x":2.75, "y":3.5}, + {"label":"K33 (F0,F6)", "x":3.75, "y":3.5}, + {"label":"K34 (F0,F5)", "x":4.75, "y":3.5}, + {"label":"K35 (F0,D5)", "x":5.75, "y":3.5}, + {"label":"K36 (F0,D3)", "x":6.75, "y":3.5}, + {"label":"K37 (F0,D2)", "x":7.75, "y":3.5}, + {"label":"K38 (F0,C7)", "x":8.75, "y":3.5}, + {"label":"K39 (F0,C6)", "x":9.75, "y":3.5}, + {"label":"K3A (F0,B5)", "x":10.75, "y":3.5}, + {"label":"K3B (F0,F4)", "x":11.75, "y":3.5}, + {"label":"K3C (F0,F1)", "x":12.75, "y":3.5, "w":2.25}, + {"label":"K40 (D6,D1)", "x":0, "y":4.5, "w":2.25}, + {"label":"K42 (D6,F7)", "x":2.25, "y":4.5}, + {"label":"K43 (D6,F6)", "x":3.25, "y":4.5}, + {"label":"K44 (D6,F5)", "x":4.25, "y":4.5}, + {"label":"K45 (D6,D5)", "x":5.25, "y":4.5}, + {"label":"K46 (D6,D3)", "x":6.25, "y":4.5}, + {"label":"K47 (D6,D2)", "x":7.25, "y":4.5}, + {"label":"K48 (D6,C7)", "x":8.25, "y":4.5}, + {"label":"K49 (D6,C6)", "x":9.25, "y":4.5}, + {"label":"K4A (D6,B5)", "x":10.25, "y":4.5}, + {"label":"K4B (D6,F4)", "x":11.25, "y":4.5}, + {"label":"K4C (D6,F1)", "x":12.25, "y":4.5, "w":2.75}, + {"label":"K4E (D6,B0)", "x":16.25, "y":4.5}, + {"label":"K50 (D7,D1)", "x":0, "y":5.5, "w":1.25}, + {"label":"K51 (D7,D0)", "x":1.25, "y":5.5, "w":1.25}, + {"label":"K52 (D7,F7)", "x":2.5, "y":5.5, "w":1.25}, + {"label":"K53 (D7,F6)", "x":3.75, "y":5.5, "w":6.25}, + {"label":"K54 (D7,F5)", "x":10, "y":5.5, "w":1.25}, + {"label":"K55 (D7,D5)", "x":11.25, "y":5.5, "w":1.25}, + {"label":"K56 (D7,D3)", "x":12.5, "y":5.5, "w":1.25}, + {"label":"K57 (D7,D2)", "x":13.75, "y":5.5, "w":1.25}, + {"label":"K58 (D7,C7)", "x":15.25, "y":5.5}, + {"label":"K59 (D7,C6)", "x":16.25, "y":5.5}, + {"label":"K5A (D7,B5)", "x":17.25, "y":5.5} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} \ No newline at end of file diff --git a/keyboards/playkbtw/helen80/keymaps/default/keymap.c b/keyboards/playkbtw/helen80/keymaps/default/keymap.c new file mode 100644 index 000000000000..13982b0ddf61 --- /dev/null +++ b/keyboards/playkbtw/helen80/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 Play Keyboard + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum _layer { + _BASE, + _RGB +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_RGB),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_RGB] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/playkbtw/helen80/keymaps/default/readme.md b/keyboards/playkbtw/helen80/keymaps/default/readme.md new file mode 100644 index 000000000000..396c6ee73093 --- /dev/null +++ b/keyboards/playkbtw/helen80/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default Helen 80 Layout + +This is the default tkl_ansi layout that comes flashed on every Helen 80. \ No newline at end of file diff --git a/keyboards/playkbtw/helen80/keymaps/via/keymap.c b/keyboards/playkbtw/helen80/keymaps/via/keymap.c new file mode 100644 index 000000000000..13982b0ddf61 --- /dev/null +++ b/keyboards/playkbtw/helen80/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 Play Keyboard + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum _layer { + _BASE, + _RGB +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_RGB),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_RGB] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/playkbtw/helen80/keymaps/via/rules.mk b/keyboards/playkbtw/helen80/keymaps/via/rules.mk new file mode 100644 index 000000000000..7f1f849dce40 --- /dev/null +++ b/keyboards/playkbtw/helen80/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/playkbtw/helen80/readme.md b/keyboards/playkbtw/helen80/readme.md new file mode 100644 index 000000000000..ca68961b275b --- /dev/null +++ b/keyboards/playkbtw/helen80/readme.md @@ -0,0 +1,17 @@ +# Helen 80 + +![Helen 80](https://cdn.store-assets.com/s/409567/i/18788640.png) + +A 80% RGB hotswap keyboard kit made by Play Keyboard. + +* Keyboard Maintainer: [Barry Huang](https://github.com/yj7272098) +* Hardware Supported: Helen 80 +* Hardware Availability: [Play Keyboard](http://play-keyboard.store/) + +Make example for this keyboard (after setting up your build environment): + + make playkbtw/helen80:default + +You can get into bootloader by pressing the reset button from the back of PCB. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/playkbtw/helen80/rules.mk b/keyboards/playkbtw/helen80/rules.mk new file mode 100644 index 000000000000..d6c56d2678e0 --- /dev/null +++ b/keyboards/playkbtw/helen80/rules.mk @@ -0,0 +1,30 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes + +KEY_LOCK_ENABLE = no # Enable KC_LOCK support + +LAYOUTS = tkl_ansi + +# generated by KBFirmware JSON to QMK Parser +# https://noroadsleft.github.io/kbf_qmk_converter/ \ No newline at end of file From 9136c122f80983e9f6b543241b7912b71117d928 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Wed, 23 Dec 2020 17:59:57 +0100 Subject: [PATCH 029/140] docs: add Gentoo to newbs_getting_started.md (#11241) --- docs/newbs_getting_started.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index eee087e4c068..5eb99377c176 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -66,6 +66,7 @@ You will need to install Git and Python. It's very likely that you already have * Void: `sudo xbps-install -y git python3-pip` * Solus: `sudo eopkg -y install git python3` * Sabayon: `sudo equo install dev-vcs/git dev-python/pip` +* Gentoo: `sudo emerge dev-vcs/git dev-python/pip` Install the global CLI to bootstrap your system: From 3e3f93c971aec877efbee71da76b48f3f006e97c Mon Sep 17 00:00:00 2001 From: Thierry Michel Philippe Kleist Date: Thu, 24 Dec 2020 02:07:56 +0100 Subject: [PATCH 030/140] [Keyboard] misterknife/knife66_iso (#11010) * feat: added new variant of knife66 --- keyboards/misterknife/knife66_iso/chconf.h | 714 ++++++++++++++++++ keyboards/misterknife/knife66_iso/config.h | 55 ++ keyboards/misterknife/knife66_iso/halconf.h | 525 +++++++++++++ keyboards/misterknife/knife66_iso/info.json | 84 +++ .../knife66_iso/keymaps/default/keymap.c | 45 ++ .../misterknife/knife66_iso/knife66_iso.c | 17 + .../misterknife/knife66_iso/knife66_iso.h | 35 + keyboards/misterknife/knife66_iso/mcuconf.h | 176 +++++ keyboards/misterknife/knife66_iso/readme.md | 18 + keyboards/misterknife/knife66_iso/rules.mk | 23 + 10 files changed, 1692 insertions(+) create mode 100644 keyboards/misterknife/knife66_iso/chconf.h create mode 100644 keyboards/misterknife/knife66_iso/config.h create mode 100644 keyboards/misterknife/knife66_iso/halconf.h create mode 100644 keyboards/misterknife/knife66_iso/info.json create mode 100644 keyboards/misterknife/knife66_iso/keymaps/default/keymap.c create mode 100644 keyboards/misterknife/knife66_iso/knife66_iso.c create mode 100644 keyboards/misterknife/knife66_iso/knife66_iso.h create mode 100644 keyboards/misterknife/knife66_iso/mcuconf.h create mode 100644 keyboards/misterknife/knife66_iso/readme.md create mode 100644 keyboards/misterknife/knife66_iso/rules.mk diff --git a/keyboards/misterknife/knife66_iso/chconf.h b/keyboards/misterknife/knife66_iso/chconf.h new file mode 100644 index 000000000000..03f63da36a88 --- /dev/null +++ b/keyboards/misterknife/knife66_iso/chconf.h @@ -0,0 +1,714 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file rt/templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ +#define _CHIBIOS_RT_CONF_VER_6_0_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_ST_RESOLUTION) +#define CH_CFG_ST_RESOLUTION 32 +#endif + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_CFG_ST_FREQUENCY) +#define CH_CFG_ST_FREQUENCY 10000 +#endif + +/** + * @brief Time intervals data size. + * @note Allowed values are 16, 32 or 64 bits. + */ +#if !defined(CH_CFG_INTERVALS_SIZE) +#define CH_CFG_INTERVALS_SIZE 32 +#endif + +/** + * @brief Time types data size. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_TIME_TYPES_SIZE) +#define CH_CFG_TIME_TYPES_SIZE 32 +#endif + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#if !defined(CH_CFG_ST_TIMEDELTA) +#define CH_CFG_ST_TIMEDELTA 2 +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#if !defined(CH_CFG_TIME_QUANTUM) +#define CH_CFG_TIME_QUANTUM 0 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#if !defined(CH_CFG_MEMCORE_SIZE) +#define CH_CFG_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#if !defined(CH_CFG_NO_IDLE_THREAD) +#define CH_CFG_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) +#define CH_CFG_OPTIMIZE_SPEED FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_TM) +#define CH_CFG_USE_TM FALSE +#endif + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_REGISTRY) +#define CH_CFG_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_WAITEXIT) +#define CH_CFG_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_SEMAPHORES) +#define CH_CFG_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MUTEXES) +#define CH_CFG_USE_MUTEXES TRUE +#endif + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_CONDVARS) +#define CH_CFG_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_EVENTS) +#define CH_CFG_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MESSAGES) +#define CH_CFG_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_MAILBOXES) +#define CH_CFG_USE_MAILBOXES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCORE) +#define CH_CFG_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_CFG_USE_HEAP) +#define CH_CFG_USE_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMPOOLS) +#define CH_CFG_USE_MEMPOOLS FALSE +#endif + +/** + * @brief Objects FIFOs APIs. + * @details If enabled then the objects FIFOs APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_OBJ_FIFOS) +#define CH_CFG_USE_OBJ_FIFOS FALSE +#endif + +/** + * @brief Pipes APIs. + * @details If enabled then the pipes APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_PIPES) +#define CH_CFG_USE_PIPES FALSE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#if !defined(CH_CFG_USE_DYNAMIC) +#define CH_CFG_USE_DYNAMIC FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Objects factory options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Objects Factory APIs. + * @details If enabled then the objects factory APIs are included in the + * kernel. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_CFG_USE_FACTORY) +#define CH_CFG_USE_FACTORY FALSE +#endif + +/** + * @brief Maximum length for object names. + * @details If the specified length is zero then the name is stored by + * pointer but this could have unintended side effects. + */ +#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) +#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 +#endif + +/** + * @brief Enables the registry of generic objects. + */ +#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) +#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE +#endif + +/** + * @brief Enables factory for generic buffers. + */ +#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE +#endif + +/** + * @brief Enables factory for semaphores. + */ +#if !defined(CH_CFG_FACTORY_SEMAPHORES) +#define CH_CFG_FACTORY_SEMAPHORES FALSE +#endif + +/** + * @brief Enables factory for mailboxes. + */ +#if !defined(CH_CFG_FACTORY_MAILBOXES) +#define CH_CFG_FACTORY_MAILBOXES FALSE +#endif + +/** + * @brief Enables factory for objects FIFOs. + */ +#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +#define CH_CFG_FACTORY_OBJ_FIFOS FALSE +#endif + +/** + * @brief Enables factory for Pipes. + */ +#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) +#define CH_CFG_FACTORY_PIPES FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_STATISTICS) +#define CH_DBG_STATISTICS FALSE +#endif + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_MASK) +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED +#endif + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) +#define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) +#define CH_DBG_ENABLE_STACK_CHECK FALSE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) +#define CH_DBG_FILL_THREADS FALSE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#if !defined(CH_DBG_THREADS_PROFILING) +#define CH_DBG_THREADS_PROFILING FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System structure extension. + * @details User fields added to the end of the @p ch_system_t structure. + */ +#define CH_CFG_SYSTEM_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief System initialization hook. + * @details User initialization code added to the @p chSysInit() function + * just before interrupts are enabled globally. + */ +#define CH_CFG_SYSTEM_INIT_HOOK() { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p _thread_init() function. + * + * @note It is invoked from within @p _thread_init() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/misterknife/knife66_iso/config.h b/keyboards/misterknife/knife66_iso/config.h new file mode 100644 index 000000000000..0c390e859345 --- /dev/null +++ b/keyboards/misterknife/knife66_iso/config.h @@ -0,0 +1,55 @@ +/* +Copyright 2020 Thierry Kleist + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xAC11 +#define PRODUCT_ID 0x4173 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MisterKnife +#define PRODUCT Knife66 ISO + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_COL_PINS { B2, B1, B0, A7, A6, A5, A4, B9, B8, B7, B6, B5, B4, B3, A15 } +#define MATRIX_ROW_PINS { B15, A8, A3, A2, A1 } +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN A9 + +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_SLEEP +#define RGBLED_NUM 6 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 160 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define WS2812_PWM_DRIVER PWMD1 // default: PWMD1 +#define WS2812_PWM_CHANNEL 2 // default: 2 +#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. +#define WS2812_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. diff --git a/keyboards/misterknife/knife66_iso/halconf.h b/keyboards/misterknife/knife66_iso/halconf.h new file mode 100644 index 000000000000..adb1a907154b --- /dev/null +++ b/keyboards/misterknife/knife66_iso/halconf.h @@ -0,0 +1,525 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef HALCONF_H +#define HALCONF_H + +#define _CHIBIOS_HAL_CONF_ +#define _CHIBIOS_HAL_CONF_VER_7_0_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the cryptographic subsystem. + */ +#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) +#define HAL_USE_CRY FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C TRUE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM TRUE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SIO subsystem. + */ +#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) +#define HAL_USE_SIO FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI TRUE +#endif + +/** + * @brief Enables the TRNG subsystem. + */ +#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) +#define HAL_USE_TRNG FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/** + * @brief Enables the WSPI subsystem. + */ +#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) +#define HAL_USE_WSPI FALSE +#endif + +/*===========================================================================*/ +/* PAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) +#define PAL_USE_CALLBACKS FALSE +#endif + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) +#define PAL_USE_WAIT FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/** + * @brief Enforces the driver to use direct callbacks rather than OSAL events. + */ +#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) +#define CAN_ENFORCE_USE_CALLBACKS FALSE +#endif + +/*===========================================================================*/ +/* CRY driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the SW fall-back of the cryptographic driver. + * @details When enabled, this option, activates a fall-back software + * implementation for algorithms not supported by the underlying + * hardware. + * @note Fall-back implementations may not be present for all algorithms. + */ +#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_USE_FALLBACK FALSE +#endif + +/** + * @brief Makes the driver forcibly use the fall-back implementations. + */ +#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_ENFORCE_FALLBACK FALSE +#endif + +/*===========================================================================*/ +/* DAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) +#define DAC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define DAC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the zero-copy API. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/** + * @brief OCR initialization constant for V20 cards. + */ +#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) +#define SDC_INIT_OCR_V20 0x50FF8000U +#endif + +/** + * @brief OCR initialization constant for non-V20 cards. + */ +#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) +#define SDC_INIT_OCR 0x80100000U +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 16 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 256 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 1 +#endif + +/** + * @brief Serial over USB number of buffers. + * @note The default is 2 buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_NUMBER 2 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables circular transfers APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) +#define SPI_USE_CIRCULAR FALSE +#endif + + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/** + * @brief Handling method for SPI CS line. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + +/*===========================================================================*/ +/* UART driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) +#define UART_USE_WAIT FALSE +#endif + +/** + * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define UART_USE_MUTUAL_EXCLUSION FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +/*===========================================================================*/ +/* WSPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) +#define WSPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define WSPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* HALCONF_H */ + +/** @} */ diff --git a/keyboards/misterknife/knife66_iso/info.json b/keyboards/misterknife/knife66_iso/info.json new file mode 100644 index 000000000000..3597f59386bb --- /dev/null +++ b/keyboards/misterknife/knife66_iso/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "Knife66_iso", + "url": "", + "maintainer": "qmk", + "width": 16.5, + "height": 5.25, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "x": 0, "y": 0 }, + { "x": 1, "y": 0 }, + { "x": 2, "y": 0 }, + { "x": 3, "y": 0 }, + { "x": 4, "y": 0 }, + { "x": 5, "y": 0 }, + { "x": 6, "y": 0 }, + { "x": 7, "y": 0 }, + { "x": 8, "y": 0 }, + { "x": 9, "y": 0 }, + { "x": 10, "y": 0 }, + { "x": 11, "y": 0 }, + { "x": 12, "y": 0 }, + { "x": 13, "y": 0 }, + { "x": 14, "y": 0 }, + { "x": 15.5, "y": 0 }, + { "x": 0, "y": 1, "w": 1.5 }, + { "x": 1.5, "y": 1 }, + { "x": 2.5, "y": 1 }, + { "x": 3.5, "y": 1 }, + { "x": 4.5, "y": 1 }, + { "x": 5.5, "y": 1 }, + { "x": 6.5, "y": 1 }, + { "x": 7.5, "y": 1 }, + { "x": 8.5, "y": 1 }, + { "x": 9.5, "y": 1 }, + { "x": 10.5, "y": 1 }, + { "x": 11.5, "y": 1 }, + { "x": 12.5, "y": 1 }, + { "x": 15.5, "y": 1 }, + { "x": 0, "y": 2, "w": 1.75 }, + { "x": 1.75, "y": 2 }, + { "x": 2.75, "y": 2 }, + { "x": 3.75, "y": 2 }, + { "x": 4.75, "y": 2 }, + { "x": 5.75, "y": 2 }, + { "x": 6.75, "y": 2 }, + { "x": 7.75, "y": 2 }, + { "x": 8.75, "y": 2 }, + { "x": 9.75, "y": 2 }, + { "x": 10.75, "y": 2 }, + { "x": 11.75, "y": 2 }, + { "x": 12.75, "y": 2 }, + { "x": 13.75, "y": 1, "w": 1.25, "h": 2 }, + { "x": 15.5, "y": 2 }, + { "x": 0, "y": 3, "w": 1.25 }, + { "x": 1.25, "y": 3 }, + { "x": 2.25, "y": 3 }, + { "x": 3.25, "y": 3 }, + { "x": 4.25, "y": 3 }, + { "x": 5.25, "y": 3 }, + { "x": 6.25, "y": 3 }, + { "x": 7.25, "y": 3 }, + { "x": 8.25, "y": 3 }, + { "x": 9.25, "y": 3 }, + { "x": 10.25, "y": 3 }, + { "x": 11.25, "y": 3 }, + { "x": 12.25, "y": 3, "w": 1.75 }, + { "x": 14.25, "y": 3.25 }, + { "x": 15.5, "y": 3 }, + { "x": 0, "y": 4, "w": 1.25 }, + { "x": 2.25, "y": 4 }, + { "x": 3.25, "y": 4, "w": 1.25 }, + { "x": 4.5, "y": 4, "w": 2.25 }, + { "x": 6.75, "y": 4, "w": 2.75 }, + { "x": 9.5, "y": 4, "w": 1.25 }, + { "x": 10.75, "y": 4 }, + { "x": 11.75, "y": 4, "w": 1.25 }, + { "x": 13.25, "y": 4.25 }, + { "x": 14.25, "y": 4.25 }, + { "x": 15.25, "y": 4.25 } + ] + } + } +} diff --git a/keyboards/misterknife/knife66_iso/keymaps/default/keymap.c b/keyboards/misterknife/knife66_iso/keymaps/default/keymap.c new file mode 100644 index 000000000000..81b30bb263ff --- /dev/null +++ b/keyboards/misterknife/knife66_iso/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2020 Thierry Kleist + +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 . +*/ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_END, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_PGUP, + KC_LSFT, KC_GRAVE, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN] = LAYOUT_all( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, RGB_TOG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, RGB_MOD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, RGB_SPI, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_TRNS ), +}; + +#ifdef RGBLIGHT_ENABLE +void keyboard_post_init_user(void) { + rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL+1); +} +#endif diff --git a/keyboards/misterknife/knife66_iso/knife66_iso.c b/keyboards/misterknife/knife66_iso/knife66_iso.c new file mode 100644 index 000000000000..fe966b0ee7f6 --- /dev/null +++ b/keyboards/misterknife/knife66_iso/knife66_iso.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Thierry Kleist + * + * 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 . + */ + + #include "knife66_iso.h" diff --git a/keyboards/misterknife/knife66_iso/knife66_iso.h b/keyboards/misterknife/knife66_iso/knife66_iso.h new file mode 100644 index 000000000000..6b95a29d7f21 --- /dev/null +++ b/keyboards/misterknife/knife66_iso/knife66_iso.h @@ -0,0 +1,35 @@ +/* Copyright 2020 Thierry Kleist + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K114, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K214, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K113, K314, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K414, \ + K400, K401, K402, K404, K407, K408, K409, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, ____, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, ____, K404, ____, ____, K407, K408, K409, K410, K411, K412, K413, K414 } \ +} diff --git a/keyboards/misterknife/knife66_iso/mcuconf.h b/keyboards/misterknife/knife66_iso/mcuconf.h new file mode 100644 index 000000000000..00292cab1f6d --- /dev/null +++ b/keyboards/misterknife/knife66_iso/mcuconf.h @@ -0,0 +1,176 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +/* + * STM32F0xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 3...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F0xx_MCUCONF +// #define STM32F070xB + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_HSI_ENABLED TRUE +#define STM32_HSI14_ENABLED TRUE +#define STM32_HSI48_ENABLED FALSE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED FALSE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 +#define STM32_PREDIV_VALUE 1 +#define STM32_PLLMUL_VALUE 12 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE STM32_PPRE_DIV1 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_USBSW STM32_USBSW_HSI48 +#define STM32_CECSW STM32_CECSW_HSI +#define STM32_I2C1SW STM32_I2C1SW_HSI +#define STM32_USART1SW STM32_USART1SW_PCLK +#define STM32_RTCSEL STM32_RTCSEL_LSI + +/* + * ADC driver system settings. + */ +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 2 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM14 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 2 +#define STM32_GPT_TIM2_IRQ_PRIORITY 2 +#define STM32_GPT_TIM3_IRQ_PRIORITY 2 +#define STM32_GPT_TIM14_IRQ_PRIORITY 2 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 TRUE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_IRQ_PRIORITY 3 +#define STM32_I2C_I2C2_IRQ_PRIORITY 3 +#define STM32_I2C_USE_DMA TRUE +#define STM32_I2C_I2C1_DMA_PRIORITY 1 +#define STM32_I2C_I2C2_DMA_PRIORITY 1 +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 3 +#define STM32_ICU_TIM2_IRQ_PRIORITY 3 +#define STM32_ICU_TIM3_IRQ_PRIORITY 3 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 TRUE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_TIM1_IRQ_PRIORITY 3 +#define STM32_PWM_TIM2_IRQ_PRIORITY 3 +#define STM32_PWM_TIM3_IRQ_PRIORITY 3 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USART1_PRIORITY 3 +#define STM32_SERIAL_USART2_PRIORITY 3 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 TRUE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 2 +#define STM32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USART1_IRQ_PRIORITY 3 +#define STM32_UART_USART2_IRQ_PRIORITY 3 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_USB1 TRUE +#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE +#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/misterknife/knife66_iso/readme.md b/keyboards/misterknife/knife66_iso/readme.md new file mode 100644 index 000000000000..27c60dfadecf --- /dev/null +++ b/keyboards/misterknife/knife66_iso/readme.md @@ -0,0 +1,18 @@ +# Knife66 ISO + +![Knife66_iso](https://i.imgur.com/p7G2g81l.png) + +This is a replacement board for the CA66 keyboard + +* Keyboard Maintainer: [afewyards](https://github.com/afewyards) +* Hardware Availability: [Geekhack](https://geekhack.org/index.php?topic=107331.0) + +Make example for this keyboard (after setting up your build environment): + + make misterknife/knife66_iso:default + +Flashing example for this keyboard: + + make misterknife/knife66_iso:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/misterknife/knife66_iso/rules.mk b/keyboards/misterknife/knife66_iso/rules.mk new file mode 100644 index 000000000000..540a423f2e4b --- /dev/null +++ b/keyboards/misterknife/knife66_iso/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F072 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE +WS2812_DRIVER = pwm From 6a292e11d3faddbdbed8175a97aaed00a3469afa Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 24 Dec 2020 13:36:44 +1100 Subject: [PATCH 031/140] `qmk fileformat`: only print complaints, and fix some of them (#11278) --- keyboards/kc60/keymaps/noroadsleft/readme_git.md | 4 ++-- keyboards/lily58/keymaps/chuan/keymap.c | 4 ++-- keyboards/lily58/keymaps/default/keymap.c | 6 +++--- keyboards/lily58/keymaps/lily58l/keymap.c | 4 ++-- lib/python/qmk/cli/fileformat.py | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/keyboards/kc60/keymaps/noroadsleft/readme_git.md b/keyboards/kc60/keymaps/noroadsleft/readme_git.md index 432f1abc7e99..a8564703fcc6 100644 --- a/keyboards/kc60/keymaps/noroadsleft/readme_git.md +++ b/keyboards/kc60/keymaps/noroadsleft/readme_git.md @@ -46,11 +46,11 @@ branch-name = "!git rev-parse --abbrev-ref HEAD" bn = "!git branch-name" # short-form of the above # List branches by the date of their last commit, newest to oldest - bbd = "for-each-ref --count=30 --sort=-committerdate refs/heads/ --format='%(objectname) %(objecttype) %(refname:short) (%(authordate))'" + bbd = "for-each-ref --count=30 --sort=-committerdate refs/heads/ --format='\e[33m%(objectname)\e[0m %(objecttype) \e[32m%(refname:short)\e[0m (%(authordate))'" # Compare commit counts between current branch and QMK master # e.g. `git cc dev_branch upstream/master` returns how many commits are on `dev_branch` and not on `upstream/master`, and vice versa. - cc = "!f() { git fetch upstream; echo \"$(git branch-name) vs. $2\"; git rev-list --left-right --count $1...$2; }; f" + cc = "!f() { git fetch upstream; echo \"\e[0;32m$(git branch-name)\e[0m vs. \e[0;31m$2\e[0m\"; git rev-list --left-right --count $1...$2; }; f" # Push to origin repo po = "push origin $(git branch-name)" diff --git a/keyboards/lily58/keymaps/chuan/keymap.c b/keyboards/lily58/keymaps/chuan/keymap.c index da49e67a0eb9..e3a2b9db67c5 100644 --- a/keyboards/lily58/keymaps/chuan/keymap.c +++ b/keyboards/lily58/keymaps/chuan/keymap.c @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------. ,-----------------------------------------. * | | | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - | * |------+------+------+------+------+------| cmd spc| | |------+------+------+------+------+------| @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | + * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ | * `-----------------------------------------/ / \ \-----------------------------------------' diff --git a/keyboards/lily58/keymaps/default/keymap.c b/keyboards/lily58/keymaps/default/keymap.c index 52d401c5c5f0..b7cf34b2ea02 100644 --- a/keyboards/lily58/keymaps/default/keymap.c +++ b/keyboards/lily58/keymaps/default/keymap.c @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------. ,-----------------------------------------. * | | | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| @@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | + * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ | * `-----------------------------------------/ / \ \-----------------------------------------' @@ -160,4 +160,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // set_timelog(); } return true; -} \ No newline at end of file +} diff --git a/keyboards/lily58/keymaps/lily58l/keymap.c b/keyboards/lily58/keymaps/lily58l/keymap.c index 6683d2242e5d..7c32dae4882c 100644 --- a/keyboards/lily58/keymaps/lily58l/keymap.c +++ b/keyboards/lily58/keymaps/lily58l/keymap.c @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------. ,-----------------------------------------. * | | | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | + * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ | * `-----------------------------------------/ / \ \-----------------------------------------' diff --git a/lib/python/qmk/cli/fileformat.py b/lib/python/qmk/cli/fileformat.py index db8e13f10954..112d8d59da9c 100644 --- a/lib/python/qmk/cli/fileformat.py +++ b/lib/python/qmk/cli/fileformat.py @@ -9,5 +9,5 @@ def fileformat(cli): """Run several general formatting commands. """ - dos2unix = subprocess.run(['bash', '-c', 'git ls-files -z | xargs -0 dos2unix']) + dos2unix = subprocess.run(['bash', '-c', 'git ls-files -z | xargs -0 dos2unix'], stdout=subprocess.DEVNULL) return dos2unix.returncode From cd0d2d0de57e154b4684a03e648f972c234f97d3 Mon Sep 17 00:00:00 2001 From: CMMS-Freather <72902384+CMMS-Freather@users.noreply.github.com> Date: Thu, 24 Dec 2020 05:33:25 -0800 Subject: [PATCH 032/140] new repo: create cmm.studio folder, add saka qmk firmware (#11248) Co-authored-by: Ryan --- keyboards/cmm_studio/saka68/config.h | 57 +++++++++++++ keyboards/cmm_studio/saka68/info.json | 82 +++++++++++++++++++ .../saka68/keymaps/default/keymap.c | 36 ++++++++ .../cmm_studio/saka68/keymaps/via/keymap.c | 51 ++++++++++++ .../cmm_studio/saka68/keymaps/via/rules.mk | 2 + keyboards/cmm_studio/saka68/readme.md | 17 ++++ keyboards/cmm_studio/saka68/rules.mk | 22 +++++ keyboards/cmm_studio/saka68/saka68.c | 20 +++++ keyboards/cmm_studio/saka68/saka68.h | 36 ++++++++ 9 files changed, 323 insertions(+) create mode 100644 keyboards/cmm_studio/saka68/config.h create mode 100644 keyboards/cmm_studio/saka68/info.json create mode 100644 keyboards/cmm_studio/saka68/keymaps/default/keymap.c create mode 100644 keyboards/cmm_studio/saka68/keymaps/via/keymap.c create mode 100644 keyboards/cmm_studio/saka68/keymaps/via/rules.mk create mode 100644 keyboards/cmm_studio/saka68/readme.md create mode 100644 keyboards/cmm_studio/saka68/rules.mk create mode 100644 keyboards/cmm_studio/saka68/saka68.c create mode 100644 keyboards/cmm_studio/saka68/saka68.h diff --git a/keyboards/cmm_studio/saka68/config.h b/keyboards/cmm_studio/saka68/config.h new file mode 100644 index 000000000000..f7153bee4f4d --- /dev/null +++ b/keyboards/cmm_studio/saka68/config.h @@ -0,0 +1,57 @@ +/* Copyright 2020 CMM.Studio Freather + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x434D +#define PRODUCT_ID 0x534B +#define DEVICE_VER 0x0001 +#define MANUFACTURER CMM.Studio +#define PRODUCT Saka68 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 17 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D1, D0, B0, F6, F7 } +#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, F5, F4, F1, F0, B1, B2, B3, D2, D3, D5 } + +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 5 + + +// Dynamic keymap starts after EEPROM version +#define DYNAMIC_KEYMAP_EEPROM_ADDR 35 +// Dynamic macro starts after dynamic keymaps (35+(4*10*6*2)) = (35+480) +#define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 680 // **** CHANGE THIS BASED ON MATRIX_ROWS & MATRIX_COLS **** +#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 344 // **** CHANGE THIS BASED ON 1024-DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR **** +#define DYNAMIC_KEYMAP_MACRO_COUNT 16 +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/cmm_studio/saka68/info.json b/keyboards/cmm_studio/saka68/info.json new file mode 100644 index 000000000000..75a78649bc3d --- /dev/null +++ b/keyboards/cmm_studio/saka68/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "", + "url": "", + "maintainer": "qmk", + "width": 17.25, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (D1,D4)", "x":0, "y":0}, + {"label":"K01 (D1,D6)", "x":1, "y":0}, + {"label":"K02 (D1,D7)", "x":2, "y":0}, + {"label":"K03 (D1,B4)", "x":3, "y":0}, + {"label":"K04 (D1,B5)", "x":4, "y":0}, + {"label":"K05 (D1,B6)", "x":5, "y":0}, + {"label":"K06 (D1,C6)", "x":6, "y":0}, + {"label":"K07 (D1,F5)", "x":7, "y":0}, + {"label":"K08 (D1,F4)", "x":8, "y":0}, + {"label":"K09 (D1,F1)", "x":9, "y":0}, + {"label":"K0A (D1,F0)", "x":10, "y":0}, + {"label":"K0B (D1,B1)", "x":11, "y":0}, + {"label":"K0C (D1,B2)", "x":12, "y":0}, + {"label":"K0D (D1,B3)", "x":13, "y":0, "w":2}, + {"label":"K0F (D1,D3)", "x":15.25, "y":0}, + {"label":"K0G (D1,D5)", "x":16.25, "y":0}, + {"label":"K10 (D0,D4)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (D0,D6)", "x":1.5, "y":1}, + {"label":"K12 (D0,D7)", "x":2.5, "y":1}, + {"label":"K13 (D0,B4)", "x":3.5, "y":1}, + {"label":"K14 (D0,B5)", "x":4.5, "y":1}, + {"label":"K15 (D0,B6)", "x":5.5, "y":1}, + {"label":"K16 (D0,C6)", "x":6.5, "y":1}, + {"label":"K17 (D0,F5)", "x":7.5, "y":1}, + {"label":"K18 (D0,F4)", "x":8.5, "y":1}, + {"label":"K19 (D0,F1)", "x":9.5, "y":1}, + {"label":"K1A (D0,F0)", "x":10.5, "y":1}, + {"label":"K1B (D0,B1)", "x":11.5, "y":1}, + {"label":"K1C (D0,B2)", "x":12.5, "y":1}, + {"label":"K1D (D0,B3)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1E (D0,D2)", "x":15.25, "y":1}, + {"label":"K1F (D0,D3)", "x":16.25, "y":1}, + {"label":"K20 (B0,D4)", "x":0, "y":2, "w":1.75}, + {"label":"K21 (B0,D6)", "x":1.75, "y":2}, + {"label":"K22 (B0,D7)", "x":2.75, "y":2}, + {"label":"K23 (B0,B4)", "x":3.75, "y":2}, + {"label":"K24 (B0,B5)", "x":4.75, "y":2}, + {"label":"K25 (B0,B6)", "x":5.75, "y":2}, + {"label":"K26 (B0,C6)", "x":6.75, "y":2}, + {"label":"K27 (B0,F5)", "x":7.75, "y":2}, + {"label":"K28 (B0,F4)", "x":8.75, "y":2}, + {"label":"K29 (B0,F1)", "x":9.75, "y":2}, + {"label":"K2A (B0,F0)", "x":10.75, "y":2}, + {"label":"K2B (B0,B1)", "x":11.75, "y":2}, + {"label":"K2D (B0,B3)", "x":12.75, "y":2, "w":2.25}, + {"label":"K30 (F6,D4)", "x":0, "y":3, "w":2.25}, + {"label":"K32 (F6,D7)", "x":2.25, "y":3}, + {"label":"K33 (F6,B4)", "x":3.25, "y":3}, + {"label":"K34 (F6,B5)", "x":4.25, "y":3}, + {"label":"K35 (F6,B6)", "x":5.25, "y":3}, + {"label":"K36 (F6,C6)", "x":6.25, "y":3}, + {"label":"K37 (F6,F5)", "x":7.25, "y":3}, + {"label":"K38 (F6,F4)", "x":8.25, "y":3}, + {"label":"K39 (F6,F1)", "x":9.25, "y":3}, + {"label":"K3A (F6,F0)", "x":10.25, "y":3}, + {"label":"K3B (F6,B1)", "x":11.25, "y":3}, + {"label":"K3C (F6,B2)", "x":12.25, "y":3, "w":2.75}, + {"label":"K3E (F6,D2)", "x":15.25, "y":3}, + {"label":"K40 (F7,D4)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (F7,D6)", "x":1.25, "y":4, "w":1.25}, + {"label":"K42 (F7,D7)", "x":2.5, "y":4, "w":1.25}, + {"label":"K46 (F7,C6)", "x":3.75, "y":4, "w":6.25}, + {"label":"K4A (F7,F0)", "x":10, "y":4, "w":1.25}, + {"label":"K4B (F7,B1)", "x":11.25, "y":4, "w":1.25}, + {"label":"K4C (F7,B2)", "x":12.5, "y":4, "w":1.25}, + {"label":"K4D (F7,B3)", "x":14.25, "y":4}, + {"label":"K4E (F7,D2)", "x":15.25, "y":4}, + {"label":"K4F (F7,D3)", "x":16.25, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/cmm_studio/saka68/keymaps/default/keymap.c b/keyboards/cmm_studio/saka68/keymaps/default/keymap.c new file mode 100644 index 000000000000..7d4bd43e7262 --- /dev/null +++ b/keyboards/cmm_studio/saka68/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2020 CMM.Studio Freather + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; diff --git a/keyboards/cmm_studio/saka68/keymaps/via/keymap.c b/keyboards/cmm_studio/saka68/keymaps/via/keymap.c new file mode 100644 index 000000000000..602bccd4c751 --- /dev/null +++ b/keyboards/cmm_studio/saka68/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 CMM.Studio Freather + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/cmm_studio/saka68/keymaps/via/rules.mk b/keyboards/cmm_studio/saka68/keymaps/via/rules.mk new file mode 100644 index 000000000000..eb5b445ddf1a --- /dev/null +++ b/keyboards/cmm_studio/saka68/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = yes diff --git a/keyboards/cmm_studio/saka68/readme.md b/keyboards/cmm_studio/saka68/readme.md new file mode 100644 index 000000000000..2671b2f8ca26 --- /dev/null +++ b/keyboards/cmm_studio/saka68/readme.md @@ -0,0 +1,17 @@ +# CMM.Studio Saka68 + +CMM.Studio Saka68 Keyboard + +![CMM.Studio Saka68](https://i.imgur.com/gZ9Thjel.png) + +* Keyboard Maintainer: [CMM.Studio Freather](https://github.com/CMMS-Freather) +* Hardware Supported: PCB, Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make cmm_studio/saka68:default + + +For reset instruction, use the physical reset button on the back of the keyboard to enter bootloader mode + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cmm_studio/saka68/rules.mk b/keyboards/cmm_studio/saka68/rules.mk new file mode 100644 index 000000000000..a90eef1fc65a --- /dev/null +++ b/keyboards/cmm_studio/saka68/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/cmm_studio/saka68/saka68.c b/keyboards/cmm_studio/saka68/saka68.c new file mode 100644 index 000000000000..f15be8d2fd79 --- /dev/null +++ b/keyboards/cmm_studio/saka68/saka68.c @@ -0,0 +1,20 @@ +/* Copyright 2020 CMM.Studio Freather + * + * 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 . + */ + +#include "saka68.h" + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/cmm_studio/saka68/saka68.h b/keyboards/cmm_studio/saka68/saka68.h new file mode 100644 index 000000000000..4d1d02163a3c --- /dev/null +++ b/keyboards/cmm_studio/saka68/saka68.h @@ -0,0 +1,36 @@ +/* Copyright 2020 CMM.Studio Freather + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO, KC_NO }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, KC_NO, KC_NO }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F, KC_NO }, \ +} + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ From 436b5394bb370ca2415b5c4cc10b92b7665e4e78 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 25 Dec 2020 06:38:31 -0800 Subject: [PATCH 033/140] [Keyboard] Fix Dactyl Manuform with Trackball info.json (#11298) --- .../handwired/dactyl_manuform/5x6_right_trackball/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/info.json b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/info.json index 89f99dc231c8..8a413ec44f8c 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/info.json +++ b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/info.json @@ -5,7 +5,7 @@ "width": 17, "height": 8, "layouts": { - "LAYOUT_5x6": { + "LAYOUT_5x6_right_trackball": { "layout": [ {"label":"L00", "x":0, "y":0}, {"label":"L01", "x":1, "y":0}, From b7f640ca764b25e09bd0e60841bfd492bede036f Mon Sep 17 00:00:00 2001 From: Jonathon Carstens Date: Fri, 25 Dec 2020 06:42:11 -0800 Subject: [PATCH 034/140] Adding new keyboard: Tenkey++ (tenkey_plusplus) (#11197) Co-authored-by: Ryan --- .../lizard_trick/tenkey_plusplus/config.h | 159 ++++++++++++++++++ .../lizard_trick/tenkey_plusplus/info.json | 38 +++++ .../tenkey_plusplus/keymaps/default/keymap.c | 78 +++++++++ .../tenkey_plusplus/keymaps/macro/keymap.c | 103 ++++++++++++ .../lizard_trick/tenkey_plusplus/readme.md | 25 +++ .../lizard_trick/tenkey_plusplus/rules.mk | 23 +++ .../tenkey_plusplus/tenkey_plusplus.c | 18 ++ .../tenkey_plusplus/tenkey_plusplus.h | 45 +++++ 8 files changed, 489 insertions(+) create mode 100644 keyboards/lizard_trick/tenkey_plusplus/config.h create mode 100644 keyboards/lizard_trick/tenkey_plusplus/info.json create mode 100644 keyboards/lizard_trick/tenkey_plusplus/keymaps/default/keymap.c create mode 100644 keyboards/lizard_trick/tenkey_plusplus/keymaps/macro/keymap.c create mode 100644 keyboards/lizard_trick/tenkey_plusplus/readme.md create mode 100644 keyboards/lizard_trick/tenkey_plusplus/rules.mk create mode 100644 keyboards/lizard_trick/tenkey_plusplus/tenkey_plusplus.c create mode 100644 keyboards/lizard_trick/tenkey_plusplus/tenkey_plusplus.h diff --git a/keyboards/lizard_trick/tenkey_plusplus/config.h b/keyboards/lizard_trick/tenkey_plusplus/config.h new file mode 100644 index 000000000000..d962e67dae22 --- /dev/null +++ b/keyboards/lizard_trick/tenkey_plusplus/config.h @@ -0,0 +1,159 @@ +/* +Copyright 2020 Jonathon Carstens jonathon@lizardtrick.com + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Lizard Trick Electronics +#define PRODUCT Tenkey++ + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ + +#define MATRIX_ROW_PINS { B7, D4, B5, B6, C6, C7, } +#define MATRIX_COL_PINS { D5, D3, D2, F7 } +#define UNUSED_PINS + +#define ENCODERS_PAD_A \ + { B4, F0, F4 } +#define ENCODERS_PAD_B \ + { D7, E6, F1 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +//#define LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# define RGBLIGHT_HUE_STEP 8 +//# define RGBLIGHT_SAT_STEP 8 +//# define RGBLIGHT_VAL_STEP 8 +//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +//# define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/lizard_trick/tenkey_plusplus/info.json b/keyboards/lizard_trick/tenkey_plusplus/info.json new file mode 100644 index 000000000000..b81f83763c7b --- /dev/null +++ b/keyboards/lizard_trick/tenkey_plusplus/info.json @@ -0,0 +1,38 @@ +{ + "keyboard_name": "tenkey_plusplus", + "url": "https://github.com/jonbobcar/tenkey_plusplus", + "maintainer": "Jonathon Carstens", + "width": 4, + "height": 5, + "layouts": { + "default": { + "LAYOUT": [ + {"label": "Mute", "x": 0, "y": 0, "w": 1.3}, + {"label": "MDPL", "x": 1.3, "y": 0, "w": 1.4}, + {"label": "MDNX", "x": 2.7, "y": 0, "w": 1.3}, + + {"label": "Num Lock", "x": 0, "y": 1}, + {"label": "/", "x": 1, "y": 1}, + {"label": "*", "x": 2, "y": 1}, + {"label": "-", "x": 3, "y": 1}, + + {"label": "7", "x": 0, "y": 2}, + {"label": "8", "x": 1, "y": 2}, + {"label": "9", "x": 2, "y": 2}, + {"label": "+", "x": 3, "y": 2, "h": 2}, + + {"label": "4", "x": 0, "y": 3}, + {"label": "5", "x": 1, "y": 3}, + {"label": "6", "x": 2, "y": 3}, + + {"label": "1", "x": 0, "y": 4}, + {"label": "2", "x": 1, "y": 4}, + {"label": "3", "x": 2, "y": 4}, + {"label": "Enter", "x": 3, "y": 4, "h" :2}, + + {"label": "0", "x": 0, "y": 5, "w": 2}, + {"label": ".", "x": 2, "y": 5} + ] + } + } +} diff --git a/keyboards/lizard_trick/tenkey_plusplus/keymaps/default/keymap.c b/keyboards/lizard_trick/tenkey_plusplus/keymaps/default/keymap.c new file mode 100644 index 000000000000..f785ed97f1df --- /dev/null +++ b/keyboards/lizard_trick/tenkey_plusplus/keymaps/default/keymap.c @@ -0,0 +1,78 @@ +/* +Copyright 2020 Jonathon Carstens jonathon@lizardtrick.com + +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 . +*/ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * + * Left Middle Right + * VolDn PgDn Alt+Tab (Rotary Counterclockwise) + * VolUp PgUp Tab (Rotary Clockwise) + * Mute Play Next (Rotary Click) + * + * + * + * ┌───┬───┬───┬───┐ + * │TG1│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │   │ + * ├───┼───┼───┤ + │ + * │ 4 │ 5 │ 6 │   │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │   │ + * ├───┴───┼───┤Ent│ + * │   0   │ . │   │ + * └───────┴───┴───┘ + */ + + [_BASE] = LAYOUT( + KC_MUTE, KC_MPLY, KC_MNXT, + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT + ) +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left Encoder */ + if (clockwise) { + tap_code16(KC_VOLU); + } else { + tap_code16(KC_VOLD); + } + } else if (index == 1) { /* Middle Encoder */ + if (clockwise) { + tap_code16(KC_PGDN); + } else { + tap_code16(KC_PGUP); + } + } else if (index == 2) { /* Right Encoder */ + if (clockwise) { + tap_code16(KC_TAB); + } else { + tap_code16(S(KC_TAB)); + } + } +} diff --git a/keyboards/lizard_trick/tenkey_plusplus/keymaps/macro/keymap.c b/keyboards/lizard_trick/tenkey_plusplus/keymaps/macro/keymap.c new file mode 100644 index 000000000000..900bb0a01c36 --- /dev/null +++ b/keyboards/lizard_trick/tenkey_plusplus/keymaps/macro/keymap.c @@ -0,0 +1,103 @@ +/* +Copyright 2020 Jonathon Carstens jonathon@lizardtrick.com + +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 . +*/ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _TG1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * + * Left Middle Right + * VolDn PgDn Alt+Tab (Rotary Counterclockwise) + * VolUp PgUp Tab (Rotary Clockwise) + * Mute Play Next (Rotary Click) + * + * + * + * ┌───┬───┬───┬───┐ + * │TG1│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │   │ + * ├───┼───┼───┤ + │ + * │ 4 │ 5 │ 6 │   │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │   │ + * ├───┴───┼───┤Ent│ + * │   0   │ . │   │ + * └───────┴───┴───┘ + */ + + [_BASE] = LAYOUT( + KC_MUTE, KC_MPLY, KC_MNXT, + TG(1), KC_SLSH, KC_ASTR, KC_MINS, + KC_7, KC_8, KC_9, KC_PLUS, + KC_4, KC_5, KC_6, + KC_1, KC_2, KC_3, KC_ENT, + KC_0, KC_DOT + ), + + /* + * + * ┌─────────┬─────────┬─────────┬─────────┐ + * │ TG1 │  /  │  *  │  -  │ + * ├─────────┼─────────┼─────────┼─────────┤ + * │  Alt 7  │  Alt 8  │  Alt 9  │    │ + * ├─────────┼─────────┼─────────┤ + │ + * │  Alt 4  │  Alt 5  │  Alt 6  │    │ + * ├─────────┼─────────┼─────────┼─────────┤ + * │  Alt 1  │  Alt 2  │  Alt 3  │    │ + * ├─────────┴─────────┼─────────┤ Ent │ + * │ Escape │ Del │    │ + * └───────────────────┴─────────┴─────────┘ + */ + + [_TG1] = LAYOUT( + _______, _______, _______, + _______, _______, _______, _______, + A(KC_7), A(KC_8), A(KC_9), _______, + A(KC_4), A(KC_5), A(KC_6), + A(KC_1), A(KC_2), A(KC_3), _______, + KC_ESC, KC_DEL + ) +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left Encoder */ + if (clockwise) { + tap_code16(KC_VOLU); + } else { + tap_code16(KC_VOLD); + } + } else if (index == 1) { /* Middle Encoder */ + if (clockwise) { + tap_code16(KC_PGDN); + } else { + tap_code16(KC_PGUP); + } + } else if (index == 2) { /* Right Encoder */ + if (clockwise) { + tap_code16(KC_TAB); + } else { + tap_code16(S(KC_TAB)); + } + } +} diff --git a/keyboards/lizard_trick/tenkey_plusplus/readme.md b/keyboards/lizard_trick/tenkey_plusplus/readme.md new file mode 100644 index 000000000000..9687719ddddd --- /dev/null +++ b/keyboards/lizard_trick/tenkey_plusplus/readme.md @@ -0,0 +1,25 @@ +# Tenkey++ + +![TK++](https://i.imgur.com/DOJUgltl.jpg) + +Tenkey++ is a USB-C hotswap numpad with the layout of a standard 10-key. Tenkey++ also has three rotary encoders at the top for additional functionality. + +* Keyboard Maintainer: [Jonathon Carstens](https://github.com/jonbobcar) :: [jonathon@lizardtrick.com](mailto:jonathon@lizardtrick.com) +* Hardware Source Files: [Tenkey++ GitHub Repository](https://github.com/jonbobcar/tenkey_plusplus) +* Hardware Availability: [Tenkey++ on Tindie](https://www.tindie.com/products/lizardtrick/tenkey/) + +Make example for default layout (set up QMK build environment first): + + make lizard_trick/tenkey_plusplus:default + +Flashing example for this keyboard: + + make lizard_trick/tenkey_plusplus:default:flash + +Default Layout: + +![TK++_Default](https://i.imgur.com/6L0eQJq.jpg) + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with the [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +![PCB](https://i.imgur.com/aMii80bl.jpg) diff --git a/keyboards/lizard_trick/tenkey_plusplus/rules.mk b/keyboards/lizard_trick/tenkey_plusplus/rules.mk new file mode 100644 index 000000000000..fb12719ce81e --- /dev/null +++ b/keyboards/lizard_trick/tenkey_plusplus/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes diff --git a/keyboards/lizard_trick/tenkey_plusplus/tenkey_plusplus.c b/keyboards/lizard_trick/tenkey_plusplus/tenkey_plusplus.c new file mode 100644 index 000000000000..96c0b92dff4d --- /dev/null +++ b/keyboards/lizard_trick/tenkey_plusplus/tenkey_plusplus.c @@ -0,0 +1,18 @@ +/* +Copyright 2020 Jonathon Carstens jonathon@lizardtrick.com + +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 . +*/ + +#include "tenkey_plusplus.h" diff --git a/keyboards/lizard_trick/tenkey_plusplus/tenkey_plusplus.h b/keyboards/lizard_trick/tenkey_plusplus/tenkey_plusplus.h new file mode 100644 index 000000000000..72f388065268 --- /dev/null +++ b/keyboards/lizard_trick/tenkey_plusplus/tenkey_plusplus.h @@ -0,0 +1,45 @@ +/* +Copyright 2020 Jonathon Carstens jonathon@lizardtrick.com + +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 . +*/ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT( \ + K00, K01, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, \ + K40, K41, K42, K43, \ + K51, K52 \ +) { \ + { K00, K01, KC_NO, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, KC_NO }, \ + { K40, K41, K42, K43 }, \ + { KC_NO, K51, K52, KC_NO } \ +} From 7ca4b619223260d17bcc0d065a02d1bbdce436b8 Mon Sep 17 00:00:00 2001 From: kiwikey <75843996+kiwikey@users.noreply.github.com> Date: Fri, 25 Dec 2020 21:44:32 +0700 Subject: [PATCH 035/140] First commit of Kawii9 (#11201) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/kiwikey/kawii9/config.h | 137 ++++++++++++++++++ keyboards/kiwikey/kawii9/info.json | 23 +++ keyboards/kiwikey/kawii9/kawii9.c | 17 +++ keyboards/kiwikey/kawii9/kawii9.h | 38 +++++ .../kiwikey/kawii9/keymaps/default/keymap.c | 35 +++++ .../kiwikey/kawii9/keymaps/default/readme.md | 4 + keyboards/kiwikey/kawii9/readme.md | 15 ++ keyboards/kiwikey/kawii9/rules.mk | 22 +++ 8 files changed, 291 insertions(+) create mode 100644 keyboards/kiwikey/kawii9/config.h create mode 100644 keyboards/kiwikey/kawii9/info.json create mode 100644 keyboards/kiwikey/kawii9/kawii9.c create mode 100644 keyboards/kiwikey/kawii9/kawii9.h create mode 100644 keyboards/kiwikey/kawii9/keymaps/default/keymap.c create mode 100644 keyboards/kiwikey/kawii9/keymaps/default/readme.md create mode 100644 keyboards/kiwikey/kawii9/readme.md create mode 100644 keyboards/kiwikey/kawii9/rules.mk diff --git a/keyboards/kiwikey/kawii9/config.h b/keyboards/kiwikey/kawii9/config.h new file mode 100644 index 000000000000..33ce43f302ae --- /dev/null +++ b/keyboards/kiwikey/kawii9/config.h @@ -0,0 +1,137 @@ +/* +Copyright 2020 KiwiKey + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4B57 // KW - KiwiKey +#define PRODUCT_ID 0x0303 // 3x3 +#define DEVICE_VER 0x0002 +#define MANUFACTURER KiwiKey +#define PRODUCT Kawii9 + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 3 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B6, B5, B4 } +#define MATRIX_COL_PINS { F4, F5, F6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN D3 // Ver1: F0, Ver2: D3 +//#ifdef RGB_DI_PIN +#define RGBLED_NUM 4 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +#define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/kiwikey/kawii9/info.json b/keyboards/kiwikey/kawii9/info.json new file mode 100644 index 000000000000..126afaab7628 --- /dev/null +++ b/keyboards/kiwikey/kawii9/info.json @@ -0,0 +1,23 @@ +{ + "keyboard_name": "Kawii9", + "url": "http://kiwikey.vn/kawii9/", + "manufacturer": "KiwiKey", + "maintainer": "KiwiKey", + "width": 3, + "height": 3, + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k10", "x":0, "y":1}, + {"label":"k11", "x":1, "y":1}, + {"label":"k12", "x":2, "y":1}, + {"label":"k20", "x":0, "y":2}, + {"label":"k21", "x":1, "y":2}, + {"label":"k22", "x":2, "y":2} + ] + } + } +} diff --git a/keyboards/kiwikey/kawii9/kawii9.c b/keyboards/kiwikey/kawii9/kawii9.c new file mode 100644 index 000000000000..0e317ca72620 --- /dev/null +++ b/keyboards/kiwikey/kawii9/kawii9.c @@ -0,0 +1,17 @@ +/* Copyright 2020 KiwiKey + * + * 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 . + */ + +#include "kawii9.h" diff --git a/keyboards/kiwikey/kawii9/kawii9.h b/keyboards/kiwikey/kawii9/kawii9.h new file mode 100644 index 000000000000..b6fc36a57503 --- /dev/null +++ b/keyboards/kiwikey/kawii9/kawii9.h @@ -0,0 +1,38 @@ +/* Copyright 2020 KiwiKey + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_ortho_3x3( \ + k00, k01, k02, \ + k10, k11, k12, \ + k20, k21, k22 \ +) \ +{ \ + { k00, k01, k02 }, \ + { k10, k11, k12 }, \ + { k20, k21, k22 } \ +} diff --git a/keyboards/kiwikey/kawii9/keymaps/default/keymap.c b/keyboards/kiwikey/kawii9/keymaps/default/keymap.c new file mode 100644 index 000000000000..a43e84d00be3 --- /dev/null +++ b/keyboards/kiwikey/kawii9/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2020 KiwiKey + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_ortho_3x3( + KC_MUTE, KC_VOLD, KC_VOLU, // Media volume: Mute - Up - Down + KC_MPLY, KC_MPRV, KC_MNXT, // Media track control: Play/Pause - Previous Track - Next Track + MO(_FN), LCTL(KC_C), LCTL(KC_V) // FN - Copy - Paste + ), + [_FN] = LAYOUT_ortho_3x3( + RGB_TOG, RGB_MODE_REVERSE, RGB_MODE_FORWARD, + _______, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, + _______, _______, RESET + ) +}; diff --git a/keyboards/kiwikey/kawii9/keymaps/default/readme.md b/keyboards/kiwikey/kawii9/keymaps/default/readme.md new file mode 100644 index 000000000000..874b526c2012 --- /dev/null +++ b/keyboards/kiwikey/kawii9/keymaps/default/readme.md @@ -0,0 +1,4 @@ +# Default keymap for KiwiKey Kawii9 + +This is the default keymap which is flashed on every Kawii9 board from the very first Group-buy. +This keymap contains some basic media commands on BASE layer and RGB underglow control commands on FN layer (FN is the most bottom-left key, by default). \ No newline at end of file diff --git a/keyboards/kiwikey/kawii9/readme.md b/keyboards/kiwikey/kawii9/readme.md new file mode 100644 index 000000000000..4b10e82fabd4 --- /dev/null +++ b/keyboards/kiwikey/kawii9/readme.md @@ -0,0 +1,15 @@ +# KiwiKey Kawii9 + +![KiwiKey Kawii9](http://kiwikey.vn/media/Kawii9/Kawii9_render_800px.jpg) + +A 3x3 keypad, comes with 2 options: solderable and hotswap (using Kailh hotswap socket). + +* Keyboard Maintainer: [KiwiKey](https://github.com/kiwikey) +* Hardware Supported: Kawii9 PCB +* Hardware Availability: from Group-buy, will be available for direct purchasing via KiwiKey Website (http://kiwikey.vn/kawii9) + +Make example for this keyboard (after setting up your build environment): + + make kiwikey/kawii9:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/kiwikey/kawii9/rules.mk b/keyboards/kiwikey/kawii9/rules.mk new file mode 100644 index 000000000000..b855c6f4520b --- /dev/null +++ b/keyboards/kiwikey/kawii9/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = yes # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 5544bf8524c77ad09d32cf2b0f6dc40f7b05ee01 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat, 26 Dec 2020 02:38:07 +0900 Subject: [PATCH 036/140] [Keymap] update rules.mk and config.h of `helix/rev2:five_rows` (#11302) * update keyboards/helix/rev2/keymaps/five_rows/rules.mk: oled selection, led animation selection * add OLED_UPDATE_INTERVAL support into keyboards/helix/rev2/keymaps/five_rows/oled_display.c Support for OLED_UPDATE_INTERVAL, even for older types of OLED tasks. * Add 'HELIX=debug/no-debug' option into 'helix/rev2/keymaps/five_rows/rules.mk' --- .../helix/rev2/keymaps/five_rows/config.h | 31 ++++++++++ .../rev2/keymaps/five_rows/oled_display.c | 10 ++++ .../helix/rev2/keymaps/five_rows/rules.mk | 57 +++++++++++-------- 3 files changed, 75 insertions(+), 23 deletions(-) diff --git a/keyboards/helix/rev2/keymaps/five_rows/config.h b/keyboards/helix/rev2/keymaps/five_rows/config.h index 538859bc3c5d..cd76af4fafb0 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/config.h +++ b/keyboards/helix/rev2/keymaps/five_rows/config.h @@ -3,6 +3,7 @@ This is the c configuration file for the keymap Copyright 2012 Jun Wako Copyright 2015 Jack Humbert +Copyright 2020 mtei 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 @@ -27,12 +28,27 @@ along with this program. If not, see . /* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD. see tmk_core/common/action_tapping.c */ +#undef OLED_UPDATE_INTERVAL +#define OLED_UPDATE_INTERVAL 50 + // place overrides here // If you need more program area, try select and reduce rgblight modes to use. // Selection of RGBLIGHT MODE to use. +#undef RGBLIGHT_ANIMATIONS +#undef RGBLIGHT_EFFECT_BREATHING +#undef RGBLIGHT_EFFECT_RAINBOW_MOOD +#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL +#undef RGBLIGHT_EFFECT_SNAKE +#undef RGBLIGHT_EFFECT_KNIGHT +#undef RGBLIGHT_EFFECT_CHRISTMAS +#undef RGBLIGHT_EFFECT_STATIC_GRADIENT +#undef RGBLIGHT_EFFECT_RGB_TEST +#undef RGBLIGHT_EFFECT_ALTERNATING + #if defined(LED_ANIMATIONS) +# if LED_ANIMATIONS_LEVEL > 1 #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL @@ -42,6 +58,21 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_STATIC_GRADIENT //#define RGBLIGHT_EFFECT_RGB_TEST //#define RGBLIGHT_EFFECT_ALTERNATING +# else + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + //#define RGBLIGHT_EFFECT_RAINBOW_SWIRL + //#define RGBLIGHT_EFFECT_SNAKE + //#define RGBLIGHT_EFFECT_KNIGHT + //#define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + //#define RGBLIGHT_EFFECT_RGB_TEST + //#define RGBLIGHT_EFFECT_ALTERNATING +# endif #endif #endif /* CONFIG_USER_H */ + +#ifdef DEBUG_CONFIG +# include "debug_config.h" +#endif diff --git a/keyboards/helix/rev2/keymaps/five_rows/oled_display.c b/keyboards/helix/rev2/keymaps/five_rows/oled_display.c index 127d80cc7dab..689efe4c88fc 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/oled_display.c +++ b/keyboards/helix/rev2/keymaps/five_rows/oled_display.c @@ -163,6 +163,10 @@ void render_status(void) { } # ifdef SSD1306OLED +# if OLED_UPDATE_INTERVAL > 0 +uint16_t oled_update_timeout; +# endif + void iota_gfx_task_user(void) { struct CharacterMatrix matrix; @@ -172,6 +176,12 @@ void iota_gfx_task_user(void) { } # endif +#if OLED_UPDATE_INTERVAL > 0 + if (timer_elapsed(oled_update_timeout) < OLED_UPDATE_INTERVAL) { + return; + } + oled_update_timeout = timer_read(); +#endif matrix_clear(&matrix); if (is_keyboard_master()) { render_status(&matrix); diff --git a/keyboards/helix/rev2/keymaps/five_rows/rules.mk b/keyboards/helix/rev2/keymaps/five_rows/rules.mk index 83cdb30d0cdd..fbde2fe6a651 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/rules.mk +++ b/keyboards/helix/rev2/keymaps/five_rows/rules.mk @@ -12,6 +12,7 @@ # yes, yes +3200 # no, yes +400 LTO_ENABLE = no # if firmware size over limit, try this option +LED_ANIMATIONS = yes # Helix Spacific Build Options # you can uncomment and edit follows 7 Variables @@ -26,8 +27,8 @@ HELIX_ROWS = 5 # Helix Rows is 4 or 5 ifneq ($(strip $(HELIX)),) define KEYMAP_OPTION_PARSE - # $xinfo .$1.x #debug - # parse 'dispoff', 'consle', 'stdole', 'oled', 'sc' + # parse 'dispoff', 'consloe', 'na', 'ani', 'mini-ani' + $(if $(SHOW_PARCE),$(info parse -$1-)) #debug ifeq ($(strip $1),dispoff) OLED_ENABLE = no OLED_DRIVER_ENABLE = no @@ -37,19 +38,26 @@ ifneq ($(strip $(HELIX)),) ifeq ($(strip $1),console) CONSOLE_ENABLE = yes endif - ifeq ($(strip $1),stdole) - ## make HELIX=stdole helix:five_rows -- use TOP/drivers/oled/oled_driver.c - OLED_ENABLE = new + ifeq ($(strip $1),debug) + DEBUG_CONFIG = yes endif - ifeq ($(strip $1),oled) - ## make HELIX=oled helix:five_rows -- use helix/local_drivers/ssd1306.c - OLED_ENABLE = yes + ifneq ($(filter nodebug no-debug no_debug,$(strip $1)),) + DEBUG_CONFIG = no endif - ifeq ($(strip $1),back) - LED_BACK_ENABLE = yes + ifneq ($(filter na no_ani no-ani,$(strip $1)),) + LED_ANIMATIONS = no endif - ifeq ($(strip $1),sc) - SPLIT_KEYBOARD = yes + ifneq ($(filter mini-ani mini_ani,$(strip $1)),) + LED_ANIMATIONS = mini + endif + ifneq ($(filter ani animation,$(strip $1)),) + LED_ANIMATIONS = yes + endif + ifeq ($(strip $1),lto) + LTO_ENABLE = yes + endif + ifneq ($(filter nolto no-lto no_lto,$(strip $1)),) + LTO_ENABLE = no endif endef # end of KEYMAP_OPTION_PARSE @@ -58,20 +66,23 @@ ifneq ($(strip $(HELIX)),) $(call KEYMAP_OPTION_PARSE,$(A_OPTION_NAME)))) endif -ifeq ($(strip $(OLED_ENABLE)), new) - OLED_DRIVER_ENABLE = yes - OLED_ENABLE = no - SRC += oled_display.c - ifeq ($(strip $(LOCAL_GLCDFONT)), yes) - OPT_DEFS += -DOLED_FONT_H=\ - else - OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\" - endif +ifeq ($(strip $(LED_ANIMATIONS)), yes) + OPT_DEFS += -DLED_ANIMATIONS_LEVEL=2 endif -ifeq ($(strip $(OLED_ENABLE)), yes) - SRC += oled_display.c + +ifeq ($(strip $(LED_ANIMATIONS)), mini) + OPT_DEFS += -DLED_ANIMATIONS_LEVEL=1 + LED_ANIMATIONS = yes +endif + +ifeq ($(strip $(DEBUG_CONFIG)), yes) + OPT_DEFS += -DDEBUG_CONFIG endif # convert Helix-specific options (that represent combinations of standard options) # into QMK standard options. include $(strip $(KEYBOARD_LOCAL_FEATURES_MK)) + +ifeq ($(strip $(OLED_ENABLE)), yes) + SRC += oled_display.c +endif From 53eb7f0774881e8a9f6186a51e15135edc6f8575 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 25 Dec 2020 15:00:29 -0800 Subject: [PATCH 037/140] [Keyboard] Fix default keymaps for tunks/ergo33 (#11280) * [Keyboard] Fix default keymap for tunks/ergo33 * Add prpro keymap too --- .../tunks/ergo33/keymaps/default/keymap.c | 29 +++++++++---------- keyboards/tunks/ergo33/keymaps/prpro/keymap.c | 29 +++++++++---------- 2 files changed, 28 insertions(+), 30 deletions(-) diff --git a/keyboards/tunks/ergo33/keymaps/default/keymap.c b/keyboards/tunks/ergo33/keymaps/default/keymap.c index e26e556cb384..664f7b415ef4 100644 --- a/keyboards/tunks/ergo33/keymaps/default/keymap.c +++ b/keyboards/tunks/ergo33/keymaps/default/keymap.c @@ -1,17 +1,17 @@ -/* Copyright 2020 Mika Kuitunen - * - * 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 . +/* Copyright 2020 Mika Kuitunen + * + * 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 . */ #include QMK_KEYBOARD_H @@ -60,7 +60,6 @@ void encoder_update_user(uint8_t index, bool clockwise) { #ifdef RGBLIGHT_LAYERS #define HUE_PRIMARY 10 -#define HSV_OFF 0, 0, 0 #define HSV_CAPS HUE_PRIMARY, 255, 64 #define HSV_LAYER_BASE HUE_PRIMARY, 255, 64 #define HSV_LAYER_RGB 213, 255, 64 diff --git a/keyboards/tunks/ergo33/keymaps/prpro/keymap.c b/keyboards/tunks/ergo33/keymaps/prpro/keymap.c index 500e5dba1cb3..2ccba8b1e0fb 100644 --- a/keyboards/tunks/ergo33/keymaps/prpro/keymap.c +++ b/keyboards/tunks/ergo33/keymaps/prpro/keymap.c @@ -1,17 +1,17 @@ -/* Copyright 2020 Mika Kuitunen - * - * 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 . +/* Copyright 2020 Mika Kuitunen + * + * 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 . */ #include QMK_KEYBOARD_H @@ -105,7 +105,6 @@ void encoder_update_user(uint8_t index, bool clockwise) { #ifdef RGBLIGHT_LAYERS #define HUE_PRIMARY 10 #define HSV_PRIMARY HUE_PRIMARY, 255, 255 -#define HSV_OFF 0, 0, 0 #define HSV_CAPS HUE_PRIMARY, 255, 64 #define HSV_LAYER_BASE HUE_PRIMARY, 255, 64 #define HSV_LAYER_PRPRO 213, 255, 64 From 48f4768d33313e6a6ed48c31f95eb44feda10a51 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 26 Dec 2020 15:53:12 +1100 Subject: [PATCH 038/140] Change include guards in quantum/ to pragma once (#11239) --- quantum/api.h | 5 +---- quantum/api/api_sysex.h | 5 +---- quantum/audio/audio.h | 6 ++---- quantum/audio/luts.h | 11 ++++------- quantum/audio/muse.h | 5 +---- quantum/audio/musical_notes.h | 5 +---- quantum/audio/voices.h | 12 +++++------- quantum/color.h | 4 +--- quantum/keycode_config.h | 7 ++----- quantum/keymap.h | 5 +---- quantum/keymap_extras/keymap_nordic.h | 6 ++---- quantum/keymap_extras/keymap_plover_dvorak.h | 6 ++---- quantum/keymap_extras/keymap_steno.h | 6 ++---- quantum/led_matrix.h | 5 +---- quantum/led_tables.h | 5 +---- quantum/pointing_device.h | 5 +---- quantum/process_keycode/process_audio.h | 5 +---- quantum/process_keycode/process_clicky.h | 5 +---- quantum/process_keycode/process_combo.h | 5 +---- quantum/process_keycode/process_key_lock.h | 5 +---- quantum/process_keycode/process_leader.h | 5 +---- quantum/process_keycode/process_midi.h | 5 +---- quantum/process_keycode/process_music.h | 5 +---- quantum/process_keycode/process_printer.h | 5 +---- quantum/process_keycode/process_steno.h | 6 ++---- quantum/process_keycode/process_tap_dance.h | 6 ++---- quantum/process_keycode/process_terminal.h | 5 +---- quantum/process_keycode/process_terminal_nop.h | 5 +---- quantum/quantum_keycodes.h | 6 ++---- quantum/rgb.h | 5 +---- quantum/rgb_matrix.h | 5 +---- quantum/rgblight.h | 5 ++--- quantum/serial_link/protocol/byte_stuffer.h | 5 +---- quantum/serial_link/protocol/frame_router.h | 5 +---- quantum/serial_link/protocol/frame_validator.h | 5 +---- quantum/serial_link/protocol/physical.h | 5 +---- quantum/serial_link/protocol/transport.h | 5 +---- .../serial_link/protocol/triple_buffered_object.h | 5 +---- quantum/serial_link/system/serial_link.h | 5 +---- quantum/variable_trace.h | 4 +--- quantum/velocikey.h | 5 +---- quantum/visualizer/common_gfxconf.h | 5 +---- quantum/visualizer/default_animations.h | 5 +---- quantum/visualizer/lcd_backlight.h | 6 ++---- quantum/visualizer/lcd_backlight_keyframes.h | 5 +---- quantum/visualizer/lcd_keyframes.h | 5 +---- quantum/visualizer/led_backlight_keyframes.h | 5 +---- quantum/visualizer/resources/resources.h | 5 +---- quantum/visualizer/visualizer.h | 6 ++---- quantum/visualizer/visualizer_keyframes.h | 5 +---- 50 files changed, 68 insertions(+), 204 deletions(-) diff --git a/quantum/api.h b/quantum/api.h index 90a4de833931..0a30e9d6cc8d 100644 --- a/quantum/api.h +++ b/quantum/api.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef _API_H_ -#define _API_H_ +#pragma once #ifdef __AVR__ # include "lufa.h" @@ -54,5 +53,3 @@ __attribute__((weak)) bool process_api_quantum(uint8_t length, uint8_t* data); __attribute__((weak)) bool process_api_keyboard(uint8_t length, uint8_t* data); __attribute__((weak)) bool process_api_user(uint8_t length, uint8_t* data); - -#endif diff --git a/quantum/api/api_sysex.h b/quantum/api/api_sysex.h index 58b8cbb663c8..382f4bea440e 100644 --- a/quantum/api/api_sysex.h +++ b/quantum/api/api_sysex.h @@ -14,13 +14,10 @@ * along with this program. If not, see . */ -#ifndef _API_SYSEX_H_ -#define _API_SYSEX_H_ +#pragma once #include "api.h" void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t* bytes, uint16_t length); #define SEND_BYTES(mt, dt, b, l) send_bytes_sysex(mt, dt, b, l) - -#endif diff --git a/quantum/audio/audio.h b/quantum/audio/audio.h index 805cb4f7ab75..bc00cd19e6ab 100644 --- a/quantum/audio/audio.h +++ b/quantum/audio/audio.h @@ -13,8 +13,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifndef AUDIO_H -#define AUDIO_H + +#pragma once #include #include @@ -103,5 +103,3 @@ void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat); #define PLAY_LOOP(note_array) play_notes(¬e_array, NOTE_ARRAY_SIZE((note_array)), true) bool is_playing_notes(void); - -#endif diff --git a/quantum/audio/luts.h b/quantum/audio/luts.h index 6fdd3b4635de..74980b292edf 100644 --- a/quantum/audio/luts.h +++ b/quantum/audio/luts.h @@ -14,6 +14,8 @@ * along with this program. If not, see . */ +#pragma once + #if defined(__AVR__) # include # include @@ -23,14 +25,9 @@ # include #endif -#ifndef LUTS_H -# define LUTS_H - -# define VIBRATO_LUT_LENGTH 20 +#define VIBRATO_LUT_LENGTH 20 -# define FREQUENCY_LUT_LENGTH 349 +#define FREQUENCY_LUT_LENGTH 349 extern const float vibrato_lut[VIBRATO_LUT_LENGTH]; extern const uint16_t frequency_lut[FREQUENCY_LUT_LENGTH]; - -#endif /* LUTS_H */ diff --git a/quantum/audio/muse.h b/quantum/audio/muse.h index 6f382a7fee01..ad2f96e43af6 100644 --- a/quantum/audio/muse.h +++ b/quantum/audio/muse.h @@ -1,9 +1,6 @@ -#ifndef MUSE_H -#define MUSE_H +#pragma once #include "quantum.h" #include "process_audio.h" uint8_t muse_clock_pulse(void); - -#endif diff --git a/quantum/audio/musical_notes.h b/quantum/audio/musical_notes.h index 9742e19c434c..8ac6aafd38fd 100644 --- a/quantum/audio/musical_notes.h +++ b/quantum/audio/musical_notes.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef MUSICAL_NOTES_H -#define MUSICAL_NOTES_H +#pragma once // Tempo Placeholder #define TEMPO_DEFAULT 100 @@ -229,5 +228,3 @@ #define NOTE_GF8 NOTE_FS8 #define NOTE_AF8 NOTE_GS8 #define NOTE_BF8 NOTE_AS8 - -#endif diff --git a/quantum/audio/voices.h b/quantum/audio/voices.h index 0c45b0720e8c..abafa2b404ef 100644 --- a/quantum/audio/voices.h +++ b/quantum/audio/voices.h @@ -13,6 +13,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + +#pragma once + #include #include #if defined(__AVR__) @@ -21,14 +24,11 @@ #include "wait.h" #include "luts.h" -#ifndef VOICES_H -# define VOICES_H - float voice_envelope(float frequency); typedef enum { default_voice, -# ifdef AUDIO_VOICES +#ifdef AUDIO_VOICES something, drums, butts_fader, @@ -41,12 +41,10 @@ typedef enum { // duty_fourth_down, // duty_third_down, // duty_fifth_third_down, -# endif +#endif number_of_voices // important that this is last } voice_type; void set_voice(voice_type v); void voice_iterate(void); void voice_deiterate(void); - -#endif diff --git a/quantum/color.h b/quantum/color.h index f0ee7827572f..7448168b3ad0 100644 --- a/quantum/color.h +++ b/quantum/color.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef COLOR_H -#define COLOR_H +#pragma once #include #include @@ -86,4 +85,3 @@ RGB hsv_to_rgb_nocie(HSV hsv); #ifdef RGBW void convert_rgb_to_rgbw(LED_TYPE *led); #endif -#endif // COLOR_H diff --git a/quantum/keycode_config.h b/quantum/keycode_config.h index aa75ba2c132f..f878168c5fb4 100644 --- a/quantum/keycode_config.h +++ b/quantum/keycode_config.h @@ -14,13 +14,12 @@ * along with this program. If not, see . */ +#pragma once + #include "eeconfig.h" #include "keycode.h" #include "action_code.h" -#ifndef KEYCODE_CONFIG_H -# define KEYCODE_CONFIG_H - uint16_t keycode_config(uint16_t keycode); uint8_t mod_config(uint8_t mod); @@ -42,5 +41,3 @@ typedef union { } keymap_config_t; extern keymap_config_t keymap_config; - -#endif /* KEYCODE_CONFIG_H */ diff --git a/quantum/keymap.h b/quantum/keymap.h index 90a2398ba4a3..191e81397789 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef KEYMAP_H -#define KEYMAP_H +#pragma once #include #include @@ -55,5 +54,3 @@ uint16_t keymap_function_id_to_action(uint16_t function_id); extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; extern const uint16_t fn_actions[]; - -#endif diff --git a/quantum/keymap_extras/keymap_nordic.h b/quantum/keymap_extras/keymap_nordic.h index 8d2f76f27322..76d2f4f6b0b3 100644 --- a/quantum/keymap_extras/keymap_nordic.h +++ b/quantum/keymap_extras/keymap_nordic.h @@ -13,8 +13,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifndef KEYMAP_NORDIC_H -#define KEYMAP_NORDIC_H + +#pragma once #include "keymap.h" @@ -66,5 +66,3 @@ #define NO_BSLS ALGR(KC_MINS) #define NO_MU ALGR(KC_M) - -#endif diff --git a/quantum/keymap_extras/keymap_plover_dvorak.h b/quantum/keymap_extras/keymap_plover_dvorak.h index d40ff5c6bb55..445a1231511f 100644 --- a/quantum/keymap_extras/keymap_plover_dvorak.h +++ b/quantum/keymap_extras/keymap_plover_dvorak.h @@ -13,8 +13,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifndef KEYMAP_PLOVER_DVORAK_H -#define KEYMAP_PLOVER_DVORAK_H + +#pragma once #include "keymap_dvorak.h" @@ -43,5 +43,3 @@ #define PD_O DV_V #define PD_E DV_N #define PD_U DV_M - -#endif diff --git a/quantum/keymap_extras/keymap_steno.h b/quantum/keymap_extras/keymap_steno.h index 31dcbf706490..b9115fb8bf9a 100644 --- a/quantum/keymap_extras/keymap_steno.h +++ b/quantum/keymap_extras/keymap_steno.h @@ -13,8 +13,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifndef KEYMAP_STENO_H -#define KEYMAP_STENO_H + +#pragma once #include "keymap.h" @@ -72,5 +72,3 @@ enum steno_keycodes { STN_ZR, STN__MAX = STN_ZR, // must be less than QK_STENO_BOLT }; - -#endif diff --git a/quantum/led_matrix.h b/quantum/led_matrix.h index 5867ba987651..7dcdf1d48239 100644 --- a/quantum/led_matrix.h +++ b/quantum/led_matrix.h @@ -17,8 +17,7 @@ * along with this program. If not, see . */ -#ifndef LED_MATRIX_H -#define LED_MATRIX_H +#pragma once #ifndef BACKLIGHT_ENABLE # error You must define BACKLIGHT_ENABLE with LED_MATRIX_ENABLE @@ -123,5 +122,3 @@ typedef struct { } led_matrix_driver_t; extern const led_matrix_driver_t led_matrix_driver; - -#endif diff --git a/quantum/led_tables.h b/quantum/led_tables.h index 8052d566cf9d..cd3e5d74c11d 100644 --- a/quantum/led_tables.h +++ b/quantum/led_tables.h @@ -13,8 +13,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef LED_TABLES_H -#define LED_TABLES_H +#pragma once #include "progmem.h" #include @@ -22,5 +21,3 @@ along with this program. If not, see . #ifdef USE_CIE1931_CURVE extern const uint8_t CIE1931_CURVE[] PROGMEM; #endif - -#endif diff --git a/quantum/pointing_device.h b/quantum/pointing_device.h index 29398ebb3acc..aa074bb37d77 100644 --- a/quantum/pointing_device.h +++ b/quantum/pointing_device.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef POINTING_DEVICE_H -#define POINTING_DEVICE_H +#pragma once #include #include "host.h" @@ -27,5 +26,3 @@ void pointing_device_task(void); void pointing_device_send(void); report_mouse_t pointing_device_get_report(void); void pointing_device_set_report(report_mouse_t newMouseReport); - -#endif diff --git a/quantum/process_keycode/process_audio.h b/quantum/process_keycode/process_audio.h index 3a84c3d8691e..d89a834ea85c 100644 --- a/quantum/process_keycode/process_audio.h +++ b/quantum/process_keycode/process_audio.h @@ -1,5 +1,4 @@ -#ifndef PROCESS_AUDIO_H -#define PROCESS_AUDIO_H +#pragma once float compute_freq_for_midi_note(uint8_t note); @@ -9,5 +8,3 @@ void process_audio_noteoff(uint8_t note); void process_audio_all_notes_off(void); void audio_on_user(void); - -#endif diff --git a/quantum/process_keycode/process_clicky.h b/quantum/process_keycode/process_clicky.h index f746edb95193..67b6463c5d4d 100644 --- a/quantum/process_keycode/process_clicky.h +++ b/quantum/process_keycode/process_clicky.h @@ -1,5 +1,4 @@ -#ifndef PROCESS_CLICKY_H -#define PROCESS_CLICKY_H +#pragma once void clicky_play(void); bool process_clicky(uint16_t keycode, keyrecord_t *record); @@ -13,5 +12,3 @@ void clicky_on(void); void clicky_off(void); bool is_clicky_on(void); - -#endif diff --git a/quantum/process_keycode/process_combo.h b/quantum/process_keycode/process_combo.h index 0f01aae93edd..e51a2f1f4e26 100644 --- a/quantum/process_keycode/process_combo.h +++ b/quantum/process_keycode/process_combo.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef PROCESS_COMBO_H -#define PROCESS_COMBO_H +#pragma once #include "progmem.h" #include "quantum.h" @@ -62,5 +61,3 @@ void combo_enable(void); void combo_disable(void); void combo_toggle(void); bool is_combo_enabled(void); - -#endif diff --git a/quantum/process_keycode/process_key_lock.h b/quantum/process_keycode/process_key_lock.h index a8e110a4bf93..baa0b39077aa 100644 --- a/quantum/process_keycode/process_key_lock.h +++ b/quantum/process_keycode/process_key_lock.h @@ -14,11 +14,8 @@ * along with this program. If not, see . */ -#ifndef PROCESS_KEY_LOCK_H -#define PROCESS_KEY_LOCK_H +#pragma once #include "quantum.h" bool process_key_lock(uint16_t *keycode, keyrecord_t *record); - -#endif // PROCESS_KEY_LOCK_H diff --git a/quantum/process_keycode/process_leader.h b/quantum/process_keycode/process_leader.h index e0edf57b3272..9844f27a1bbd 100644 --- a/quantum/process_keycode/process_leader.h +++ b/quantum/process_keycode/process_leader.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef PROCESS_LEADER_H -#define PROCESS_LEADER_H +#pragma once #include "quantum.h" @@ -37,5 +36,3 @@ void qk_leader_start(void); extern uint16_t leader_sequence[5]; \ extern uint8_t leader_sequence_size #define LEADER_DICTIONARY() if (leading && timer_elapsed(leader_time) > LEADER_TIMEOUT) - -#endif diff --git a/quantum/process_keycode/process_midi.h b/quantum/process_keycode/process_midi.h index ef5661dd4d1c..68c6eda6665a 100644 --- a/quantum/process_keycode/process_midi.h +++ b/quantum/process_keycode/process_midi.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef PROCESS_MIDI_H -#define PROCESS_MIDI_H +#pragma once #include "quantum.h" @@ -53,5 +52,3 @@ uint8_t midi_compute_note(uint16_t keycode); # endif // MIDI_ADVANCED #endif // MIDI_ENABLE - -#endif diff --git a/quantum/process_keycode/process_music.h b/quantum/process_keycode/process_music.h index 292bc537424b..01014aa6c216 100644 --- a/quantum/process_keycode/process_music.h +++ b/quantum/process_keycode/process_music.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef PROCESS_MUSIC_H -#define PROCESS_MUSIC_H +#pragma once #include "quantum.h" @@ -57,5 +56,3 @@ bool music_mask_user(uint16_t keycode); # endif #endif // defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC)) - -#endif diff --git a/quantum/process_keycode/process_printer.h b/quantum/process_keycode/process_printer.h index 71d3a4b56a67..3c6d06ff94af 100644 --- a/quantum/process_keycode/process_printer.h +++ b/quantum/process_keycode/process_printer.h @@ -14,13 +14,10 @@ * along with this program. If not, see . */ -#ifndef PROCESS_PRINTER_H -#define PROCESS_PRINTER_H +#pragma once #include "quantum.h" #include "protocol/serial.h" bool process_printer(uint16_t keycode, keyrecord_t *record); - -#endif diff --git a/quantum/process_keycode/process_steno.h b/quantum/process_keycode/process_steno.h index ed049eb13fec..d11fd40af06c 100644 --- a/quantum/process_keycode/process_steno.h +++ b/quantum/process_keycode/process_steno.h @@ -13,8 +13,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifndef PROCESS_STENO_H -#define PROCESS_STENO_H + +#pragma once #include "quantum.h" @@ -25,5 +25,3 @@ void steno_init(void); void steno_set_mode(steno_mode_t mode); uint8_t *steno_get_state(void); uint8_t *steno_get_chord(void); - -#endif diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index 09ceef74d86f..a013c5cabf53 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -13,8 +13,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifndef PROCESS_TAP_DANCE_H -#define PROCESS_TAP_DANCE_H + +#pragma once #ifdef TAP_DANCE_ENABLE @@ -101,5 +101,3 @@ void qk_tap_dance_dual_role_reset(qk_tap_dance_state_t *state, void *user_data); # define TD(n) KC_NO #endif - -#endif diff --git a/quantum/process_keycode/process_terminal.h b/quantum/process_keycode/process_terminal.h index 8426f442b667..0159131e5b91 100644 --- a/quantum/process_keycode/process_terminal.h +++ b/quantum/process_keycode/process_terminal.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef PROCESS_TERMINAL_H -#define PROCESS_TERMINAL_H +#pragma once #include "quantum.h" @@ -23,5 +22,3 @@ extern const char keycode_to_ascii_lut[58]; extern const char shifted_keycode_to_ascii_lut[58]; extern const char terminal_prompt[8]; bool process_terminal(uint16_t keycode, keyrecord_t *record); - -#endif \ No newline at end of file diff --git a/quantum/process_keycode/process_terminal_nop.h b/quantum/process_keycode/process_terminal_nop.h index 56895b33c303..36e25320c5a3 100644 --- a/quantum/process_keycode/process_terminal_nop.h +++ b/quantum/process_keycode/process_terminal_nop.h @@ -14,12 +14,9 @@ * along with this program. If not, see . */ -#ifndef PROCESS_TERMINAL_H -#define PROCESS_TERMINAL_H +#pragma once #include "quantum.h" #define TERM_ON KC_NO #define TERM_OFF KC_NO - -#endif \ No newline at end of file diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index a2cc7b38d91b..0160c5586d33 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -13,8 +13,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifndef QUANTUM_KEYCODES_H -#define QUANTUM_KEYCODES_H + +#pragma once #if defined(SEQUENCER_ENABLE) # include "sequencer.h" @@ -889,5 +889,3 @@ enum quantum_keycodes { #define DM_RSTP DYN_REC_STOP #define DM_PLY1 DYN_MACRO_PLAY1 #define DM_PLY2 DYN_MACRO_PLAY2 - -#endif // QUANTUM_KEYCODES_H diff --git a/quantum/rgb.h b/quantum/rgb.h index 7b6ea0542f28..2602fc0b200a 100644 --- a/quantum/rgb.h +++ b/quantum/rgb.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef RGB_H -#define RGB_H +#pragma once __attribute__((weak)) void rgblight_toggle(void){}; @@ -38,5 +37,3 @@ __attribute__((weak)) void rgblight_decrease_val(void){}; __attribute__((weak)) void rgblight_increase_speed(void){}; __attribute__((weak)) void rgblight_decrease_speed(void){}; - -#endif \ No newline at end of file diff --git a/quantum/rgb_matrix.h b/quantum/rgb_matrix.h index 1fd016d79a54..8c80c1bff0ce 100644 --- a/quantum/rgb_matrix.h +++ b/quantum/rgb_matrix.h @@ -16,8 +16,7 @@ * along with this program. If not, see . */ -#ifndef RGB_MATRIX_H -#define RGB_MATRIX_H +#pragma once #include #include @@ -226,5 +225,3 @@ extern last_hit_t g_last_hit_tracker; #ifdef RGB_MATRIX_FRAMEBUFFER_EFFECTS extern uint8_t g_rgb_frame_buffer[MATRIX_ROWS][MATRIX_COLS]; #endif - -#endif diff --git a/quantum/rgblight.h b/quantum/rgblight.h index c3a9e94b7c24..c02fd4f37b64 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -13,8 +13,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifndef RGBLIGHT_H -#define RGBLIGHT_H + +#pragma once /***** rgblight_mode(mode)/rgblight_mode_noeeprom(mode) **** @@ -437,4 +437,3 @@ void rgblight_effect_twinkle(animation_status_t *anim); # endif #endif // #ifndef RGBLIGHT_H_DUMMY_DEFINE -#endif // RGBLIGHT_H diff --git a/quantum/serial_link/protocol/byte_stuffer.h b/quantum/serial_link/protocol/byte_stuffer.h index 97e8968564a4..397ed3baae19 100644 --- a/quantum/serial_link/protocol/byte_stuffer.h +++ b/quantum/serial_link/protocol/byte_stuffer.h @@ -22,8 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef SERIAL_LINK_BYTE_STUFFER_H -#define SERIAL_LINK_BYTE_STUFFER_H +#pragma once #include @@ -33,5 +32,3 @@ SOFTWARE. void init_byte_stuffer(void); void byte_stuffer_recv_byte(uint8_t link, uint8_t data); void byte_stuffer_send_frame(uint8_t link, uint8_t* data, uint16_t size); - -#endif diff --git a/quantum/serial_link/protocol/frame_router.h b/quantum/serial_link/protocol/frame_router.h index 712250ff359f..9325fe4eed96 100644 --- a/quantum/serial_link/protocol/frame_router.h +++ b/quantum/serial_link/protocol/frame_router.h @@ -22,8 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef SERIAL_LINK_FRAME_ROUTER_H -#define SERIAL_LINK_FRAME_ROUTER_H +#pragma once #include #include @@ -34,5 +33,3 @@ SOFTWARE. void router_set_master(bool master); void route_incoming_frame(uint8_t link, uint8_t* data, uint16_t size); void router_send_frame(uint8_t destination, uint8_t* data, uint16_t size); - -#endif diff --git a/quantum/serial_link/protocol/frame_validator.h b/quantum/serial_link/protocol/frame_validator.h index 4a910d510b92..0f78768a00fa 100644 --- a/quantum/serial_link/protocol/frame_validator.h +++ b/quantum/serial_link/protocol/frame_validator.h @@ -22,13 +22,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef SERIAL_LINK_FRAME_VALIDATOR_H -#define SERIAL_LINK_FRAME_VALIDATOR_H +#pragma once #include void validator_recv_frame(uint8_t link, uint8_t* data, uint16_t size); // The buffer pointed to by the data needs 4 additional bytes void validator_send_frame(uint8_t link, uint8_t* data, uint16_t size); - -#endif diff --git a/quantum/serial_link/protocol/physical.h b/quantum/serial_link/protocol/physical.h index 425e06cdd294..399c9d1f7647 100644 --- a/quantum/serial_link/protocol/physical.h +++ b/quantum/serial_link/protocol/physical.h @@ -22,9 +22,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef SERIAL_LINK_PHYSICAL_H -#define SERIAL_LINK_PHYSICAL_H +#pragma once void send_data(uint8_t link, const uint8_t* data, uint16_t size); - -#endif diff --git a/quantum/serial_link/protocol/transport.h b/quantum/serial_link/protocol/transport.h index 309a56b000a2..3ce0c9fe4e6f 100644 --- a/quantum/serial_link/protocol/transport.h +++ b/quantum/serial_link/protocol/transport.h @@ -22,8 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef SERIAL_LINK_TRANSPORT_H -#define SERIAL_LINK_TRANSPORT_H +#pragma once #include "serial_link/protocol/triple_buffered_object.h" #include "serial_link/system/serial_link.h" @@ -138,5 +137,3 @@ void add_remote_objects(remote_object_t** remote_objects, uint32_t num_remote_ob void reinitialize_serial_link_transport(void); void transport_recv_frame(uint8_t from, uint8_t* data, uint16_t size); void update_transport(void); - -#endif diff --git a/quantum/serial_link/protocol/triple_buffered_object.h b/quantum/serial_link/protocol/triple_buffered_object.h index 6ec98d52bf40..717d6d7b8be3 100644 --- a/quantum/serial_link/protocol/triple_buffered_object.h +++ b/quantum/serial_link/protocol/triple_buffered_object.h @@ -22,8 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef SERIAL_LINK_TRIPLE_BUFFERED_OBJECT_H -#define SERIAL_LINK_TRIPLE_BUFFERED_OBJECT_H +#pragma once #include @@ -43,5 +42,3 @@ void triple_buffer_init(triple_buffer_object_t* object); void* triple_buffer_begin_write_internal(uint16_t object_size, triple_buffer_object_t* object); void triple_buffer_end_write_internal(triple_buffer_object_t* object); void* triple_buffer_read_internal(uint16_t object_size, triple_buffer_object_t* object); - -#endif diff --git a/quantum/serial_link/system/serial_link.h b/quantum/serial_link/system/serial_link.h index b6a473957515..adc1f6e93d00 100644 --- a/quantum/serial_link/system/serial_link.h +++ b/quantum/serial_link/system/serial_link.h @@ -22,8 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef SERIAL_LINK_H -#define SERIAL_LINK_H +#pragma once #include "host_driver.h" #include @@ -53,5 +52,3 @@ inline void serial_link_unlock(void) {} void signal_data_written(void); #endif - -#endif diff --git a/quantum/variable_trace.h b/quantum/variable_trace.h index 26b810d3cd25..f4d1253800cd 100644 --- a/quantum/variable_trace.h +++ b/quantum/variable_trace.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef VARIABLE_TRACE_H -#define VARIABLE_TRACE_H +#pragma once // For more information about the variable tracing see the readme. @@ -46,4 +45,3 @@ void add_traced_variable(const char* name, void* addr, unsigned size, const char* func, int line); void remove_traced_variable(const char* name, const char* func, int line); void verify_traced_variables(const char* func, int line); -#endif diff --git a/quantum/velocikey.h b/quantum/velocikey.h index b977606c5dc7..c375f82f7180 100644 --- a/quantum/velocikey.h +++ b/quantum/velocikey.h @@ -1,5 +1,4 @@ -#ifndef VELOCIKEY_H -#define VELOCIKEY_H +#pragma once #include #include @@ -9,5 +8,3 @@ void velocikey_toggle(void); void velocikey_accelerate(void); void velocikey_decelerate(void); uint8_t velocikey_match_speed(uint8_t minValue, uint8_t maxValue); - -#endif \ No newline at end of file diff --git a/quantum/visualizer/common_gfxconf.h b/quantum/visualizer/common_gfxconf.h index e5bbddbb02ba..e0735b37d047 100644 --- a/quantum/visualizer/common_gfxconf.h +++ b/quantum/visualizer/common_gfxconf.h @@ -19,8 +19,7 @@ * Please use spaces instead of tabs in this file. */ -#ifndef COMMON_GFXCONF_H -#define COMMON_GFXCONF_H +#pragma once /////////////////////////////////////////////////////////////////////////// // GFX - Compatibility options // @@ -353,5 +352,3 @@ #define GMISC_NEED_MATRIXFLOAT2D GFXON #define GMISC_NEED_MATRIXFIXED2D GFXOFF //#define GMISC_NEED_HITTEST_POLY GFXOFF - -#endif /* COMMON_GFXCONF_H */ diff --git a/quantum/visualizer/default_animations.h b/quantum/visualizer/default_animations.h index 51320b8b8a8d..9accd8977454 100644 --- a/quantum/visualizer/default_animations.h +++ b/quantum/visualizer/default_animations.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef DEFAULT_ANIMATIONS_H_ -#define DEFAULT_ANIMATIONS_H_ +#pragma once #include "visualizer.h" @@ -26,5 +25,3 @@ extern keyframe_animation_t default_suspend_animation; // An animation for testing and demonstrating the led support, should probably not be used for real world // cases extern keyframe_animation_t led_test_animation; - -#endif /* DEFAULT_ANIMATIONS_H_ */ diff --git a/quantum/visualizer/lcd_backlight.h b/quantum/visualizer/lcd_backlight.h index 0a1535edf529..4ea5b1463903 100644 --- a/quantum/visualizer/lcd_backlight.h +++ b/quantum/visualizer/lcd_backlight.h @@ -22,8 +22,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef LCD_BACKLIGHT_H_ -#define LCD_BACKLIGHT_H_ +#pragma once + #include // Helper macros for storing hue, staturation and intensity as unsigned integers @@ -41,5 +41,3 @@ uint8_t lcd_get_backlight_brightness(void); void lcd_backlight_hal_init(void); void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b); - -#endif /* LCD_BACKLIGHT_H_ */ diff --git a/quantum/visualizer/lcd_backlight_keyframes.h b/quantum/visualizer/lcd_backlight_keyframes.h index bde118449b64..88768dd4a509 100644 --- a/quantum/visualizer/lcd_backlight_keyframes.h +++ b/quantum/visualizer/lcd_backlight_keyframes.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ -#define QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ +#pragma once #include "visualizer.h" @@ -26,5 +25,3 @@ bool lcd_backlight_keyframe_set_color(keyframe_animation_t* animation, visualize bool lcd_backlight_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state); bool lcd_backlight_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state); - -#endif /* QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ */ diff --git a/quantum/visualizer/lcd_keyframes.h b/quantum/visualizer/lcd_keyframes.h index 6346c8643b49..b7125e832335 100644 --- a/quantum/visualizer/lcd_keyframes.h +++ b/quantum/visualizer/lcd_keyframes.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef QUANTUM_VISUALIZER_LCD_KEYFRAMES_H_ -#define QUANTUM_VISUALIZER_LCD_KEYFRAMES_H_ +#pragma once #include "visualizer.h" @@ -34,5 +33,3 @@ bool lcd_keyframe_draw_logo(keyframe_animation_t* animation, visualizer_state_t* bool lcd_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state); bool lcd_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state); - -#endif /* QUANTUM_VISUALIZER_LCD_KEYFRAMES_H_ */ diff --git a/quantum/visualizer/led_backlight_keyframes.h b/quantum/visualizer/led_backlight_keyframes.h index 648f92b915f7..90153be5eb6a 100644 --- a/quantum/visualizer/led_backlight_keyframes.h +++ b/quantum/visualizer/led_backlight_keyframes.h @@ -22,8 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef LED_BACKLIGHT_KEYFRAMES_H -#define LED_BACKLIGHT_KEYFRAMES_H +#pragma once #include "visualizer.h" @@ -39,5 +38,3 @@ bool led_backlight_keyframe_disable(keyframe_animation_t* animation, visualizer_ bool led_backlight_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state); extern keyframe_animation_t led_test_animation; - -#endif /* LED_KEYFRAMES_H */ diff --git a/quantum/visualizer/resources/resources.h b/quantum/visualizer/resources/resources.h index 74fd8d2f6522..5178fbe55a65 100644 --- a/quantum/visualizer/resources/resources.h +++ b/quantum/visualizer/resources/resources.h @@ -14,13 +14,10 @@ * along with this program. If not, see . */ -#ifndef QUANTUM_VISUALIZER_RESOURCES_RESOURCES_H_ -#define QUANTUM_VISUALIZER_RESOURCES_RESOURCES_H_ +#pragma once #include #ifdef LCD_ENABLE extern const uint8_t resource_lcd_logo[]; #endif - -#endif /* QUANTUM_VISUALIZER_RESOURCES_RESOURCES_H_ */ diff --git a/quantum/visualizer/visualizer.h b/quantum/visualizer/visualizer.h index 488d130decdb..627c80a305a5 100644 --- a/quantum/visualizer/visualizer.h +++ b/quantum/visualizer/visualizer.h @@ -22,8 +22,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef VISUALIZER_H -#define VISUALIZER_H +#pragma once + #include #include #include @@ -152,5 +152,3 @@ void user_visualizer_suspend(visualizer_state_t* state); void initialize_user_visualizer(visualizer_state_t* state); // Called when the computer resumes from a suspend void user_visualizer_resume(visualizer_state_t* state); - -#endif /* VISUALIZER_H */ diff --git a/quantum/visualizer/visualizer_keyframes.h b/quantum/visualizer/visualizer_keyframes.h index 9ef7653c5e44..c92ff1611360 100644 --- a/quantum/visualizer/visualizer_keyframes.h +++ b/quantum/visualizer/visualizer_keyframes.h @@ -14,13 +14,10 @@ * along with this program. If not, see . */ -#ifndef QUANTUM_VISUALIZER_VISUALIZER_KEYFRAMES_H_ -#define QUANTUM_VISUALIZER_VISUALIZER_KEYFRAMES_H_ +#pragma once #include "visualizer.h" // Some predefined keyframe functions that can be used by the user code // Does nothing, useful for adding delays bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* state); - -#endif /* QUANTUM_VISUALIZER_VISUALIZER_KEYFRAMES_H_ */ From 1d1d5da43f86d9dded47c66afec94991d623f114 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 26 Dec 2020 15:56:11 +1100 Subject: [PATCH 039/140] Change include guards in tmk_core/ and drivers/ to pragma once (#11240) --- drivers/avr/hd44780.h | 6 +-- drivers/avr/i2c_master.h | 5 +-- drivers/avr/i2c_slave.h | 5 +-- drivers/avr/ssd1306.h | 5 +-- tmk_core/common/action.h | 6 +-- tmk_core/common/action_code.h | 6 +-- tmk_core/common/action_layer.h | 6 +-- tmk_core/common/action_macro.h | 7 ++- tmk_core/common/action_tapping.h | 6 +-- tmk_core/common/action_util.h | 6 +-- tmk_core/common/arm_atsam/printf.h | 5 +-- tmk_core/common/avr/suspend_avr.h | 5 +-- tmk_core/common/avr/timer_avr.h | 5 +-- tmk_core/common/avr/xprintf.h | 5 +-- tmk_core/common/bootloader.h | 5 +-- tmk_core/common/bootmagic.h | 5 +-- tmk_core/common/chibios/eeprom_stm32.h | 5 +-- tmk_core/common/chibios/flash_stm32.h | 5 +-- tmk_core/common/debug.h | 5 +-- tmk_core/common/eeconfig.h | 5 +-- tmk_core/common/eeprom.h | 5 +-- tmk_core/common/host_driver.h | 5 +-- tmk_core/common/keyboard.h | 5 +-- tmk_core/common/keycode.h | 5 +-- tmk_core/common/magic.h | 5 +-- tmk_core/common/matrix.h | 6 +-- tmk_core/common/mousekey.h | 4 +- tmk_core/common/nodebug.h | 5 +-- tmk_core/common/print.h | 5 +-- tmk_core/common/raw_hid.h | 5 +-- tmk_core/common/sendchar.h | 5 +-- tmk_core/common/sleep_led.h | 5 +-- tmk_core/common/suspend.h | 5 +-- tmk_core/common/timer.h | 5 +-- tmk_core/common/uart.h | 5 +-- tmk_core/common/util.h | 5 +-- tmk_core/common/virtser.h | 5 +-- tmk_core/common/wait.h | 5 +-- tmk_core/protocol/adb.h | 5 +-- tmk_core/protocol/chibios/usb_driver.h | 43 +++++++++---------- tmk_core/protocol/chibios/usb_main.h | 5 +-- tmk_core/protocol/ibm4704.h | 6 +-- tmk_core/protocol/lufa/lufa.h | 5 +-- tmk_core/protocol/m0110.h | 5 +-- tmk_core/protocol/midi/Config/LUFAConfig.h | 4 +- tmk_core/protocol/midi/bytequeue/bytequeue.h | 5 +-- .../midi/bytequeue/interrupt_setting.h | 5 +-- tmk_core/protocol/midi/midi.h | 5 +-- tmk_core/protocol/midi/midi_device.h | 5 +-- tmk_core/protocol/midi/midi_function_types.h | 5 +-- tmk_core/protocol/midi/sysex_tools.h | 5 +-- tmk_core/protocol/news.h | 6 +-- tmk_core/protocol/next_kbd.h | 11 ++--- tmk_core/protocol/ps2.h | 5 +-- tmk_core/protocol/ps2_io.h | 5 +-- tmk_core/protocol/ps2_mouse.h | 5 +-- tmk_core/protocol/serial_mouse.h | 5 +-- tmk_core/protocol/usb_descriptor.h | 5 +-- tmk_core/protocol/xt.h | 5 +-- tmk_core/ring_buffer.h | 6 +-- 60 files changed, 96 insertions(+), 258 deletions(-) diff --git a/drivers/avr/hd44780.h b/drivers/avr/hd44780.h index e60817e9898d..08e60f8a44e2 100644 --- a/drivers/avr/hd44780.h +++ b/drivers/avr/hd44780.h @@ -1,5 +1,3 @@ -#ifndef LCD_H -#define LCD_H /************************************************************************* Title : C include file for the HD44780U LCD library (lcd.c) Author: Peter Fleury http://tinyurl.com/peterfleury @@ -43,6 +41,8 @@ */ +#pragma once + #include #include @@ -346,5 +346,3 @@ extern void lcd_data(uint8_t data); #define lcd_puts_P(__s) lcd_puts_p(PSTR(__s)) /**@}*/ - -#endif // LCD_H diff --git a/drivers/avr/i2c_master.h b/drivers/avr/i2c_master.h index 4a35867cd057..e5af73364be3 100644 --- a/drivers/avr/i2c_master.h +++ b/drivers/avr/i2c_master.h @@ -17,8 +17,7 @@ * GitHub repository: https://github.com/g4lvanix/I2C-master-lib */ -#ifndef I2C_MASTER_H -#define I2C_MASTER_H +#pragma once #define I2C_READ 0x01 #define I2C_WRITE 0x00 @@ -42,5 +41,3 @@ i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16 i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); void i2c_stop(void); - -#endif // I2C_MASTER_H diff --git a/drivers/avr/i2c_slave.h b/drivers/avr/i2c_slave.h index 5d92150e6581..1cd0625ef439 100644 --- a/drivers/avr/i2c_slave.h +++ b/drivers/avr/i2c_slave.h @@ -20,8 +20,7 @@ Read or write to the necessary buffer according to the opperation. */ -#ifndef I2C_SLAVE_H -#define I2C_SLAVE_H +#pragma once #define I2C_SLAVE_REG_COUNT 30 @@ -29,5 +28,3 @@ extern volatile uint8_t i2c_slave_reg[I2C_SLAVE_REG_COUNT]; void i2c_slave_init(uint8_t address); void i2c_slave_stop(void); - -#endif // I2C_SLAVE_H diff --git a/drivers/avr/ssd1306.h b/drivers/avr/ssd1306.h index 9131afcf6122..6eecdcfaa40a 100644 --- a/drivers/avr/ssd1306.h +++ b/drivers/avr/ssd1306.h @@ -1,5 +1,4 @@ -#ifndef SSD1306_H -#define SSD1306_H +#pragma once #include #include @@ -86,5 +85,3 @@ void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c); void matrix_write(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); - -#endif diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index 345c030c94ac..81cd54369c0b 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h @@ -14,8 +14,8 @@ 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 . */ -#ifndef ACTION_H -#define ACTION_H + +#pragma once #include #include @@ -124,5 +124,3 @@ void debug_action(action_t action); #ifdef __cplusplus } #endif - -#endif /* ACTION_H */ diff --git a/tmk_core/common/action_code.h b/tmk_core/common/action_code.h index eea554ff2162..eb18c36ae809 100644 --- a/tmk_core/common/action_code.h +++ b/tmk_core/common/action_code.h @@ -14,8 +14,8 @@ 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 . */ -#ifndef ACTION_CODE_H -#define ACTION_CODE_H + +#pragma once /** \brief Action codes * @@ -306,5 +306,3 @@ enum swap_hands_param_tap_op { #define ACTION_SWAP_HANDS_OFF_ON() ACTION(ACT_SWAP_HANDS, OP_SH_OFF_ON) #define ACTION_SWAP_HANDS_ON() ACTION(ACT_SWAP_HANDS, OP_SH_ON) #define ACTION_SWAP_HANDS_OFF() ACTION(ACT_SWAP_HANDS, OP_SH_OFF) - -#endif /* ACTION_CODE_H */ diff --git a/tmk_core/common/action_layer.h b/tmk_core/common/action_layer.h index f9f686112006..d72cd3e3a5b5 100644 --- a/tmk_core/common/action_layer.h +++ b/tmk_core/common/action_layer.h @@ -14,8 +14,8 @@ 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 . */ -#ifndef ACTION_LAYER_H -#define ACTION_LAYER_H + +#pragma once #include #include "keyboard.h" @@ -120,5 +120,3 @@ uint8_t layer_switch_get_layer(keypos_t key); /* return action depending on current layer status */ action_t layer_switch_get_action(keypos_t key); - -#endif diff --git a/tmk_core/common/action_macro.h b/tmk_core/common/action_macro.h index 21004ead62be..685e2c6ffcfc 100644 --- a/tmk_core/common/action_macro.h +++ b/tmk_core/common/action_macro.h @@ -14,8 +14,9 @@ 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 . */ -#ifndef ACTION_MACRO_H -#define ACTION_MACRO_H + +#pragma once + #include #include "progmem.h" @@ -120,5 +121,3 @@ enum macro_command_id { /* for backward comaptibility */ #define MD(key) DOWN(KC_##key) #define MU(key) UP(KC_##key) - -#endif /* ACTION_MACRO_H */ diff --git a/tmk_core/common/action_tapping.h b/tmk_core/common/action_tapping.h index 7015ce76120b..087090f8057b 100644 --- a/tmk_core/common/action_tapping.h +++ b/tmk_core/common/action_tapping.h @@ -14,8 +14,8 @@ 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 . */ -#ifndef ACTION_TAPPING_H -#define ACTION_TAPPING_H + +#pragma once /* period of tapping(ms) */ #ifndef TAPPING_TERM @@ -36,5 +36,3 @@ uint16_t get_event_keycode(keyevent_t event, bool update_layer_cache); uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record); void action_tapping_process(keyrecord_t record); #endif - -#endif diff --git a/tmk_core/common/action_util.h b/tmk_core/common/action_util.h index 743ff1406b46..ff29f79b09d8 100644 --- a/tmk_core/common/action_util.h +++ b/tmk_core/common/action_util.h @@ -14,8 +14,8 @@ 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 . */ -#ifndef ACTION_UTIL_H -#define ACTION_UTIL_H + +#pragma once #include #include "report.h" @@ -98,5 +98,3 @@ void clear_oneshot_swaphands(void); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/common/arm_atsam/printf.h b/tmk_core/common/arm_atsam/printf.h index ad66722205c8..95557f5b01fd 100644 --- a/tmk_core/common/arm_atsam/printf.h +++ b/tmk_core/common/arm_atsam/printf.h @@ -1,10 +1,7 @@ -#ifndef _PRINTF_H_ -#define _PRINTF_H_ +#pragma once #define CONSOLE_PRINTBUF_SIZE 512 void console_printf(char *fmt, ...); #define __xprintf console_printf - -#endif //_PRINTF_H_ diff --git a/tmk_core/common/avr/suspend_avr.h b/tmk_core/common/avr/suspend_avr.h index e4cc0be50543..6df048f3bb0c 100644 --- a/tmk_core/common/avr/suspend_avr.h +++ b/tmk_core/common/avr/suspend_avr.h @@ -1,5 +1,4 @@ -#ifndef SUSPEND_AVR_H -#define SUSPEND_AVR_H +#pragma once #include #include @@ -24,5 +23,3 @@ __asm__ __volatile__ ( \ : "r0" \ ) // clang-format on - -#endif diff --git a/tmk_core/common/avr/timer_avr.h b/tmk_core/common/avr/timer_avr.h index 9aea21c65115..c1b726bd01ca 100644 --- a/tmk_core/common/avr/timer_avr.h +++ b/tmk_core/common/avr/timer_avr.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef TIMER_AVR_H -#define TIMER_AVR_H 1 +#pragma once #include @@ -38,5 +37,3 @@ along with this program. If not, see . #if (TIMER_RAW_TOP > 255) # error "Timer0 can't count 1ms at this clock freq. Use larger prescaler." #endif - -#endif diff --git a/tmk_core/common/avr/xprintf.h b/tmk_core/common/avr/xprintf.h index 70e0f8e48af0..80834f171472 100644 --- a/tmk_core/common/avr/xprintf.h +++ b/tmk_core/common/avr/xprintf.h @@ -2,8 +2,7 @@ Extended itoa, puts and printf (C)ChaN, 2011 -----------------------------------------------------------------------------*/ -#ifndef XPRINTF_H -#define XPRINTF_H +#pragma once #include #include @@ -102,5 +101,3 @@ char xatoi(char **str, long *ret); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/common/bootloader.h b/tmk_core/common/bootloader.h index 19260a079713..25ebd952888e 100644 --- a/tmk_core/common/bootloader.h +++ b/tmk_core/common/bootloader.h @@ -15,10 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef BOOTLOADER_H -#define BOOTLOADER_H +#pragma once /* give code for your bootloader to come up if needed */ void bootloader_jump(void); - -#endif diff --git a/tmk_core/common/bootmagic.h b/tmk_core/common/bootmagic.h index c64dc1785844..8209d0194f6c 100644 --- a/tmk_core/common/bootmagic.h +++ b/tmk_core/common/bootmagic.h @@ -1,5 +1,4 @@ -#ifndef BOOTMAGIC_H -#define BOOTMAGIC_H +#pragma once /* FIXME: Add special doxygen comments for defines here. */ @@ -101,5 +100,3 @@ void bootmagic(void); bool bootmagic_scan_keycode(uint8_t keycode); - -#endif diff --git a/tmk_core/common/chibios/eeprom_stm32.h b/tmk_core/common/chibios/eeprom_stm32.h index 373325cd2fa1..4dac7c1b595f 100644 --- a/tmk_core/common/chibios/eeprom_stm32.h +++ b/tmk_core/common/chibios/eeprom_stm32.h @@ -21,8 +21,7 @@ * This library also assumes that the pages are not used by the firmware. */ -#ifndef __EEPROM_H -#define __EEPROM_H +#pragma once #include #include @@ -83,5 +82,3 @@ uint16_t EEPROM_Init(void); void EEPROM_Erase(void); uint16_t EEPROM_WriteDataByte(uint16_t Address, uint8_t DataByte); uint8_t EEPROM_ReadDataByte(uint16_t Address); - -#endif /* __EEPROM_H */ diff --git a/tmk_core/common/chibios/flash_stm32.h b/tmk_core/common/chibios/flash_stm32.h index 8a874f606549..90d5bff47e33 100644 --- a/tmk_core/common/chibios/flash_stm32.h +++ b/tmk_core/common/chibios/flash_stm32.h @@ -16,8 +16,7 @@ * Modifications for QMK and STM32F303 by Yiancar */ -#ifndef __FLASH_STM32_H -#define __FLASH_STM32_H +#pragma once #ifdef __cplusplus extern "C" { @@ -41,5 +40,3 @@ void FLASH_ClearFlag(uint32_t FLASH_FLAG); #ifdef __cplusplus } #endif - -#endif /* __FLASH_STM32_H */ diff --git a/tmk_core/common/debug.h b/tmk_core/common/debug.h index f9d611bb03cd..3d2e2315effc 100644 --- a/tmk_core/common/debug.h +++ b/tmk_core/common/debug.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef DEBUG_H -#define DEBUG_H 1 +#pragma once #include #include "print.h" @@ -168,5 +167,3 @@ extern debug_config_t debug_config; # define debug_bin_reverse(data) #endif /* NO_DEBUG */ - -#endif diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h index 6fbe789031b9..c4f0483913ac 100644 --- a/tmk_core/common/eeconfig.h +++ b/tmk_core/common/eeconfig.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef EECONFIG_H -#define EECONFIG_H +#pragma once #include #include @@ -111,5 +110,3 @@ void eeconfig_update_haptic(uint32_t val); bool eeconfig_read_handedness(void); void eeconfig_update_handedness(bool val); - -#endif diff --git a/tmk_core/common/eeprom.h b/tmk_core/common/eeprom.h index 8a81e7066895..f5b3f0ad53d1 100644 --- a/tmk_core/common/eeprom.h +++ b/tmk_core/common/eeprom.h @@ -1,5 +1,4 @@ -#ifndef TMK_CORE_COMMON_EEPROM_H_ -#define TMK_CORE_COMMON_EEPROM_H_ +#pragma once #if defined(__AVR__) && !defined(EEPROM_DRIVER) # include @@ -20,5 +19,3 @@ void eeprom_update_word(uint16_t *__p, uint16_t __value); void eeprom_update_dword(uint32_t *__p, uint32_t __value); void eeprom_update_block(const void *__src, void *__dst, size_t __n); #endif - -#endif /* TMK_CORE_COMMON_EEPROM_H_ */ diff --git a/tmk_core/common/host_driver.h b/tmk_core/common/host_driver.h index 3cfec40cca3d..f34a22053066 100644 --- a/tmk_core/common/host_driver.h +++ b/tmk_core/common/host_driver.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef HOST_DRIVER_H -#define HOST_DRIVER_H +#pragma once #include #include "report.h" @@ -31,5 +30,3 @@ typedef struct { void (*send_system)(uint16_t); void (*send_consumer)(uint16_t); } host_driver_t; - -#endif diff --git a/tmk_core/common/keyboard.h b/tmk_core/common/keyboard.h index caa18e7e7698..d04e685cdb2e 100644 --- a/tmk_core/common/keyboard.h +++ b/tmk_core/common/keyboard.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef KEYBOARD_H -#define KEYBOARD_H +#pragma once #include #include @@ -77,5 +76,3 @@ void housekeeping_task_user(void); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/common/keycode.h b/tmk_core/common/keycode.h index 5c8ba8fe60ef..d35e44d8dc24 100644 --- a/tmk_core/common/keycode.h +++ b/tmk_core/common/keycode.h @@ -21,8 +21,8 @@ along with this program. If not, see . * See https://web.archive.org/web/20060218214400/http://www.usb.org/developers/devclass_docs/Hut1_12.pdf * or http://www.usb.org/developers/hidpage/Hut1_12v2.pdf (older) */ -#ifndef KEYCODE_H -#define KEYCODE_H + +#pragma once /* FIXME: Add doxygen comments here */ @@ -542,4 +542,3 @@ enum mouse_keys { KC_MS_ACCEL1, KC_MS_ACCEL2 }; -#endif diff --git a/tmk_core/common/magic.h b/tmk_core/common/magic.h index 3fa2d8b81c49..a6552c04dc2f 100644 --- a/tmk_core/common/magic.h +++ b/tmk_core/common/magic.h @@ -1,6 +1,3 @@ -#ifndef MAGIC_H -#define MAGIC_H +#pragma once void magic(void); - -#endif diff --git a/tmk_core/common/matrix.h b/tmk_core/common/matrix.h index 31ec844302c8..e36f01460058 100644 --- a/tmk_core/common/matrix.h +++ b/tmk_core/common/matrix.h @@ -14,8 +14,8 @@ 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 . */ -#ifndef MATRIX_H -#define MATRIX_H + +#pragma once #include #include @@ -76,5 +76,3 @@ void matrix_scan_user(void); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/common/mousekey.h b/tmk_core/common/mousekey.h index 05e4538234e6..300d262f5d6f 100644 --- a/tmk_core/common/mousekey.h +++ b/tmk_core/common/mousekey.h @@ -15,9 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef MOUSEKEY_H -# define MOUSEKEY_H -#endif +#pragma once #include #include "host.h" diff --git a/tmk_core/common/nodebug.h b/tmk_core/common/nodebug.h index b9c8b3ac0f3f..0b176684bd61 100644 --- a/tmk_core/common/nodebug.h +++ b/tmk_core/common/nodebug.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef NODEBUG_H -#define NODEBUG_H +#pragma once #ifndef NO_DEBUG # define NO_DEBUG @@ -25,5 +24,3 @@ along with this program. If not, see . #else # include "debug.h" #endif - -#endif diff --git a/tmk_core/common/print.h b/tmk_core/common/print.h index 1c77236212d2..647a5aa05309 100644 --- a/tmk_core/common/print.h +++ b/tmk_core/common/print.h @@ -22,8 +22,7 @@ * THE SOFTWARE. */ -#ifndef PRINT_H__ -#define PRINT_H__ 1 +#pragma once #include #include @@ -269,5 +268,3 @@ extern "C" #define pbin16(data) print_bin16(data) #define pbin_reverse(data) print_bin_reverse8(data) #define pbin_reverse16(data) print_bin_reverse16(data) - -#endif diff --git a/tmk_core/common/raw_hid.h b/tmk_core/common/raw_hid.h index c579157f14e5..6d60ab2bffc1 100644 --- a/tmk_core/common/raw_hid.h +++ b/tmk_core/common/raw_hid.h @@ -1,8 +1,5 @@ -#ifndef _RAW_HID_H_ -#define _RAW_HID_H_ +#pragma once void raw_hid_receive(uint8_t *data, uint8_t length); void raw_hid_send(uint8_t *data, uint8_t length); - -#endif diff --git a/tmk_core/common/sendchar.h b/tmk_core/common/sendchar.h index bd7b94fd99ff..b150dd464efd 100644 --- a/tmk_core/common/sendchar.h +++ b/tmk_core/common/sendchar.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef SENDCHAR_H -#define SENDCHAR_H +#pragma once #include @@ -30,5 +29,3 @@ int8_t sendchar(uint8_t c); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/common/sleep_led.h b/tmk_core/common/sleep_led.h index d160213f11c7..38f80a660df2 100644 --- a/tmk_core/common/sleep_led.h +++ b/tmk_core/common/sleep_led.h @@ -1,5 +1,4 @@ -#ifndef SLEEP_LED_H -#define SLEEP_LED_H +#pragma once #ifdef SLEEP_LED_ENABLE @@ -16,5 +15,3 @@ void sleep_led_toggle(void); # define sleep_led_toggle() #endif - -#endif diff --git a/tmk_core/common/suspend.h b/tmk_core/common/suspend.h index 87f5025da77b..766df95aa1bc 100644 --- a/tmk_core/common/suspend.h +++ b/tmk_core/common/suspend.h @@ -1,5 +1,4 @@ -#ifndef SUSPEND_H -#define SUSPEND_H +#pragma once #include #include @@ -13,5 +12,3 @@ void suspend_wakeup_init_user(void); void suspend_wakeup_init_kb(void); void suspend_power_down_user(void); void suspend_power_down_kb(void); - -#endif diff --git a/tmk_core/common/timer.h b/tmk_core/common/timer.h index 7ee7feac29fa..58f637dd9359 100644 --- a/tmk_core/common/timer.h +++ b/tmk_core/common/timer.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef TIMER_H -#define TIMER_H 1 +#pragma once #include #include @@ -51,5 +50,3 @@ uint32_t timer_elapsed32(uint32_t last); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/common/uart.h b/tmk_core/common/uart.h index 59a1a7cd12e4..ea247b17b8db 100644 --- a/tmk_core/common/uart.h +++ b/tmk_core/common/uart.h @@ -1,5 +1,4 @@ -#ifndef _uart_included_h_ -#define _uart_included_h_ +#pragma once #include @@ -7,5 +6,3 @@ void uart_init(uint32_t baud); void uart_putchar(uint8_t c); uint8_t uart_getchar(void); uint8_t uart_available(void); - -#endif diff --git a/tmk_core/common/util.h b/tmk_core/common/util.h index 68642e7fd3f1..db57f268c305 100644 --- a/tmk_core/common/util.h +++ b/tmk_core/common/util.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef UTIL_H -#define UTIL_H +#pragma once #include @@ -46,5 +45,3 @@ uint32_t bitrev32(uint32_t bits); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/common/virtser.h b/tmk_core/common/virtser.h index 74891b6ae0a6..a0645f9e03ea 100644 --- a/tmk_core/common/virtser.h +++ b/tmk_core/common/virtser.h @@ -1,10 +1,7 @@ -#ifndef _VIRTSER_H_ -#define _VIRTSER_H_ +#pragma once /* Define this function in your code to process incoming bytes */ void virtser_recv(const uint8_t ch); /* Call this to send a character over the Virtual Serial Device */ void virtser_send(const uint8_t byte); - -#endif diff --git a/tmk_core/common/wait.h b/tmk_core/common/wait.h index f5ef12ac0751..89128e9daf25 100644 --- a/tmk_core/common/wait.h +++ b/tmk_core/common/wait.h @@ -1,5 +1,4 @@ -#ifndef WAIT_H -#define WAIT_H +#pragma once #include @@ -41,5 +40,3 @@ void wait_ms(uint32_t ms); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/protocol/adb.h b/tmk_core/protocol/adb.h index 7d37485fcd77..34cbcf769102 100644 --- a/tmk_core/protocol/adb.h +++ b/tmk_core/protocol/adb.h @@ -35,8 +35,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef ADB_H -#define ADB_H +#pragma once #include #include @@ -57,5 +56,3 @@ void adb_host_listen(uint8_t cmd, uint8_t data_h, uint8_t data_l); void adb_host_kbd_led(uint8_t led); void adb_mouse_task(void); void adb_mouse_init(void); - -#endif diff --git a/tmk_core/protocol/chibios/usb_driver.h b/tmk_core/protocol/chibios/usb_driver.h index 6d71bcec4f43..f94387debdcf 100644 --- a/tmk_core/protocol/chibios/usb_driver.h +++ b/tmk_core/protocol/chibios/usb_driver.h @@ -22,10 +22,9 @@ * @{ */ -#ifndef USB_DRIVER_H -# define USB_DRIVER_H +#pragma once -# include +#include /*===========================================================================*/ /* Driver constants. */ @@ -35,9 +34,9 @@ /* Derived constants and error checks. */ /*===========================================================================*/ -# if HAL_USE_USB == FALSE -# error "The USB Driver requires HAL_USE_USB" -# endif +#if HAL_USE_USB == FALSE +# error "The USB Driver requires HAL_USE_USB" +#endif /*===========================================================================*/ /* Driver data structures and types. */ @@ -112,21 +111,21 @@ typedef struct { /** * @brief @p SerialDriver specific data. */ -# define _qmk_usb_driver_data \ - _base_asynchronous_channel_data /* Driver state.*/ \ - qmkusbstate_t state; \ - /* Input buffers queue.*/ \ - input_buffers_queue_t ibqueue; \ - /* Output queue.*/ \ - output_buffers_queue_t obqueue; \ - /* End of the mandatory fields.*/ \ - /* Current configuration data.*/ \ - const QMKUSBConfig *config; +#define _qmk_usb_driver_data \ + _base_asynchronous_channel_data /* Driver state.*/ \ + qmkusbstate_t state; \ + /* Input buffers queue.*/ \ + input_buffers_queue_t ibqueue; \ + /* Output queue.*/ \ + output_buffers_queue_t obqueue; \ + /* End of the mandatory fields.*/ \ + /* Current configuration data.*/ \ + const QMKUSBConfig *config; /** * @brief @p SerialUSBDriver specific methods. */ -# define _qmk_usb_driver_methods _base_asynchronous_channel_methods +#define _qmk_usb_driver_methods _base_asynchronous_channel_methods /** * @extends BaseAsynchronousChannelVMT @@ -158,9 +157,9 @@ struct QMKUSBDriver { /* External declarations. */ /*===========================================================================*/ -# ifdef __cplusplus +#ifdef __cplusplus extern "C" { -# endif +#endif void qmkusbInit(void); void qmkusbObjectInit(QMKUSBDriver *qmkusbp, const QMKUSBConfig *config); void qmkusbStart(QMKUSBDriver *qmkusbp, const QMKUSBConfig *config); @@ -173,10 +172,8 @@ void qmkusbSOFHookI(QMKUSBDriver *qmkusbp); void qmkusbDataTransmitted(USBDriver *usbp, usbep_t ep); void qmkusbDataReceived(USBDriver *usbp, usbep_t ep); void qmkusbInterruptTransmitted(USBDriver *usbp, usbep_t ep); -# ifdef __cplusplus +#ifdef __cplusplus } -# endif - -#endif /* USB_DRIVER_H */ +#endif /** @} */ diff --git a/tmk_core/protocol/chibios/usb_main.h b/tmk_core/protocol/chibios/usb_main.h index 1381d0765438..eaa08d8f795f 100644 --- a/tmk_core/protocol/chibios/usb_main.h +++ b/tmk_core/protocol/chibios/usb_main.h @@ -15,8 +15,7 @@ * GPL v2 or later. */ -#ifndef _USB_MAIN_H_ -#define _USB_MAIN_H_ +#pragma once // TESTING // extern uint8_t blinkLed; @@ -89,5 +88,3 @@ int8_t sendchar(uint8_t c); void console_flush_output(void); #endif /* CONSOLE_ENABLE */ - -#endif /* _USB_MAIN_H_ */ diff --git a/tmk_core/protocol/ibm4704.h b/tmk_core/protocol/ibm4704.h index cc2418ee6841..4f88d148b3e6 100644 --- a/tmk_core/protocol/ibm4704.h +++ b/tmk_core/protocol/ibm4704.h @@ -1,8 +1,8 @@ /* Copyright 2014 Jun WAKO */ -#ifndef IBM4704_H -#define IBM4704_H + +#pragma once #define IBM4704_ERR_NONE 0 #define IBM4704_ERR_PARITY 0x70 @@ -101,5 +101,3 @@ static inline void inhibit(void) { clock_hi(); data_lo(); } - -#endif diff --git a/tmk_core/protocol/lufa/lufa.h b/tmk_core/protocol/lufa/lufa.h index 71fd7aad854b..348a84c031ae 100644 --- a/tmk_core/protocol/lufa/lufa.h +++ b/tmk_core/protocol/lufa/lufa.h @@ -36,8 +36,7 @@ this software. */ -#ifndef _LUFA_H_ -#define _LUFA_H_ +#pragma once #include #include @@ -68,5 +67,3 @@ extern host_driver_t lufa_driver; // The header and terminator are not stored to save a few bytes of precious ram # define MIDI_SYSEX_BUFFER (API_SYSEX_MAX_SIZE + API_SYSEX_MAX_SIZE / 7 + (API_SYSEX_MAX_SIZE % 7 ? 1 : 0)) #endif - -#endif diff --git a/tmk_core/protocol/m0110.h b/tmk_core/protocol/m0110.h index 3f9686b0d926..63ff3e90ec4c 100644 --- a/tmk_core/protocol/m0110.h +++ b/tmk_core/protocol/m0110.h @@ -35,8 +35,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef M0110_H -#define M0110_H +#pragma once /* port settings for clock and data line */ #if !(defined(M0110_CLOCK_PORT) && defined(M0110_CLOCK_PIN) && defined(M0110_CLOCK_DDR) && defined(M0110_CLOCK_BIT)) @@ -80,5 +79,3 @@ uint8_t m0110_recv(void); uint8_t m0110_recv_key(void); uint8_t m0110_inquiry(void); uint8_t m0110_instant(void); - -#endif diff --git a/tmk_core/protocol/midi/Config/LUFAConfig.h b/tmk_core/protocol/midi/Config/LUFAConfig.h index b346c05bdd61..dead96de78d1 100644 --- a/tmk_core/protocol/midi/Config/LUFAConfig.h +++ b/tmk_core/protocol/midi/Config/LUFAConfig.h @@ -39,8 +39,7 @@ * manual section "Summary of Compile Tokens". */ -#ifndef _LUFA_CONFIG_H_ -#define _LUFA_CONFIG_H_ +#pragma once #if (ARCH == ARCH_AVR8) @@ -90,4 +89,3 @@ # error Unsupported architecture for this LUFA configuration file. #endif -#endif diff --git a/tmk_core/protocol/midi/bytequeue/bytequeue.h b/tmk_core/protocol/midi/bytequeue/bytequeue.h index 33fb63a8cbc9..29d15abbd38a 100644 --- a/tmk_core/protocol/midi/bytequeue/bytequeue.h +++ b/tmk_core/protocol/midi/bytequeue/bytequeue.h @@ -17,8 +17,7 @@ // You should have received a copy of the GNU General Public License // along with avr-bytequeue. If not, see . -#ifndef BYTEQUEUE_H -#define BYTEQUEUE_H +#pragma once #ifdef __cplusplus extern "C" { @@ -54,5 +53,3 @@ void bytequeue_remove(byteQueue_t* queue, byteQueueIndex_t numToRemove); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/protocol/midi/bytequeue/interrupt_setting.h b/tmk_core/protocol/midi/bytequeue/interrupt_setting.h index 788f75d79f0f..78294f07657e 100644 --- a/tmk_core/protocol/midi/bytequeue/interrupt_setting.h +++ b/tmk_core/protocol/midi/bytequeue/interrupt_setting.h @@ -16,8 +16,7 @@ // You should have received a copy of the GNU General Public License // along with avr-bytequeue. If not, see . -#ifndef INTERRUPT_SETTING_H -#define INTERRUPT_SETTING_H +#pragma once #ifdef __cplusplus extern "C" { @@ -34,5 +33,3 @@ void restore_interrupt_setting(interrupt_setting_t setting); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/protocol/midi/midi.h b/tmk_core/protocol/midi/midi.h index 07d8cebc1063..75f3b13b0bf5 100644 --- a/tmk_core/protocol/midi/midi.h +++ b/tmk_core/protocol/midi/midi.h @@ -25,8 +25,7 @@ * */ -#ifndef XNOR_MIDI_H -#define XNOR_MIDI_H +#pragma once #ifdef __cplusplus extern "C" { @@ -486,5 +485,3 @@ midi_packet_length_t midi_packet_length(uint8_t status); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/protocol/midi/midi_device.h b/tmk_core/protocol/midi/midi_device.h index 693d81a8e214..79e8f7a9369b 100644 --- a/tmk_core/protocol/midi/midi_device.h +++ b/tmk_core/protocol/midi/midi_device.h @@ -21,8 +21,7 @@ * @brief Device implementation functions */ -#ifndef MIDI_DEVICE_H -#define MIDI_DEVICE_H +#pragma once #ifdef __cplusplus extern "C" { @@ -147,5 +146,3 @@ void midi_device_set_pre_input_process_func(MidiDevice* device, midi_no_byte_fun #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/protocol/midi/midi_function_types.h b/tmk_core/protocol/midi/midi_function_types.h index 761e881178db..6f98a729811b 100644 --- a/tmk_core/protocol/midi/midi_function_types.h +++ b/tmk_core/protocol/midi/midi_function_types.h @@ -21,8 +21,7 @@ * @brief Function signature definitions */ -#ifndef MIDI_FUNCTION_TYPES_H -#define MIDI_FUNCTION_TYPES_H +#pragma once #ifdef __cplusplus extern "C" { @@ -46,5 +45,3 @@ typedef void (*midi_sysex_func_t)(MidiDevice *device, uint16_t start_byte, uint8 #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/protocol/midi/sysex_tools.h b/tmk_core/protocol/midi/sysex_tools.h index 454a92ea583f..7d7f10d24e80 100644 --- a/tmk_core/protocol/midi/sysex_tools.h +++ b/tmk_core/protocol/midi/sysex_tools.h @@ -16,8 +16,7 @@ // You should have received a copy of the GNU General Public License // along with avr-midi. If not, see . -#ifndef SYSEX_TOOLS_H -#define SYSEX_TOOLS_H +#pragma once #ifdef __cplusplus extern "C" { @@ -91,5 +90,3 @@ uint16_t sysex_decode(uint8_t *decoded, const uint8_t *source, uint16_t length); #ifdef __cplusplus } #endif - -#endif diff --git a/tmk_core/protocol/news.h b/tmk_core/protocol/news.h index d0c4bc6a4dce..327a13856d47 100644 --- a/tmk_core/protocol/news.h +++ b/tmk_core/protocol/news.h @@ -35,8 +35,8 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef NEWS_H -#define NEWS_H +#pragma once + /* * Primitive PS/2 Library for AVR */ @@ -46,5 +46,3 @@ void news_init(void); uint8_t news_recv(void); /* device role */ - -#endif diff --git a/tmk_core/protocol/next_kbd.h b/tmk_core/protocol/next_kbd.h index bff7a474d330..1249ebf392db 100644 --- a/tmk_core/protocol/next_kbd.h +++ b/tmk_core/protocol/next_kbd.h @@ -45,13 +45,12 @@ POSSIBILITY OF SUCH DAMAGE. */ -#include +#pragma once -#ifndef NEXT_KBD_H -# define NEXT_KBD_H +#include -# define NEXT_KBD_KMBUS_IDLE 0x300600 -# define NEXT_KBD_TIMING 50 +#define NEXT_KBD_KMBUS_IDLE 0x300600 +#define NEXT_KBD_TIMING 50 extern uint8_t next_kbd_error; @@ -59,5 +58,3 @@ extern uint8_t next_kbd_error; void next_kbd_init(void); void next_kbd_set_leds(bool left, bool right); uint32_t next_kbd_recv(void); - -#endif diff --git a/tmk_core/protocol/ps2.h b/tmk_core/protocol/ps2.h index e32cc9603f20..f1231928526b 100644 --- a/tmk_core/protocol/ps2.h +++ b/tmk_core/protocol/ps2.h @@ -35,8 +35,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef PS2_H -#define PS2_H +#pragma once #include #include "wait.h" @@ -138,5 +137,3 @@ static inline void inhibit(void) { clock_lo(); data_hi(); } - -#endif diff --git a/tmk_core/protocol/ps2_io.h b/tmk_core/protocol/ps2_io.h index 35e26561d41b..de93cb7a39d8 100644 --- a/tmk_core/protocol/ps2_io.h +++ b/tmk_core/protocol/ps2_io.h @@ -1,5 +1,4 @@ -#ifndef PS2_IO_H -#define PS2_IO_H +#pragma once void clock_init(void); void clock_lo(void); @@ -10,5 +9,3 @@ void data_init(void); void data_lo(void); void data_hi(void); bool data_in(void); - -#endif diff --git a/tmk_core/protocol/ps2_mouse.h b/tmk_core/protocol/ps2_mouse.h index d743fb3d85e5..c97c6c893a03 100644 --- a/tmk_core/protocol/ps2_mouse.h +++ b/tmk_core/protocol/ps2_mouse.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef PS2_MOUSE_H -#define PS2_MOUSE_H +#pragma once #include #include "debug.h" @@ -176,5 +175,3 @@ void ps2_mouse_set_resolution(ps2_mouse_resolution_t resolution); void ps2_mouse_set_sample_rate(ps2_mouse_sample_rate_t sample_rate); void ps2_mouse_moved_user(report_mouse_t *mouse_report); - -#endif diff --git a/tmk_core/protocol/serial_mouse.h b/tmk_core/protocol/serial_mouse.h index b10315f3660c..cb83cf4f6221 100644 --- a/tmk_core/protocol/serial_mouse.h +++ b/tmk_core/protocol/serial_mouse.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef SERIAL_MOUSE_H -#define SERIAL_MOUSE_H +#pragma once #include @@ -28,5 +27,3 @@ static inline uint8_t serial_mouse_init(void) { } void serial_mouse_task(void); - -#endif diff --git a/tmk_core/protocol/usb_descriptor.h b/tmk_core/protocol/usb_descriptor.h index 3a7c0bdbac5b..4c6728ebb916 100644 --- a/tmk_core/protocol/usb_descriptor.h +++ b/tmk_core/protocol/usb_descriptor.h @@ -40,8 +40,8 @@ * * Header file for Descriptors.c. */ -#ifndef _DESCRIPTORS_H_ -#define _DESCRIPTORS_H_ + +#pragma once #include @@ -286,4 +286,3 @@ enum usb_endpoints { #define JOYSTICK_EPSIZE 8 uint16_t get_usb_descriptor(const uint16_t wValue, const uint16_t wIndex, const void** const DescriptorAddress); -#endif diff --git a/tmk_core/protocol/xt.h b/tmk_core/protocol/xt.h index e7e1a13f4d61..6dc5f19d00b6 100644 --- a/tmk_core/protocol/xt.h +++ b/tmk_core/protocol/xt.h @@ -36,8 +36,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef XT_H -#define XT_H +#pragma once #define XT_DATA_IN() \ do { \ @@ -69,5 +68,3 @@ POSSIBILITY OF SUCH DAMAGE. void xt_host_init(void); uint8_t xt_host_recv(void); - -#endif diff --git a/tmk_core/ring_buffer.h b/tmk_core/ring_buffer.h index 25fab638ebd3..8f887c8f74ab 100644 --- a/tmk_core/ring_buffer.h +++ b/tmk_core/ring_buffer.h @@ -1,5 +1,5 @@ -#ifndef RING_BUFFER_H -#define RING_BUFFER_H +#pragma once + /*-------------------------------------------------------------------- * Ring buffer to store scan codes from keyboard *------------------------------------------------------------------*/ @@ -43,5 +43,3 @@ static inline bool rbuf_has_data(void) { static inline void rbuf_clear(void) { ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { rbuf_head = rbuf_tail = 0; } } - -#endif /* RING_BUFFER_H */ From bbf0f65284f6c9cc40429f446bddf48e2e882ad0 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 27 Dec 2020 16:56:10 +0000 Subject: [PATCH 040/140] Simplify the visual flow of the getting started page (#11316) * Add tabs to getting started page * Review comments Co-authored-by: Ryan * Align with current theme * Update docs/newbs_getting_started.md Co-authored-by: Ryan * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Ryan --- docs/index.html | 5 ++ docs/newbs_getting_started.md | 89 +++++++++++++++++++++++++++++------ docs/qmk_custom_dark.css | 17 +++++++ docs/qmk_custom_light.css | 17 +++++++ 4 files changed, 114 insertions(+), 14 deletions(-) diff --git a/docs/index.html b/docs/index.html index 5cab97a57fa3..5312b9105ddc 100644 --- a/docs/index.html +++ b/docs/index.html @@ -126,6 +126,10 @@ headings: 'h1, h2', title: 'Table of Contents', }, + tabs: { + persist : false, + tabComments: false, + }, plugins: [ function (hook, vm) { hook.beforeEach(function (html) { @@ -148,6 +152,7 @@ + diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index 5eb99377c176..3793fe767395 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -37,26 +37,45 @@ We've tried to make QMK as easy to set up as possible. You only have to prepare [Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html)
[Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) -### Windows + -You will need to install MSYS2, Git, and the QMK CLI. +### ** Windows ** -Follow the installation instructions on the [MSYS2 homepage](http://www.msys2.org). Close any open MSYS terminals and open a new MinGW 64-bit terminal. **NOTE: This is *not* the same as the MSYS terminal that opens when installation is completed.** +#### Prerequisites -Then, run the following: +You will need to install MSYS2, Git and Python. Follow the installation instructions on https://www.msys2.org. + +Once MSYS2 is installed, close any open MSYS terminals and open a new MinGW 64-bit terminal. + +!> **NOTE:** The MinGW 64-bit terminal is *not* the same as the MSYS terminal that opens when installation is completed. Your prompt should say "MINGW64" in purple text, rather than "MSYS". See [this page](https://www.msys2.org/wiki/MSYS2-introduction/#subsystems) for more information on the differences. + +Then run the following command: pacman --needed --noconfirm --disable-download-timeout -S git mingw-w64-x86_64-toolchain mingw-w64-x86_64-python3-pip + +#### Installation + +Install the QMK CLI by running: + python3 -m pip install qmk -### macOS +### ** macOS ** + +QMK maintains a Homebrew tap and formula which will automatically install the CLI and all necessary dependencies. + +#### Prerequisites -You will need to install Homebrew. Follow the instructions on the [Homebrew homepage](https://brew.sh). +You will need to install Homebrew. Follow the instructions on https://brew.sh. -After Homebrew is installed run this command: +#### Installation + +Install the QMK CLI by running: brew install qmk/qmk/qmk -### Linux +### ** Linux/WSL ** + +#### Prerequisites You will need to install Git and Python. It's very likely that you already have both, but if not, one of the following commands should install them: @@ -68,29 +87,61 @@ You will need to install Git and Python. It's very likely that you already have * Sabayon: `sudo equo install dev-vcs/git dev-python/pip` * Gentoo: `sudo emerge dev-vcs/git dev-python/pip` -Install the global CLI to bootstrap your system: +#### Installation -`python3 -m pip install --user qmk` (on Arch-based distros you can also try the `qmk` package from AUR (**note**: it's maintained by a community member): `yay -S qmk`) +Install the QMK CLI by running: -### FreeBSD + python3 -m pip install --user qmk + +On Arch-based distros you can also try the `qmk` package from AUR (**NOTE**: this package is maintained by a community member, and at the time of writing marks some dependencies as optional that should not be): + + yay -S qmk + +### ** FreeBSD ** + +#### Prerequisites You will need to install Git and Python. It's possible that you already have both, but if not, run the following commands to install them: pkg install git python3 -Make sure that `$HOME/.local/bin` is added to your `$PATH` so that locally install Python packages are available. +Make sure that `$HOME/.local/bin` is added to your `$PATH` so that locally installed Python packages are available. -Once installed, you can install QMK CLI: +#### Installation + +Install the QMK CLI by running: python3 -m pip install --user qmk + + ## 3. Run QMK Setup :id=set-up-qmk + + +### ** Windows ** + After installing QMK you can set it up with this command: qmk setup -In most situations you will want to answer Yes to all of the prompts. +In most situations you will want to answer `y` to all of the prompts. + +### ** macOS ** + +After installing QMK you can set it up with this command: + + qmk setup + +In most situations you will want to answer `y` to all of the prompts. + +### ** Linux/WSL ** + +After installing QMK you can set it up with this command: + + qmk setup + +In most situations you will want to answer `y` to all of the prompts. ?>**Note on Debian, Ubuntu and their derivatives**: It's possible, that you will get an error saying something like: `bash: qmk: command not found`. @@ -98,12 +149,22 @@ This is due to a [bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155) Sadly, Ubuntu reitroduced this bug and is [yet to fix it](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562). Luckily, the fix is easy. Run this as your user: `echo 'PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc && source $HOME/.bashrc` +### ** FreeBSD ** + +After installing QMK you can set it up with this command: + + qmk setup + +In most situations you will want to answer `y` to all of the prompts. + ?>**Note on FreeBSD**: It is suggested to run `qmk setup` as a non-`root` user to start with, but this will likely identify packages that need to be installed to your base system using `pkg`. However the installation will probably fail when run as an unprivileged user. To manually install the base dependencies, run `./util/qmk_install.sh` either as `root`, or with `sudo`. Once that completes, re-run `qmk setup` to complete the setup and checks. + + ?> If you already know [how to use GitHub](getting_started_github.md), we recommend that you create your own fork and use `qmk setup /qmk_firmware` to clone your personal fork. If you don't know what that means you can safely ignore this message. ## 4. Test Your Build Environment diff --git a/docs/qmk_custom_dark.css b/docs/qmk_custom_dark.css index a7feb159c805..c7fe7b7da72a 100644 --- a/docs/qmk_custom_dark.css +++ b/docs/qmk_custom_dark.css @@ -27,3 +27,20 @@ .markdown-section hr, .search { border-bottom: 1px solid #777 !important; } + + +:root { + --docsifytabs-border-color: #555; + --docsifytabs-tab-highlight-color: var(--theme-color,#ea6f5a); + + --docsifytabs-tab-background: #444; + --docsifytabs-tab-background-active: #3f3f3f; +} + +.docsify-tabs__tab:focus { + outline: none !important; +} + +.docsify-tabs__content .anchor { + transition: none; +} diff --git a/docs/qmk_custom_light.css b/docs/qmk_custom_light.css index 07b26ecec96f..c5d36cf6f0c1 100644 --- a/docs/qmk_custom_light.css +++ b/docs/qmk_custom_light.css @@ -28,3 +28,20 @@ .markdown-section pre { padding: 0; } + + +:root { + --docsifytabs-border-color: #ddd; + --docsifytabs-tab-highlight-color: var(--theme-color, #0074d9); + + --docsifytabs-tab-background: #f8f8f8; + --docsifytabs-tab-background-active: transparent; +} + +.docsify-tabs__tab:focus { + outline: none !important; +} + +.docsify-tabs__content .anchor { + transition: none; +} From 1b7b72c0e96856d2b9f73f705787af3426662bcf Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 28 Dec 2020 04:36:32 +1100 Subject: [PATCH 041/140] Ensure single newline at EOF for core files (#11310) --- build_full_test.mk | 2 +- build_test.mk | 5 ++--- docs/ChangeLog/20190830.md | 1 - docs/es/hardware_drivers.md | 1 - docs/feature_debounce_type.md | 1 - docs/feature_sequencer.md | 1 - docs/feature_stenography.md | 1 - docs/fuse.txt | 1 - docs/he-il/documentation_best_practices.md | 2 +- docs/he-il/faq.md | 2 +- docs/he-il/faq_general.md | 2 +- docs/he-il/getting_started_getting_help.md | 2 +- docs/he-il/hardware.md | 2 +- docs/he-il/newbs_learn_more_resources.md | 2 +- docs/ja/feature_debounce_type.md | 2 -- docs/ja/internals_input_callback_reg.md | 1 - docs/platformdev_chibios_earlyinit.md | 2 +- drivers/haptic/DRV2605L.h | 2 +- drivers/ugfx/gdisp/is31fl3731c/driver.mk | 2 +- .../configs/bootloader_defs.h | 2 +- .../GENERIC_STM32_F042X6/configs/mcuconf.h | 2 +- quantum/led.c | 2 +- quantum/pointing_device.c | 2 +- quantum/serial_link/README.md | 2 +- quantum/serial_link/tests/Makefile | 16 ++++++++-------- quantum/serial_link/tests/testlist.mk | 2 +- setup.cfg | 1 - testlist.mk | 2 +- tests/basic/config.h | 5 +---- tests/basic/rules.mk | 2 +- tests/basic/test_macro.cpp | 2 +- tests/test_common/keyboard_report_util.cpp | 2 +- tests/test_common/keyboard_report_util.hpp | 2 +- tests/test_common/test_driver.hpp | 8 ++------ tests/test_common/test_fixture.hpp | 4 ++-- tmk_core/common/avr/xprintf.S | 4 +--- tmk_core/common/chibios/sleep_led.c | 2 +- tmk_core/common/test/timer.c | 2 +- tmk_core/protocol/chibios.mk | 1 - util/new_keymap.sh | 2 +- 40 files changed, 40 insertions(+), 61 deletions(-) diff --git a/build_full_test.mk b/build_full_test.mk index 170020b96855..f8030cb0600d 100644 --- a/build_full_test.mk +++ b/build_full_test.mk @@ -30,4 +30,4 @@ $(TEST)_SRC += $(patsubst $(ROOTDIR)/%,%,$(wildcard $(TEST_PATH)/*.cpp)) $(TEST)_DEFS=$(TMK_COMMON_DEFS) $(OPT_DEFS) $(TEST)_CONFIG=$(TEST_PATH)/config.h -VPATH+=$(TOP_DIR)/tests/test_common \ No newline at end of file +VPATH+=$(TOP_DIR)/tests/test_common diff --git a/build_test.mk b/build_test.mk index e705c6a3ba1b..77c4265f9371 100644 --- a/build_test.mk +++ b/build_test.mk @@ -17,7 +17,7 @@ OUTPUTS := $(TEST_OBJ)/$(TEST) $(GTEST_OUTPUT) GTEST_INC := \ $(LIB_PATH)/googletest/googletest/include\ $(LIB_PATH)/googletest/googlemock/include\ - + GTEST_INTERNAL_INC :=\ $(LIB_PATH)/googletest/googletest\ $(LIB_PATH)/googletest/googlemock @@ -27,7 +27,7 @@ $(GTEST_OUTPUT)_SRC :=\ googletest/src/gtest_main.cc\ googlemock/src/gmock-all.cc -$(GTEST_OUTPUT)_DEFS := +$(GTEST_OUTPUT)_DEFS := $(GTEST_OUTPUT)_INC := $(GTEST_INC) $(GTEST_INTERNAL_INC) LDFLAGS += -lstdc++ -lpthread -shared-libgcc @@ -66,4 +66,3 @@ include $(TMK_PATH)/rules.mk $(shell mkdir -p $(BUILD_DIR)/test 2>/dev/null) $(shell mkdir -p $(TEST_OBJ) 2>/dev/null) - diff --git a/docs/ChangeLog/20190830.md b/docs/ChangeLog/20190830.md index bd2d5e19c34a..ab6e28c4d90f 100644 --- a/docs/ChangeLog/20190830.md +++ b/docs/ChangeLog/20190830.md @@ -50,4 +50,3 @@ This document marks the inaugural Breaking Change merge. A list of changes follo * `KC_DELT` was a redundant, undocumented alias for `KC_DELETE` * It has been removed and all its uses replaced with the more common `KC_DEL` alias * Around 90 keymaps (mostly for ErgoDox boards) have been modified as a result - diff --git a/docs/es/hardware_drivers.md b/docs/es/hardware_drivers.md index 7b74b34b456b..e0a9736068ca 100644 --- a/docs/es/hardware_drivers.md +++ b/docs/es/hardware_drivers.md @@ -33,4 +33,3 @@ Soporte para hasta 2 controladores. Cada controlador implementa 2 matrices charl ## IS31FL3733 Soporte para hasta un solo controlador con espacio para expansión. Cada controlador puede controlar 192 LEDs individuales o 64 LEDs RGB. Para obtener más información sobre cómo configurar el controlador, consulta la página de [Matriz RGB](feature_rgb_matrix.md). - diff --git a/docs/feature_debounce_type.md b/docs/feature_debounce_type.md index 966e75acc1f4..3ad74224c173 100644 --- a/docs/feature_debounce_type.md +++ b/docs/feature_debounce_type.md @@ -148,4 +148,3 @@ The following old names for existing algorithms will continue to be supported, h * eager_pk - old name for sym_eager_pk * sym_pk - old name for sym_defer_pk * eager_pr - old name for sym_eager_pr - diff --git a/docs/feature_sequencer.md b/docs/feature_sequencer.md index 8c8587a9b846..76b4db5cf6c7 100644 --- a/docs/feature_sequencer.md +++ b/docs/feature_sequencer.md @@ -85,4 +85,3 @@ While the tempo defines the absolute speed at which the sequencer goes through t |`void sequencer_activate_track(uint8_t track);` |Activate the `track` | |`void sequencer_deactivate_track(uint8_t track);` |Deactivate the `track` | |`void sequencer_toggle_single_active_track(uint8_t track);` |Set `track` as the only active track or deactivate all | - diff --git a/docs/feature_stenography.md b/docs/feature_stenography.md index 148d61b04426..11e54965d1ae 100644 --- a/docs/feature_stenography.md +++ b/docs/feature_stenography.md @@ -129,4 +129,3 @@ As defined in `keymap_steno.h`. |`STN_RES1`||(GeminiPR only)| |`STN_RES2`||(GeminiPR only)| |`STN_PWR`||(GeminiPR only)| - diff --git a/docs/fuse.txt b/docs/fuse.txt index 99ddd2d18680..ceb588be3d2a 100644 --- a/docs/fuse.txt +++ b/docs/fuse.txt @@ -47,4 +47,3 @@ This configuration is from usbasploader's Makefile. # | | +----- LB 2..1 (No memory lock features enabled) # | +--------- BLB0 2..1 (No restrictions for SPM or LPM accessing the Application section) # +--------------- BLB1 2..1 (No restrictions for SPM or LPM accessing the Boot Loader section) - diff --git a/docs/he-il/documentation_best_practices.md b/docs/he-il/documentation_best_practices.md index 90c4a137a047..bba9d886ab5f 100644 --- a/docs/he-il/documentation_best_practices.md +++ b/docs/he-il/documentation_best_practices.md @@ -64,4 +64,4 @@ ``` מקמו את התיעוד שלכם בתוך `docs/feature_.md`, והוסיפו קישור לקובץ זה במקום המתאים ב `docs/_sidebar.md`. אם הוספתם קודי מקשים נוספים, תקפידו להוסיף אותם ל- `docs/keycodes.md` עם לינק לעמוד היכולת שלכם. - \ No newline at end of file + diff --git a/docs/he-il/faq.md b/docs/he-il/faq.md index 88ea07fbe711..0a783eb8cac1 100644 --- a/docs/he-il/faq.md +++ b/docs/he-il/faq.md @@ -5,4 +5,4 @@ * [בנייה או קומפילציה של QMK](faq_build.md) * [דיבאגינג ופתרון בעיות של QMK](faq_debug.md) * [מיפוי מקשים](faq_keymap.md) - \ No newline at end of file + diff --git a/docs/he-il/faq_general.md b/docs/he-il/faq_general.md index 26286d552f02..fc102d6c6a6b 100644 --- a/docs/he-il/faq_general.md +++ b/docs/he-il/faq_general.md @@ -14,4 +14,4 @@ TMK עוצב ומומש במקור ע״י [Jun Wako](https://github.com/tmk). QM מנק׳ מבט של הפרוייקט וניהול הקהילה, TMK מנהל את כל המקלדות הנתמכות בעצמו, עם מעט תמיכה מהקהילה. כל אחד יכול לעשות פורק מהפרוייקט עבור מקלדות אחרות. רק מס׳ מיפויי מקשים נמצאים בברירת המחדל כך שאנשים בד״כ לא משתפים מיפויי מקשים זה עם זה. QMK מעודד את השיתוף של המקלדות וקודי המקשים דרך רפוזיטורי בניהול מרכזי, אשר מקבל את כל בקשות ה- Pull Requests שעומדות בסטנדרט האיכות. רובם מנוהלות ע״י הקהילה, אבל הצוות של QMK עוזר כשנדרש. לשתי הגישות יש יתרונות וחסרונות וקוד עובר בחופשיות בין TMK ל- QMK כשצריך. - \ No newline at end of file + diff --git a/docs/he-il/getting_started_getting_help.md b/docs/he-il/getting_started_getting_help.md index e62c9f403dd4..7dec3e87d6e7 100644 --- a/docs/he-il/getting_started_getting_help.md +++ b/docs/he-il/getting_started_getting_help.md @@ -14,4 +14,4 @@ ## סוגיות GitHub ניתן לפתוח [סוגייה ב-GitHub](https://github.com/qmk/qmk_firmware/issues). הדבר שימושי במיוחד כאשר הסוגיה דורשת דיון עמוק וארוך או דיבאגינג. - \ No newline at end of file + diff --git a/docs/he-il/hardware.md b/docs/he-il/hardware.md index 441792e031b8..70bb846f18f8 100644 --- a/docs/he-il/hardware.md +++ b/docs/he-il/hardware.md @@ -7,4 +7,4 @@ QMK רצה על מגוון של חומרות. אם המעבד שלך יכול ל * [מעבדי AVR](hardware_avr.md) * מעבדי ARM (TBD) * [מנהלי התקנים](hardware_drivers.md) - \ No newline at end of file + diff --git a/docs/he-il/newbs_learn_more_resources.md b/docs/he-il/newbs_learn_more_resources.md index 8792a9de0a78..4127c387ff0c 100644 --- a/docs/he-il/newbs_learn_more_resources.md +++ b/docs/he-il/newbs_learn_more_resources.md @@ -13,4 +13,4 @@ מקורות לפקודות שורה (Command Line): * [מדריך טוב על Command Line](https://www.codecademy.com/learn/learn-the-command-line) - \ No newline at end of file + diff --git a/docs/ja/feature_debounce_type.md b/docs/ja/feature_debounce_type.md index 2d874b7565cd..a375ebb456e5 100644 --- a/docs/ja/feature_debounce_type.md +++ b/docs/ja/feature_debounce_type.md @@ -43,5 +43,3 @@ endif * eager_pk - キーごとにデバウンスします。状態が変化すると、応答は即座に行われ、その後そのキーは ```DEBOUNCE``` ミリ秒の間入力されません。 * sym_g - キーボードごとにデバウンスします。状態が変化すると、グローバルタイマが設定されます。```DEBOUNCE``` ミリ秒の間何も変化がなければ、全ての入力の変更がプッシュされます。 * sym_pk - キーごとにデバウンスします。状態が変化すると、キーごとのタイマーが設定されます。```DEBOUNCE``` ミリ秒の間そのキーに変化がなければ、キーの状態の変更がプッシュされます。 - - diff --git a/docs/ja/internals_input_callback_reg.md b/docs/ja/internals_input_callback_reg.md index 517873b7cafd..864b1d5750af 100644 --- a/docs/ja/internals_input_callback_reg.md +++ b/docs/ja/internals_input_callback_reg.md @@ -171,4 +171,3 @@ * `device` 関連するデバイス * `func` 登録するコールバック関数 - diff --git a/docs/platformdev_chibios_earlyinit.md b/docs/platformdev_chibios_earlyinit.md index 5fd78bb33648..eb932bc77431 100644 --- a/docs/platformdev_chibios_earlyinit.md +++ b/docs/platformdev_chibios_earlyinit.md @@ -61,4 +61,4 @@ To implement your own version of this function, in your keyboard's source files: void board_init(void) { // initialize anything that requires ChibiOS } -``` \ No newline at end of file +``` diff --git a/drivers/haptic/DRV2605L.h b/drivers/haptic/DRV2605L.h index 535c777658b3..8b8eae38b8e1 100644 --- a/drivers/haptic/DRV2605L.h +++ b/drivers/haptic/DRV2605L.h @@ -403,4 +403,4 @@ typedef union DRVREG_CTRL5 { /* register 0x1F */ uint8_t C5_LRA_AUTO_OPEN_LOOP : 1; uint8_t C5_AUTO_OL_CNT : 2; } Bits; -} DRVREG_CTRL5; \ No newline at end of file +} DRVREG_CTRL5; diff --git a/drivers/ugfx/gdisp/is31fl3731c/driver.mk b/drivers/ugfx/gdisp/is31fl3731c/driver.mk index 4364787c9027..a53131bf33b7 100644 --- a/drivers/ugfx/gdisp/is31fl3731c/driver.mk +++ b/drivers/ugfx/gdisp/is31fl3731c/driver.mk @@ -1,3 +1,3 @@ GFXINC += drivers/ugfx/gdisp/is31fl3731c GFXSRC += drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c -GDISP_DRIVER_LIST += GDISPVMT_IS31FL3731C_QMK \ No newline at end of file +GDISP_DRIVER_LIST += GDISPVMT_IS31FL3731C_QMK diff --git a/platforms/chibios/GENERIC_STM32_F042X6/configs/bootloader_defs.h b/platforms/chibios/GENERIC_STM32_F042X6/configs/bootloader_defs.h index 6b218f7bd34b..25113425a655 100644 --- a/platforms/chibios/GENERIC_STM32_F042X6/configs/bootloader_defs.h +++ b/platforms/chibios/GENERIC_STM32_F042X6/configs/bootloader_defs.h @@ -2,4 +2,4 @@ /* It is chip dependent, the correct number can be looked up here: * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC400 \ No newline at end of file +#define STM32_BOOTLOADER_ADDRESS 0x1FFFC400 diff --git a/platforms/chibios/GENERIC_STM32_F042X6/configs/mcuconf.h b/platforms/chibios/GENERIC_STM32_F042X6/configs/mcuconf.h index 4643e9f92e8f..286e1230ce73 100644 --- a/platforms/chibios/GENERIC_STM32_F042X6/configs/mcuconf.h +++ b/platforms/chibios/GENERIC_STM32_F042X6/configs/mcuconf.h @@ -165,4 +165,4 @@ #define STM32_USB_LOW_POWER_ON_SUSPEND FALSE #define STM32_USB_USB1_LP_IRQ_PRIORITY 3 -#endif /* _MCUCONF_H_ */ \ No newline at end of file +#endif /* _MCUCONF_H_ */ diff --git a/quantum/led.c b/quantum/led.c index 3e30b1a5ad8a..8f0eccf55d85 100644 --- a/quantum/led.c +++ b/quantum/led.c @@ -134,4 +134,4 @@ __attribute__((weak)) void led_set(uint8_t usb_led) { led_set_kb(usb_led); led_update_kb((led_t)usb_led); -} \ No newline at end of file +} diff --git a/quantum/pointing_device.c b/quantum/pointing_device.c index 24a487b9aac7..9b7629f30725 100644 --- a/quantum/pointing_device.c +++ b/quantum/pointing_device.c @@ -52,4 +52,4 @@ __attribute__((weak)) void pointing_device_task(void) { report_mouse_t pointing_device_get_report(void) { return mouseReport; } -void pointing_device_set_report(report_mouse_t newMouseReport) { mouseReport = newMouseReport; } \ No newline at end of file +void pointing_device_set_report(report_mouse_t newMouseReport) { mouseReport = newMouseReport; } diff --git a/quantum/serial_link/README.md b/quantum/serial_link/README.md index e8490e290dd4..05871dbdf7ee 100644 --- a/quantum/serial_link/README.md +++ b/quantum/serial_link/README.md @@ -1 +1 @@ -# qmk_serial_link \ No newline at end of file +# qmk_serial_link diff --git a/quantum/serial_link/tests/Makefile b/quantum/serial_link/tests/Makefile index 1b072c6f1d2f..11dd355b227c 100644 --- a/quantum/serial_link/tests/Makefile +++ b/quantum/serial_link/tests/Makefile @@ -1,17 +1,17 @@ # The MIT License (MIT) -# +# # Copyright (c) 2016 Fred Sundvik -# +# # 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 @@ -21,7 +21,7 @@ # SOFTWARE. CC = gcc -CFLAGS = +CFLAGS = INCLUDES = -I. -I../../ LDFLAGS = -L$(BUILDDIR)/cgreen/build-c/src -shared LDLIBS = -lcgreen @@ -37,7 +37,7 @@ endif ifneq (, $(findstring CYGWIN, $(UNAME))) EXT = .dll endif - + SRC = $(wildcard *.c) TESTFILES = $(patsubst %.c, $(UNITTESTS)/%$(EXT), $(SRC)) $(shell mkdir -p $(DEPDIR) >/dev/null) @@ -54,8 +54,8 @@ $(UNITOBJ)/%.o: %.c $(DEPDIR)/%.d @mkdir -p $(UNITOBJ) $(CC) $(CFLAGS) $(DEPFLAGS) $(INCLUDES) -c $< -o $@ @mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d - + $(DEPDIR)/%.d: ; .PRECIOUS: $(DEPDIR)/%.d --include $(patsubst %,$(DEPDIR)/%.d,$(basename $(SRC))) \ No newline at end of file +-include $(patsubst %,$(DEPDIR)/%.d,$(basename $(SRC))) diff --git a/quantum/serial_link/tests/testlist.mk b/quantum/serial_link/tests/testlist.mk index a80e888849ca..c5edaf478f53 100644 --- a/quantum/serial_link/tests/testlist.mk +++ b/quantum/serial_link/tests/testlist.mk @@ -3,4 +3,4 @@ TEST_LIST +=\ serial_link_frame_validator\ serial_link_frame_router\ serial_link_triple_buffered_object\ - serial_link_transport \ No newline at end of file + serial_link_transport diff --git a/setup.cfg b/setup.cfg index 9e178ad6596b..5ef2f9ba0954 100644 --- a/setup.cfg +++ b/setup.cfg @@ -336,4 +336,3 @@ split_penalty_logical_operator=300 # Use the Tab character for indentation. use_tabs=False - diff --git a/testlist.mk b/testlist.mk index ca1408806c9a..0d7609b9f071 100644 --- a/testlist.mk +++ b/testlist.mk @@ -15,4 +15,4 @@ define VALIDATE_TEST_LIST endef -$(eval $(call VALIDATE_TEST_LIST,$(firstword $(TEST_LIST)),$(wordlist 2,9999,$(TEST_LIST)))) \ No newline at end of file +$(eval $(call VALIDATE_TEST_LIST,$(firstword $(TEST_LIST)),$(wordlist 2,9999,$(TEST_LIST)))) diff --git a/tests/basic/config.h b/tests/basic/config.h index e5d018a32ac2..99bd62d991c4 100644 --- a/tests/basic/config.h +++ b/tests/basic/config.h @@ -14,10 +14,7 @@ * along with this program. If not, see . */ -#ifndef TESTS_BASIC_CONFIG_H_ -#define TESTS_BASIC_CONFIG_H_ +#pragma once #define MATRIX_ROWS 4 #define MATRIX_COLS 10 - -#endif /* TESTS_BASIC_CONFIG_H_ */ diff --git a/tests/basic/rules.mk b/tests/basic/rules.mk index 8a906807cff4..9fb5d4361096 100644 --- a/tests/basic/rules.mk +++ b/tests/basic/rules.mk @@ -13,4 +13,4 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -CUSTOM_MATRIX=yes \ No newline at end of file +CUSTOM_MATRIX=yes diff --git a/tests/basic/test_macro.cpp b/tests/basic/test_macro.cpp index a1fa3170897b..dc4a77796a7a 100644 --- a/tests/basic/test_macro.cpp +++ b/tests/basic/test_macro.cpp @@ -68,4 +68,4 @@ TEST_F(Macro, PlayASimpleMacro) { EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).AT_TIME(210); EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(220); run_one_scan_loop(); -} \ No newline at end of file +} diff --git a/tests/test_common/keyboard_report_util.cpp b/tests/test_common/keyboard_report_util.cpp index 245072c0ea53..cb044c92b390 100644 --- a/tests/test_common/keyboard_report_util.cpp +++ b/tests/test_common/keyboard_report_util.cpp @@ -71,4 +71,4 @@ bool KeyboardReportMatcher::MatchAndExplain(report_keyboard_t& report, MatchResu void KeyboardReportMatcher::DescribeTo(::std::ostream* os) const { *os << "is equal to " << m_report; } -void KeyboardReportMatcher::DescribeNegationTo(::std::ostream* os) const { *os << "is not equal to " << m_report; } \ No newline at end of file +void KeyboardReportMatcher::DescribeNegationTo(::std::ostream* os) const { *os << "is not equal to " << m_report; } diff --git a/tests/test_common/keyboard_report_util.hpp b/tests/test_common/keyboard_report_util.hpp index 48543c205318..2c33f0412ea1 100644 --- a/tests/test_common/keyboard_report_util.hpp +++ b/tests/test_common/keyboard_report_util.hpp @@ -36,4 +36,4 @@ class KeyboardReportMatcher : public testing::MatcherInterface inline testing::Matcher KeyboardReport(Ts... keys) { return testing::MakeMatcher(new KeyboardReportMatcher(std::vector({keys...}))); -} \ No newline at end of file +} diff --git a/tests/test_common/test_driver.hpp b/tests/test_common/test_driver.hpp index c3ae17b1a456..f86308df95e1 100644 --- a/tests/test_common/test_driver.hpp +++ b/tests/test_common/test_driver.hpp @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef TESTS_TEST_COMMON_TEST_DRIVER_H_ -#define TESTS_TEST_COMMON_TEST_DRIVER_H_ +#pragma once #include "gmock/gmock.h" #include @@ -28,7 +27,7 @@ class TestDriver { TestDriver(); ~TestDriver(); void set_leds(uint8_t leds) { m_leds = leds; } - + MOCK_METHOD1(send_keyboard_mock, void (report_keyboard_t&)); MOCK_METHOD1(send_mouse_mock, void (report_mouse_t&)); MOCK_METHOD1(send_system_mock, void (uint16_t)); @@ -43,6 +42,3 @@ class TestDriver { uint8_t m_leds = 0; static TestDriver* m_this; }; - - -#endif /* TESTS_TEST_COMMON_TEST_DRIVER_H_ */ diff --git a/tests/test_common/test_fixture.hpp b/tests/test_common/test_fixture.hpp index fb37e440fc1f..340503665b67 100644 --- a/tests/test_common/test_fixture.hpp +++ b/tests/test_common/test_fixture.hpp @@ -14,7 +14,7 @@ * along with this program. If not, see . */ - #pragma once +#pragma once #include "gtest/gtest.h" @@ -27,4 +27,4 @@ class TestFixture : public testing::Test { void run_one_scan_loop(); void idle_for(unsigned ms); -}; \ No newline at end of file +}; diff --git a/tmk_core/common/avr/xprintf.S b/tmk_core/common/avr/xprintf.S index 06434b98d937..c5a414c35cba 100644 --- a/tmk_core/common/avr/xprintf.S +++ b/tmk_core/common/avr/xprintf.S @@ -450,7 +450,7 @@ xatoi: brcs 70f ;/ cpi r22, 10 ;if(r22 >= 10) { brcs 53f ; r22 -= 7; - subi r22, 7 ; if(r22 < 10) + subi r22, 7 ; if(r22 < 10) cpi r22, 10 ; brcs 70f ;} 53: cp r22, r25 ;if(r22 >= r25) error; @@ -496,5 +496,3 @@ xatoi: ret .endfunc #endif - - diff --git a/tmk_core/common/chibios/sleep_led.c b/tmk_core/common/chibios/sleep_led.c index 18c6d6e17008..5595eec0e56c 100644 --- a/tmk_core/common/chibios/sleep_led.c +++ b/tmk_core/common/chibios/sleep_led.c @@ -211,4 +211,4 @@ void sleep_led_toggle(void) { // not implemented } -#endif /* platform selection */ \ No newline at end of file +#endif /* platform selection */ diff --git a/tmk_core/common/test/timer.c b/tmk_core/common/test/timer.c index 3c786ae29313..61c3a002011b 100644 --- a/tmk_core/common/test/timer.c +++ b/tmk_core/common/test/timer.c @@ -30,4 +30,4 @@ uint32_t timer_elapsed32(uint32_t last) { return TIMER_DIFF_32(timer_read32(), l void set_time(uint32_t t) { current_time = t; } void advance_time(uint32_t ms) { current_time += ms; } -void wait_ms(uint32_t ms) { advance_time(ms); } \ No newline at end of file +void wait_ms(uint32_t ms) { advance_time(ms); } diff --git a/tmk_core/protocol/chibios.mk b/tmk_core/protocol/chibios.mk index 2070420f56b8..80554abb3254 100644 --- a/tmk_core/protocol/chibios.mk +++ b/tmk_core/protocol/chibios.mk @@ -18,4 +18,3 @@ OPT_DEFS += -DFIXED_NUM_CONFIGURATIONS=1 ifeq ($(strip $(MIDI_ENABLE)), yes) include $(TMK_PATH)/protocol/midi.mk endif - diff --git a/util/new_keymap.sh b/util/new_keymap.sh index 73cc9e8cc3c7..c483314fdb06 100755 --- a/util/new_keymap.sh +++ b/util/new_keymap.sh @@ -37,4 +37,4 @@ printf "%s keymap directory created in: qmk_firmware/keyboards/%s/keymaps/\n\n" printf "Compile a firmware file with your new keymap by typing: \n" printf " make %s:%s\n" "$KB_PATH" "$USERNAME" -printf "from the qmk_firmware directory\n" \ No newline at end of file +printf "from the qmk_firmware directory\n" From 5fde2d730c854eb6516771f1c5dcd22626f85efb Mon Sep 17 00:00:00 2001 From: David Doan Date: Mon, 28 Dec 2020 12:27:00 -0800 Subject: [PATCH 042/140] 1x4p1 (#11186) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Erovia --- keyboards/arrayperipherals/1x4p1/1x4p1.c | 18 ++++++++ keyboards/arrayperipherals/1x4p1/1x4p1.h | 26 +++++++++++ keyboards/arrayperipherals/1x4p1/config.h | 41 +++++++++++++++++ keyboards/arrayperipherals/1x4p1/info.json | 18 ++++++++ .../1x4p1/keymaps/default/keymap.c | 39 ++++++++++++++++ .../1x4p1/keymaps/default/readme.md | 5 +++ .../1x4p1/keymaps/via/keymap.c | 45 +++++++++++++++++++ .../1x4p1/keymaps/via/rules.mk | 1 + keyboards/arrayperipherals/1x4p1/readme.md | 16 +++++++ keyboards/arrayperipherals/1x4p1/rules.mk | 24 ++++++++++ keyboards/arrayperipherals/readme.md | 5 +++ 11 files changed, 238 insertions(+) create mode 100644 keyboards/arrayperipherals/1x4p1/1x4p1.c create mode 100644 keyboards/arrayperipherals/1x4p1/1x4p1.h create mode 100644 keyboards/arrayperipherals/1x4p1/config.h create mode 100644 keyboards/arrayperipherals/1x4p1/info.json create mode 100644 keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c create mode 100644 keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md create mode 100644 keyboards/arrayperipherals/1x4p1/keymaps/via/keymap.c create mode 100644 keyboards/arrayperipherals/1x4p1/keymaps/via/rules.mk create mode 100644 keyboards/arrayperipherals/1x4p1/readme.md create mode 100644 keyboards/arrayperipherals/1x4p1/rules.mk create mode 100644 keyboards/arrayperipherals/readme.md diff --git a/keyboards/arrayperipherals/1x4p1/1x4p1.c b/keyboards/arrayperipherals/1x4p1/1x4p1.c new file mode 100644 index 000000000000..788ccff553a2 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/1x4p1.c @@ -0,0 +1,18 @@ +/* +Copyright 2020 David Doan + +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 . +*/ + +#include "1x4p1.h" diff --git a/keyboards/arrayperipherals/1x4p1/1x4p1.h b/keyboards/arrayperipherals/1x4p1/1x4p1.h new file mode 100644 index 000000000000..8f385a9086fd --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/1x4p1.h @@ -0,0 +1,26 @@ +/* +Copyright 2020 David Doan + +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_1x5( \ + k01, k02, k03, k04, k05\ + ) { \ + { k01, k02, k03, k04, k05} \ +} diff --git a/keyboards/arrayperipherals/1x4p1/config.h b/keyboards/arrayperipherals/1x4p1/config.h new file mode 100644 index 000000000000..44559be3ed12 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2020 David Doan + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4152 // "AR" +#define PRODUCT_ID 0x4F46 // "OF" +#define DEVICE_VER 0x0001 +#define MANUFACTURER Array Peripherals +#define PRODUCT [1x4] + 1 Macropad + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 5 + + +#define DIRECT_PINS { \ + { C7, B7, D6, F5, F7} \ +} +#define UNUSED_PINS + +/* rotary encoder*/ +#define ENCODERS_PAD_A {F0} +#define ENCODERS_PAD_B {F1} diff --git a/keyboards/arrayperipherals/1x4p1/info.json b/keyboards/arrayperipherals/1x4p1/info.json new file mode 100644 index 000000000000..3edf84ab0d72 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "[1 x 4] + 1 Macropad", + "url": "https://github.com/daviddoan", + "maintainer": "David Doan", + "width": 5, + "height": 1, + "layouts": { + "LAYOUT_ortho_1x5": { + "layout": [ + {"label": "K01", "x":0, "y":0}, + {"label": "K02", "x":1, "y":0}, + {"label": "K03", "x":2, "y":0}, + {"label": "K04", "x":3, "y":0}, + {"label": "K05", "x":4, "y":0} + ] + } + } +} diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c b/keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c new file mode 100644 index 000000000000..cf4433d8c83c --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +Copyright 2020 David Doan + +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 . +*/ + +#include QMK_KEYBOARD_H + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_MS_WH_UP); + } else { + tap_code(KC_MS_WH_DOWN); + } + } +} + +// +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //button closest to usb is first + [0] = LAYOUT_ortho_1x5( + KC_ESC, KC_TAB, KC_LSHIFT, KC_LCTRL, TG(1) + ), + + [1] = LAYOUT_ortho_1x5( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(0) + ) +}; diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md b/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md new file mode 100644 index 000000000000..ba50c6bd2eb4 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md @@ -0,0 +1,5 @@ +![[1x4] + 1 Macropad Layout](https://i.imgur.com/ZdXuIwb.png) + +# Default [1x4] + 1 Macropad Layout + +This is the default layout that comes flashed on every [1x4] + 1 Macropad. The right most key (red) is the rotary and the key is binded to layer switching. The second layer is left blank for the user. \ No newline at end of file diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/via/keymap.c b/keyboards/arrayperipherals/1x4p1/keymaps/via/keymap.c new file mode 100644 index 000000000000..d419050a3db0 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2020 David Doan + +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 . +*/ + +#include QMK_KEYBOARD_H + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_MS_WH_UP); + } else { + tap_code(KC_MS_WH_DOWN); + } + } +} + +// +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //button closest to usb is first + [0] = LAYOUT_ortho_1x5( + KC_ESC, KC_TAB, KC_LSHIFT, KC_LCTRL, TG(1) + ), + + [1] = LAYOUT_ortho_1x5( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(2) + ), + [2] = LAYOUT_ortho_1x5( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(3) + ), + [3] = LAYOUT_ortho_1x5( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(0) + ) +}; diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/via/rules.mk b/keyboards/arrayperipherals/1x4p1/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/arrayperipherals/1x4p1/readme.md b/keyboards/arrayperipherals/1x4p1/readme.md new file mode 100644 index 000000000000..c9374cb7a84e --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/readme.md @@ -0,0 +1,16 @@ +# [1x4] + 1 Macropad + +![[1x4] + 1 Macropad](https://images.squarespace-cdn.com/content/v1/5f5e7d5dc43c166c56c0ae39/1606977576841-KIT0TOI6L3FO8FTS4ZHB/ke17ZwdGBToddI8pDm48kDk1dm1oSR9gCa1mX4KqzjN7gQa3H78H3Y0txjaiv_0fDoOvxcdMmMKkDsyUqMSsMWxHk725yiiHCCLfrh8O1z4YTzHvnKhyp6Da-NYroOW3ZGjoBKy3azqku80C789l0luj0xCD0oh5KMc0gpox0u-wQWxfQHg04OxgQwaUq2yiAcNt5Kg2tE9yEtYfM4xwaw/DSC_0116.jpg) + +A macropad with a 1x4 matrix array with an additional rotary that also functions as a button. [More info at arrayperipherals.com](https://www.arrayperipherals.com/) + +* Keyboard Maintainer: [David Doan](https://github.com/daviddoan) +* Hardware Supported: Adafruit ItsyBitsy 32u4 +* Hardware Availability: [arrayperipherals.com](https://www.arrayperipherals.com/) + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Resetting macropad into bootloader mode. + +The stock version of the macropad has bootmagic lite enabled. To trigger the bootloader, the first key (key furthest way from the rotary) needs to be held down when plugging the keyboard in. +NOTE: Using bootmagic lite will always reset the EEPROM, so you will lose any settings that have been saved. diff --git a/keyboards/arrayperipherals/1x4p1/rules.mk b/keyboards/arrayperipherals/1x4p1/rules.mk new file mode 100644 index 000000000000..3bbc6dbf8796 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes +ENCODER_ENABLE = yes diff --git a/keyboards/arrayperipherals/readme.md b/keyboards/arrayperipherals/readme.md new file mode 100644 index 000000000000..3c6aba591fca --- /dev/null +++ b/keyboards/arrayperipherals/readme.md @@ -0,0 +1,5 @@ +# Array Peripherals + +Array Peripherals is a small company operating out of an apartment by two brothers located in Northern California. + +Website: [Array Peripherals](www.arrayperipherals.com) From 55843480fffddebf15b3557fb11dca6206ab7b7b Mon Sep 17 00:00:00 2001 From: Zach White Date: Mon, 28 Dec 2020 20:06:07 -0800 Subject: [PATCH 043/140] Fix compile issues from the error page (#11314) * fix abacus so it works with configurator * create the keymap path if it doesn't exist * bpiphany/unloved_bastard: remove the nested macros, move default keymap to json * readd the unloved_bastard default keymap * fix clueboard/card * fixup handwired/2x5keypad * fixup hub16 * matrix/noah: remove the broken matrix print code to fix compilation * reinstate matrix_print with the right include * Revert "create the keymap path if it doesn't exist" This reverts commit af732776a539e8c6e2edf2e54f4d7f5ffa65b3a2. --- keyboards/abacus/keymaps/default/keymap.json | 10 +++++ .../keymaps/{default => unicodemap}/keymap.c | 0 .../keymaps/{default => unicodemap}/readme.md | 0 keyboards/abacus/keymaps/unicodemap/rules.mk | 1 + keyboards/abacus/rules.mk | 1 - .../unloved_bastard/keymaps/default/config.h | 19 --------- .../unloved_bastard/keymaps/default/keymap.c | 42 ------------------- .../keymaps/default/keymap.json | 1 + .../unloved_bastard/keymaps/default/readme.md | 1 - .../unloved_bastard/unloved_bastard.h | 40 +++++++++++------- keyboards/clueboard/card/config.h | 4 ++ .../2x5keypad/keymaps/default/keymap.json | 1 + .../{default => default_tapdance}/keymap.c | 0 .../keymaps/default_tapdance/rules.mk | 2 + keyboards/handwired/2x5keypad/rules.mk | 2 - keyboards/hub16/keymaps/default/keymap.json | 1 + .../{default => default_tap_dance}/keymap.c | 0 .../hub16/keymaps/default_tap_dance/rules.mk | 1 + keyboards/hub16/rules.mk | 1 - keyboards/matrix/noah/matrix.c | 1 + 20 files changed, 46 insertions(+), 82 deletions(-) create mode 100644 keyboards/abacus/keymaps/default/keymap.json rename keyboards/abacus/keymaps/{default => unicodemap}/keymap.c (100%) rename keyboards/abacus/keymaps/{default => unicodemap}/readme.md (100%) create mode 100644 keyboards/abacus/keymaps/unicodemap/rules.mk delete mode 100644 keyboards/bpiphany/unloved_bastard/keymaps/default/config.h delete mode 100644 keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.c create mode 100644 keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.json delete mode 100644 keyboards/bpiphany/unloved_bastard/keymaps/default/readme.md create mode 100644 keyboards/handwired/2x5keypad/keymaps/default/keymap.json rename keyboards/handwired/2x5keypad/keymaps/{default => default_tapdance}/keymap.c (100%) create mode 100644 keyboards/handwired/2x5keypad/keymaps/default_tapdance/rules.mk create mode 100644 keyboards/hub16/keymaps/default/keymap.json rename keyboards/hub16/keymaps/{default => default_tap_dance}/keymap.c (100%) create mode 100644 keyboards/hub16/keymaps/default_tap_dance/rules.mk diff --git a/keyboards/abacus/keymaps/default/keymap.json b/keyboards/abacus/keymaps/default/keymap.json new file mode 100644 index 000000000000..506fd7ea676c --- /dev/null +++ b/keyboards/abacus/keymaps/default/keymap.json @@ -0,0 +1,10 @@ +{ + "keyboard": "abacus", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + ["KC_ESCAPE", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPACE", "KC_TAB", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCOLON", "KC_BSLASH", "KC_LSHIFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMMA", "KC_DOT", "KC_UP", "KC_DELETE", "KC_LCTRL", "KC_LGUI", "MO(1)", "KC_SPACE", "KC_ENTER", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_RIGHT"], + ["KC_GRAVE", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_LBRACKET", "KC_RBRACKET", "KC_QUOTE", "KC_SLASH", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MINUS", "KC_EQUAL", "KC_TRNS", "KC_TRNS", "KC_LALT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_HOME", "KC_TRNS", "KC_END"], + ["KC_GRV", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_TRNS", "KC_TRNS", "KC_F11", "KC_F12", "RGB_MODE_PLAIN", "RGB_MODE_BREATHE", "RGB_MODE_RAINBOW", "RGB_MODE_SWIRL", "RGB_MODE_SNAKE", "RGB_MODE_KNIGHT", "RGB_MODE_GRADIENT", "KC_NO", "RGB_TOG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_HUI", "KC_CAPS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"] + ] +} diff --git a/keyboards/abacus/keymaps/default/keymap.c b/keyboards/abacus/keymaps/unicodemap/keymap.c similarity index 100% rename from keyboards/abacus/keymaps/default/keymap.c rename to keyboards/abacus/keymaps/unicodemap/keymap.c diff --git a/keyboards/abacus/keymaps/default/readme.md b/keyboards/abacus/keymaps/unicodemap/readme.md similarity index 100% rename from keyboards/abacus/keymaps/default/readme.md rename to keyboards/abacus/keymaps/unicodemap/readme.md diff --git a/keyboards/abacus/keymaps/unicodemap/rules.mk b/keyboards/abacus/keymaps/unicodemap/rules.mk new file mode 100644 index 000000000000..502b2def7623 --- /dev/null +++ b/keyboards/abacus/keymaps/unicodemap/rules.mk @@ -0,0 +1 @@ +UNICODEMAP_ENABLE = yes diff --git a/keyboards/abacus/rules.mk b/keyboards/abacus/rules.mk index 8d6add27d193..11d4f99535b3 100644 --- a/keyboards/abacus/rules.mk +++ b/keyboards/abacus/rules.mk @@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -UNICODEMAP_ENABLE = yes ENCODER_ENABLE = yes DIP_SWITCH_ENABLE = yes LTO_ENABLE = yes diff --git a/keyboards/bpiphany/unloved_bastard/keymaps/default/config.h b/keyboards/bpiphany/unloved_bastard/keymaps/default/config.h deleted file mode 100644 index ed56340c3914..000000000000 --- a/keyboards/bpiphany/unloved_bastard/keymaps/default/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2018 Alexander Fougner - * - * 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 . - */ - -#pragma once - -// place overrides here diff --git a/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.c b/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.c deleted file mode 100644 index 3c23088357fb..000000000000 --- a/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2018 Alexander Fougner - * - * 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 . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT(\ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ - KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ - KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ - KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.json b/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.json new file mode 100644 index 000000000000..6f9332c9a422 --- /dev/null +++ b/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.json @@ -0,0 +1 @@ +{"keyboard": "bpiphany/unloved_bastard", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ESC", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_PSCR", "KC_SLCK", "KC_PAUS", "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", "KC_INS", "KC_HOME", "KC_PGUP", "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_DEL", "KC_END", "KC_PGDN", "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_UP", "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT"]]} diff --git a/keyboards/bpiphany/unloved_bastard/keymaps/default/readme.md b/keyboards/bpiphany/unloved_bastard/keymaps/default/readme.md deleted file mode 100644 index a2b5f1192fdf..000000000000 --- a/keyboards/bpiphany/unloved_bastard/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for unloved_bastard diff --git a/keyboards/bpiphany/unloved_bastard/unloved_bastard.h b/keyboards/bpiphany/unloved_bastard/unloved_bastard.h index 0223e7233d97..d444fd0d8afb 100644 --- a/keyboards/bpiphany/unloved_bastard/unloved_bastard.h +++ b/keyboards/bpiphany/unloved_bastard/unloved_bastard.h @@ -47,14 +47,18 @@ KB2, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ KP4, KN2, KN6, KQ6, KN0, KN3, KM0, KP1, KC0, KQ0, KR0 \ ) \ -LAYOUT_all( \ - KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ - KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO2, KR4, KC4, KE4, \ - KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KO3, KQ4, KC5, KE5, \ - KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \ - KB2,KC_NO,KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ - KP4, KN2, KN6, KQ6, KN0, KN3, KM0, KP1, KC0, KQ0, KR0 \ -) +{ \ +/* Columns and rows need to be swapped in the below definition */ \ +/* A B C D E F G H I J K L M N O P Q R */ \ +/* 0 */ { KC_NO, KC_NO, KC0, KC_NO, KC_NO, KF0, KC_NO, KC_NO, KC_NO, KJ0, KK0, KC_NO, KM0, KN0, KO0, KC_NO, KQ0, KR0 }, \ +/* 1 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KG1, KH1, KI1, KJ1, KK1, KL1, KM1, KC_NO, KO1, KP1, KC_NO, KC_NO }, \ +/* 2 */ { KC_NO, KB2, KC_NO, KC_NO, KC_NO, KF2, KG2, KH2, KI2, KJ2, KK2, KL2, KM2, KN2, KO2, KC_NO, KC_NO, KC_NO }, \ +/* 3 */ { KC_NO, KB3, KC_NO, KC_NO, KC_NO, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KN3, KO3, KC_NO, KC_NO, KC_NO }, \ +/* 4 */ { KC_NO, KC_NO, KC4, KC_NO, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4, KM4, KC_NO, KO4, KP4, KQ4, KR4 }, \ +/* 5 */ { KC_NO, KC_NO, KC5, KC_NO, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5, KM5, KN5, KO5, KP5, KC_NO, KC_NO }, \ +/* 6 */ { KC_NO, KC_NO, KC6, KC_NO, KC_NO, KF6, KG6, KC_NO, KI6, KJ6, KK6, KL6, KC_NO,KN6, KO6, KC_NO, KQ6, KC_NO }, \ +/* 7 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KF7, KG7, KH7, KI7, KJ7, KK7, KL7, KM7, KN7, KC_NO, KP7, KC_NO, KC_NO } \ +} #define LAYOUT_tkl_iso( \ KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ @@ -64,14 +68,18 @@ LAYOUT_all( \ KB2, KH6, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ KP4, KN2, KN6, KQ6, KN0, KN3, KM0, KP1, KC0, KQ0, KR0 \ ) \ -LAYOUT_all( \ - KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ - KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO2, KR4, KC4, KE4, \ - KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KO3, KQ4, KC5, KE5, \ - KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \ - KB2, KH6, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ - KP4, KN2, KN6, KQ6, KN0, KN3, KM0, KP1, KC0, KQ0, KR0 \ -) +{ \ +/* Columns and rows need to be swapped in the below definition */ \ +/* A B C D E F G H I J K L M N O P Q R */ \ +/* 0 */ { KC_NO, KC_NO, KC0, KC_NO, KC_NO, KF0, KC_NO, KC_NO, KC_NO, KJ0, KK0, KC_NO, KM0, KN0, KO0, KC_NO, KQ0, KR0 }, \ +/* 1 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KG1, KH1, KI1, KJ1, KK1, KL1, KM1, KC_NO, KO1, KP1, KC_NO, KC_NO }, \ +/* 2 */ { KC_NO, KB2, KC_NO, KC_NO, KC_NO, KF2, KG2, KH2, KI2, KJ2, KK2, KL2, KM2, KN2, KO2, KC_NO, KC_NO, KC_NO }, \ +/* 3 */ { KC_NO, KB3, KC_NO, KC_NO, KC_NO, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KN3, KO3, KC_NO, KC_NO, KC_NO }, \ +/* 4 */ { KC_NO, KC_NO, KC4, KC_NO, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4, KM4, KC_NO, KO4, KP4, KQ4, KR4 }, \ +/* 5 */ { KC_NO, KC_NO, KC5, KC_NO, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5, KM5, KN5, KO5, KP5, KC_NO, KC_NO }, \ +/* 6 */ { KC_NO, KC_NO, KC6, KC_NO, KC_NO, KF6, KG6, KH6, KI6, KJ6, KK6, KL6, KC_NO,KN6, KO6, KC_NO, KQ6, KC_NO }, \ +/* 7 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KF7, KG7, KH7, KI7, KJ7, KK7, KL7, KM7, KN7, KC_NO, KP7, KC_NO, KC_NO } \ +} #define LAYOUT LAYOUT_all diff --git a/keyboards/clueboard/card/config.h b/keyboards/clueboard/card/config.h index 9bf07f578b99..b69ae640ed57 100644 --- a/keyboards/clueboard/card/config.h +++ b/keyboards/clueboard/card/config.h @@ -149,3 +149,7 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION + + +// Enable audio +#define C6_AUDIO diff --git a/keyboards/handwired/2x5keypad/keymaps/default/keymap.json b/keyboards/handwired/2x5keypad/keymaps/default/keymap.json new file mode 100644 index 000000000000..d8c9f792a651 --- /dev/null +++ b/keyboards/handwired/2x5keypad/keymaps/default/keymap.json @@ -0,0 +1 @@ +{"version":1,"notes":"","documentation":"\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n","keyboard":"handwired/2x5keypad","keymap":"default","layout":"LAYOUT","layers":[["KC_1","KC_2","KC_3","KC_4","KC_5","KC_Q","KC_W","KC_E","KC_R","KC_T"]],"author":""} diff --git a/keyboards/handwired/2x5keypad/keymaps/default/keymap.c b/keyboards/handwired/2x5keypad/keymaps/default_tapdance/keymap.c similarity index 100% rename from keyboards/handwired/2x5keypad/keymaps/default/keymap.c rename to keyboards/handwired/2x5keypad/keymaps/default_tapdance/keymap.c diff --git a/keyboards/handwired/2x5keypad/keymaps/default_tapdance/rules.mk b/keyboards/handwired/2x5keypad/keymaps/default_tapdance/rules.mk new file mode 100644 index 000000000000..705db8e333fe --- /dev/null +++ b/keyboards/handwired/2x5keypad/keymaps/default_tapdance/rules.mk @@ -0,0 +1,2 @@ +UNICODE_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/2x5keypad/rules.mk b/keyboards/handwired/2x5keypad/rules.mk index e62a0f24a82f..997c9c0e986b 100644 --- a/keyboards/handwired/2x5keypad/rules.mk +++ b/keyboards/handwired/2x5keypad/rules.mk @@ -23,5 +23,3 @@ NKRO_ENABLE = yes # USB Nkey Rollover - RGBLIGHT_ENABLE = no SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -UNICODE_ENABLE = yes -TAP_DANCE_ENABLE = yes diff --git a/keyboards/hub16/keymaps/default/keymap.json b/keyboards/hub16/keymaps/default/keymap.json new file mode 100644 index 000000000000..6f4814eac8b3 --- /dev/null +++ b/keyboards/hub16/keymaps/default/keymap.json @@ -0,0 +1 @@ +{"version":1,"notes":"","documentation":"\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n","keyboard":"hub16","keymap":"default","layout":"LAYOUT","layers":[["KC_NLCK","KC_PSLS","KC_P7","KC_P8","KC_P9","KC_PPLS","KC_P4","KC_P5","KC_P6","KC_PCMM","KC_P1","KC_P2","KC_P3","KC_PEQL","KC_P0","KC_P0","KC_PDOT","KC_PENT"]],"author":""} diff --git a/keyboards/hub16/keymaps/default/keymap.c b/keyboards/hub16/keymaps/default_tap_dance/keymap.c similarity index 100% rename from keyboards/hub16/keymaps/default/keymap.c rename to keyboards/hub16/keymaps/default_tap_dance/keymap.c diff --git a/keyboards/hub16/keymaps/default_tap_dance/rules.mk b/keyboards/hub16/keymaps/default_tap_dance/rules.mk new file mode 100644 index 000000000000..25ec20cc46d3 --- /dev/null +++ b/keyboards/hub16/keymaps/default_tap_dance/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes # Support for tap dancing diff --git a/keyboards/hub16/rules.mk b/keyboards/hub16/rules.mk index b050dcf4214a..5409bb7f9592 100755 --- a/keyboards/hub16/rules.mk +++ b/keyboards/hub16/rules.mk @@ -32,6 +32,5 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches ENCODER_ENABLE = yes # Rotary Encoder support -TAP_DANCE_ENABLE = yes # Support for tap dancing SRC = matrix.c diff --git a/keyboards/matrix/noah/matrix.c b/keyboards/matrix/noah/matrix.c index 2115204369c7..94a27b181feb 100644 --- a/keyboards/matrix/noah/matrix.c +++ b/keyboards/matrix/noah/matrix.c @@ -3,6 +3,7 @@ */ #include +#include #include #include #include From 3300164065949e6bc9423632ccbcd0022be8074d Mon Sep 17 00:00:00 2001 From: Chas Date: Tue, 29 Dec 2020 08:32:30 -0800 Subject: [PATCH 044/140] Typo fix: Useful function -> Useful Functions (#11342) Thanks! --- docs/feature_macros.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_macros.md b/docs/feature_macros.md index 3752b324969b..36fa761d216c 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -209,7 +209,7 @@ SEND_STRING(".."SS_TAP(X_END)); There are some functions you may find useful in macro-writing. Keep in mind that while you can write some fairly advanced code within a macro, if your functionality gets too complex you may want to define a custom keycode instead. Macros are meant to be simple. -?> You can also use the functions described in [Useful function](ref_functions.md) for additional functionality. For example `reset_keyboard()` allows you to reset the keyboard as part of a macro. +?> You can also use the functions described in [Useful functions](ref_functions.md) for additional functionality. For example `reset_keyboard()` allows you to reset the keyboard as part of a macro. ### `record->event.pressed` From 221d8fd8669ff528bfedd01f41486f5298d960e1 Mon Sep 17 00:00:00 2001 From: LongerHV <46924944+LongerHV@users.noreply.github.com> Date: Tue, 29 Dec 2020 20:34:48 +0100 Subject: [PATCH 045/140] [CLI] Add stdin support for json2c command (#11289) * Implement stdin for json2c command * Refactor * Handle json decode error * Add stdin support for c2json cli command * Refactor to prevent code duplication * Change exit(1) to return False in c2json command * Remove unused import --- lib/python/qmk/cli/c2json.py | 22 ++++++---------- lib/python/qmk/cli/json2c.py | 32 ++++++++++++++--------- lib/python/qmk/keymap.py | 22 +++++++++++----- lib/python/qmk/tests/test_cli_commands.py | 29 +++++++++++++++++++- 4 files changed, 70 insertions(+), 35 deletions(-) diff --git a/lib/python/qmk/cli/c2json.py b/lib/python/qmk/cli/c2json.py index 8c8bd1f57e32..2b3bb774f717 100644 --- a/lib/python/qmk/cli/c2json.py +++ b/lib/python/qmk/cli/c2json.py @@ -1,7 +1,6 @@ """Generate a keymap.json from a keymap.c file. """ import json -import sys from milc import cli @@ -21,19 +20,14 @@ def c2json(cli): This command uses the `qmk.keymap` module to generate a keymap.json from a keymap.c file. The generated keymap is written to stdout, or to a file if -o is provided. """ - cli.args.filename = qmk.path.normpath(cli.args.filename) + if cli.args.filename != '-': + cli.args.filename = qmk.path.normpath(cli.args.filename) - # Error checking - if not cli.args.filename.exists(): - cli.log.error('C file does not exist!') - cli.print_usage() - exit(1) - - if str(cli.args.filename) == '-': - # TODO(skullydazed/anyone): Read file contents from STDIN - cli.log.error('Reading from STDIN is not (yet) supported.') - cli.print_usage() - exit(1) + # Error checking + if not cli.args.filename.exists(): + cli.log.error('C file does not exist!') + cli.print_usage() + return False # Environment processing if cli.args.output == ('-'): @@ -47,7 +41,7 @@ def c2json(cli): keymap_json = qmk.keymap.generate_json(keymap_json['keymap'], keymap_json['keyboard'], keymap_json['layout'], keymap_json['layers']) except KeyError: cli.log.error('Something went wrong. Try to use --no-cpp.') - sys.exit(1) + return False if cli.args.output: cli.args.output.parent.mkdir(parents=True, exist_ok=True) diff --git a/lib/python/qmk/cli/json2c.py b/lib/python/qmk/cli/json2c.py index 426078063c20..97d8fb0c332b 100755 --- a/lib/python/qmk/cli/json2c.py +++ b/lib/python/qmk/cli/json2c.py @@ -1,6 +1,7 @@ """Generate a keymap.c from a configurator export. """ import json +import sys from milc import cli @@ -17,26 +18,31 @@ def json2c(cli): This command uses the `qmk.keymap` module to generate a keymap.c from a configurator export. The generated keymap is written to stdout, or to a file if -o is provided. """ - # Error checking - if cli.args.filename and cli.args.filename.name == '-': - # TODO(skullydazed/anyone): Read file contents from STDIN - cli.log.error('Reading from STDIN is not (yet) supported.') - cli.print_usage() - return False - if not cli.args.filename.exists(): - cli.log.error('JSON file does not exist!') - cli.print_usage() + try: + # Parse the configurator from stdin + if cli.args.filename and cli.args.filename.name == '-': + user_keymap = json.load(sys.stdin) + + else: + # Error checking + if not cli.args.filename.exists(): + cli.log.error('JSON file does not exist!') + return False + + # Parse the configurator json file + else: + user_keymap = json.loads(cli.args.filename.read_text()) + + except json.decoder.JSONDecodeError as ex: + cli.log.error('The JSON input does not appear to be valid.') + cli.log.error(ex) return False # Environment processing if cli.args.output and cli.args.output.name == '-': cli.args.output = None - # Parse the configurator json - with cli.args.filename.open('r') as fd: - user_keymap = json.load(fd) - # Generate the keymap keymap_c = qmk.keymap.generate_c(user_keymap['keyboard'], user_keymap['layout'], user_keymap['layers']) diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 31c61ae6a81a..266532f503b4 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -3,6 +3,7 @@ from pathlib import Path import json import subprocess +import sys from pygments.lexers.c_cpp import CLexer from pygments.token import Token @@ -312,16 +313,17 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa return sorted(names) -def _c_preprocess(path): +def _c_preprocess(path, stdin=None): """ Run a file through the C pre-processor Args: - path: path of the keymap.c file + path: path of the keymap.c file (set None to use stdin) + stdin: stdin pipe (e.g. sys.stdin) Returns: the stdout of the pre-processor """ - pre_processed_keymap = qmk.commands.run(['cpp', path], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) + pre_processed_keymap = qmk.commands.run(['cpp', path] if path else ['cpp'], stdin=stdin, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) return pre_processed_keymap.stdout @@ -451,17 +453,23 @@ def parse_keymap_c(keymap_file, use_cpp=True): Currently only cares about the keymaps array. Args: - keymap_file: path of the keymap.c file + keymap_file: path of the keymap.c file (or '-' to use stdin) use_cpp: if True, pre-process the file with the C pre-processor Returns: a dictionary containing the parsed keymap """ - if use_cpp: - keymap_file = _c_preprocess(keymap_file) + if keymap_file == '-': + if use_cpp: + keymap_file = _c_preprocess(None, sys.stdin) + else: + keymap_file = sys.stdin.read() else: - keymap_file = keymap_file.read_text() + if use_cpp: + keymap_file = _c_preprocess(keymap_file) + else: + keymap_file = keymap_file.read_text() keymap = dict() keymap['layers'] = _get_layers(keymap_file) diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index 08e80f2c951f..efd9f6cf6a04 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -8,11 +8,20 @@ def check_subcommand(command, *args): - cmd = ['bin/qmk', command] + list(args) + cmd = ['bin/qmk', command, *args] result = run(cmd, stdout=PIPE, stderr=STDOUT, universal_newlines=True) return result +def check_subcommand_stdin(file_to_read, command, *args): + """Pipe content of a file to a command and return output. + """ + with open(file_to_read) as my_file: + cmd = ['bin/qmk', command, *args] + result = run(cmd, stdin=my_file, stdout=PIPE, stderr=STDOUT, universal_newlines=True) + return result + + def check_returncode(result, expected=[0]): """Print stdout if `result.returncode` does not match `expected`. """ @@ -129,6 +138,12 @@ def test_json2c(): assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n' +def test_json2c_stdin(): + result = check_subcommand_stdin('keyboards/handwired/onekey/keymaps/default_json/keymap.json', 'json2c', '-') + check_returncode(result) + assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n' + + def test_info(): result = check_subcommand('info', '-kb', 'handwired/onekey/pytest') check_returncode(result) @@ -186,6 +201,18 @@ def test_c2json_nocpp(): assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}' +def test_c2json_stdin(): + result = check_subcommand_stdin("keyboards/handwired/onekey/keymaps/default/keymap.c", "c2json", "-kb", "handwired/onekey/pytest", "-km", "default", "-") + check_returncode(result) + assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}' + + +def test_c2json_nocpp_stdin(): + result = check_subcommand_stdin("keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c", "c2json", "--no-cpp", "-kb", "handwired/onekey/pytest", "-km", "default", "-") + check_returncode(result) + assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}' + + def test_clean(): result = check_subcommand('clean', '-a') check_returncode(result) From 5edfdeff50e1741a93dae9154fa413c3a7752d32 Mon Sep 17 00:00:00 2001 From: Zach White Date: Tue, 29 Dec 2020 11:42:09 -0800 Subject: [PATCH 046/140] remove some old and unused code from Makefile (#11336) --- Makefile | 73 +++----------------------------------------------------- 1 file changed, 3 insertions(+), 70 deletions(-) diff --git a/Makefile b/Makefile index a13b92866dc5..e4f7b5b5165b 100644 --- a/Makefile +++ b/Makefile @@ -68,37 +68,8 @@ PATH_ELEMENTS := $(subst /, ,$(STARTING_DIR)) # Initialize the path elements list for further processing $(eval $(call NEXT_PATH_ELEMENT)) -# This function sets the KEYBOARD; KEYMAP and SUBPROJECT to the correct -# variables depending on which directory you stand in. -# It's really a very simple if else chain, if you squint enough, -# but the makefile syntax makes it very verbose. -# If we are in a subfolder of keyboards -# -# *** No longer needed ** -# -# ifeq ($(CURRENT_PATH_ELEMENT),keyboards) -# $(eval $(call NEXT_PATH_ELEMENT)) -# KEYBOARD := $(CURRENT_PATH_ELEMENT) -# $(eval $(call NEXT_PATH_ELEMENT)) -# # If we are in a subfolder of keymaps, or in other words in a keymap -# # folder -# ifeq ($(CURRENT_PATH_ELEMENT),keymaps) -# $(eval $(call NEXT_PATH_ELEMENT)) -# KEYMAP := $(CURRENT_PATH_ELEMENT) -# # else if we are not in the keyboard folder itself -# else ifneq ($(CURRENT_PATH_ELEMENT),) -# # the we can assume it's a subproject, as no other folders -# # should have make files in them -# SUBPROJECT := $(CURRENT_PATH_ELEMENT) -# $(eval $(call NEXT_PATH_ELEMENT)) -# # if we are inside a keymap folder of a subproject -# ifeq ($(CURRENT_PATH_ELEMENT),keymaps) -# $(eval $(call NEXT_PATH_ELEMENT)) -# KEYMAP := $(CURRENT_PATH_ELEMENT) -# endif -# endif -# endif +# Phony targets to enable a few simple make commands outside the main processing below. .PHONY: list-keyboards list-keyboards: util/list_keyboards.sh | sort -u | tr '\n' ' ' @@ -131,7 +102,6 @@ endif # Uncomment these for debugging # $(info Keyboard: $(KEYBOARD)) # $(info Keymap: $(KEYMAP)) -# $(info Subproject: $(SUBPROJECT)) # Set the default goal depending on where we are running make from @@ -189,7 +159,6 @@ endef # A recursive helper function for finding the longest match # $1 The list to be checked # It works by always removing the currently matched item from the list -# and call itself recursively, until a match is found define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2 # Stop the recursion when the list is empty ifneq ($1,) @@ -386,23 +355,6 @@ define PARSE_ALL_KEYBOARDS $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell util/list_keyboards.sh noci | sort -u))) endef -# $1 Subproject -# When entering this, the keyboard and subproject are known, so now we need -# to determine which keymaps are going to get compiled -# define PARSE_SUBPROJECT - -# endef - -# If we want to parse all subprojects, but the keyboard doesn't have any, -# then use defaultsp instead -# define PARSE_ALL_SUBPROJECTS -# ifeq ($$(SUBPROJECTS),) -# $$(eval $$(call PARSE_SUBPROJECT,defaultsp)) -# else -# $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$$(SUBPROJECTS))) -# endif -# endef - # Prints a list of all known keymaps for the given keyboard define LIST_ALL_KEYMAPS COMMAND_true_LIST_KEYMAPS := \ @@ -544,12 +496,12 @@ if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi; endef -# Let's match everything, we handle all the rule parsing ourselves +# Catch everything and parse the command line ourselves. .PHONY: % %: # Check if we have the CMP tool installed cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi; - # Ensure that bin/qmk works. This will be a failing check after the next develop merge on 2020 Aug 29. + # Ensure that bin/qmk works. This will be a failing check after the next develop merge if ! bin/qmk hello 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; fi # Check if the submodules are dirty, and display a warning if they are ifndef SKIP_GIT @@ -580,25 +532,6 @@ endif $(foreach TEST,$(sort $(TESTS)),$(RUN_TEST)) if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi; -# These no longer work because of the colon system - -# All should compile everything -# .PHONY: all -# all: all-keyboards test-all - -# Define some shortcuts, mostly for compatibility with the old syntax -# .PHONY: all-keyboards -# all-keyboards: all\:all\:all - -# .PHONY: all-keyboards-defaults -# all-keyboards-defaults: all\:default - -# .PHONY: test -# test: test-all - -# .PHONY: test-clean -# test-clean: test-all-clean - lib/%: git submodule sync $? git submodule update --init $? From 122cf3ad0f7d3d93f98c5211e9c7c6f60db463e9 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 30 Dec 2020 06:46:15 +1100 Subject: [PATCH 047/140] Update Zadig docs with list of bootloader device names and IDs (#11337) --- docs/driver_installation_zadig.md | 45 +++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md index 4519a21e6b50..9b3e8fadeaea 100644 --- a/docs/driver_installation_zadig.md +++ b/docs/driver_installation_zadig.md @@ -14,16 +14,11 @@ Some keyboards may have specific instructions for entering the bootloader. For e To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button. Alternatively, hold `BOOT` while inserting the USB cable. -Zadig will automatically detect the bootloader device. You may sometimes need to check **Options → List All Devices**. - - - For keyboards with Atmel AVR MCUs, the bootloader will be named something similar to `ATm32U4DFU`, and have a Vendor ID of `03EB`. - - USBasp bootloaders will appear as `USBasp`, with a VID/PID of `16C0:05DC`. - - AVR keyboards flashed with the QMK-DFU bootloader will be named ` Bootloader` and will also have the VID `03EB`. - - For most ARM keyboards, it will be called `STM32 BOOTLOADER`, and have a VID/PID of `0483:DF11`. +Zadig should automatically detect the bootloader device, but you may sometimes need to check **Options → List All Devices** and select the device from the dropdown instead. !> If Zadig lists one or more devices with the `HidUsb` driver, your keyboard is probably not in bootloader mode. The arrow will be colored orange and you will be asked to confirm modifying a system driver. **Do not** proceed if this is the case! -If the arrow appears green, select the driver, and click **Install Driver**. The `libusb-win32` driver will usually work for AVR, and `WinUSB` for ARM, but if you still cannot flash the board, try installing a different driver from the list. USBAspLoader devices must use the `libusbK` driver. +If the arrow appears green, select the driver, and click **Install Driver**. See the [list of known bootloaders](#list-of-known-bootloaders) for the correct driver to install. ![Zadig with a bootloader driver correctly installed](https://i.imgur.com/b8VgXzx.png) @@ -43,6 +38,40 @@ Right-click it and hit **Uninstall device**. Make sure to tick **Delete the driv ![The Device Uninstall dialog, with the "delete driver" checkbox ticked](https://i.imgur.com/aEs2RuA.png) -Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! +Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! Otherwise, repeat the process until Zadig reports the correct driver. ?> A full reboot of your computer may sometimes be necessary at this point, to get Windows to pick up the new driver. + +## List of Known Bootloaders + +This is a list of known bootloader devices and their USB vendor and product IDs, as well as the correct driver to assign for flashing with QMK. Note that the usbser and HidUsb drivers are built in to Windows, and cannot be assigned with Zadig - if your device has an incorrect driver, you must use the Device Manager to uninstall it as described in the previous section. + +The device name here is the name that appears in Zadig, and may not be what the Device Manager or QMK Toolbox displays. + +|Bootloader |Device Name |VID/PID |Driver | +|-------------|------------------------------|--------------|-------| +|`atmel-dfu` |ATmega16u2 DFU |`03EB:2FEF` |libusb0| +|`atmel-dfu` |ATmega32U2 DFU |`03EB:2FF0` |libusb0| +|`atmel-dfu` |ATm16U4 DFU V1.0.2 |`03EB:2FF3` |libusb0| +|`atmel-dfu` |ATm32U4DFU |`03EB:2FF4` |libusb0| +|`atmel-dfu` |*none* (AT90USB64) |`03EB:2FF9` |libusb0| +|`atmel-dfu` |AT90USB128 DFU |`03EB:2FFB` |libusb0| +|`qmk-dfu` |(keyboard name) Bootloader |As `atmel-dfu`|libusb0| +|`halfkay` |*none* |`16C0:0478` |HidUsb | +|`caterina` |Pro Micro 3.3V |`1B4F:9203` |usbser | +|`caterina` |Pro Micro 5V |`1B4F:9205` |usbser | +|`caterina` |LilyPadUSB |`1B4F:9207` |usbser | +|`caterina` |Pololu A-Star 32U4 Bootloader |`1FFB:0101` |usbser | +|`caterina` |Arduino Leonardo |`2341:0036` |usbser | +|`caterina` |Arduino Micro |`2341:0037` |usbser | +|`caterina` |Adafruit Feather 32u4 |`239A:000C` |usbser | +|`caterina` |Adafruit ItsyBitsy 32u4 3V |`239A:000D` |usbser | +|`caterina` |Adafruit ItsyBitsy 32u4 5V |`239A:000E` |usbser | +|`caterina` |Arduino Leonardo |`2A03:0036` |usbser | +|`caterina` |Arduino Micro |`2A03:0037` |usbser | +|`bootloadHID`|HIDBoot |`16C0:05DF` |HidUsb | +|`USBasp` |USBasp |`16C0:05DC` |libusbK| +|`apm32-dfu` |??? |`314B:0106` |WinUSB | +|`stm32-dfu` |STM32 BOOTLOADER |`0483:DF11` |WinUSB | +|`kiibohd` |Kiibohd DFU Bootloader |`1C11:B007` |WinUSB | +|`stm32duino` |Maple 003 |`1EAF:0003` |WinUSB | From 962b8d38141e60bfc4141e1e0aea60ca00901589 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 30 Dec 2020 07:51:36 +1100 Subject: [PATCH 048/140] Update keycode docs (#11343) --- docs/keycodes.md | 22 +++---- docs/keycodes_basic.md | 142 ++++++++++++++++++++--------------------- 2 files changed, 82 insertions(+), 82 deletions(-) diff --git a/docs/keycodes.md b/docs/keycodes.md index c6403c80bc4f..058998d4d735 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -124,17 +124,17 @@ See also: [Basic Keycodes](keycodes_basic.md) |`KC_F22` | |F22 |✔ | |✔ | |`KC_F23` | |F23 |✔ | |✔ | |`KC_F24` | |F24 |✔ | |✔ | -|`KC_EXECUTE` |`KC_EXEC` |Execute | | |✔ | -|`KC_HELP` | |Help | | |✔ | -|`KC_MENU` | |Menu | | |✔ | -|`KC_SELECT` |`KC_SLCT` |Select | | |✔ | -|`KC_STOP` | |Stop | | |✔ | -|`KC_AGAIN` |`KC_AGIN` |Again | | |✔ | -|`KC_UNDO` | |Undo | | |✔ | -|`KC_CUT` | |Cut | | |✔ | -|`KC_COPY` | |Copy | | |✔ | -|`KC_PASTE` |`KC_PSTE` |Paste | | |✔ | -|`KC_FIND` | |Find | | |✔ | +|`KC_EXECUTE` |`KC_EXEC` |Execute | | |✔ | +|`KC_HELP` | |Help | | |✔ | +|`KC_MENU` | |Menu | | |✔ | +|`KC_SELECT` |`KC_SLCT` |Select | | |✔ | +|`KC_STOP` | |Stop | | |✔ | +|`KC_AGAIN` |`KC_AGIN` |Again | | |✔ | +|`KC_UNDO` | |Undo | | |✔ | +|`KC_CUT` | |Cut | | |✔ | +|`KC_COPY` | |Copy | | |✔ | +|`KC_PASTE` |`KC_PSTE` |Paste | | |✔ | +|`KC_FIND` | |Find | | |✔ | |`KC__MUTE` | |Mute | |✔ |✔ | |`KC__VOLUP` | |Volume Up | |✔ |✔ | |`KC__VOLDOWN` | |Volume Down | |✔ |✔ | diff --git a/docs/keycodes_basic.md b/docs/keycodes_basic.md index 09efc8c9c3d1..6a31204f3348 100644 --- a/docs/keycodes_basic.md +++ b/docs/keycodes_basic.md @@ -144,48 +144,48 @@ The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07 ## Commands -|Key |Aliases |Description | -|------------------|------------------------------|------------------------------| -|`KC_PSCREEN` |`KC_PSCR` |Print Screen | -|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) | -|`KC_INSERT` |`KC_INS` |Insert | -|`KC_HOME` | |Home | -|`KC_PGUP` | |Page Up | -|`KC_DELETE` |`KC_DEL` |Forward Delete | -|`KC_END` | |End | -|`KC_PGDOWN` |`KC_PGDN` |Page Down | -|`KC_RIGHT` |`KC_RGHT` |Right Arrow | -|`KC_LEFT` | |Left Arrow | -|`KC_DOWN` | |Down Arrow | -|`KC_UP` | |Up Arrow | -|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key)| -|`KC_POWER` | |System Power (macOS/Linux) | -|`KC_EXECUTE` |`KC_EXEC` |Execute | -|`KC_HELP` | |Help | -|`KC_MENU` | |Menu | -|`KC_SELECT` |`KC_SLCT` |Select | -|`KC_STOP` | |Stop | -|`KC_AGAIN` |`KC_AGIN` |Again | -|`KC_UNDO` | |Undo | -|`KC_CUT` | |Cut | -|`KC_COPY` | |Copy | -|`KC_PASTE` |`KC_PSTE` |Paste | -|`KC_FIND` | |Find | -|`KC__MUTE` | |Mute (macOS) | -|`KC__VOLUP` | |Volume Up (macOS) | -|`KC__VOLDOWN` | |Volume Down (macOS) | -|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase | -|`KC_SYSREQ` | |SysReq/Attention | -|`KC_CANCEL` | |Cancel | -|`KC_CLEAR` |`KC_CLR` |Clear | -|`KC_PRIOR` | |Prior | -|`KC_RETURN` | |Return | -|`KC_SEPARATOR` | |Separator | -|`KC_OUT` | |Out | -|`KC_OPER` | |Oper | -|`KC_CLEAR_AGAIN` | |Clear/Again | -|`KC_CRSEL` | |CrSel/Props | -|`KC_EXSEL` | |ExSel | +|Key |Aliases |Description | +|------------------|------------------------------|--------------------------------------| +|`KC_PSCREEN` |`KC_PSCR` |Print Screen | +|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) | +|`KC_INSERT` |`KC_INS` |Insert | +|`KC_HOME` | |Home | +|`KC_PGUP` | |Page Up | +|`KC_DELETE` |`KC_DEL` |Forward Delete | +|`KC_END` | |End | +|`KC_PGDOWN` |`KC_PGDN` |Page Down | +|`KC_RIGHT` |`KC_RGHT` |Right Arrow | +|`KC_LEFT` | |Left Arrow | +|`KC_DOWN` | |Down Arrow | +|`KC_UP` | |Up Arrow | +|`KC_APPLICATION` |`KC_APP` |Application (Windows Context Menu Key)| +|`KC_POWER` | |System Power | +|`KC_EXECUTE` |`KC_EXEC` |Execute | +|`KC_HELP` | |Help | +|`KC_MENU` | |Menu | +|`KC_SELECT` |`KC_SLCT` |Select | +|`KC_STOP` | |Stop | +|`KC_AGAIN` |`KC_AGIN` |Again | +|`KC_UNDO` | |Undo | +|`KC_CUT` | |Cut | +|`KC_COPY` | |Copy | +|`KC_PASTE` |`KC_PSTE` |Paste | +|`KC_FIND` | |Find | +|`KC__MUTE` | |Mute | +|`KC__VOLUP` | |Volume Up | +|`KC__VOLDOWN` | |Volume Down | +|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase | +|`KC_SYSREQ` | |SysReq/Attention | +|`KC_CANCEL` | |Cancel | +|`KC_CLEAR` |`KC_CLR` |Clear | +|`KC_PRIOR` | |Prior | +|`KC_RETURN` | |Return | +|`KC_SEPARATOR` | |Separator | +|`KC_OUT` | |Out | +|`KC_OPER` | |Oper | +|`KC_CLEAR_AGAIN` | |Clear/Again | +|`KC_CRSEL` | |CrSel/Props | +|`KC_EXSEL` | |ExSel | ## Media Keys @@ -193,34 +193,34 @@ These keycodes are not part of the Keyboard/Keypad usage page. The `SYSTEM_` key ?> Some of these keycodes may behave differently depending on the OS. For example, on macOS, the keycodes `KC_MEDIA_FAST_FORWARD`, `KC_MEDIA_REWIND`, `KC_MEDIA_NEXT_TRACK` and `KC_MEDIA_PREV_TRACK` skip within the current track when held, but skip the entire track when tapped. -|Key |Aliases |Description | -|-----------------------|---------|-----------------------------| -|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down | -|`KC_SYSTEM_SLEEP` |`KC_SLEP`|System Sleep | -|`KC_SYSTEM_WAKE` |`KC_WAKE`|System Wake | -|`KC_AUDIO_MUTE` |`KC_MUTE`|Mute | -|`KC_AUDIO_VOL_UP` |`KC_VOLU`|Volume Up | -|`KC_AUDIO_VOL_DOWN` |`KC_VOLD`|Volume Down | -|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT`|Next Track | -|`KC_MEDIA_PREV_TRACK` |`KC_MPRV`|Previous Track | -|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track (Windows) | -|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track | -|`KC_MEDIA_SELECT` |`KC_MSEL`|Launch Media Player (Windows)| -|`KC_MEDIA_EJECT` |`KC_EJCT`|Eject (macOS) | -|`KC_MAIL` | |Launch Mail (Windows) | -|`KC_CALCULATOR` |`KC_CALC`|Launch Calculator (Windows) | -|`KC_MY_COMPUTER` |`KC_MYCM`|Launch My Computer (Windows) | -|`KC_WWW_SEARCH` |`KC_WSCH`|Browser Search (Windows) | -|`KC_WWW_HOME` |`KC_WHOM`|Browser Home (Windows) | -|`KC_WWW_BACK` |`KC_WBAK`|Browser Back (Windows) | -|`KC_WWW_FORWARD` |`KC_WFWD`|Browser Forward (Windows) | -|`KC_WWW_STOP` |`KC_WSTP`|Browser Stop (Windows) | -|`KC_WWW_REFRESH` |`KC_WREF`|Browser Refresh (Windows) | -|`KC_WWW_FAVORITES` |`KC_WFAV`|Browser Favorites (Windows) | -|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track (macOS) | -|`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track (macOS) | -|`KC_BRIGHTNESS_UP` |`KC_BRIU`|Brightness Up | -|`KC_BRIGHTNESS_DOWN` |`KC_BRID`|Brightness Down | +|Key |Aliases |Description | +|-----------------------|---------|-------------------| +|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down | +|`KC_SYSTEM_SLEEP` |`KC_SLEP`|System Sleep | +|`KC_SYSTEM_WAKE` |`KC_WAKE`|System Wake | +|`KC_AUDIO_MUTE` |`KC_MUTE`|Mute | +|`KC_AUDIO_VOL_UP` |`KC_VOLU`|Volume Up | +|`KC_AUDIO_VOL_DOWN` |`KC_VOLD`|Volume Down | +|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT`|Next Track | +|`KC_MEDIA_PREV_TRACK` |`KC_MPRV`|Previous Track | +|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track | +|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track | +|`KC_MEDIA_SELECT` |`KC_MSEL`|Launch Media Player| +|`KC_MEDIA_EJECT` |`KC_EJCT`|Eject | +|`KC_MAIL` | |Launch Mail | +|`KC_CALCULATOR` |`KC_CALC`|Launch Calculator | +|`KC_MY_COMPUTER` |`KC_MYCM`|Launch My Computer | +|`KC_WWW_SEARCH` |`KC_WSCH`|Browser Search | +|`KC_WWW_HOME` |`KC_WHOM`|Browser Home | +|`KC_WWW_BACK` |`KC_WBAK`|Browser Back | +|`KC_WWW_FORWARD` |`KC_WFWD`|Browser Forward | +|`KC_WWW_STOP` |`KC_WSTP`|Browser Stop | +|`KC_WWW_REFRESH` |`KC_WREF`|Browser Refresh | +|`KC_WWW_FAVORITES` |`KC_WFAV`|Browser Favorites | +|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track | +|`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track | +|`KC_BRIGHTNESS_UP` |`KC_BRIU`|Brightness Up | +|`KC_BRIGHTNESS_DOWN` |`KC_BRID`|Brightness Down | ## Number Pad @@ -248,7 +248,7 @@ These keycodes are not part of the Keyboard/Keypad usage page. The `SYSTEM_` key ## Special Keys -In addition to these, keycodes in the range of `0xA5-DF` are reserved for internal use by TMK. +In addition to these, keycodes in the range of `0xA5-DF` are reserved for internal use. |Key |Aliases |Description | |----------------|--------------------|---------------------------------------| From 25d9cdc88fa990251c5528d07027448c7c801f58 Mon Sep 17 00:00:00 2001 From: Monksoffunk Date: Wed, 30 Dec 2020 06:13:35 +0900 Subject: [PATCH 049/140] Add ALETH42 keyboard (#10720) * Add Aleth42 keyboard * Fix Rotary Encoder Section * Add VIA keymap * Fix VIA keymap remove RETRO_TAPPING define because of incompatiblity of rotary encoders with layer tapping. change KC_ESC to KC_GESC * Change TAPPING definitions Comment TAPPING_TERM Remove RETRO_TAPPING * Add rev1 Add new rev1 directory Move previous files to rev0 * Add define of ENCODER_RESOLUTION * Change number of RGBLED * Change USB descriptor param Change VID, PID and product name * Change default and via keymaps * Remove upper keymap * Add readme * Change USB descriptor param VID 0x04D8 PID 0xEAC8 Manufacturer 25KEYS rev0 -> 0x0000 rev1 -> 0x0001 Remove define DESCRIPTION * Fix info.json Remove info,json under /rev0 /rev1 Add correct info.json at keyboard/aleth42/ * Change keymaps * Remove unnecessary comments * Change BOOTMAGIC option * Change config options * Fix readme files * Change keymap readme files * Change to use get_highest_layer * Update keyboards/aleth42/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Use tap_code16 function * Remove empty config file * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/aleth42/info.json | 54 +++++++ keyboards/aleth42/keymaps/default/keymap.c | 149 ++++++++++++++++++++ keyboards/aleth42/keymaps/default/readme.md | 50 +++++++ keyboards/aleth42/keymaps/via/config.h | 22 +++ keyboards/aleth42/keymaps/via/keymap.c | 149 ++++++++++++++++++++ keyboards/aleth42/keymaps/via/readme.md | 56 ++++++++ keyboards/aleth42/keymaps/via/rules.mk | 2 + keyboards/aleth42/readme.md | 15 ++ keyboards/aleth42/rev0/config.h | 82 +++++++++++ keyboards/aleth42/rev0/readme.md | 15 ++ keyboards/aleth42/rev0/rev0.c | 17 +++ keyboards/aleth42/rev0/rev0.h | 54 +++++++ keyboards/aleth42/rev0/rules.mk | 22 +++ keyboards/aleth42/rev1/config.h | 82 +++++++++++ keyboards/aleth42/rev1/readme.md | 15 ++ keyboards/aleth42/rev1/rev1.c | 17 +++ keyboards/aleth42/rev1/rev1.h | 54 +++++++ keyboards/aleth42/rev1/rules.mk | 22 +++ keyboards/aleth42/rules.mk | 1 + 19 files changed, 878 insertions(+) create mode 100644 keyboards/aleth42/info.json create mode 100644 keyboards/aleth42/keymaps/default/keymap.c create mode 100644 keyboards/aleth42/keymaps/default/readme.md create mode 100644 keyboards/aleth42/keymaps/via/config.h create mode 100644 keyboards/aleth42/keymaps/via/keymap.c create mode 100644 keyboards/aleth42/keymaps/via/readme.md create mode 100644 keyboards/aleth42/keymaps/via/rules.mk create mode 100644 keyboards/aleth42/readme.md create mode 100644 keyboards/aleth42/rev0/config.h create mode 100644 keyboards/aleth42/rev0/readme.md create mode 100644 keyboards/aleth42/rev0/rev0.c create mode 100644 keyboards/aleth42/rev0/rev0.h create mode 100644 keyboards/aleth42/rev0/rules.mk create mode 100644 keyboards/aleth42/rev1/config.h create mode 100644 keyboards/aleth42/rev1/readme.md create mode 100644 keyboards/aleth42/rev1/rev1.c create mode 100644 keyboards/aleth42/rev1/rev1.h create mode 100644 keyboards/aleth42/rev1/rules.mk create mode 100644 keyboards/aleth42/rules.mk diff --git a/keyboards/aleth42/info.json b/keyboards/aleth42/info.json new file mode 100644 index 000000000000..852c94bb0fdc --- /dev/null +++ b/keyboards/aleth42/info.json @@ -0,0 +1,54 @@ +{ + "keyboard_name": "aleth42", + "url": "http://www.sho-k.co.uk/tech/aleth42", + "maintainer": "monksoffunk", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":0, "y":1, "w":1.25}, + {"x":1.25, "y":1}, + {"x":2.25, "y":1}, + {"x":3.25, "y":1}, + {"x":4.25, "y":1}, + {"x":5.25, "y":1}, + {"x":6.25, "y":1}, + {"x":7.25, "y":1}, + {"x":8.25, "y":1}, + {"x":9.25, "y":1}, + {"x":10.25, "y":1, "w":1.75}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2, "w":1.25}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3, "w":1.25}, + {"x":3.5, "y":3, "w":2.75}, + {"x":6.25, "y":3, "w":2.25}, + {"x":8.5, "y":3, "w":1.25}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3, "w":1.25}] + } + } +} \ No newline at end of file diff --git a/keyboards/aleth42/keymaps/default/keymap.c b/keyboards/aleth42/keymaps/default/keymap.c new file mode 100644 index 000000000000..48214d1e22a6 --- /dev/null +++ b/keyboards/aleth42/keymaps/default/keymap.c @@ -0,0 +1,149 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default Layer + * ,-----------------------------------------------------------. + * | Esc| Q | W | E | R | T | Y | U | I | O | P | BS | + * |-----------------------------------------------------------| + * | Tab | A | S | D | F | G | H | J | K | L | Ent | + * |-----------------------------------------------------------| + * | LSft | Z | X | C | V | B | N | M | , | . |fn(/)| + * |-----------------------------------------------------------| + * | LCtl | LAlt| LGui| spc fn0 | spc fn1 |RGui|RAlt|RCtl| + * `-----------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(_ADJUST, KC_SLSH), + KC_LCTL, KC_LALT , KC_LGUI, LT(_LOWER, KC_SPC), LT(_RAISE, KC_SPC), KC_RGUI, KC_RALT, KC_RCTL + ), + + /* Lower Layer + * ,-----------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del| + * |-----------------------------------------------------------| + * | | | | | | | _ | + | { | } | Pipe | + * |-----------------------------------------------------------| + * | | | | | | | | ; | ' | Up | | + * |-----------------------------------------------------------| + * | | | | | |Left|Down|Right | + * `-----------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, KC_UP, _______, + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Raise Layer + * ,-----------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del| + * |-----------------------------------------------------------| + * | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Pipe | + * |-----------------------------------------------------------| + * | F7 | F8 | F9 | F10| F11| F12| \ | \ | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Adjust Layer + * ,-----------------------------------------------------------. + * |Mute| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10|F11 | + * |-----------------------------------------------------------| + * | |BTOG |BSTP|BINC| MAC|RGBTOG|HUI|WIN|SAI|VAI| F12 | + * |-----------------------------------------------------------| + * | Caps |Reset|BBRE|BDEC| |RMOD|HUD | |SAD|VAD | | + * |-----------------------------------------------------------| + * |SLEEP| | | | | | | | + * `-----------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( + KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, BL_TOGG, BL_STEP, BL_INC, AG_NORM, RGB_TOG, RGB_HUI, AG_SWAP, RGB_SAI, RGB_VAI, KC_F12, + KC_CAPS, RESET, BL_BRTG, BL_DEC, _______, RGB_MOD, RGB_HUD, _______, RGB_SAD, RGB_VAD, _______, + KC_SLEP, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left encoder */ + switch (get_highest_layer(layer_state)) { + case _QWERTY: + if (clockwise) { + tap_code(KC_TAB); + } else { + tap_code16(S(KC_TAB)); + } + break; + case _RAISE: + if (clockwise) { + // tap_code(KC_VOLU); + if(keymap_config.swap_lalt_lgui==false){ + tap_code(KC_LANG2); + }else { + tap_code16(A(KC_GRV)); + } + } else { + if(keymap_config.swap_lalt_lgui==false){ + tap_code(KC_LANG1); + } else { + tap_code16(A(KC_GRV)); + } + } + break; + case _ADJUST: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + + } else if (index == 1) { /* Right encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } +} diff --git a/keyboards/aleth42/keymaps/default/readme.md b/keyboards/aleth42/keymaps/default/readme.md new file mode 100644 index 000000000000..85da46e69fa4 --- /dev/null +++ b/keyboards/aleth42/keymaps/default/readme.md @@ -0,0 +1,50 @@ +# The default keymap for aleth42 + +Default Layer + + ,-----------------------------------------------------------. + | Esc| Q | W | E | R | T | Y | U | I | O | P | BS | + |-----------------------------------------------------------| + | Tab | A | S | D | F | G | H | J | K | L | Ent | + |-----------------------------------------------------------| + | LSft | Z | X | C | V | B | N | M | , | . |fn(/)| + |-----------------------------------------------------------| + | Lctl | LAlt| LGui| spc fn0 | spc fn1 |RGui|RAlt|RCtl| + `-----------------------------------------------------------' + +Lower Layer = fn0 + + ,-----------------------------------------------------------. + | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del| + |-----------------------------------------------------------| + | | | | | | | _ | + | { | } | Pipe | + |-----------------------------------------------------------| + | | | | | | | | ; | ' | Up | | + |-----------------------------------------------------------| + | | | | | |Left|Down|Right | + `-----------------------------------------------------------' + +Raise Layer = fn1 + + ,-----------------------------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del| + |-----------------------------------------------------------| + | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Pipe | + |-----------------------------------------------------------| + | F7 | F8 | F9 | F10| F11| F12| \ | \ | | | | + |-----------------------------------------------------------| + | | | | | | | | | + `-----------------------------------------------------------' + +Adjust Layer = fn + + ,-----------------------------------------------------------. + |Mute| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10|F11 | + |-----------------------------------------------------------| + | |BTOG |BSTP|BINC| MAC|RGBTOG|HUI|WIN|SAI|VAI| F12 | + |-----------------------------------------------------------| + | Caps |Reset|BBRE|BDEC| |RMOD|HUD | |SAD|VAD | | + |-----------------------------------------------------------| + |SLEEP| | | | | | | | + `-----------------------------------------------------------' + diff --git a/keyboards/aleth42/keymaps/via/config.h b/keyboards/aleth42/keymaps/via/config.h new file mode 100644 index 000000000000..f664d664f67b --- /dev/null +++ b/keyboards/aleth42/keymaps/via/config.h @@ -0,0 +1,22 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ + +#pragma once + +// place overrides here +// #define TAPPING_TERM 200 +#define PERMISSIVE_HOLD +#define ENCODER_RESOLUTION 2 \ No newline at end of file diff --git a/keyboards/aleth42/keymaps/via/keymap.c b/keyboards/aleth42/keymaps/via/keymap.c new file mode 100644 index 000000000000..e747b0d64fc5 --- /dev/null +++ b/keyboards/aleth42/keymaps/via/keymap.c @@ -0,0 +1,149 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default Layer + * ,-----------------------------------------------------------. + * | Esc| Q | W | E | R | T | Y | U | I | O | P | BS | + * |-----------------------------------------------------------| + * | Tab | A | S | D | F | G | H | J | K | L | Ent | + * |-----------------------------------------------------------| + * | LSft | Z | X | C | V | B | N | M | , | . |fn(/)| + * |-----------------------------------------------------------| + * | Esc | LAlt| LGui| spc fn0 | spc fn1 |RGui|RAlt|RCtl| + * `-----------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + MT(MOD_LCTL, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(_ADJUST, KC_SLSH), + MT(MOD_LCTL, KC_ESC), KC_LALT , KC_LGUI, LT(_LOWER, KC_SPC), LT(_RAISE, KC_SPC), KC_RGUI, KC_RALT, KC_RCTL + ), + + /* Lower Layer + * ,-----------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del| + * |-----------------------------------------------------------| + * | | | | | | | _ | + | { | } | Pipe | + * |-----------------------------------------------------------| + * | | | | | | | | ; | ' | Up | | + * |-----------------------------------------------------------| + * | | | | | |Left|Down|Right | + * `-----------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, KC_UP, _______, + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Raise Layer + * ,-----------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del| + * |-----------------------------------------------------------| + * | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Pipe | + * |-----------------------------------------------------------| + * | F7 | F8 | F9 | F10| F11| F12| \ | \ | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Adjust Layer + * ,-----------------------------------------------------------. + * |Mute| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10|F11 | + * |-----------------------------------------------------------| + * | |BTOG |BSTP|BINC| MAC|RGBTOG|HUI|WIN|SAI|VAI| F12 | + * |-----------------------------------------------------------| + * | Caps |Reset|BBRE|BDEC| |RMOD|HUD | |SAD|VAD | | + * |-----------------------------------------------------------| + * |SLEEP| | | | | | | | + * `-----------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( + KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, BL_TOGG, BL_STEP, BL_INC, AG_NORM, RGB_TOG, RGB_HUI, AG_SWAP, RGB_SAI, RGB_VAI, KC_F12, + KC_CAPS, RESET, BL_BRTG, BL_DEC, _______, RGB_MOD, RGB_HUD, _______, RGB_SAD, RGB_VAD, _______, + KC_SLEP, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left encoder */ + switch (get_highest_layer(layer_state)) { + case _QWERTY: + if (clockwise) { + tap_code(KC_TAB); + } else { + tap_code16(S(KC_TAB)); + } + break; + case _RAISE: + if (clockwise) { + // tap_code(KC_VOLU); + if(keymap_config.swap_lalt_lgui==false){ + tap_code(KC_LANG2); + }else { + tap_code16(A(KC_GRV)); + } + } else { + if(keymap_config.swap_lalt_lgui==false){ + tap_code(KC_LANG1); + } else { + tap_code16(A(KC_GRV)); + } + } + break; + case _ADJUST: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + + } else if (index == 1) { /* Right encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } +} \ No newline at end of file diff --git a/keyboards/aleth42/keymaps/via/readme.md b/keyboards/aleth42/keymaps/via/readme.md new file mode 100644 index 000000000000..01f2cfee34df --- /dev/null +++ b/keyboards/aleth42/keymaps/via/readme.md @@ -0,0 +1,56 @@ +# The VIA keymap for aleth42 + +Default Layer + + ,-----------------------------------------------------------. + | Esc| Q | W | E | R | T | Y | U | I | O | P | BS | + |-----------------------------------------------------------| + | Tab*| A | S | D | F | G | H | J | K | L | Ent | + |-----------------------------------------------------------| + | LSft | Z | X | C | V | B | N | M | , | . |fn(/)| + |-----------------------------------------------------------| + | Esc* | LAlt| LGui| spc fn0 | spc fn1 |RGui|RAlt|RCtl| + `-----------------------------------------------------------' + +Tab* would activate Left Control when held, and send Tab when tapped. + +Esc* would activate Left Control when held, and send Escape when tapped. + +Esc* is useful with a rotary encoder @ upper-left Esc location. + +Lower Layer = fn0 + + ,-----------------------------------------------------------. + | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del| + |-----------------------------------------------------------| + | | | | | | | _ | + | { | } | Pipe | + |-----------------------------------------------------------| + | | | | | | | | ; | ' | Up | | + |-----------------------------------------------------------| + | | | | | |Left|Down|Right | + `-----------------------------------------------------------' + +Raise Layer = fn1 + + ,-----------------------------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del| + |-----------------------------------------------------------| + | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Pipe | + |-----------------------------------------------------------| + | F7 | F8 | F9 | F10| F11| F12| \ | \ | | | | + |-----------------------------------------------------------| + | | | | | | | | | + `-----------------------------------------------------------' + +Adjust Layer = fn + + ,-----------------------------------------------------------. + |Mute| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10|F11 | + |-----------------------------------------------------------| + | |BTOG |BSTP|BINC| MAC|RGBTOG|HUI|WIN|SAI|VAI| F12 | + |-----------------------------------------------------------| + | Caps |Reset|BBRE|BDEC| |RMOD|HUD | |SAD|VAD | | + |-----------------------------------------------------------| + |SLEEP| | | | | | | | + `-----------------------------------------------------------' + diff --git a/keyboards/aleth42/keymaps/via/rules.mk b/keyboards/aleth42/keymaps/via/rules.mk new file mode 100644 index 000000000000..35a31dea8edc --- /dev/null +++ b/keyboards/aleth42/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +CONSOLE_ENABLE = no diff --git a/keyboards/aleth42/readme.md b/keyboards/aleth42/readme.md new file mode 100644 index 000000000000..3da1231d60a5 --- /dev/null +++ b/keyboards/aleth42/readme.md @@ -0,0 +1,15 @@ +# ALETH42 + +![ALETH42](https://i.imgur.com/6hJVBQl.png) + +40% keyboard with rotary encoder (optional) + +* Keyboard Maintainer: [monksoffunk](https://github.com/monksoffunk/) [@monksoffunkJP](https://twitter.com/monksoffunkJP) +* Hardware Supported: ALETH42 PCB +* Hardware Availability: [twitter](https://twitter.com/monksoffunkJP), [Booth](https://25keys.booth.pm/items/2420095) + +Make example for this keyboard (after setting up your build environment): + + make aleth42:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/aleth42/rev0/config.h b/keyboards/aleth42/rev0/config.h new file mode 100644 index 000000000000..da10e30a4fae --- /dev/null +++ b/keyboards/aleth42/rev0/config.h @@ -0,0 +1,82 @@ +/* +Copyright 2020 monksoffunk + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEAC8 +#define DEVICE_VER 0x0000 +#define MANUFACTURER 25KEYS +#define PRODUCT ALETH42 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D4, D5, D6, C2, C4, C5, C6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define ENCODERS_PAD_A { B6, B5 } // located @ upper left +#define ENCODERS_PAD_B { B7, B4 } // located @ bottom left + +#define RGB_DI_PIN C7 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 6 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ + /*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION \ No newline at end of file diff --git a/keyboards/aleth42/rev0/readme.md b/keyboards/aleth42/rev0/readme.md new file mode 100644 index 000000000000..2457a7a10a10 --- /dev/null +++ b/keyboards/aleth42/rev0/readme.md @@ -0,0 +1,15 @@ +# ALETH42 + +![ALETH42](https://i.imgur.com/6hJVBQl.png) + +40% keyboard with rotary encoder (optional) + +* Keyboard Maintainer: [monksoffunk](https://github.com/monksoffunk/) [@monksoffunkJP](https://twitter.com/monksoffunkJP) +* Hardware Supported: ALETH42 PCB +* Hardware Availability: [twitter](https://twitter.com/monksoffunkJP) + +Make example for this keyboard (after setting up your build environment): + + make aleth42:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/aleth42/rev0/rev0.c b/keyboards/aleth42/rev0/rev0.c new file mode 100644 index 000000000000..ce91e8380439 --- /dev/null +++ b/keyboards/aleth42/rev0/rev0.c @@ -0,0 +1,17 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ + +#include "rev0.h" \ No newline at end of file diff --git a/keyboards/aleth42/rev0/rev0.h b/keyboards/aleth42/rev0/rev0.h new file mode 100644 index 000000000000..a5dd74037f1c --- /dev/null +++ b/keyboards/aleth42/rev0/rev0.h @@ -0,0 +1,54 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +// for readability +#define XXX KC_NO + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +/* ALETH42 layout + * ,-----------------------------------------------------------. + * | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 38 | + * |-----------------------------------------------------------| + * | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | + * |-----------------------------------------------------------| + * | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | + * |-----------------------------------------------------------| + * | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | + * `-----------------------------------------------------------' + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k38,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A,\ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A,\ + k30, k31, k32, k33, k34, k35, k36, k37\ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A },\ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A },\ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A },\ + { k30, k31, k32, k33, k34, k35, k36, k37, XXX, XXX, k38 }\ +} diff --git a/keyboards/aleth42/rev0/rules.mk b/keyboards/aleth42/rev0/rules.mk new file mode 100644 index 000000000000..a54fa022f543 --- /dev/null +++ b/keyboards/aleth42/rev0/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +ENCODER_ENABLE = yes +TAP_DANCE_ENABLE = no diff --git a/keyboards/aleth42/rev1/config.h b/keyboards/aleth42/rev1/config.h new file mode 100644 index 000000000000..38c74c6bf109 --- /dev/null +++ b/keyboards/aleth42/rev1/config.h @@ -0,0 +1,82 @@ +/* +Copyright 2020 monksoffunk + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEAC8 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 25KEYS +#define PRODUCT ALETH42 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B4, B0, B2, B1 } +#define MATRIX_COL_PINS { D5, D3, D2, D1, D0, D6, D4, F7, F0, F1, F4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define ENCODERS_PAD_A { B5, F5 } +#define ENCODERS_PAD_B { B6, F6 } + +#define BACKLIGHT_PIN C6 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 8 + +#define RGB_DI_PIN B3 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 8 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ + /*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE \ No newline at end of file diff --git a/keyboards/aleth42/rev1/readme.md b/keyboards/aleth42/rev1/readme.md new file mode 100644 index 000000000000..3da1231d60a5 --- /dev/null +++ b/keyboards/aleth42/rev1/readme.md @@ -0,0 +1,15 @@ +# ALETH42 + +![ALETH42](https://i.imgur.com/6hJVBQl.png) + +40% keyboard with rotary encoder (optional) + +* Keyboard Maintainer: [monksoffunk](https://github.com/monksoffunk/) [@monksoffunkJP](https://twitter.com/monksoffunkJP) +* Hardware Supported: ALETH42 PCB +* Hardware Availability: [twitter](https://twitter.com/monksoffunkJP), [Booth](https://25keys.booth.pm/items/2420095) + +Make example for this keyboard (after setting up your build environment): + + make aleth42:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/aleth42/rev1/rev1.c b/keyboards/aleth42/rev1/rev1.c new file mode 100644 index 000000000000..360cf8e7f1aa --- /dev/null +++ b/keyboards/aleth42/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ + +#include "rev1.h" \ No newline at end of file diff --git a/keyboards/aleth42/rev1/rev1.h b/keyboards/aleth42/rev1/rev1.h new file mode 100644 index 000000000000..a5dd74037f1c --- /dev/null +++ b/keyboards/aleth42/rev1/rev1.h @@ -0,0 +1,54 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +// for readability +#define XXX KC_NO + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +/* ALETH42 layout + * ,-----------------------------------------------------------. + * | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 38 | + * |-----------------------------------------------------------| + * | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | + * |-----------------------------------------------------------| + * | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | + * |-----------------------------------------------------------| + * | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | + * `-----------------------------------------------------------' + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k38,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A,\ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A,\ + k30, k31, k32, k33, k34, k35, k36, k37\ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A },\ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A },\ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A },\ + { k30, k31, k32, k33, k34, k35, k36, k37, XXX, XXX, k38 }\ +} diff --git a/keyboards/aleth42/rev1/rules.mk b/keyboards/aleth42/rev1/rules.mk new file mode 100644 index 000000000000..9441d4051c6f --- /dev/null +++ b/keyboards/aleth42/rev1/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +ENCODER_ENABLE = yes +TAP_DANCE_ENABLE = no diff --git a/keyboards/aleth42/rules.mk b/keyboards/aleth42/rules.mk new file mode 100644 index 000000000000..8d130979b880 --- /dev/null +++ b/keyboards/aleth42/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = aleth42/rev1 From 2573ed8c6bc3ce5dcccbd3fddc2e8fe5a0377eac Mon Sep 17 00:00:00 2001 From: xyzz <1065521+xyzz@users.noreply.github.com> Date: Tue, 29 Dec 2020 16:45:04 -0500 Subject: [PATCH 050/140] Remove MATRIX_IS_ON macro (#11330) * Remove MATRIX_IS_ON macro this macro is both incorrect and excessive given that macro_is_on() exists * Remove massdrop matrix.h --- keyboards/massdrop/alt/matrix.h | 77 -------------------------------- keyboards/massdrop/ctrl/matrix.h | 77 -------------------------------- tmk_core/common/matrix.h | 2 - 3 files changed, 156 deletions(-) delete mode 100644 keyboards/massdrop/alt/matrix.h delete mode 100644 keyboards/massdrop/ctrl/matrix.h diff --git a/keyboards/massdrop/alt/matrix.h b/keyboards/massdrop/alt/matrix.h deleted file mode 100644 index 3eab6dece10d..000000000000 --- a/keyboards/massdrop/alt/matrix.h +++ /dev/null @@ -1,77 +0,0 @@ -/* -Copyright 2011 Jun Wako - -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 . -*/ -#ifndef MATRIX_H -#define MATRIX_H - -#include -#include -#include "keyboard.h" - -#if (MATRIX_COLS <= 8) -typedef uint8_t matrix_row_t; -#elif (MATRIX_COLS <= 16) -typedef uint16_t matrix_row_t; -#elif (MATRIX_COLS <= 32) -typedef uint32_t matrix_row_t; -#else -#error "MATRIX_COLS: invalid value" -#endif - -#define MATRIX_IS_ON(row, col) (matrix_get_row(row) && (1< - -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 . -*/ -#ifndef MATRIX_H -#define MATRIX_H - -#include -#include -#include "keyboard.h" - -#if (MATRIX_COLS <= 8) -typedef uint8_t matrix_row_t; -#elif (MATRIX_COLS <= 16) -typedef uint16_t matrix_row_t; -#elif (MATRIX_COLS <= 32) -typedef uint32_t matrix_row_t; -#else -#error "MATRIX_COLS: invalid value" -#endif - -#define MATRIX_IS_ON(row, col) (matrix_get_row(row) && (1< Date: Wed, 30 Dec 2020 06:12:58 +0800 Subject: [PATCH 051/140] Fix backlight for XD84 (#11309) Like XD87, XD8 should have `#define BACKLIGHT_ON_STATE 0` too. --- keyboards/xd84/config.h | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/xd84/config.h b/keyboards/xd84/config.h index 9a823669dbc2..fb6099e6fcc5 100644 --- a/keyboards/xd84/config.h +++ b/keyboards/xd84/config.h @@ -52,6 +52,7 @@ #define BACKLIGHT_PIN B5 #define BACKLIGHT_LEVELS 10 +#define BACKLIGHT_ON_STATE 0 // #define BACKLIGHT_BREATHING #define RGB_DI_PIN C7 From 12568fb5a9167d29a52f79c739f11830bde3e4be Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Tue, 29 Dec 2020 14:14:03 -0800 Subject: [PATCH 052/140] [Bug] Fix RGB Matrix Indicators (#11308) --- quantum/rgb_matrix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/rgb_matrix.c b/quantum/rgb_matrix.c index c756857ae3a5..04af3ae9ecdf 100644 --- a/quantum/rgb_matrix.c +++ b/quantum/rgb_matrix.c @@ -403,7 +403,7 @@ void rgb_matrix_task(void) { break; case RENDERING: rgb_task_render(effect); - if (!suspend_backlight) { + if (effect) { rgb_matrix_indicators(); rgb_matrix_indicators_advanced(&rgb_effect_params); } From e85d904fe18b09cc6b001424824eebfb0361ebfe Mon Sep 17 00:00:00 2001 From: Nick Krichevsky Date: Tue, 29 Dec 2020 18:23:50 -0500 Subject: [PATCH 053/140] Add convenience method for setting Nibble's big LED RGB (#11257) --- keyboards/nullbitsco/nibble/big_led.c | 8 +++++++- keyboards/nullbitsco/nibble/big_led.h | 5 +++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/keyboards/nullbitsco/nibble/big_led.c b/keyboards/nullbitsco/nibble/big_led.c index eb0d0a507141..9fd06a5de17d 100644 --- a/keyboards/nullbitsco/nibble/big_led.c +++ b/keyboards/nullbitsco/nibble/big_led.c @@ -15,6 +15,12 @@ */ #include "big_led.h" +void set_big_LED_rgb(uint8_t r_mode, uint8_t g_mode, uint8_t b_mode) { + set_big_LED_r(r_mode); + set_big_LED_g(g_mode); + set_big_LED_b(b_mode); +} + void set_big_LED_r(uint8_t mode) { switch(mode) { case LED_ON: @@ -64,4 +70,4 @@ void set_big_LED_b(uint8_t mode) { default: break; } -} \ No newline at end of file +} diff --git a/keyboards/nullbitsco/nibble/big_led.h b/keyboards/nullbitsco/nibble/big_led.h index 113aaaf1067b..b4b0650787ac 100644 --- a/keyboards/nullbitsco/nibble/big_led.h +++ b/keyboards/nullbitsco/nibble/big_led.h @@ -15,7 +15,7 @@ */ #pragma once -#include "quantum.h" +#include "quantum.h" /* Optional big LED pins */ #define BIG_LED_R_PIN D7 @@ -29,6 +29,7 @@ #define GPIO_STATE_HIGH 1 void + set_big_LED_rgb(uint8_t r_mode, uint8_t g_mode, uint8_t b_mode), set_big_LED_r(uint8_t mode), set_big_LED_g(uint8_t mode), - set_big_LED_b(uint8_t mode); \ No newline at end of file + set_big_LED_b(uint8_t mode); From bea897caf1f1986d1bced6548071f8ed49215d98 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Tue, 29 Dec 2020 18:43:46 -0500 Subject: [PATCH 054/140] Tsukuyomi Keyboard (#10898) * Add Tsukuyomi PCB * Remove unncessary file * Fix * update config * Tsukuyomi info.json * Update readme * add license header and add dfu suffix args * Apply suggestions from code review Co-authored-by: Joel Challis * Update info.json * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/cannonkeys/tsukuyomi/chconf.h | 714 ++++++++++++++++++ keyboards/cannonkeys/tsukuyomi/config.h | 77 ++ keyboards/cannonkeys/tsukuyomi/halconf.h | 525 +++++++++++++ keyboards/cannonkeys/tsukuyomi/info.json | 12 + .../tsukuyomi/keymaps/default/keymap.c | 46 ++ .../cannonkeys/tsukuyomi/keymaps/via/keymap.c | 65 ++ .../cannonkeys/tsukuyomi/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/tsukuyomi/mcuconf.h | 176 +++++ keyboards/cannonkeys/tsukuyomi/readme.md | 12 + keyboards/cannonkeys/tsukuyomi/rules.mk | 26 + keyboards/cannonkeys/tsukuyomi/tsukuyomi.c | 17 + keyboards/cannonkeys/tsukuyomi/tsukuyomi.h | 33 + 12 files changed, 1704 insertions(+) create mode 100644 keyboards/cannonkeys/tsukuyomi/chconf.h create mode 100644 keyboards/cannonkeys/tsukuyomi/config.h create mode 100644 keyboards/cannonkeys/tsukuyomi/halconf.h create mode 100644 keyboards/cannonkeys/tsukuyomi/info.json create mode 100644 keyboards/cannonkeys/tsukuyomi/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/tsukuyomi/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/tsukuyomi/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/tsukuyomi/mcuconf.h create mode 100644 keyboards/cannonkeys/tsukuyomi/readme.md create mode 100644 keyboards/cannonkeys/tsukuyomi/rules.mk create mode 100644 keyboards/cannonkeys/tsukuyomi/tsukuyomi.c create mode 100644 keyboards/cannonkeys/tsukuyomi/tsukuyomi.h diff --git a/keyboards/cannonkeys/tsukuyomi/chconf.h b/keyboards/cannonkeys/tsukuyomi/chconf.h new file mode 100644 index 000000000000..03f63da36a88 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/chconf.h @@ -0,0 +1,714 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file rt/templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ +#define _CHIBIOS_RT_CONF_VER_6_0_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_ST_RESOLUTION) +#define CH_CFG_ST_RESOLUTION 32 +#endif + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_CFG_ST_FREQUENCY) +#define CH_CFG_ST_FREQUENCY 10000 +#endif + +/** + * @brief Time intervals data size. + * @note Allowed values are 16, 32 or 64 bits. + */ +#if !defined(CH_CFG_INTERVALS_SIZE) +#define CH_CFG_INTERVALS_SIZE 32 +#endif + +/** + * @brief Time types data size. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_TIME_TYPES_SIZE) +#define CH_CFG_TIME_TYPES_SIZE 32 +#endif + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#if !defined(CH_CFG_ST_TIMEDELTA) +#define CH_CFG_ST_TIMEDELTA 2 +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#if !defined(CH_CFG_TIME_QUANTUM) +#define CH_CFG_TIME_QUANTUM 0 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#if !defined(CH_CFG_MEMCORE_SIZE) +#define CH_CFG_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#if !defined(CH_CFG_NO_IDLE_THREAD) +#define CH_CFG_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) +#define CH_CFG_OPTIMIZE_SPEED FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_TM) +#define CH_CFG_USE_TM FALSE +#endif + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_REGISTRY) +#define CH_CFG_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_WAITEXIT) +#define CH_CFG_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_SEMAPHORES) +#define CH_CFG_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MUTEXES) +#define CH_CFG_USE_MUTEXES TRUE +#endif + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_CONDVARS) +#define CH_CFG_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_EVENTS) +#define CH_CFG_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MESSAGES) +#define CH_CFG_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_MAILBOXES) +#define CH_CFG_USE_MAILBOXES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCORE) +#define CH_CFG_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_CFG_USE_HEAP) +#define CH_CFG_USE_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMPOOLS) +#define CH_CFG_USE_MEMPOOLS FALSE +#endif + +/** + * @brief Objects FIFOs APIs. + * @details If enabled then the objects FIFOs APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_OBJ_FIFOS) +#define CH_CFG_USE_OBJ_FIFOS FALSE +#endif + +/** + * @brief Pipes APIs. + * @details If enabled then the pipes APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_PIPES) +#define CH_CFG_USE_PIPES FALSE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#if !defined(CH_CFG_USE_DYNAMIC) +#define CH_CFG_USE_DYNAMIC FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Objects factory options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Objects Factory APIs. + * @details If enabled then the objects factory APIs are included in the + * kernel. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_CFG_USE_FACTORY) +#define CH_CFG_USE_FACTORY FALSE +#endif + +/** + * @brief Maximum length for object names. + * @details If the specified length is zero then the name is stored by + * pointer but this could have unintended side effects. + */ +#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) +#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 +#endif + +/** + * @brief Enables the registry of generic objects. + */ +#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) +#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE +#endif + +/** + * @brief Enables factory for generic buffers. + */ +#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE +#endif + +/** + * @brief Enables factory for semaphores. + */ +#if !defined(CH_CFG_FACTORY_SEMAPHORES) +#define CH_CFG_FACTORY_SEMAPHORES FALSE +#endif + +/** + * @brief Enables factory for mailboxes. + */ +#if !defined(CH_CFG_FACTORY_MAILBOXES) +#define CH_CFG_FACTORY_MAILBOXES FALSE +#endif + +/** + * @brief Enables factory for objects FIFOs. + */ +#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +#define CH_CFG_FACTORY_OBJ_FIFOS FALSE +#endif + +/** + * @brief Enables factory for Pipes. + */ +#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) +#define CH_CFG_FACTORY_PIPES FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_STATISTICS) +#define CH_DBG_STATISTICS FALSE +#endif + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_MASK) +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED +#endif + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) +#define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) +#define CH_DBG_ENABLE_STACK_CHECK FALSE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) +#define CH_DBG_FILL_THREADS FALSE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#if !defined(CH_DBG_THREADS_PROFILING) +#define CH_DBG_THREADS_PROFILING FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System structure extension. + * @details User fields added to the end of the @p ch_system_t structure. + */ +#define CH_CFG_SYSTEM_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief System initialization hook. + * @details User initialization code added to the @p chSysInit() function + * just before interrupts are enabled globally. + */ +#define CH_CFG_SYSTEM_INIT_HOOK() { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p _thread_init() function. + * + * @note It is invoked from within @p _thread_init() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/cannonkeys/tsukuyomi/config.h b/keyboards/cannonkeys/tsukuyomi/config.h new file mode 100644 index 000000000000..00cd0eee99a2 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/config.h @@ -0,0 +1,77 @@ +/* +Copyright 2015 Jun Wako + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CannonKeys +#define PRODUCT Tsukuyomi + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { A7, A5, B10, A3, A2, B0, A9, C13, B9, B8, B7, B6, B5, B4, B3, A15, A14 } +#define MATRIX_ROW_PINS { B12, B11, B14, A8, A1 } +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN A6 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN B15 +#define RGBLED_NUM 20 +#define WS2812_SPI SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/cannonkeys/tsukuyomi/halconf.h b/keyboards/cannonkeys/tsukuyomi/halconf.h new file mode 100644 index 000000000000..921803762eaf --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/halconf.h @@ -0,0 +1,525 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef HALCONF_H +#define HALCONF_H + +#define _CHIBIOS_HAL_CONF_ +#define _CHIBIOS_HAL_CONF_VER_7_0_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the cryptographic subsystem. + */ +#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) +#define HAL_USE_CRY FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM TRUE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SIO subsystem. + */ +#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) +#define HAL_USE_SIO FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI TRUE +#endif + +/** + * @brief Enables the TRNG subsystem. + */ +#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) +#define HAL_USE_TRNG FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/** + * @brief Enables the WSPI subsystem. + */ +#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) +#define HAL_USE_WSPI FALSE +#endif + +/*===========================================================================*/ +/* PAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) +#define PAL_USE_CALLBACKS FALSE +#endif + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) +#define PAL_USE_WAIT FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/** + * @brief Enforces the driver to use direct callbacks rather than OSAL events. + */ +#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) +#define CAN_ENFORCE_USE_CALLBACKS FALSE +#endif + +/*===========================================================================*/ +/* CRY driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the SW fall-back of the cryptographic driver. + * @details When enabled, this option, activates a fall-back software + * implementation for algorithms not supported by the underlying + * hardware. + * @note Fall-back implementations may not be present for all algorithms. + */ +#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_USE_FALLBACK FALSE +#endif + +/** + * @brief Makes the driver forcibly use the fall-back implementations. + */ +#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_ENFORCE_FALLBACK FALSE +#endif + +/*===========================================================================*/ +/* DAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) +#define DAC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define DAC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the zero-copy API. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/** + * @brief OCR initialization constant for V20 cards. + */ +#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) +#define SDC_INIT_OCR_V20 0x50FF8000U +#endif + +/** + * @brief OCR initialization constant for non-V20 cards. + */ +#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) +#define SDC_INIT_OCR 0x80100000U +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 16 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 256 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 1 +#endif + +/** + * @brief Serial over USB number of buffers. + * @note The default is 2 buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_NUMBER 2 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables circular transfers APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) +#define SPI_USE_CIRCULAR FALSE +#endif + + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/** + * @brief Handling method for SPI CS line. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + +/*===========================================================================*/ +/* UART driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) +#define UART_USE_WAIT FALSE +#endif + +/** + * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define UART_USE_MUTUAL_EXCLUSION FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +/*===========================================================================*/ +/* WSPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) +#define WSPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define WSPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* HALCONF_H */ + +/** @} */ diff --git a/keyboards/cannonkeys/tsukuyomi/info.json b/keyboards/cannonkeys/tsukuyomi/info.json new file mode 100644 index 000000000000..433f19344969 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Tsukuyomi", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "width": 17.25, + "height": 5, + "layouts": { + "LAYOUT_default": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.25, "y":0}, {"label":"!", "x":2.25, "y":0}, {"label":"@", "x":3.25, "y":0}, {"label":"#", "x":4.25, "y":0}, {"label":"$", "x":5.25, "y":0}, {"label":"%", "x":6.25, "y":0}, {"label":"^", "x":7.25, "y":0}, {"label":"&", "x":8.25, "y":0}, {"label":"*", "x":9.25, "y":0}, {"label":"(", "x":10.25, "y":0}, {"label":")", "x":11.25, "y":0}, {"label":"_", "x":12.25, "y":0}, {"label":"+", "x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":0, "y":1}, {"label":"Tab", "x":1.25, "y":1, "w":1.5}, {"label":"Q", "x":2.75, "y":1}, {"label":"W", "x":3.75, "y":1}, {"label":"E", "x":4.75, "y":1}, {"label":"R", "x":5.75, "y":1}, {"label":"T", "x":6.75, "y":1}, {"label":"Y", "x":7.75, "y":1}, {"label":"U", "x":8.75, "y":1}, {"label":"I", "x":9.75, "y":1}, {"label":"O", "x":10.75, "y":1}, {"label":"P", "x":11.75, "y":1}, {"label":"{", "x":12.75, "y":1}, {"label":"}", "x":13.75, "y":1}, {"label":"|", "x":14.75, "y":1, "w":1.5}, {"x":16.25, "y":1}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.25, "y":2, "w":1.75}, {"label":"A", "x":3, "y":2}, {"label":"S", "x":4, "y":2}, {"label":"D", "x":5, "y":2}, {"label":"F", "x":6, "y":2}, {"label":"G", "x":7, "y":2}, {"label":"H", "x":8, "y":2}, {"label":"J", "x":9, "y":2}, {"label":"K", "x":10, "y":2}, {"label":"L", "x":11, "y":2}, {"label":":", "x":12, "y":2}, {"label":"\"", "x":13, "y":2}, {"x":14, "y":2}, {"label":"Enter", "x":15, "y":2, "w":1.25}, {"x":16.25, "y":2}, {"x":0, "y":3}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"N", "x":8.5, "y":3}, {"label":"M", "x":9.5, "y":3}, {"label":"<", "x":10.5, "y":3}, {"label":">", "x":11.5, "y":3}, {"label":"?", "x":12.5, "y":3}, {"label":"Shift", "x":13.5, "y":3, "w":1.75}, {"x":15.25, "y":3}, {"x":16.25, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Win", "x":2.5, "y":4, "w":1.25}, {"label":"Alt", "x":3.75, "y":4, "w":1.25}, {"x":5, "y":4, "w":6.25}, {"label":"Alt", "x":11.25, "y":4, "w":1.25}, {"label":"Ctrl", "x":12.5, "y":4, "w":1.25}, {"x":14.25, "y":4}, {"x":15.25, "y":4}, {"x":16.25, "y":4}] + } + } +} diff --git a/keyboards/cannonkeys/tsukuyomi/keymaps/default/keymap.c b/keyboards/cannonkeys/tsukuyomi/keymaps/default/keymap.c new file mode 100644 index 000000000000..bd6e98fea38d --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_default( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, + KC_F1, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_F2, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP, + KC_F3, KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_F4, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_ESC, KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, RGB_TOG, + KC_F5, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_F6, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F7, BL_INC, BL_DEC, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F8, KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/tsukuyomi/keymaps/via/keymap.c b/keyboards/cannonkeys/tsukuyomi/keymaps/via/keymap.c new file mode 100644 index 000000000000..21f0a52d306f --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/keymaps/via/keymap.c @@ -0,0 +1,65 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_default( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, + KC_F1, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_F2, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP, + KC_F3, KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_F4, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_ESC, KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, RGB_TOG, + KC_F5, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_F6, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F7, BL_INC, BL_DEC, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F8, KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS + ), + + [_FN2] = LAYOUT_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_FN3] = LAYOUT_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/tsukuyomi/keymaps/via/rules.mk b/keyboards/cannonkeys/tsukuyomi/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/tsukuyomi/mcuconf.h b/keyboards/cannonkeys/tsukuyomi/mcuconf.h new file mode 100644 index 000000000000..43fe0a462ef1 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/mcuconf.h @@ -0,0 +1,176 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +/* + * STM32F0xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 3...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F0xx_MCUCONF +// #define STM32F070xB + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_HSI_ENABLED TRUE +#define STM32_HSI14_ENABLED TRUE +#define STM32_HSI48_ENABLED FALSE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED FALSE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 +#define STM32_PREDIV_VALUE 1 +#define STM32_PLLMUL_VALUE 12 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE STM32_PPRE_DIV1 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_USBSW STM32_USBSW_HSI48 +#define STM32_CECSW STM32_CECSW_HSI +#define STM32_I2C1SW STM32_I2C1SW_HSI +#define STM32_USART1SW STM32_USART1SW_PCLK +#define STM32_RTCSEL STM32_RTCSEL_LSI + +/* + * ADC driver system settings. + */ +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 2 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM14 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 2 +#define STM32_GPT_TIM2_IRQ_PRIORITY 2 +#define STM32_GPT_TIM3_IRQ_PRIORITY 2 +#define STM32_GPT_TIM14_IRQ_PRIORITY 2 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_IRQ_PRIORITY 3 +#define STM32_I2C_I2C2_IRQ_PRIORITY 3 +#define STM32_I2C_USE_DMA TRUE +#define STM32_I2C_I2C1_DMA_PRIORITY 1 +#define STM32_I2C_I2C2_DMA_PRIORITY 1 +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 3 +#define STM32_ICU_TIM2_IRQ_PRIORITY 3 +#define STM32_ICU_TIM3_IRQ_PRIORITY 3 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 TRUE +#define STM32_PWM_TIM1_IRQ_PRIORITY 3 +#define STM32_PWM_TIM2_IRQ_PRIORITY 3 +#define STM32_PWM_TIM3_IRQ_PRIORITY 3 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USART1_PRIORITY 3 +#define STM32_SERIAL_USART2_PRIORITY 3 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 TRUE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 2 +#define STM32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USART1_IRQ_PRIORITY 3 +#define STM32_UART_USART2_IRQ_PRIORITY 3 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_USB1 TRUE +#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE +#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/tsukuyomi/readme.md b/keyboards/cannonkeys/tsukuyomi/readme.md new file mode 100644 index 000000000000..ed913b499bd7 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/readme.md @@ -0,0 +1,12 @@ +# Tsukuyomi + +Tsukuyomi Keyboard by persocom + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 / APM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/tsukuyomi:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/tsukuyomi/rules.mk b/keyboards/cannonkeys/tsukuyomi/rules.mk new file mode 100644 index 000000000000..ce881f1986a1 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = STM32F072 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +WS2812_DRIVER = spi + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/tsukuyomi/tsukuyomi.c b/keyboards/cannonkeys/tsukuyomi/tsukuyomi.c new file mode 100644 index 000000000000..aca92f07db36 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/tsukuyomi.c @@ -0,0 +1,17 @@ + /* Copyright 2020 Andrew Kannan + * + * 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 . + */ + +#include "tsukuyomi.h" diff --git a/keyboards/cannonkeys/tsukuyomi/tsukuyomi.h b/keyboards/cannonkeys/tsukuyomi/tsukuyomi.h new file mode 100644 index 000000000000..46c55413e11e --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/tsukuyomi.h @@ -0,0 +1,33 @@ + /* Copyright 2020 Andrew Kannan + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_default( \ + K00M, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K10M, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \ + K20M, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ + K30M, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ + K40M, K400, K401, K402, K406, K410, K411, K412, K413, K415 \ +) { \ + { K00M, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K10M, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115 }, \ + { K20M, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { K30M, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ + { K40M, K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, KC_NO, K415 } \ +} From 5d0c0e7c123848c2ab6e3eea2bc0704d0390b91b Mon Sep 17 00:00:00 2001 From: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Tue, 29 Dec 2020 16:03:09 -0800 Subject: [PATCH 055/140] add nodu keyboard (#11233) * add nodu keyboard * fix info.json * limit via to 3 layers Co-authored-by: Swiftrax --- keyboards/handwired/swiftrax/nodu/config.h | 47 +++++++++++++++++++ keyboards/handwired/swiftrax/nodu/info.json | 12 +++++ .../swiftrax/nodu/keymaps/default/keymap.c | 34 ++++++++++++++ .../swiftrax/nodu/keymaps/via/keymap.c | 41 ++++++++++++++++ .../swiftrax/nodu/keymaps/via/rules.mk | 1 + keyboards/handwired/swiftrax/nodu/nodu.c | 17 +++++++ keyboards/handwired/swiftrax/nodu/nodu.h | 35 ++++++++++++++ keyboards/handwired/swiftrax/nodu/readme.md | 13 +++++ keyboards/handwired/swiftrax/nodu/rules.mk | 22 +++++++++ 9 files changed, 222 insertions(+) create mode 100644 keyboards/handwired/swiftrax/nodu/config.h create mode 100644 keyboards/handwired/swiftrax/nodu/info.json create mode 100644 keyboards/handwired/swiftrax/nodu/keymaps/default/keymap.c create mode 100644 keyboards/handwired/swiftrax/nodu/keymaps/via/keymap.c create mode 100644 keyboards/handwired/swiftrax/nodu/keymaps/via/rules.mk create mode 100644 keyboards/handwired/swiftrax/nodu/nodu.c create mode 100644 keyboards/handwired/swiftrax/nodu/nodu.h create mode 100644 keyboards/handwired/swiftrax/nodu/readme.md create mode 100644 keyboards/handwired/swiftrax/nodu/rules.mk diff --git a/keyboards/handwired/swiftrax/nodu/config.h b/keyboards/handwired/swiftrax/nodu/config.h new file mode 100644 index 000000000000..9de601784d04 --- /dev/null +++ b/keyboards/handwired/swiftrax/nodu/config.h @@ -0,0 +1,47 @@ +/* +Copyright 2020 Swiftrax + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEA6E +#define DEVICE_VER 0x0001 +#define MANUFACTURER Swiftrax +#define PRODUCT Nodu +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS { B0, B3, F5, F4, F1 } +#define MATRIX_COL_PINS { F0, B7, C7, C6, B6, B5, B4, D7, D6, D5, D3, D2, D1, D0 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/*EEPROM for via*/ +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file diff --git a/keyboards/handwired/swiftrax/nodu/info.json b/keyboards/handwired/swiftrax/nodu/info.json new file mode 100644 index 000000000000..ed394602e442 --- /dev/null +++ b/keyboards/handwired/swiftrax/nodu/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Nodu", + "url": "github.com/swiftrax", + "maintainer": "Swiftrax", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,A", "x":10, "y":0}, {"label":"0,B", "x":11, "y":0}, {"label":"0,C", "x":12, "y":0}, {"label":"0,D", "x":13, "y":0}, {"label":"2,D", "x":14, "y":0}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,A", "x":10.5, "y":1}, {"label":"1,B", "x":11.5, "y":1}, {"label":"1,C", "x":12.5, "y":1}, {"label":"1,D", "x":13.5, "y":1, "w":1.5}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,A", "x":10.75, "y":2}, {"label":"2,B", "x":11.75, "y":2}, {"label":"2,C", "x":12.75, "y":2, "w":2.25}, {"label":"3,0", "x":0, "y":3, "w":2.25}, {"label":"3,1", "x":2.25, "y":3}, {"label":"3,2", "x":3.25, "y":3}, {"label":"3,3", "x":4.25, "y":3}, {"label":"3,4", "x":5.25, "y":3}, {"label":"3,5", "x":6.25, "y":3}, {"label":"3,6", "x":7.25, "y":3}, {"label":"3,7", "x":8.25, "y":3}, {"label":"3,8", "x":9.25, "y":3}, {"label":"3,9", "x":10.25, "y":3}, {"label":"3,A", "x":11.25, "y":3}, {"label":"3,B", "x":12.25, "y":3, "w":1.75}, {"label":"3,C", "x":14, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,8", "x":10, "y":4, "w":1.25}, {"label":"4,9", "x":11.25, "y":4, "w":1.25}, {"label":"4,A", "x":12.5, "y":4, "w":1.25}, {"label":"4,B", "x":13.75, "y":4, "w":1.25}] + } + } +} \ No newline at end of file diff --git a/keyboards/handwired/swiftrax/nodu/keymaps/default/keymap.c b/keyboards/handwired/swiftrax/nodu/keymaps/default/keymap.c new file mode 100644 index 000000000000..d74fc381f1c6 --- /dev/null +++ b/keyboards/handwired/swiftrax/nodu/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2020 Swiftrax + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_DEL, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, MO(1) , KC_RCTL + ), + [1] = LAYOUT( + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, + _______, _______, KC_UP , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/handwired/swiftrax/nodu/keymaps/via/keymap.c b/keyboards/handwired/swiftrax/nodu/keymaps/via/keymap.c new file mode 100644 index 000000000000..e263efa662f4 --- /dev/null +++ b/keyboards/handwired/swiftrax/nodu/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/* +Copyright 2020 Swiftrax + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_DEL, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, MO(1) , KC_RCTL + ), + [1] = LAYOUT( + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, + _______, _______, KC_UP , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/swiftrax/nodu/keymaps/via/rules.mk b/keyboards/handwired/swiftrax/nodu/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/handwired/swiftrax/nodu/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/handwired/swiftrax/nodu/nodu.c b/keyboards/handwired/swiftrax/nodu/nodu.c new file mode 100644 index 000000000000..d56df1ead946 --- /dev/null +++ b/keyboards/handwired/swiftrax/nodu/nodu.c @@ -0,0 +1,17 @@ +/* +Copyright 2020 Swiftrax + +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 . +*/ +#include "nodu.h" diff --git a/keyboards/handwired/swiftrax/nodu/nodu.h b/keyboards/handwired/swiftrax/nodu/nodu.h new file mode 100644 index 000000000000..baca1265d9d2 --- /dev/null +++ b/keyboards/handwired/swiftrax/nodu/nodu.h @@ -0,0 +1,35 @@ +/* +Copyright 2020 Swiftrax + +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 . +*/ +#pragma once + +#define ___ KC_NO + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K46, K48, K49, K4A, K4B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___ }, \ + { K40, K41, K42, ___, ___, ___, K46, ___, K48, K49, K4A, K4B, ___, ___ } \ +} diff --git a/keyboards/handwired/swiftrax/nodu/readme.md b/keyboards/handwired/swiftrax/nodu/readme.md new file mode 100644 index 000000000000..51ba1854e0ba --- /dev/null +++ b/keyboards/handwired/swiftrax/nodu/readme.md @@ -0,0 +1,13 @@ +# Nodu + +32u4 Lasgweloth 60% with flex cutouts + +* Keyboard Maintainer: Swiftrax +* Hardware Supported: Nodu +* Hardware Availability: https://github.com/swiftrax + +Make example for this keyboard (after setting up your build environment): + + make handwired/swiftrax/nodu:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/swiftrax/nodu/rules.mk b/keyboards/handwired/swiftrax/nodu/rules.mk new file mode 100644 index 000000000000..5c0d8f307c54 --- /dev/null +++ b/keyboards/handwired/swiftrax/nodu/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 0c4663a802e1155443e6b467ded94f556a1d880f Mon Sep 17 00:00:00 2001 From: Jacqueline Liang <8636194+Bratzworth@users.noreply.github.com> Date: Tue, 29 Dec 2020 18:03:35 -0600 Subject: [PATCH 056/140] Add 6key to keyboards/handwired (#11226) * Add 6key to keyboards/handwired * Add keyboards/handwired/6key folder * Add 6key.c * Add 6key.h * Add config.h * Add keymaps/default/keymap.c * Add readme.md * Add rules.mk * Add info.json * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Make changes based on pr comments * Apply formatting suggestions from code review Co-authored-by: Ryan * Update keyboards/handwired/6key/rules.mk Co-authored-by: jyliang2 Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Joel Challis --- keyboards/handwired/6key/6key.c | 16 +++++++ keyboards/handwired/6key/6key.h | 27 +++++++++++ keyboards/handwired/6key/config.h | 41 +++++++++++++++++ keyboards/handwired/6key/info.json | 13 ++++++ .../handwired/6key/keymaps/default/keymap.c | 46 +++++++++++++++++++ keyboards/handwired/6key/readme.md | 13 ++++++ keyboards/handwired/6key/rules.mk | 23 ++++++++++ 7 files changed, 179 insertions(+) create mode 100644 keyboards/handwired/6key/6key.c create mode 100644 keyboards/handwired/6key/6key.h create mode 100644 keyboards/handwired/6key/config.h create mode 100644 keyboards/handwired/6key/info.json create mode 100644 keyboards/handwired/6key/keymaps/default/keymap.c create mode 100644 keyboards/handwired/6key/readme.md create mode 100644 keyboards/handwired/6key/rules.mk diff --git a/keyboards/handwired/6key/6key.c b/keyboards/handwired/6key/6key.c new file mode 100644 index 000000000000..ab4263bde4f1 --- /dev/null +++ b/keyboards/handwired/6key/6key.c @@ -0,0 +1,16 @@ + /* Copyright 2020 Bratzworth + * + * 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 . + */ +#include "6key.h" diff --git a/keyboards/handwired/6key/6key.h b/keyboards/handwired/6key/6key.h new file mode 100644 index 000000000000..fe02df44e9fc --- /dev/null +++ b/keyboards/handwired/6key/6key.h @@ -0,0 +1,27 @@ + /* Copyright 2020 Bratzworth + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + k00, k01, k02, \ + k03, k04, k05 \ +) \ +{ \ + { k00, k01, k02 }, \ + { k03, k04, k05 } \ +} diff --git a/keyboards/handwired/6key/config.h b/keyboards/handwired/6key/config.h new file mode 100644 index 000000000000..40eb478b0a5b --- /dev/null +++ b/keyboards/handwired/6key/config.h @@ -0,0 +1,41 @@ + /* Copyright 2020 Bratzworth + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xBEEF +#define PRODUCT_ID 0x0007 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Bratzworth +#define PRODUCT 6key + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 + +/* pin-out */ +#define MATRIX_ROW_PINS { B4, D0 } +#define MATRIX_COL_PINS { D3, D2, D1 } +#define UNUSED_PINS + +/* dip switch */ +#define DIP_SWITCH_PINS { C6 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/handwired/6key/info.json b/keyboards/handwired/6key/info.json new file mode 100644 index 000000000000..f60b9ec868a2 --- /dev/null +++ b/keyboards/handwired/6key/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "6key", + "url": "https://github.com/Bratzworth/6key", + "maintainer": "bratzworth", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}] + } + } + } + \ No newline at end of file diff --git a/keyboards/handwired/6key/keymaps/default/keymap.c b/keyboards/handwired/6key/keymaps/default/keymap.c new file mode 100644 index 000000000000..509d999e5406 --- /dev/null +++ b/keyboards/handwired/6key/keymaps/default/keymap.c @@ -0,0 +1,46 @@ + /* Copyright 2020 Bratzworth + * + * 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 . + */ +#include QMK_KEYBOARD_H + +#define _MAIN 0 +#define _FN 1 + +#define KC_UNDO LCTL(KC_Z) +#define KC_REDO LCTL(KC_Y) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT( + KC_UNDO, KC_REDO, KC_A, + KC_C, KC_D, KC_S + ), + + [_FN] = LAYOUT( + KC_F13, KC_F14, KC_F15, + KC_F16, KC_F17, KC_F18 + ) +}; + +void dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: { + if (active) { + set_single_persistent_default_layer(_FN); + } else { + set_single_persistent_default_layer(_MAIN); + } + } + } +} \ No newline at end of file diff --git a/keyboards/handwired/6key/readme.md b/keyboards/handwired/6key/readme.md new file mode 100644 index 000000000000..ce647d745848 --- /dev/null +++ b/keyboards/handwired/6key/readme.md @@ -0,0 +1,13 @@ +# 6key + +A 6-key macropad made by Bratzworth. + +* Keyboard Maintainer: [bratzworth](https://github.com/Bratzworth) +* Hardware Supported: Pro Micro ATmega32U4, Teensy 2.0 +* Hardware Availability: [bratzworth](https://github.com/Bratzworth/6key) + +Make example for this keyboard (after setting up your build environment): + + make handwired/6key:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/handwired/6key/rules.mk b/keyboards/handwired/6key/rules.mk new file mode 100644 index 000000000000..c31208d512f5 --- /dev/null +++ b/keyboards/handwired/6key/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +DIP_SWITCH_ENABLE = yes From 8ee03f6a6b3216fa0d4372d4db8c09f24473c6c6 Mon Sep 17 00:00:00 2001 From: Naoto Takai Date: Wed, 30 Dec 2020 09:05:48 +0900 Subject: [PATCH 057/140] Update Choco60 firmware to support new PCB (#11218) * Update vendor and product info * Add rev2 for Choco60 * Add keymap for VIA * Add readme.md for rev1 and rev2 * Use list instead of new line * Remove DESCRIPTION Co-authored-by: Ryan * Update rev1/readme.md to specify rev1 directly. Co-authored-by: Ryan * Remove some definitions Co-authored-by: Ryan * Remove comments Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/choco60/choco60.c | 36 +------------------ keyboards/choco60/config.h | 34 ++++-------------- keyboards/choco60/keymaps/via/keymap.c | 48 ++++++++++++++++++++++++++ keyboards/choco60/keymaps/via/rules.mk | 2 ++ keyboards/choco60/readme.md | 16 +++++---- keyboards/choco60/rev1/config.h | 41 ++++++++++++++++++++++ keyboards/choco60/rev1/readme.md | 15 ++++++++ keyboards/choco60/rev1/rev1.c | 17 +++++++++ keyboards/choco60/rev1/rev1.h | 19 ++++++++++ keyboards/choco60/rev1/rules.mk | 24 +++++++++++++ keyboards/choco60/rev2/config.h | 45 ++++++++++++++++++++++++ keyboards/choco60/rev2/readme.md | 15 ++++++++ keyboards/choco60/rev2/rev2.c | 17 +++++++++ keyboards/choco60/rev2/rev2.h | 19 ++++++++++ keyboards/choco60/rev2/rules.mk | 24 +++++++++++++ keyboards/choco60/rules.mk | 35 +------------------ 16 files changed, 304 insertions(+), 103 deletions(-) create mode 100644 keyboards/choco60/keymaps/via/keymap.c create mode 100644 keyboards/choco60/keymaps/via/rules.mk create mode 100644 keyboards/choco60/rev1/config.h create mode 100644 keyboards/choco60/rev1/readme.md create mode 100644 keyboards/choco60/rev1/rev1.c create mode 100644 keyboards/choco60/rev1/rev1.h create mode 100644 keyboards/choco60/rev1/rules.mk create mode 100644 keyboards/choco60/rev2/config.h create mode 100644 keyboards/choco60/rev2/readme.md create mode 100644 keyboards/choco60/rev2/rev2.c create mode 100644 keyboards/choco60/rev2/rev2.h create mode 100644 keyboards/choco60/rev2/rules.mk diff --git a/keyboards/choco60/choco60.c b/keyboards/choco60/choco60.c index e38f335c1c53..fc56c68ac863 100644 --- a/keyboards/choco60/choco60.c +++ b/keyboards/choco60/choco60.c @@ -13,39 +13,5 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "choco60.h" - -// Optional override functions below. -// You can leave any or all of these undefined. -// These are only required if you want to perform custom actions. - -/* - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} - -*/ +#include "choco60.h" diff --git a/keyboards/choco60/config.h b/keyboards/choco60/config.h index 97d7c61acdb3..72264f51e2f1 100644 --- a/keyboards/choco60/config.h +++ b/keyboards/choco60/config.h @@ -20,36 +20,16 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xC0C0 -#define PRODUCT_ID 0x6000 +#define VENDOR_ID 0x524B // recompile keys +#define PRODUCT_ID 0x4362 // Choco60 #define DEVICE_VER 0x0001 -#define MANUFACTURER Naoto Takai -#define PRODUCT choco60 -#define DESCRIPTION A 60% split keyboard for programmers. +#define MANUFACTURER recompile keys +#define PRODUCT Choco60 /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 9 -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, D1 } -#define UNUSED_PINS - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION COL2ROW - -/* - * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. - */ -#define SOFT_SERIAL_PIN D3 // or D1, D2, D3, E6 -#define SPLIT_HAND_PIN D0 +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/choco60/keymaps/via/keymap.c b/keyboards/choco60/keymaps/via/keymap.c new file mode 100644 index 000000000000..878a74210b2d --- /dev/null +++ b/keyboards/choco60/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2019 Naoto Takai + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT + ), + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, KC_STOP, RESET + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/choco60/keymaps/via/rules.mk b/keyboards/choco60/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/choco60/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/choco60/readme.md b/keyboards/choco60/readme.md index ca309fdcbcad..0290f95d2819 100644 --- a/keyboards/choco60/readme.md +++ b/keyboards/choco60/readme.md @@ -1,15 +1,17 @@ -# choco60 - -![choco60](https://keys.recompile.net/images/choco60-main@600w.jpg) +# Choco60 A 60% split keyboard for programmers. -Keyboard Maintainer: [Naoto Takai](https://github.com/takai) -Hardware Supported: The Choco60 PCBs, Pro Micro supported -Hardware Availability: https://keys.recompile.net/projects/choco60/ +1. [Rev.1](rev2/): Pro Micro supported. +2. [Rev.2](rev2/): Atmega32u2, USB-C supported. + +* Keyboard Maintainer: [Naoto Takai](https://github.com/takai) +* Hardware Supported: Choco60 PCB Rev1, Rev.2 +* Hardware Availability: https://keys.recompile.net/projects/choco60/ Make example for this keyboard (after setting up your build environment): - make choco60:default + make choco60/rev1:default + make choco60/rev2:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/choco60/rev1/config.h b/keyboards/choco60/rev1/config.h new file mode 100644 index 000000000000..c5efc6f5f0c5 --- /dev/null +++ b/keyboards/choco60/rev1/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2019 Naoto Takai + +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 . +*/ + +#pragma once + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, D1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D3 // or D1, D2, D3, E6 +#define SPLIT_HAND_PIN D0 diff --git a/keyboards/choco60/rev1/readme.md b/keyboards/choco60/rev1/readme.md new file mode 100644 index 000000000000..df9d50e0aaa7 --- /dev/null +++ b/keyboards/choco60/rev1/readme.md @@ -0,0 +1,15 @@ +# Choco60 + +![choco60](https://keys.recompile.net/images/choco60-main@600w.jpg) + +A 60% split keyboard for programmers. + +* Keyboard Maintainer: [Naoto Takai](https://github.com/takai) +* Hardware Supported: Choco60 PCB, Pro Micro supported +* Hardware Availability: https://keys.recompile.net/projects/choco60/ + +Make example for this keyboard (after setting up your build environment): + + make choco60/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/choco60/rev1/rev1.c b/keyboards/choco60/rev1/rev1.c new file mode 100644 index 000000000000..fe60477e3481 --- /dev/null +++ b/keyboards/choco60/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2019 Naoto Takai + * + * 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 . + */ + +#include "rev1.h" diff --git a/keyboards/choco60/rev1/rev1.h b/keyboards/choco60/rev1/rev1.h new file mode 100644 index 000000000000..fa161f267e1c --- /dev/null +++ b/keyboards/choco60/rev1/rev1.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Naoto Takai + * + * 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 . + */ + +#pragma once + +#include "quantum.h" diff --git a/keyboards/choco60/rev1/rules.mk b/keyboards/choco60/rev1/rules.mk new file mode 100644 index 000000000000..12453d839e54 --- /dev/null +++ b/keyboards/choco60/rev1/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +SPLIT_KEYBOARD = yes # Enable split keyboard diff --git a/keyboards/choco60/rev2/config.h b/keyboards/choco60/rev2/config.h new file mode 100644 index 000000000000..378323497154 --- /dev/null +++ b/keyboards/choco60/rev2/config.h @@ -0,0 +1,45 @@ +/* +Copyright 2020 Naoto Takai + +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 . +*/ + +#pragma once + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { C5, C4, B6, B7, C7 } +#define MATRIX_ROW_PINS_RIGHT { D3, D2, D5, D6, B0 } +#define MATRIX_COL_PINS { C6, B4, B3, B2, B1, B0 } +#define MATRIX_COL_PINS_RIGHT { C7, B7, B6, B5, B4, B3, B2, C6, D4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 +#define SPLIT_HAND_PIN D1 + +#define SPLIT_USB_DETECT diff --git a/keyboards/choco60/rev2/readme.md b/keyboards/choco60/rev2/readme.md new file mode 100644 index 000000000000..6e3d4dd2e5fd --- /dev/null +++ b/keyboards/choco60/rev2/readme.md @@ -0,0 +1,15 @@ +# Choco60 Rev.2 + +![choco60](https://keys.recompile.net/images/choco60-main@600w.jpg) + +A 60% split keyboard for programmers. + +* Keyboard Maintainer: [Naoto Takai](https://github.com/takai) +* Hardware Supported: Choco60 PCB Rev.2 +* Hardware Availability: https://keys.recompile.net/projects/choco60/ + +Make example for this keyboard (after setting up your build environment): + + make choco60/rev2:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/choco60/rev2/rev2.c b/keyboards/choco60/rev2/rev2.c new file mode 100644 index 000000000000..5eabb33ac6d2 --- /dev/null +++ b/keyboards/choco60/rev2/rev2.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Naoto Takai + * + * 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 . + */ + +#include "rev2.h" diff --git a/keyboards/choco60/rev2/rev2.h b/keyboards/choco60/rev2/rev2.h new file mode 100644 index 000000000000..fa161f267e1c --- /dev/null +++ b/keyboards/choco60/rev2/rev2.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Naoto Takai + * + * 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 . + */ + +#pragma once + +#include "quantum.h" diff --git a/keyboards/choco60/rev2/rules.mk b/keyboards/choco60/rev2/rules.mk new file mode 100644 index 000000000000..b93b9467a6a6 --- /dev/null +++ b/keyboards/choco60/rev2/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +SPLIT_KEYBOARD = yes diff --git a/keyboards/choco60/rules.mk b/keyboards/choco60/rules.mk index 87e3e3e8cefe..8f712e359b3f 100644 --- a/keyboards/choco60/rules.mk +++ b/keyboards/choco60/rules.mk @@ -1,34 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches - -SPLIT_KEYBOARD = yes # Enable split keyboard +DEFAULT_FOLDER = choco60/rev1 From ac433b218d2f0652833155f5eaa6b0c287f9cdec Mon Sep 17 00:00:00 2001 From: NightlyBoards <65656486+NightlyBoards@users.noreply.github.com> Date: Wed, 30 Dec 2020 08:58:14 +0800 Subject: [PATCH 058/140] [Keyboard] Add the Octopad (#9946) * Create Alter folder * Revert "Create Alter folder" This reverts commit 361103b821dbb22957b66cdedb0d11f996def71c. * Add octopad folder * Added a new keyboard, the Octopad * Edited files based on requested changes * Moved encoder code in keyboard level * Updated the readme * Corrected the rows and columns of encoders on config.h * Changed the Vendor ID to D812 since the first one was already taken * Added support for ast1109MLTRQ speakers * Increased number of layers to 8 on VIA keymap * Edited files based on comments * Edited rules.mk as per comment * Edited readme.md as per comment --- keyboards/nightly_boards/octopad/config.h | 85 +++++++++++++++++++ .../nightly_boards/octopad/encoder_action.c | 51 +++++++++++ .../nightly_boards/octopad/encoder_action.h | 21 +++++ keyboards/nightly_boards/octopad/info.json | 29 +++++++ .../octopad/keymaps/default/keymap.c | 32 +++++++ .../octopad/keymaps/via/config.h | 1 + .../octopad/keymaps/via/keymap.c | 73 ++++++++++++++++ .../octopad/keymaps/via/rules.mk | 2 + keyboards/nightly_boards/octopad/octopad.c | 27 ++++++ keyboards/nightly_boards/octopad/octopad.h | 39 +++++++++ keyboards/nightly_boards/octopad/readme.md | 20 +++++ keyboards/nightly_boards/octopad/rules.mk | 26 ++++++ 12 files changed, 406 insertions(+) create mode 100644 keyboards/nightly_boards/octopad/config.h create mode 100644 keyboards/nightly_boards/octopad/encoder_action.c create mode 100644 keyboards/nightly_boards/octopad/encoder_action.h create mode 100644 keyboards/nightly_boards/octopad/info.json create mode 100644 keyboards/nightly_boards/octopad/keymaps/default/keymap.c create mode 100644 keyboards/nightly_boards/octopad/keymaps/via/config.h create mode 100644 keyboards/nightly_boards/octopad/keymaps/via/keymap.c create mode 100644 keyboards/nightly_boards/octopad/keymaps/via/rules.mk create mode 100644 keyboards/nightly_boards/octopad/octopad.c create mode 100644 keyboards/nightly_boards/octopad/octopad.h create mode 100644 keyboards/nightly_boards/octopad/readme.md create mode 100644 keyboards/nightly_boards/octopad/rules.mk diff --git a/keyboards/nightly_boards/octopad/config.h b/keyboards/nightly_boards/octopad/config.h new file mode 100644 index 000000000000..fc8956d1d3e9 --- /dev/null +++ b/keyboards/nightly_boards/octopad/config.h @@ -0,0 +1,85 @@ +/* +Copyright 2020 Neil Brian Ramirez + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xD812 +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Neil Brian Ramirez +#define PRODUCT Octopad + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 5 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B2, B3, NO_PIN } +#define MATRIX_COL_PINS { F1, F0, D0, D1, B1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN F7 +#ifdef RGB_DI_PIN +#define RGBLED_NUM 8 +#define RGBLIGHT_ANIMATIONS + +#endif + +/* Encoders */ + +#define ENCODERS 2 + +#define ENCODERS_PAD_A { C7, F4 } +#define ENCODERS_PAD_B { C6, F5 } + +#define ENCODERS_CW_KEY { { 3, 2 },{ 1, 2 } } +#define ENCODERS_CCW_KEY { { 2, 2 },{ 0, 2 } } + +/* Audio */ + +#define B5_AUDIO + +#define AUDIO_CLICKY + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + + diff --git a/keyboards/nightly_boards/octopad/encoder_action.c b/keyboards/nightly_boards/octopad/encoder_action.c new file mode 100644 index 000000000000..042a3871c979 --- /dev/null +++ b/keyboards/nightly_boards/octopad/encoder_action.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * 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 3 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 . + */ + +#include "encoder_action.h" + +#ifdef ENCODERS +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; +static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; +#endif + +void encoder_action_unregister(void) { +#ifdef ENCODERS + for (int index = 0; index < ENCODERS; ++index) { + if (encoder_state[index]) { + keyevent_t encoder_event = (keyevent_t) { + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1) + }; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +#endif +} + +void encoder_action_register(uint8_t index, bool clockwise) { +#ifdef ENCODERS + keyevent_t encoder_event = (keyevent_t) { + .key = clockwise ? encoder_cw[index] : encoder_ccw[index], + .pressed = true, + .time = (timer_read() | 1) + }; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); +#endif +} diff --git a/keyboards/nightly_boards/octopad/encoder_action.h b/keyboards/nightly_boards/octopad/encoder_action.h new file mode 100644 index 000000000000..098210d40c4f --- /dev/null +++ b/keyboards/nightly_boards/octopad/encoder_action.h @@ -0,0 +1,21 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * 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 3 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 . + */ + +#include "quantum.h" + +void encoder_action_unregister(void); + +void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file diff --git a/keyboards/nightly_boards/octopad/info.json b/keyboards/nightly_boards/octopad/info.json new file mode 100644 index 000000000000..0e83531aea0f --- /dev/null +++ b/keyboards/nightly_boards/octopad/info.json @@ -0,0 +1,29 @@ +{ + "keyboard_name": "Octopad", + "url": "", + "maintainer": "Neil Brian Ramirez", + "width": 6.5, + "height": 3.25, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.5, "y":0}, + + {"x":1.25, "y":1.25}, + {"x":2.25, "y":1.25}, + {"x":3.25, "y":1.25}, + {"x":4.25, "y":1.25}, + + {"x":1.25, "y":2.25}, + {"x":2.25, "y":2.25}, + {"x":3.25, "y":2.25}, + {"x":4.25, "y":2.25} + ] + } + } +} diff --git a/keyboards/nightly_boards/octopad/keymaps/default/keymap.c b/keyboards/nightly_boards/octopad/keymaps/default/keymap.c new file mode 100644 index 000000000000..5dfea2721e45 --- /dev/null +++ b/keyboards/nightly_boards/octopad/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * 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 . + */ +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + /* ENC1_CCW, ENC1_P, ENC1_CW, ENC2_CCW, ENC2_P, ENC2_CW, + MACRO1, MACRO2, MACRO3, MACRO4, + MACRO5, MACRO6, MACRO7, MACRO8 + */ + [0] = LAYOUT( + KC_VOLD, KC_ESC, KC_VOLU, KC_BRID, RESET, KC_BRIU, + KC_Q, KC_W, KC_E, KC_R, + KC_A, KC_S, KC_D, KC_F + + ), +}; + diff --git a/keyboards/nightly_boards/octopad/keymaps/via/config.h b/keyboards/nightly_boards/octopad/keymaps/via/config.h new file mode 100644 index 000000000000..176563d6f75a --- /dev/null +++ b/keyboards/nightly_boards/octopad/keymaps/via/config.h @@ -0,0 +1 @@ +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 diff --git a/keyboards/nightly_boards/octopad/keymaps/via/keymap.c b/keyboards/nightly_boards/octopad/keymaps/via/keymap.c new file mode 100644 index 000000000000..c6ac3ca0bf8a --- /dev/null +++ b/keyboards/nightly_boards/octopad/keymaps/via/keymap.c @@ -0,0 +1,73 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * 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 . + */ +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + /* ENC1_CCW, ENC1_P, ENC1_CW, ENC2_CCW, ENC2_P, ENC2_CW, + MACRO1, MACRO2, MACRO3, MACRO4, + MACRO5, MACRO6, MACRO7, MACRO8 + */ + [0] = LAYOUT( + KC_VOLD, KC_ESC, KC_VOLU, KC_BRID, RESET, KC_BRIU, + KC_Q, KC_W, KC_E, KC_R, + KC_A, KC_S, KC_D, KC_F + + ), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + + ), + [4] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + + ), + [5] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + + ), + [6] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + + ), + [7] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + + ), +}; diff --git a/keyboards/nightly_boards/octopad/keymaps/via/rules.mk b/keyboards/nightly_boards/octopad/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/nightly_boards/octopad/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/nightly_boards/octopad/octopad.c b/keyboards/nightly_boards/octopad/octopad.c new file mode 100644 index 000000000000..9dd9b72a1525 --- /dev/null +++ b/keyboards/nightly_boards/octopad/octopad.c @@ -0,0 +1,27 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * 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 . + */ + +#include "octopad.h" + +void matrix_scan_kb(void) { + encoder_action_unregister(); + matrix_scan_user(); +} + +void encoder_update_kb(uint8_t index, bool clockwise) { + encoder_action_register(index, clockwise); + // encoder_update_user(index, clockwise); +}; \ No newline at end of file diff --git a/keyboards/nightly_boards/octopad/octopad.h b/keyboards/nightly_boards/octopad/octopad.h new file mode 100644 index 000000000000..941afd3f0776 --- /dev/null +++ b/keyboards/nightly_boards/octopad/octopad.h @@ -0,0 +1,39 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * 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 . + */ + +#pragma once + +#include "quantum.h" +#include "encoder_action.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + E00A, K04, E00B, E01A, K14, E01B, \ + K00, K01, K02, K03, \ + K10, K11, K12, K13 \ +\ +) { \ + { K00, K01, K02, K03, K04 }, \ + { K10, K11, K12, K13, K14 }, \ + { E00A, E00B, E01A, E01B, KC_NO } \ +} diff --git a/keyboards/nightly_boards/octopad/readme.md b/keyboards/nightly_boards/octopad/readme.md new file mode 100644 index 000000000000..022bd3182e53 --- /dev/null +++ b/keyboards/nightly_boards/octopad/readme.md @@ -0,0 +1,20 @@ +# Nightly Boards Octopad + +![octopad](https://i.imgur.com/MkSzzGBl.jpg) + +An 8 key macropad with 2 rotary encoders + +* Keyboard Maintainer: [Neil Brian Ramirez](https://github.com/NightlyBoards) +* Hardware Supported: atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make nightly_boards/octopad:default + +Flashing example for this keyboard: + + make nightly_boards/octopad:default:flash + +You can enter bootloader mode by pressing the physical reset button at the back of the pcb or by holding the upper left key (among the 8 keys) while plugging the usb cable. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/nightly_boards/octopad/rules.mk b/keyboards/nightly_boards/octopad/rules.mk new file mode 100644 index 000000000000..0e0230e1e530 --- /dev/null +++ b/keyboards/nightly_boards/octopad/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = yes # Audio output +ENCODER_ENABLE = yes # Enable Rotary Encoders + +# Added encoder Action +SRC += encoder_action.c \ No newline at end of file From b49c657ac1f07689fe575b901bfe080c301ab1d4 Mon Sep 17 00:00:00 2001 From: TJ Date: Tue, 29 Dec 2020 19:06:52 -0600 Subject: [PATCH 059/140] [Keyboard] Add via support for le chiffren (#10597) * add Via support and improve default keymap * Update OLED widgets with Sickbabies updates. Add license headers * Add led matrix config * Add g_led_config * Fix rules for matrix * rules.mk updates * Fix key lock state widgets rebase on master * Rules fixes * remove LED_MAP --- keyboards/le_chiffre/config.h | 39 ++- keyboards/le_chiffre/keymaps/default/config.h | 21 ++ keyboards/le_chiffre/keymaps/default/keymap.c | 228 +++++++++++------- keyboards/le_chiffre/keymaps/default/rules.mk | 1 + keyboards/le_chiffre/keymaps/via/keymap.c | 161 +++++++++++++ keyboards/le_chiffre/keymaps/via/rules.mk | 1 + keyboards/le_chiffre/le_chiffre.c | 30 +++ keyboards/le_chiffre/le_chiffre.h | 15 ++ keyboards/le_chiffre/rules.mk | 7 +- 9 files changed, 414 insertions(+), 89 deletions(-) create mode 100644 keyboards/le_chiffre/keymaps/default/config.h create mode 100644 keyboards/le_chiffre/keymaps/default/rules.mk create mode 100644 keyboards/le_chiffre/keymaps/via/keymap.c create mode 100644 keyboards/le_chiffre/keymaps/via/rules.mk diff --git a/keyboards/le_chiffre/config.h b/keyboards/le_chiffre/config.h index 1ab07a6450a4..e14b4665f2b8 100644 --- a/keyboards/le_chiffre/config.h +++ b/keyboards/le_chiffre/config.h @@ -1,9 +1,24 @@ +/* Copyright 2020 tominabox1 + * + * 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 . + */ #pragma once #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED +#define VENDOR_ID 0x7431 #define PRODUCT_ID 0xD645 #define DEVICE_VER 0x0001 #define MANUFACTURER tominabox1 @@ -42,5 +57,23 @@ #define ENCODERS_PAD_A { D5 } #define ENCODERS_PAD_B { D3 } -/* #define RGB_DI_PIN F0 - #define RGBLED_NUM 1 */ +/* + * WS2812 Underglow Matrix options + */ +#define RGB_DI_PIN F0 +#define RGBLED_NUM 11 + +#define DRIVER_LED_TOTAL RGBLED_NUM + +#define RGBLIGHT_ANIMATIONS + +#ifdef RGB_MATRIX_ENABLE +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. +#define RGB_MATRIX_HUE_STEP 8 +#define RGB_MATRIX_SAT_STEP 8 +#define RGB_MATRIX_VAL_STEP 8 +#define RGB_MATRIX_SPD_STEP 10 +#endif diff --git a/keyboards/le_chiffre/keymaps/default/config.h b/keyboards/le_chiffre/keymaps/default/config.h new file mode 100644 index 000000000000..ce604301a3af --- /dev/null +++ b/keyboards/le_chiffre/keymaps/default/config.h @@ -0,0 +1,21 @@ +/* Copyright 2020 tominabox1 + * + * 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 . + */ +#pragma once + +#define IGNORE_MOD_TAP_INTERRUPT //helps with homerow mods + +#define COMBO_COUNT 5 +#define COMBO_TERM 30 diff --git a/keyboards/le_chiffre/keymaps/default/keymap.c b/keyboards/le_chiffre/keymaps/default/keymap.c index d5ca6969d570..9ff8fc299ed8 100644 --- a/keyboards/le_chiffre/keymaps/default/keymap.c +++ b/keyboards/le_chiffre/keymaps/default/keymap.c @@ -1,3 +1,18 @@ +/* Copyright 2020 tominabox1 + * + * 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 . + */ #include QMK_KEYBOARD_H enum layers{ @@ -6,6 +21,14 @@ enum layers{ _NAV }; +enum combo_events { + COMBO_BSPC, + COMBO_NUMBAK, + COMBO_TAB, + COMBO_ESC, + COMBO_DEL, +}; + #define KC_NUM_SPC LT(_NUM_SYM, KC_SPC) #define KC_GA LGUI_T(KC_A) #define KC_AS LALT_T(KC_S) @@ -42,101 +65,138 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { - tap_code(KC_MNXT); + tap_code(KC_VOLU); } else { - tap_code(KC_MPRV); + tap_code(KC_VOLD); } } } -#ifdef OLED_DRIVER_ENABLE +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END}; +const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END}; +const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), + [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), + [COMBO_TAB] = COMBO(combo_tab,KC_TAB), + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), + [COMBO_DEL] = COMBO(combo_del,KC_DEL), + +}; +#endif + +#ifdef OLED_DRIVER_ENABLE //Special thanks to Sickbabies for this great OLED widget! oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_90; // flips the display 180 degrees if offhand + return OLED_ROTATION_90; // rotates for proper orientation } -void oled_task_user(void) { - static const char PROGMEM base_logo[] = { - // 'base', 32x128px - 0x00, 0x00, 0x80, 0x7c, 0x02, 0x01, 0x01, 0x80, 0x00, 0xe0, 0x50, 0x28, 0x98, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x40, 0x41, 0x41, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0x40, 0x40, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x02, 0x39, 0x27, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x13, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xfc, - 0x22, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x60, 0x1f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x90, 0x7e, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, - 0x30, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0xe4, 0x1c, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x54, 0x4a, 0x26, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - -static const char PROGMEM base_caps_logo[] = { - // 'caps', 32x128px - 0x00, 0x00, 0x80, 0x7c, 0x02, 0x01, 0x01, 0x80, 0x00, 0xe0, 0x50, 0x28, 0x98, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x40, 0x41, 0x41, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0x40, 0x40, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x02, 0x39, 0x27, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x13, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xfc, - 0x22, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x60, 0x1f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x90, 0x7e, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, - 0x30, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0xe4, 0x1c, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x54, 0x4a, 0x26, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x10, 0x10, 0x30, 0x00, 0x00, 0x80, - 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x1e, 0x11, 0x09, 0x08, - 0x1e, 0x11, 0x81, 0x7d, 0x13, 0x11, 0x08, 0x17, 0x11, 0x12, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00 +void render_lechiffre_logo(void) { + static const char PROGMEM lechiffre_logo[] = { + // 'lechiffre_logo', 32x20px + 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08, +0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28, +0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, +0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, +0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00 }; - switch (get_highest_layer(layer_state)) { - case _BASE: - if (host_keyboard_led_state().caps_lock) { - oled_write_raw_P(base_caps_logo, sizeof(base_caps_logo)); - } else { - oled_write_raw_P(base_logo, sizeof(base_logo)); + oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); +} + +static void render_layer_status(void) { + oled_write_P(PSTR("-----"), false); + switch (get_highest_layer(layer_state)) { + case _BASE: + oled_write_ln_P(PSTR("BASE"), false); + break; + case _NUM_SYM: + oled_write_ln_P(PSTR(" SYM"), false); + break; + case _NAV: + oled_write_ln_P(PSTR(" NAV"), false); + break; + default: + oled_write_ln_P(PSTR("?????"), false); + } +} + +# define KEYLOG_LEN 11 +char keylog_str[KEYLOG_LEN] = {}; +uint8_t keylogs_str_idx = 0; +uint16_t log_timer = 0; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', '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', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void add_keylog(uint16_t keycode) { + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { + keycode = keycode & 0xFF; + } + + for (uint8_t i = KEYLOG_LEN - 1; i > 0; i--) { + keylog_str[i] = keylog_str[i - 1]; + } + if (keycode < 60) { + keylog_str[0] = code_to_name[keycode]; } - break; - default: - oled_write_raw_P(base_logo, sizeof(base_logo)); + keylog_str[KEYLOG_LEN - 1] = 0; + + log_timer = timer_read(); +} + +void update_log(void) { + if (timer_elapsed(log_timer) > 750) { + add_keylog(0); } } + +//Text only renders +void render_keylogger_status(void) { + oled_write_P(PSTR("-----"), false); + oled_write(keylog_str, false); +} + +void render_keylock_status(led_t led_state) { + oled_write_P(PSTR("-----"), false); + oled_write_P(PSTR("C"), led_state.caps_lock); + oled_write_P(PSTR(" "), false); + oled_write_P(PSTR("N"), led_state.num_lock); + oled_write_P(PSTR(" "), false); + oled_write_P(PSTR("S"), led_state.scroll_lock); + //oled_write_ln_P(PSTR(" "), false); +} + +void render_mod_status(uint8_t modifiers) { + oled_write_P(PSTR("-----"), false); + oled_write_ln_P(PSTR("SHFT"), (modifiers & MOD_MASK_SHIFT)); + oled_write_ln_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT)); + oled_write_ln_P(PSTR("CTRL"), (modifiers & MOD_MASK_CTRL)); + oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI)); +} + +void oled_task_user(void) { + render_lechiffre_logo(); + oled_set_cursor(0,3); + render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + render_mod_status(get_mods()|get_oneshot_mods()); + render_keylock_status(host_keyboard_led_state()); + render_keylogger_status(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + add_keylog(keycode); + } + return true; + } #endif diff --git a/keyboards/le_chiffre/keymaps/default/rules.mk b/keyboards/le_chiffre/keymaps/default/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/le_chiffre/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/le_chiffre/keymaps/via/keymap.c b/keyboards/le_chiffre/keymaps/via/keymap.c new file mode 100644 index 000000000000..485fa1b72e2d --- /dev/null +++ b/keyboards/le_chiffre/keymaps/via/keymap.c @@ -0,0 +1,161 @@ +/* Copyright 2020 tominabox1 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MPLY, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCTL, KC_ENT, KC_SPC, KC_RALT + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + } +} + +#ifdef OLED_DRIVER_ENABLE //Special thanks to Sickbabies for this great OLED widget! +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_90; // rotates for proper orientation +} + +void render_lechiffre_logo(void) { + static const char PROGMEM lechiffre_logo[] = { + // 'lechiffre_logo', 32x20px + 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08, +0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28, +0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, +0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, +0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00 +}; + + oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); +} + +// static void render_layer_status(void) { +// oled_write_P(PSTR("-----"), false); +// switch (get_highest_layer(layer_state)) { +// case _BASE: +// oled_write_ln_P(PSTR("BASE"), false); +// break; +// case _NUM_SYM: +// oled_write_ln_P(PSTR(" SYM"), false); +// break; +// case _NAV: +// oled_write_ln_P(PSTR(" NAV"), false); +// break; +// default: +// oled_write_ln_P(PSTR("?????"), false); +// } +// } + +# define KEYLOG_LEN 11 +char keylog_str[KEYLOG_LEN] = {}; +uint8_t keylogs_str_idx = 0; +uint16_t log_timer = 0; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', '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', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void add_keylog(uint16_t keycode) { + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { + keycode = keycode & 0xFF; + } + + for (uint8_t i = KEYLOG_LEN - 1; i > 0; i--) { + keylog_str[i] = keylog_str[i - 1]; + } + if (keycode < 60) { + keylog_str[0] = code_to_name[keycode]; + } + keylog_str[KEYLOG_LEN - 1] = 0; + + log_timer = timer_read(); +} + +void update_log(void) { + if (timer_elapsed(log_timer) > 750) { + add_keylog(0); + } +} + +//Text only renders +void render_keylogger_status(void) { + oled_write_P(PSTR("-----"), false); + oled_write(keylog_str, false); +} + +void render_keylock_status(led_t led_state) { + oled_write_P(PSTR("-----"), false); + oled_write_P(PSTR("C"), led_state.caps_lock); + oled_write_P(PSTR(" "), false); + oled_write_P(PSTR("N"), led_state.num_lock); + oled_write_P(PSTR(" "), false); + oled_write_P(PSTR("S"), led_state.scroll_lock); + //oled_write_ln_P(PSTR(" "), false); +} + +void render_mod_status(uint8_t modifiers) { + oled_write_P(PSTR("-----"), false); + oled_write_ln_P(PSTR("SHFT"), (modifiers & MOD_MASK_SHIFT)); + oled_write_ln_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT)); + oled_write_ln_P(PSTR("CTRL"), (modifiers & MOD_MASK_CTRL)); + oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI)); +} + +void oled_task_user(void) { + render_lechiffre_logo(); + oled_set_cursor(0,3); + // render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + render_mod_status(get_mods()|get_oneshot_mods()); + render_keylock_status(host_keyboard_led_state()); + render_keylogger_status(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + add_keylog(keycode); + } + return true; + } +#endif diff --git a/keyboards/le_chiffre/keymaps/via/rules.mk b/keyboards/le_chiffre/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/le_chiffre/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/le_chiffre/le_chiffre.c b/keyboards/le_chiffre/le_chiffre.c index 2f28911b4500..eae62ce02d25 100644 --- a/keyboards/le_chiffre/le_chiffre.c +++ b/keyboards/le_chiffre/le_chiffre.c @@ -1 +1,31 @@ +/* Copyright 2020 tominabox1 + * + * 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 . + */ #include "le_chiffre.h" + +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 3, 4, NO_LED, 5, 6 }, + { NO_LED, NO_LED, 10, NO_LED, NO_LED }, + { NO_LED, NO_LED, 9, NO_LED, NO_LED }, + { 2, 1, 0, 8, 7 } +}, { + + // LED Index to Physical Position + { 128, 64 }, { 77, 64 }, { 0, 48 }, { 0, 0 }, { 115, 0 }, { 166, 0 }, { 255, 0 }, { 255, 48 }, { 178, 64 }, { 128, 40 }, { 128, 30 } +}, { + + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +} }; diff --git a/keyboards/le_chiffre/le_chiffre.h b/keyboards/le_chiffre/le_chiffre.h index a95c0f262fec..0277e1b42d25 100644 --- a/keyboards/le_chiffre/le_chiffre.h +++ b/keyboards/le_chiffre/le_chiffre.h @@ -1,3 +1,18 @@ +/* Copyright 2020 tominabox1 + * + * 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 . + */ #pragma once #include "quantum.h" diff --git a/keyboards/le_chiffre/rules.mk b/keyboards/le_chiffre/rules.mk index d9d44e06e671..2d3a50ca16c6 100644 --- a/keyboards/le_chiffre/rules.mk +++ b/keyboards/le_chiffre/rules.mk @@ -11,12 +11,15 @@ MCU = atmega32u4 # ATmega328P USBasp BOOTLOADER = atmel-dfu -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover +NKRO_ENABLE = yes # USB Nkey Rollover RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow TAP_DANCE_ENABLE = no ENCODER_ENABLE = yes OLED_DRIVER_ENABLE = no +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +LTO_ENABLE = yes From 944feb2da52a3e6a9656e1c71cae75e4ca83a2e5 Mon Sep 17 00:00:00 2001 From: LongerHV <46924944+LongerHV@users.noreply.github.com> Date: Wed, 30 Dec 2020 02:13:37 +0100 Subject: [PATCH 060/140] [REDOX] Fix default keymap formatting (#11288) --- keyboards/redox/keymaps/default/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/redox/keymaps/default/keymap.c b/keyboards/redox/keymaps/default/keymap.c index 56c80878f4e6..460e2989787c 100644 --- a/keyboards/redox/keymaps/default/keymap.c +++ b/keyboards/redox/keymaps/default/keymap.c @@ -48,13 +48,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ _______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,XXXXXXX , //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - _______ ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_PIPE ,_______ , _______ ,KC_PSLS ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PMNS ,XXXXXXX , + _______ ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_PIPE ,_______ , _______ ,KC_PSLS ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PMNS ,XXXXXXX , //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - _______ ,KC_HASH ,KC_DLR ,KC_LBRC ,KC_RBRC ,KC_GRV ,_______ , _______ ,KC_PAST ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,XXXXXXX , + _______ ,KC_HASH ,KC_DLR ,KC_LBRC ,KC_RBRC ,KC_GRV ,_______ , _______ ,KC_PAST ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,XXXXXXX , //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - _______ ,KC_PERC ,KC_CIRC ,KC_LPRN ,KC_RPRN ,KC_TILD ,_______ ,_______ , _______ ,_______ ,XXXXXXX ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PENT ,XXXXXXX , + _______ ,KC_PERC ,KC_CIRC ,KC_LPRN ,KC_RPRN ,KC_TILD ,_______ ,_______ , _______ ,_______ ,XXXXXXX ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PENT ,XXXXXXX , //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ - _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , KC_P0 , KC_P0 ,KC_PDOT ,KC_PENT ,XXXXXXX + _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , KC_P0 , KC_P0 ,KC_PDOT ,KC_PENT ,XXXXXXX //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ ), From 457042f1795f56a47becad3c51a2250d7447fb59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20A=2E=20Volpato?= Date: Tue, 29 Dec 2020 22:27:33 -0300 Subject: [PATCH 061/140] Mode80 support (#10945) * Add default mode eighty firmware * Add via keymap * Mode80 firmware upgrades - Removed SPI and PWM drivers from MCU configuration, HAL configuration and Chibi configuration as neither peripherals are being used - Included second backspace key (row 5, col 14) which should solve the non-appearance of the backspace key on the hotswap PCB * Add default mode eighty firmware * Add via keymap * Update keyboards/mode/eighty/config.h Remove comment lines from config.h Co-authored-by: Ryan * Update keyboards/mode/eighty/config.h Remove comments from config.h Co-authored-by: Ryan * Update eighty.c Add GPLv2 header * Update eighty.h Add GPLv2 license header * Update readme.md Update README * Update keyboards/mode/eighty/config.h Remove keyboard description Co-authored-by: Drashna Jaelre * Delete config.h Delete config.h in keynap folder * Update keyboards/mode/eighty/rules.mk Remove feature disabling in rules.mk Co-authored-by: Ryan * Move rules.mk to VIA folder * Update keyboards/mode/eighty/keymaps/via/rules.mk Use LTO_ENABLE as short for LINK_TIME_OPTIMIZATION_ENABLE Co-authored-by: Drashna Jaelre * Update keyboards/mode/eighty/readme.md Puts a single image embedded in the readme, and links to the full gallery Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/mode/eighty/readme.md Use * for markdown list Co-authored-by: Ryan * Apply suggestions from code review Correct comment characters Co-authored-by: Ryan * Adjusted copyright name, USB descriptor and removed info.json * Separate Mode80 S and H firwares into subfolders * Added info.json files for QMK Configurator * Lowercase folder and filenames * Remove config definition macros in M80H * Remove config definition macros in M80S and root * Change definitions to lowercase parameters * Moce chconf and mcuconf chibiOS files to root folder * Move halconf to root folder, keymaps to subfolders * Update readme for building/flashing guide Co-authored-by: Ryan * Add layers to VIA keymaps, remove CONSOLE_ENABLE * Push master changes to lib/ * Retrieve lufa and googletest submodules to previous heads at master * Disabled LTO in VIA keymaps * Fix layout declaration to lowercase in m80s default keymap * Added readme's for each M80S and M80H Co-authored-by: Jaicob Co-authored-by: Gondolindrim Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- keyboards/mode/eighty/chconf.h | 714 ++++++++++++++++++ keyboards/mode/eighty/config.h | 102 +++ keyboards/mode/eighty/eighty.c | 14 + keyboards/mode/eighty/eighty.h | 9 + keyboards/mode/eighty/halconf.h | 525 +++++++++++++ keyboards/mode/eighty/m80h/config.h | 21 + keyboards/mode/eighty/m80h/info.json | 99 +++ .../mode/eighty/m80h/keymaps/default/keymap.c | 42 ++ .../mode/eighty/m80h/keymaps/via/keymap.c | 59 ++ .../mode/eighty/m80h/keymaps/via/rules.mk | 1 + keyboards/mode/eighty/m80h/m80h.c | 14 + keyboards/mode/eighty/m80h/m80h.h | 32 + keyboards/mode/eighty/m80h/readme.md | 13 + keyboards/mode/eighty/m80h/rules.mk | 22 + keyboards/mode/eighty/m80s/config.h | 21 + keyboards/mode/eighty/m80s/info.json | 101 +++ .../mode/eighty/m80s/keymaps/default/keymap.c | 42 ++ .../mode/eighty/m80s/keymaps/via/keymap.c | 62 ++ .../mode/eighty/m80s/keymaps/via/rules.mk | 1 + keyboards/mode/eighty/m80s/m80s.c | 14 + keyboards/mode/eighty/m80s/m80s.h | 32 + keyboards/mode/eighty/m80s/readme.md | 13 + keyboards/mode/eighty/m80s/rules.mk | 22 + keyboards/mode/eighty/mcuconf.h | 176 +++++ keyboards/mode/eighty/readme.md | 22 + 25 files changed, 2173 insertions(+) create mode 100644 keyboards/mode/eighty/chconf.h create mode 100644 keyboards/mode/eighty/config.h create mode 100644 keyboards/mode/eighty/eighty.c create mode 100644 keyboards/mode/eighty/eighty.h create mode 100644 keyboards/mode/eighty/halconf.h create mode 100644 keyboards/mode/eighty/m80h/config.h create mode 100644 keyboards/mode/eighty/m80h/info.json create mode 100644 keyboards/mode/eighty/m80h/keymaps/default/keymap.c create mode 100644 keyboards/mode/eighty/m80h/keymaps/via/keymap.c create mode 100644 keyboards/mode/eighty/m80h/keymaps/via/rules.mk create mode 100644 keyboards/mode/eighty/m80h/m80h.c create mode 100644 keyboards/mode/eighty/m80h/m80h.h create mode 100644 keyboards/mode/eighty/m80h/readme.md create mode 100644 keyboards/mode/eighty/m80h/rules.mk create mode 100644 keyboards/mode/eighty/m80s/config.h create mode 100644 keyboards/mode/eighty/m80s/info.json create mode 100644 keyboards/mode/eighty/m80s/keymaps/default/keymap.c create mode 100644 keyboards/mode/eighty/m80s/keymaps/via/keymap.c create mode 100644 keyboards/mode/eighty/m80s/keymaps/via/rules.mk create mode 100644 keyboards/mode/eighty/m80s/m80s.c create mode 100644 keyboards/mode/eighty/m80s/m80s.h create mode 100644 keyboards/mode/eighty/m80s/readme.md create mode 100644 keyboards/mode/eighty/m80s/rules.mk create mode 100644 keyboards/mode/eighty/mcuconf.h create mode 100644 keyboards/mode/eighty/readme.md diff --git a/keyboards/mode/eighty/chconf.h b/keyboards/mode/eighty/chconf.h new file mode 100644 index 000000000000..03f63da36a88 --- /dev/null +++ b/keyboards/mode/eighty/chconf.h @@ -0,0 +1,714 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file rt/templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ +#define _CHIBIOS_RT_CONF_VER_6_0_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_ST_RESOLUTION) +#define CH_CFG_ST_RESOLUTION 32 +#endif + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_CFG_ST_FREQUENCY) +#define CH_CFG_ST_FREQUENCY 10000 +#endif + +/** + * @brief Time intervals data size. + * @note Allowed values are 16, 32 or 64 bits. + */ +#if !defined(CH_CFG_INTERVALS_SIZE) +#define CH_CFG_INTERVALS_SIZE 32 +#endif + +/** + * @brief Time types data size. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_TIME_TYPES_SIZE) +#define CH_CFG_TIME_TYPES_SIZE 32 +#endif + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#if !defined(CH_CFG_ST_TIMEDELTA) +#define CH_CFG_ST_TIMEDELTA 2 +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#if !defined(CH_CFG_TIME_QUANTUM) +#define CH_CFG_TIME_QUANTUM 0 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#if !defined(CH_CFG_MEMCORE_SIZE) +#define CH_CFG_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#if !defined(CH_CFG_NO_IDLE_THREAD) +#define CH_CFG_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) +#define CH_CFG_OPTIMIZE_SPEED FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_TM) +#define CH_CFG_USE_TM FALSE +#endif + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_REGISTRY) +#define CH_CFG_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_WAITEXIT) +#define CH_CFG_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_SEMAPHORES) +#define CH_CFG_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MUTEXES) +#define CH_CFG_USE_MUTEXES TRUE +#endif + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_CONDVARS) +#define CH_CFG_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_EVENTS) +#define CH_CFG_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MESSAGES) +#define CH_CFG_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_MAILBOXES) +#define CH_CFG_USE_MAILBOXES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCORE) +#define CH_CFG_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_CFG_USE_HEAP) +#define CH_CFG_USE_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMPOOLS) +#define CH_CFG_USE_MEMPOOLS FALSE +#endif + +/** + * @brief Objects FIFOs APIs. + * @details If enabled then the objects FIFOs APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_OBJ_FIFOS) +#define CH_CFG_USE_OBJ_FIFOS FALSE +#endif + +/** + * @brief Pipes APIs. + * @details If enabled then the pipes APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_PIPES) +#define CH_CFG_USE_PIPES FALSE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#if !defined(CH_CFG_USE_DYNAMIC) +#define CH_CFG_USE_DYNAMIC FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Objects factory options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Objects Factory APIs. + * @details If enabled then the objects factory APIs are included in the + * kernel. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_CFG_USE_FACTORY) +#define CH_CFG_USE_FACTORY FALSE +#endif + +/** + * @brief Maximum length for object names. + * @details If the specified length is zero then the name is stored by + * pointer but this could have unintended side effects. + */ +#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) +#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 +#endif + +/** + * @brief Enables the registry of generic objects. + */ +#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) +#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE +#endif + +/** + * @brief Enables factory for generic buffers. + */ +#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE +#endif + +/** + * @brief Enables factory for semaphores. + */ +#if !defined(CH_CFG_FACTORY_SEMAPHORES) +#define CH_CFG_FACTORY_SEMAPHORES FALSE +#endif + +/** + * @brief Enables factory for mailboxes. + */ +#if !defined(CH_CFG_FACTORY_MAILBOXES) +#define CH_CFG_FACTORY_MAILBOXES FALSE +#endif + +/** + * @brief Enables factory for objects FIFOs. + */ +#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +#define CH_CFG_FACTORY_OBJ_FIFOS FALSE +#endif + +/** + * @brief Enables factory for Pipes. + */ +#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) +#define CH_CFG_FACTORY_PIPES FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_STATISTICS) +#define CH_DBG_STATISTICS FALSE +#endif + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_MASK) +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED +#endif + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) +#define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) +#define CH_DBG_ENABLE_STACK_CHECK FALSE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) +#define CH_DBG_FILL_THREADS FALSE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#if !defined(CH_DBG_THREADS_PROFILING) +#define CH_DBG_THREADS_PROFILING FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System structure extension. + * @details User fields added to the end of the @p ch_system_t structure. + */ +#define CH_CFG_SYSTEM_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief System initialization hook. + * @details User initialization code added to the @p chSysInit() function + * just before interrupts are enabled globally. + */ +#define CH_CFG_SYSTEM_INIT_HOOK() { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p _thread_init() function. + * + * @note It is invoked from within @p _thread_init() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/mode/eighty/config.h b/keyboards/mode/eighty/config.h new file mode 100644 index 000000000000..99b29de58a2c --- /dev/null +++ b/keyboards/mode/eighty/config.h @@ -0,0 +1,102 @@ +/* +Copyright 2020 Alvaro "Gondolindrim" Volpato + +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 . +*/ +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x00DE +#define PRODUCT_ID 0x0080 +#define MANUFACTURER Mode +#define PRODUCT Eighty + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + +#define MATRIX_ROW_PINS { A10, A15, B3, B9, A3, A4 } +#define MATRIX_COL_PINS { B8, B7, B6, B5, B4, A2, A1, A0, F1, F0, C15, C14, C13, A7, A6, A5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/mode/eighty/eighty.c b/keyboards/mode/eighty/eighty.c new file mode 100644 index 000000000000..bde91d35a5fe --- /dev/null +++ b/keyboards/mode/eighty/eighty.c @@ -0,0 +1,14 @@ + /* Copyright 2020 Álvaro "Gondolindrim" Volpato + * + * 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. + */ + +#include "eighty.h" diff --git a/keyboards/mode/eighty/eighty.h b/keyboards/mode/eighty/eighty.h new file mode 100644 index 000000000000..b5f6328854b1 --- /dev/null +++ b/keyboards/mode/eighty/eighty.h @@ -0,0 +1,9 @@ +#pragma once + +#include "quantum.h" + +#if defined(KEYBOARD_mode_eighty_m80h) + #include "m80h.h" +#elif defined(KEYBOARD_mode_eighty_m80s) + #include "m80s.h" +#endif // Mode80 solderable "S" and hotswap "H" revisions diff --git a/keyboards/mode/eighty/halconf.h b/keyboards/mode/eighty/halconf.h new file mode 100644 index 000000000000..de0f29ce6ed0 --- /dev/null +++ b/keyboards/mode/eighty/halconf.h @@ -0,0 +1,525 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef HALCONF_H +#define HALCONF_H + +#define _CHIBIOS_HAL_CONF_ +#define _CHIBIOS_HAL_CONF_VER_7_0_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the cryptographic subsystem. + */ +#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) +#define HAL_USE_CRY FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C TRUE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SIO subsystem. + */ +#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) +#define HAL_USE_SIO FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the TRNG subsystem. + */ +#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) +#define HAL_USE_TRNG FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/** + * @brief Enables the WSPI subsystem. + */ +#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) +#define HAL_USE_WSPI FALSE +#endif + +/*===========================================================================*/ +/* PAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) +#define PAL_USE_CALLBACKS FALSE +#endif + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) +#define PAL_USE_WAIT FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/** + * @brief Enforces the driver to use direct callbacks rather than OSAL events. + */ +#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) +#define CAN_ENFORCE_USE_CALLBACKS FALSE +#endif + +/*===========================================================================*/ +/* CRY driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the SW fall-back of the cryptographic driver. + * @details When enabled, this option, activates a fall-back software + * implementation for algorithms not supported by the underlying + * hardware. + * @note Fall-back implementations may not be present for all algorithms. + */ +#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_USE_FALLBACK FALSE +#endif + +/** + * @brief Makes the driver forcibly use the fall-back implementations. + */ +#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_ENFORCE_FALLBACK FALSE +#endif + +/*===========================================================================*/ +/* DAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) +#define DAC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define DAC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the zero-copy API. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/** + * @brief OCR initialization constant for V20 cards. + */ +#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) +#define SDC_INIT_OCR_V20 0x50FF8000U +#endif + +/** + * @brief OCR initialization constant for non-V20 cards. + */ +#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) +#define SDC_INIT_OCR 0x80100000U +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 16 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 256 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 1 +#endif + +/** + * @brief Serial over USB number of buffers. + * @note The default is 2 buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_NUMBER 2 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables circular transfers APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) +#define SPI_USE_CIRCULAR FALSE +#endif + + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/** + * @brief Handling method for SPI CS line. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + +/*===========================================================================*/ +/* UART driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) +#define UART_USE_WAIT FALSE +#endif + +/** + * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define UART_USE_MUTUAL_EXCLUSION FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +/*===========================================================================*/ +/* WSPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) +#define WSPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define WSPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* HALCONF_H */ + +/** @} */ diff --git a/keyboards/mode/eighty/m80h/config.h b/keyboards/mode/eighty/m80h/config.h new file mode 100644 index 000000000000..59935985e432 --- /dev/null +++ b/keyboards/mode/eighty/m80h/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2020 Alvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define DEVICE_VER 0x0072 //H for hotswap version diff --git a/keyboards/mode/eighty/m80h/info.json b/keyboards/mode/eighty/m80h/info.json new file mode 100644 index 000000000000..afb740c82a0e --- /dev/null +++ b/keyboards/mode/eighty/m80h/info.json @@ -0,0 +1,99 @@ +{ + "keyboard_name": "MODE80H", + "url": "", + "maintainer": "qmk", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT_eighty_m80h": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Bkspc", "x":13, "y":1.5, "w": 2}, + {"label":"Mute", "x":15.25, "y":0}, + {"label":"VolDn", "x":16.25, "y":0}, + {"label":"VolUp", "x":17.25, "y":0}, + {"label":"~", "x":0, "y":1.5}, + {"label":"1", "x":1, "y":1.5}, + {"label":"2", "x":2, "y":1.5}, + {"label":"3", "x":3, "y":1.5}, + {"label":"4", "x":4, "y":1.5}, + {"label":"5", "x":5, "y":1.5}, + {"label":"6", "x":6, "y":1.5}, + {"label":"7", "x":7, "y":1.5}, + {"label":"8", "x":8, "y":1.5}, + {"label":"9", "x":9, "y":1.5}, + {"label":"0", "x":10, "y":1.5}, + {"label":"_", "x":11, "y":1.5}, + {"label":"+", "x":12, "y":1.5}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"{", "x":11.5, "y":2.5}, + {"label":"}", "x":12.5, "y":2.5}, + {"label":"|", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"PgDn", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":":", "x":10.75, "y":3.5}, + {"label":"\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",", "x":9.25, "y":4.5}, + {"label":".", "x":10.25, "y":4.5}, + {"label":"/", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, + {"label":"FN1", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.5}, + {"label":"\u2193", "x":16.25, "y":5.5}, + {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} diff --git a/keyboards/mode/eighty/m80h/keymaps/default/keymap.c b/keyboards/mode/eighty/m80h/keymaps/default/keymap.c new file mode 100644 index 000000000000..95c2008ad185 --- /dev/null +++ b/keyboards/mode/eighty/m80h/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ + +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_eighty_m80h( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_MUTE, KC_VOLD, KC_VOLU, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN1] = LAYOUT_eighty_m80h( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/mode/eighty/m80h/keymaps/via/keymap.c b/keyboards/mode/eighty/m80h/keymaps/via/keymap.c new file mode 100644 index 000000000000..f2b74cb6ef9c --- /dev/null +++ b/keyboards/mode/eighty/m80h/keymaps/via/keymap.c @@ -0,0 +1,59 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ + +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_eighty_m80h( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_MUTE, KC_VOLD, KC_VOLU, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN1] = LAYOUT_eighty_m80h( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_FN2] = LAYOUT_eighty_m80h( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_FN3] = LAYOUT_eighty_m80h( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/mode/eighty/m80h/keymaps/via/rules.mk b/keyboards/mode/eighty/m80h/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/mode/eighty/m80h/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mode/eighty/m80h/m80h.c b/keyboards/mode/eighty/m80h/m80h.c new file mode 100644 index 000000000000..6213a913635f --- /dev/null +++ b/keyboards/mode/eighty/m80h/m80h.c @@ -0,0 +1,14 @@ + /* Copyright 2020 Álvaro "Gondolindrim" Volpato + * + * 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. + */ + +#include "m80h.h" diff --git a/keyboards/mode/eighty/m80h/m80h.h b/keyboards/mode/eighty/m80h/m80h.h new file mode 100644 index 000000000000..882099b1a399 --- /dev/null +++ b/keyboards/mode/eighty/m80h/m80h.h @@ -0,0 +1,32 @@ + /* Copyright 2020 Álvaro "Gondolindrim" Volpato + * + * 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. + */ + +#pragma once + +#include "eighty.h" + +#define LAYOUT_eighty_m80h( \ + K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K415, K114, K115, K116, \ + K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ + K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K514, K314, K315, K316, \ + K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, \ + K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K512, K515, \ + K601, K602, K603, K607, K610, K611, K612, K613, K614, K615, K616 \ +) { \ + { K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 , K115, K116 }, \ + { K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 , K215, K216 }, \ + { K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 , K315, K316 }, \ + { K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO, K415 , KC_NO }, \ + { K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K512, KC_NO, K514 , K515, KC_NO }, \ + { K601, K602, K603, KC_NO, KC_NO, KC_NO, K607, KC_NO, KC_NO, K610, K611, K612, K613, K614 , K615, K616 } \ +} diff --git a/keyboards/mode/eighty/m80h/readme.md b/keyboards/mode/eighty/m80h/readme.md new file mode 100644 index 000000000000..02a3723b683c --- /dev/null +++ b/keyboards/mode/eighty/m80h/readme.md @@ -0,0 +1,13 @@ +# Mode Eighty M80H (hotswap version) + +This is the folder page for the QMK-supported firmware of the M80H, the hotswap PCB for the Mode 80. + +Make example for this keyboard (after setting up your build environment): + + make mode/eighty/m80h:default + +Flashing example for this keyboard: + + make mode/eighty/m80h:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/mode/eighty/m80h/rules.mk b/keyboards/mode/eighty/m80h/rules.mk new file mode 100644 index 000000000000..67c3b0d66020 --- /dev/null +++ b/keyboards/mode/eighty/m80h/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = STM32F072 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/mode/eighty/m80s/config.h b/keyboards/mode/eighty/m80s/config.h new file mode 100644 index 000000000000..d34932a003ce --- /dev/null +++ b/keyboards/mode/eighty/m80s/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2020 Alvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define DEVICE_VER 0x0083 //S for solderable version diff --git a/keyboards/mode/eighty/m80s/info.json b/keyboards/mode/eighty/m80s/info.json new file mode 100644 index 000000000000..90b1b5e40569 --- /dev/null +++ b/keyboards/mode/eighty/m80s/info.json @@ -0,0 +1,101 @@ +{ + "keyboard_name": "MODE80S", + "url": "", + "maintainer": "qmk", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT_eighty_m80s": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label": "LBkspc", "x":13, "y":1.5}, + {"label":"Mute", "x":15.25, "y":0}, + {"label":"VolDn", "x":16.25, "y":0}, + {"label":"VolUp", "x":17.25, "y":0}, + {"label":"~", "x":0, "y":1.5}, + {"label":"1", "x":1, "y":1.5}, + {"label":"2", "x":2, "y":1.5}, + {"label":"3", "x":3, "y":1.5}, + {"label":"4", "x":4, "y":1.5}, + {"label":"5", "x":5, "y":1.5}, + {"label":"6", "x":6, "y":1.5}, + {"label":"7", "x":7, "y":1.5}, + {"label":"8", "x":8, "y":1.5}, + {"label":"9", "x":9, "y":1.5}, + {"label":"0", "x":10, "y":1.5}, + {"label":"_", "x":11, "y":1.5}, + {"label":"+", "x":12, "y":1.5}, + {"label": "RBkspc", "x":14, "y":1.5}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"{", "x":11.5, "y":2.5}, + {"label":"}", "x":12.5, "y":2.5}, + {"label":"|", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"PgDn", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":":", "x":10.75, "y":3.5}, + {"label":"\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",", "x":9.25, "y":4.5}, + {"label":".", "x":10.25, "y":4.5}, + {"label":"/", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"FN1", "x":14, "y":4.5}, + {"label":"\u2191", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, + {"label":"FN1", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.5}, + {"label":"\u2193", "x":16.25, "y":5.5}, + {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} diff --git a/keyboards/mode/eighty/m80s/keymaps/default/keymap.c b/keyboards/mode/eighty/m80s/keymaps/default/keymap.c new file mode 100644 index 000000000000..49fab527c557 --- /dev/null +++ b/keyboards/mode/eighty/m80s/keymaps/default/keymap.c @@ -0,0 +1,42 @@ + /* +Copyright 2012,2013 Jun Wako + +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 . +*/ + +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_eighty_m80s( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_MUTE, KC_VOLD, KC_VOLU, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN1] = LAYOUT_eighty_m80s( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/mode/eighty/m80s/keymaps/via/keymap.c b/keyboards/mode/eighty/m80s/keymaps/via/keymap.c new file mode 100644 index 000000000000..6db21859491d --- /dev/null +++ b/keyboards/mode/eighty/m80s/keymaps/via/keymap.c @@ -0,0 +1,62 @@ + /* +Copyright 2012,2013 Jun Wako + +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 . +*/ + +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_eighty_m80s( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_MUTE, KC_VOLD, KC_VOLU, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN1] = LAYOUT_eighty_m80s( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [_FN2] = LAYOUT_eighty_m80s( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + + [_FN3] = LAYOUT_eighty_m80s( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + +}; diff --git a/keyboards/mode/eighty/m80s/keymaps/via/rules.mk b/keyboards/mode/eighty/m80s/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/mode/eighty/m80s/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mode/eighty/m80s/m80s.c b/keyboards/mode/eighty/m80s/m80s.c new file mode 100644 index 000000000000..1f532d0ce456 --- /dev/null +++ b/keyboards/mode/eighty/m80s/m80s.c @@ -0,0 +1,14 @@ + /* Copyright 2020 Álvaro "Gondolindrim" Volpato + * + * 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. + */ + +#include "m80s.h" diff --git a/keyboards/mode/eighty/m80s/m80s.h b/keyboards/mode/eighty/m80s/m80s.h new file mode 100644 index 000000000000..3799b5f617ec --- /dev/null +++ b/keyboards/mode/eighty/m80s/m80s.h @@ -0,0 +1,32 @@ + /* Copyright 2020 Álvaro "Gondolindrim" Volpato + * + * 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. + */ + +#pragma once + +#include "eighty.h" + +#define LAYOUT_eighty_m80s( \ + K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K415, K114, K115, K116, \ + K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K414, K214, K215, K216, \ + K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K514, K314, K315, K316, \ + K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, \ + K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K512, K513, K515, \ + K601, K602, K603, K607, K610, K611, K612, K613, K614, K615, K616 \ +) { \ + { K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ + { K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ + { K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316 }, \ + { K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415 , KC_NO }, \ + { K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K512, K513, K514, K515, KC_NO }, \ + { K601, K602, K603, KC_NO, KC_NO, KC_NO, K607, KC_NO, KC_NO, K610, K611, K612, K613, K614, K615, K616 } \ +} diff --git a/keyboards/mode/eighty/m80s/readme.md b/keyboards/mode/eighty/m80s/readme.md new file mode 100644 index 000000000000..408401b5659f --- /dev/null +++ b/keyboards/mode/eighty/m80s/readme.md @@ -0,0 +1,13 @@ +# Mode Eighty M80S (solderable version) + +This is the folder page for the QMK-supported firmware of the M80S, the solderable PCB for the Mode 80. + +Make example for this keyboard (after setting up your build environment): + + make mode/eighty/m80s:default # Soldered + +Flashing example for this keyboard: + + make mode/eighty/m80s:default:flash # Soldered + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/mode/eighty/m80s/rules.mk b/keyboards/mode/eighty/m80s/rules.mk new file mode 100644 index 000000000000..67c3b0d66020 --- /dev/null +++ b/keyboards/mode/eighty/m80s/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = STM32F072 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/mode/eighty/mcuconf.h b/keyboards/mode/eighty/mcuconf.h new file mode 100644 index 000000000000..8d706de2ae85 --- /dev/null +++ b/keyboards/mode/eighty/mcuconf.h @@ -0,0 +1,176 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +/* + * STM32F0xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 3...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F0xx_MCUCONF +// #define STM32F070xB + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_HSI_ENABLED TRUE +#define STM32_HSI14_ENABLED TRUE +#define STM32_HSI48_ENABLED FALSE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED FALSE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 +#define STM32_PREDIV_VALUE 1 +#define STM32_PLLMUL_VALUE 12 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE STM32_PPRE_DIV1 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_USBSW STM32_USBSW_HSI48 +#define STM32_CECSW STM32_CECSW_HSI +#define STM32_I2C1SW STM32_I2C1SW_HSI +#define STM32_USART1SW STM32_USART1SW_PCLK +#define STM32_RTCSEL STM32_RTCSEL_LSI + +/* + * ADC driver system settings. + */ +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 2 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM14 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 2 +#define STM32_GPT_TIM2_IRQ_PRIORITY 2 +#define STM32_GPT_TIM3_IRQ_PRIORITY 2 +#define STM32_GPT_TIM14_IRQ_PRIORITY 2 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 TRUE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_IRQ_PRIORITY 3 +#define STM32_I2C_I2C2_IRQ_PRIORITY 3 +#define STM32_I2C_USE_DMA TRUE +#define STM32_I2C_I2C1_DMA_PRIORITY 1 +#define STM32_I2C_I2C2_DMA_PRIORITY 1 +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 3 +#define STM32_ICU_TIM2_IRQ_PRIORITY 3 +#define STM32_ICU_TIM3_IRQ_PRIORITY 3 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_TIM1_IRQ_PRIORITY 3 +#define STM32_PWM_TIM2_IRQ_PRIORITY 3 +#define STM32_PWM_TIM3_IRQ_PRIORITY 3 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USART1_PRIORITY 3 +#define STM32_SERIAL_USART2_PRIORITY 3 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 2 +#define STM32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USART1_IRQ_PRIORITY 3 +#define STM32_UART_USART2_IRQ_PRIORITY 3 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_USB1 TRUE +#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE +#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/mode/eighty/readme.md b/keyboards/mode/eighty/readme.md new file mode 100644 index 000000000000..40df5adb51d6 --- /dev/null +++ b/keyboards/mode/eighty/readme.md @@ -0,0 +1,22 @@ +# Mode Eighty + +![MODE80](https://i.imgur.com/26uzM3yl.jpg)\ +[Image Gallery](https://imgur.com/t/mechanicalkeyboards/8Uf6c2m?nc=1) + +The Mode80 is a tenkeyless high-end keyboard sold by [Mode Designs](https://shop.modedesigns.com/). + +* Keyboard Maintainer: [Gondolindrim](https://github.com/gondolindrim) +* Hardware Supported: proprietary PCB using STM32F072 controller +* Hardware Availability: you can get a Mode Eighty as of today (dec. 2020) through the in stock sales or special groupbuy editions at https://shop.modedesigns.com/ + +Make example for this keyboard (after setting up your build environment): + + make mode/eighty/m80h:default # Hotswap + make mode/eighty/m80s:default # Soldered + +Flashing example for this keyboard: + + make mode/eighty/m80h:default:flash # Hotswap + make mode/eighty/m80s:default:flash # Soldered + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From a94044c15c8217d8a6ad016cc0233abe3de374b0 Mon Sep 17 00:00:00 2001 From: Suschman Date: Wed, 30 Dec 2020 02:46:16 +0100 Subject: [PATCH 062/140] 40percentclub sixpack support (#11007) * QMK support for 40percentclub SixPack * Update readme.md * QMK support for 40percentclub SixPack * fix info.json * Apply suggestions from code review Co-authored-by: Joel Challis * update PRODUCT name and change BL levels to 6 * Add Fkeys keymap * correct readme * add via keymap * correct readme * change indentation * Apply suggestions from code review Co-authored-by: Ryan * requested change and more cleanup * Update keyboards/40percentclub/sixpack/sixpack.h Co-authored-by: Erovia * Apply suggestions from code review Co-authored-by: Suschman Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Erovia --- keyboards/40percentclub/sixpack/config.h | 122 ++++++++++++++++++ keyboards/40percentclub/sixpack/info.json | 15 +++ .../sixpack/keymaps/default/keymap.c | 31 +++++ .../sixpack/keymaps/default/readme.md | 1 + .../sixpack/keymaps/fkeys/keymap.c | 50 +++++++ .../sixpack/keymaps/fkeys/readme.md | 1 + .../sixpack/keymaps/fkeys/rules.mk | 1 + .../sixpack/keymaps/via/keymap.c | 41 ++++++ .../sixpack/keymaps/via/rules.mk | 1 + keyboards/40percentclub/sixpack/readme.md | 21 +++ keyboards/40percentclub/sixpack/rules.mk | 22 ++++ keyboards/40percentclub/sixpack/sixpack.c | 24 ++++ keyboards/40percentclub/sixpack/sixpack.h | 34 +++++ 13 files changed, 364 insertions(+) create mode 100644 keyboards/40percentclub/sixpack/config.h create mode 100644 keyboards/40percentclub/sixpack/info.json create mode 100644 keyboards/40percentclub/sixpack/keymaps/default/keymap.c create mode 100644 keyboards/40percentclub/sixpack/keymaps/default/readme.md create mode 100644 keyboards/40percentclub/sixpack/keymaps/fkeys/keymap.c create mode 100644 keyboards/40percentclub/sixpack/keymaps/fkeys/readme.md create mode 100644 keyboards/40percentclub/sixpack/keymaps/fkeys/rules.mk create mode 100644 keyboards/40percentclub/sixpack/keymaps/via/keymap.c create mode 100644 keyboards/40percentclub/sixpack/keymaps/via/rules.mk create mode 100644 keyboards/40percentclub/sixpack/readme.md create mode 100644 keyboards/40percentclub/sixpack/rules.mk create mode 100644 keyboards/40percentclub/sixpack/sixpack.c create mode 100644 keyboards/40percentclub/sixpack/sixpack.h diff --git a/keyboards/40percentclub/sixpack/config.h b/keyboards/40percentclub/sixpack/config.h new file mode 100644 index 000000000000..db91ca7b80de --- /dev/null +++ b/keyboards/40percentclub/sixpack/config.h @@ -0,0 +1,122 @@ +/* +Copyright 2020 + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x3430 // "40" +#define PRODUCT_ID 0x5350 // "SP" +#define DEVICE_VER 0x1001 +#define MANUFACTURER di0ib +#define PRODUCT Six Pack + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +// #define MATRIX_ROW_PINS { B0 } // B0 equivalents the ground pin +// #define MATRIX_COL_PINS { E6, D7, C6, D4 } +#define DIRECT_PINS { \ + { D4, C6, D7 }, \ + { E6, B4, B5 } \ +} +#define UNUSED_PINS { D1, D0, C4, C5, B1, B2, B3 } // TX, RX, SDA, SCL, PB1, PB2, PB3 on expansion connector + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Backlight */ +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_PINS { F4, F5 } // Top Row, Bottom Row + +// #define RGB_DI_PIN B1 // PB1 on expansion connector +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/40percentclub/sixpack/info.json b/keyboards/40percentclub/sixpack/info.json new file mode 100644 index 000000000000..3c78e26fbc4b --- /dev/null +++ b/keyboards/40percentclub/sixpack/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "sixpack", + "url": "https://www.40percent.club/2017/05/six-pack-11.html", + "maintainer": "qmk", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT_ortho_2x3": { + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, + {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1} + ] + } + } +} diff --git a/keyboards/40percentclub/sixpack/keymaps/default/keymap.c b/keyboards/40percentclub/sixpack/keymaps/default/keymap.c new file mode 100644 index 000000000000..48885fc50a46 --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2020 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default 2x3 layout + * .--------------------------. + * | MUTE | UP | PLAY | + * |--------+--------+--------+ + * | LEFT | DOWN | RIGHT | + * '--------------------------' + */ + + [0] = LAYOUT_ortho_2x3(/* Default */ + KC_MUTE, KC_UP, KC_MPLY, + KC_LEFT, KC_DOWN, KC_RGHT), +}; diff --git a/keyboards/40percentclub/sixpack/keymaps/default/readme.md b/keyboards/40percentclub/sixpack/keymaps/default/readme.md new file mode 100644 index 000000000000..178cae101031 --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Six Pack diff --git a/keyboards/40percentclub/sixpack/keymaps/fkeys/keymap.c b/keyboards/40percentclub/sixpack/keymaps/fkeys/keymap.c new file mode 100644 index 000000000000..8ca5a5a27b21 --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/fkeys/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2020 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Tap Dance declarations +enum { + F13F19, + F14F20, + F15F21, + F16F22, + F17F23, + F18F24, +}; + +// Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for F13 to F18, twice for F19 to F24 + [F13F19] = ACTION_TAP_DANCE_DOUBLE(KC_F13, KC_F19), [F14F20] = ACTION_TAP_DANCE_DOUBLE(KC_F14, KC_F20), [F15F21] = ACTION_TAP_DANCE_DOUBLE(KC_F15, KC_F21), + [F16F22] = ACTION_TAP_DANCE_DOUBLE(KC_F16, KC_F22), [F17F23] = ACTION_TAP_DANCE_DOUBLE(KC_F17, KC_F23), [F18F24] = ACTION_TAP_DANCE_DOUBLE(KC_F18, KC_F24) +}; + +// Add tap dance item in place of a key code +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* 2x3 layout + * .-----------------------------. + * | F13/F19 | D14/F20 | F15/F21 | + * |---------+---------+---------+ + * | F16/F22 | D17/F23 | F18/F24 | + * '-----------------------------' + */ + + [0] = LAYOUT_ortho_2x3(/* F13 to F24 */ + TD(F13F19), TD(F14F20), TD(F15F21), + TD(F16F22), TD(F17F23), TD(F18F24) + ), +}; diff --git a/keyboards/40percentclub/sixpack/keymaps/fkeys/readme.md b/keyboards/40percentclub/sixpack/keymaps/fkeys/readme.md new file mode 100644 index 000000000000..9974588e5f28 --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/fkeys/readme.md @@ -0,0 +1 @@ +# F13 to F24 keymap with Tap Dance for Six Pack diff --git a/keyboards/40percentclub/sixpack/keymaps/fkeys/rules.mk b/keyboards/40percentclub/sixpack/keymaps/fkeys/rules.mk new file mode 100644 index 000000000000..e5ddcae8d927 --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/fkeys/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/40percentclub/sixpack/keymaps/via/keymap.c b/keyboards/40percentclub/sixpack/keymaps/via/keymap.c new file mode 100644 index 000000000000..f3268a22abba --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2020 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default 2x3 layout with 6 Layers + * .--------------------------. + * | MUTE | UP | PLAY | + * |--------+--------+--------+ + * | LEFT | DOWN | RIGHT | + * '--------------------------' + */ + + [0] = LAYOUT_ortho_2x3(KC_MUTE, KC_UP , KC_MPLY, + KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + [2] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + [3] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + [4] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + [5] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/40percentclub/sixpack/keymaps/via/rules.mk b/keyboards/40percentclub/sixpack/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/40percentclub/sixpack/readme.md b/keyboards/40percentclub/sixpack/readme.md new file mode 100644 index 000000000000..571f92708798 --- /dev/null +++ b/keyboards/40percentclub/sixpack/readme.md @@ -0,0 +1,21 @@ +# Six Pack + +![sixpack](https://4.bp.blogspot.com/-sCUGxPAmcu4/WQj4cd9ZlAI/AAAAAAACBhs/174XLIHIfzISucFFEgo53H73HdVJfn3ZwCLcB/s640/IMG_0265.JPG) + +A 6-key macropad PCB with its switch and LED pins wired directly to microcontroller IO pins. + +You can find the main blog post about this macropad [here](http://www.40percent.club/2017/05/six-pack-11.html), also the Gerber files and other documentation is located [here](https://git.40percent.club/di0ib/Misc/src/branch/master/Six%20Pack). + +* Keyboard Maintainer: [The QMK Community](https://github.com/qmk) +* Hardware Supported: Six Pack PCB, Pro Micro +* Hardware Availability: [40percent.club](https://git.40percent.club/di0ib/Misc/src/branch/master/Six%20Pack) + +Make example for this macropad (after setting up your build environment): + + make 40percentclub/sixpack:default + +Flashing example for this keyboard: + + make 40percentclub/sixpack:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/40percentclub/sixpack/rules.mk b/keyboards/40percentclub/sixpack/rules.mk new file mode 100644 index 000000000000..9d7d9a2cf0f5 --- /dev/null +++ b/keyboards/40percentclub/sixpack/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/40percentclub/sixpack/sixpack.c b/keyboards/40percentclub/sixpack/sixpack.c new file mode 100644 index 000000000000..cc0e9e3adda0 --- /dev/null +++ b/keyboards/40percentclub/sixpack/sixpack.c @@ -0,0 +1,24 @@ +/* Copyright 2020 + * + * 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 . + */ +#include "sixpack.h" + +void matrix_init_kb(void) { + setPinOutput(B6); // Backlight cathodes Col.3 + setPinOutput(F6); // Backlight cathodes Col.2 + setPinOutput(F7); // Backlight cathodes Col.1 + + matrix_init_user(); +} diff --git a/keyboards/40percentclub/sixpack/sixpack.h b/keyboards/40percentclub/sixpack/sixpack.h new file mode 100644 index 000000000000..94db5ee9e8dd --- /dev/null +++ b/keyboards/40percentclub/sixpack/sixpack.h @@ -0,0 +1,34 @@ +/* Copyright 2020 + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_ortho_2x3( \ + k00, k01, k02, \ + k10, k11, k12 \ +) { \ + { k00, k01, k02 }, \ + { k10, k11, k12 } \ +} From c89930ca01f11011141133510ca06f2bbfd0bb73 Mon Sep 17 00:00:00 2001 From: cole smith <38364556+daysgobye@users.noreply.github.com> Date: Tue, 29 Dec 2020 17:49:13 -0800 Subject: [PATCH 063/140] The mark: 65 (#11060) * added main keyboard files * working default and iso maps * add via config * made default ansi map * fixed info.json and made readme * renamed folders * reincluding the folders I renamed * Apply suggestions from code review Co-authored-by: Ryan * I made a change before PR to clean up VIA map that broke it now its fixed * Apply suggestions from code review Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/boardsource/the_mark/the_mark.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- keyboards/boardsource/the_mark/config.h | 152 ++++++++++++ keyboards/boardsource/the_mark/info.json | 232 ++++++++++++++++++ .../the_mark/keymaps/default/keymap.c | 44 ++++ .../the_mark/keymaps/default_ansi/keymap.c | 44 ++++ .../the_mark/keymaps/default_iso/keymap.c | 44 ++++ .../boardsource/the_mark/keymaps/via/keymap.c | 54 ++++ .../the_mark/keymaps/via/readme.md | 3 + .../boardsource/the_mark/keymaps/via/rules.mk | 1 + keyboards/boardsource/the_mark/readme.md | 19 ++ keyboards/boardsource/the_mark/rules.mk | 22 ++ keyboards/boardsource/the_mark/the_mark.c | 17 ++ keyboards/boardsource/the_mark/the_mark.h | 71 ++++++ 12 files changed, 703 insertions(+) create mode 100644 keyboards/boardsource/the_mark/config.h create mode 100644 keyboards/boardsource/the_mark/info.json create mode 100644 keyboards/boardsource/the_mark/keymaps/default/keymap.c create mode 100644 keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c create mode 100644 keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c create mode 100644 keyboards/boardsource/the_mark/keymaps/via/keymap.c create mode 100644 keyboards/boardsource/the_mark/keymaps/via/readme.md create mode 100644 keyboards/boardsource/the_mark/keymaps/via/rules.mk create mode 100644 keyboards/boardsource/the_mark/readme.md create mode 100644 keyboards/boardsource/the_mark/rules.mk create mode 100644 keyboards/boardsource/the_mark/the_mark.c create mode 100644 keyboards/boardsource/the_mark/the_mark.h diff --git a/keyboards/boardsource/the_mark/config.h b/keyboards/boardsource/the_mark/config.h new file mode 100644 index 000000000000..507bac966a10 --- /dev/null +++ b/keyboards/boardsource/the_mark/config.h @@ -0,0 +1,152 @@ +/* +Copyright 2020 Boardsource + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4273 // "Bs" - Boardsource +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Boardsource +#define PRODUCT The Mark65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ + +#define MATRIX_ROW_PINS {B0, B1, B2, B3, B4,} +#define MATRIX_COL_PINS { B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6, D7,F0, F1, F4} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN C6 +#ifdef RGBLIGHT_ENABLE +#define RGBLED_NUM 24 // Number of LEDs +#endif + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# define RGBLIGHT_HUE_STEP 8 +//# define RGBLIGHT_SAT_STEP 8 +//# define RGBLIGHT_VAL_STEP 8 +//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +//# define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/the_mark/info.json b/keyboards/boardsource/the_mark/info.json new file mode 100644 index 000000000000..5a9cdb6be0c9 --- /dev/null +++ b/keyboards/boardsource/the_mark/info.json @@ -0,0 +1,232 @@ +{ + "keyboard_name": "The Mark: 65", + "url": "", + "maintainer": "Boardsource", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "x": 0, "y": 0, "w": 1 }, + { "x": 1, "y": 0, "w": 1 }, + { "x": 2, "y": 0, "w": 1 }, + { "x": 3, "y": 0, "w": 1 }, + { "x": 4, "y": 0, "w": 1 }, + { "x": 5, "y": 0, "w": 1 }, + { "x": 6, "y": 0, "w": 1 }, + { "x": 7, "y": 0, "w": 1 }, + { "x": 8, "y": 0, "w": 1 }, + { "x": 9, "y": 0, "w": 1 }, + { "x": 10, "y": 0, "w": 1 }, + { "x": 11, "y": 0, "w": 1 }, + { "x": 12, "y": 0, "w": 1 }, + { "x": 13, "y": 0, "w": 1 }, + { "x": 14, "y": 0, "w": 1 }, + { "x": 15.25, "y": 0, "w": 1 }, + { "x": 0, "y": 1, "w": 1.5 }, + { "x": 1.5, "y": 1, "w": 1 }, + { "x": 2.5, "y": 1, "w": 1 }, + { "x": 3.5, "y": 1, "w": 1 }, + { "x": 4.5, "y": 1, "w": 1 }, + { "x": 5.5, "y": 1, "w": 1 }, + { "x": 6.5, "y": 1, "w": 1 }, + { "x": 7.5, "y": 1, "w": 1 }, + { "x": 8.5, "y": 1, "w": 1 }, + { "x": 9.5, "y": 1, "w": 1 }, + { "x": 10.5, "y": 1, "w": 1 }, + { "x": 11.5, "y": 1, "w": 1 }, + { "x": 12.5, "y": 1, "w": 1 }, + { "x": 13.5, "y": 1, "w": 1.5 }, + { "x": 15.25, "y": 1, "w": 1 }, + { "x": 0, "y": 2, "w": 1.75 }, + { "x": 1.75, "y": 2, "w": 1 }, + { "x": 2.75, "y": 2, "w": 1 }, + { "x": 3.75, "y": 2, "w": 1 }, + { "x": 4.75, "y": 2, "w": 1 }, + { "x": 5.75, "y": 2, "w": 1 }, + { "x": 6.75, "y": 2, "w": 1 }, + { "x": 7.75, "y": 2, "w": 1 }, + { "x": 8.75, "y": 2, "w": 1 }, + { "x": 9.75, "y": 2, "w": 1 }, + { "x": 10.75, "y": 2, "w": 1 }, + { "x": 11.75, "y": 2, "w": 1 }, + { "x": 12.75, "y": 2, "w": 2.25 }, + { "x": 15.25, "y": 2, "w": 1 }, + { "x": 0, "y": 3, "w": 1.25 }, + { "x": 1.25, "y": 3, "w": 1 }, + { "x": 2.25, "y": 3, "w": 1 }, + { "x": 3.25, "y": 3, "w": 1 }, + { "x": 4.25, "y": 3, "w": 1 }, + { "x": 5.25, "y": 3, "w": 1 }, + { "x": 6.25, "y": 3, "w": 1 }, + { "x": 7.25, "y": 3, "w": 1 }, + { "x": 8.25, "y": 3, "w": 1 }, + { "x": 9.25, "y": 3, "w": 1 }, + { "x": 10.25, "y": 3, "w": 1 }, + { "x": 11.25, "y": 3, "w": 1 }, + { "x": 12.25, "y": 3, "w": 1.75 }, + { "x": 14.25, "y": 3.25, "w": 1 }, + { "x": 0, "y": 4, "w": 1.25 }, + { "x": 1.25, "y": 4, "w": 1.25 }, + { "x": 2.5, "y": 4, "w": 1.25 }, + { "x": 3.75, "y": 4, "w": 2.25 }, + { "x": 6, "y": 4, "w": 1.25 }, + { "x": 7.25, "y": 4, "w": 2.75 }, + { "x": 10, "y": 4, "w": 1 }, + { "x": 11, "y": 4, "w": 1 }, + { "x": 12, "y": 4, "w": 1 }, + { "x": 13.25, "y": 4.25, "w": 1 }, + { "x": 14.25, "y": 4.25, "w": 1 }, + { "x": 15.25, "y": 4.25, "w": 1 } + ] + }, + "LAYOUT_ansi": { + "layout": [ + { "x": 0, "y": 0, "w": 1 }, + { "x": 1, "y": 0, "w": 1 }, + { "x": 2, "y": 0, "w": 1 }, + { "x": 3, "y": 0, "w": 1 }, + { "x": 4, "y": 0, "w": 1 }, + { "x": 5, "y": 0, "w": 1 }, + { "x": 6, "y": 0, "w": 1 }, + { "x": 7, "y": 0, "w": 1 }, + { "x": 8, "y": 0, "w": 1 }, + { "x": 9, "y": 0, "w": 1 }, + { "x": 10, "y": 0, "w": 1 }, + { "x": 11, "y": 0, "w": 1 }, + { "x": 12, "y": 0, "w": 1 }, + { "x": 13, "y": 0, "w": 2 }, + { "x": 15.25, "y": 0, "w": 1 }, + { "x": 0, "y": 1, "w": 1.5 }, + { "x": 1.5, "y": 1, "w": 1 }, + { "x": 2.5, "y": 1, "w": 1 }, + { "x": 3.5, "y": 1, "w": 1 }, + { "x": 4.5, "y": 1, "w": 1 }, + { "x": 5.5, "y": 1, "w": 1 }, + { "x": 6.5, "y": 1, "w": 1 }, + { "x": 7.5, "y": 1, "w": 1 }, + { "x": 8.5, "y": 1, "w": 1 }, + { "x": 9.5, "y": 1, "w": 1 }, + { "x": 10.5, "y": 1, "w": 1 }, + { "x": 11.5, "y": 1, "w": 1 }, + { "x": 12.5, "y": 1, "w": 1 }, + { "x": 13.5, "y": 1, "w": 1.5 }, + { "x": 15.25, "y": 1, "w": 1 }, + { "x": 0, "y": 2, "w": 1.75 }, + { "x": 1.75, "y": 2, "w": 1 }, + { "x": 2.75, "y": 2, "w": 1 }, + { "x": 3.75, "y": 2, "w": 1 }, + { "x": 4.75, "y": 2, "w": 1 }, + { "x": 5.75, "y": 2, "w": 1 }, + { "x": 6.75, "y": 2, "w": 1 }, + { "x": 7.75, "y": 2, "w": 1 }, + { "x": 8.75, "y": 2, "w": 1 }, + { "x": 9.75, "y": 2, "w": 1 }, + { "x": 10.75, "y": 2, "w": 1 }, + { "x": 11.75, "y": 2, "w": 1 }, + { "x": 12.75, "y": 2, "w": 2.25 }, + { "x": 15.25, "y": 2, "w": 1 }, + { "x": 0, "y": 3, "w": 2.25 }, + { "x": 2.25, "y": 3, "w": 1 }, + { "x": 3.25, "y": 3, "w": 1 }, + { "x": 4.25, "y": 3, "w": 1 }, + { "x": 5.25, "y": 3, "w": 1 }, + { "x": 6.25, "y": 3, "w": 1 }, + { "x": 7.25, "y": 3, "w": 1 }, + { "x": 8.25, "y": 3, "w": 1 }, + { "x": 9.25, "y": 3, "w": 1 }, + { "x": 10.25, "y": 3, "w": 1 }, + { "x": 11.25, "y": 3, "w": 1 }, + { "x": 12.25, "y": 3, "w": 1.75 }, + { "x": 14.25, "y": 3.25, "w": 1 }, + { "x": 0, "y": 4, "w": 1.25 }, + { "x": 1.25, "y": 4, "w": 1.25 }, + { "x": 2.5, "y": 4, "w": 1.25 }, + { "x": 3.75, "y": 4, "w": 6.25 }, + { "x": 10, "y": 4, "w": 1 }, + { "x": 11, "y": 4, "w": 1 }, + { "x": 12, "y": 4, "w": 1 }, + { "x": 13.25, "y": 4.25, "w": 1 }, + { "x": 14.25, "y": 4.25, "w": 1 }, + { "x": 15.25, "y": 4.25, "w": 1 } + ] + }, + "LAYOUT_iso": { + "layout": [ + { "x": 0, "y": 0, "w": 1 }, + { "x": 1, "y": 0, "w": 1 }, + { "x": 2, "y": 0, "w": 1 }, + { "x": 3, "y": 0, "w": 1 }, + { "x": 4, "y": 0, "w": 1 }, + { "x": 5, "y": 0, "w": 1 }, + { "x": 6, "y": 0, "w": 1 }, + { "x": 7, "y": 0, "w": 1 }, + { "x": 8, "y": 0, "w": 1 }, + { "x": 9, "y": 0, "w": 1 }, + { "x": 10, "y": 0, "w": 1 }, + { "x": 11, "y": 0, "w": 1 }, + { "x": 12, "y": 0, "w": 1 }, + { "x": 13, "y": 0, "w": 2 }, + { "x": 15.25, "y": 0, "w": 1 }, + { "x": 0, "y": 1, "w": 1.5 }, + { "x": 1.5, "y": 1, "w": 1 }, + { "x": 2.5, "y": 1, "w": 1 }, + { "x": 3.5, "y": 1, "w": 1 }, + { "x": 4.5, "y": 1, "w": 1 }, + { "x": 5.5, "y": 1, "w": 1 }, + { "x": 6.5, "y": 1, "w": 1 }, + { "x": 7.5, "y": 1, "w": 1 }, + { "x": 8.5, "y": 1, "w": 1 }, + { "x": 9.5, "y": 1, "w": 1 }, + { "x": 10.5, "y": 1, "w": 1 }, + { "x": 11.5, "y": 1, "w": 1 }, + { "x": 12.5, "y": 1, "w": 1 }, + { "x": 15.25, "y": 1, "w": 1 }, + { "x": 0, "y": 2, "w": 1.75 }, + { "x": 1.75, "y": 2, "w": 1 }, + { "x": 2.75, "y": 2, "w": 1 }, + { "x": 3.75, "y": 2, "w": 1 }, + { "x": 4.75, "y": 2, "w": 1 }, + { "x": 5.75, "y": 2, "w": 1 }, + { "x": 6.75, "y": 2, "w": 1 }, + { "x": 7.75, "y": 2, "w": 1 }, + { "x": 8.75, "y": 2, "w": 1 }, + { "x": 9.75, "y": 2, "w": 1 }, + { "x": 10.75, "y": 2, "w": 1 }, + { "x": 11.75, "y": 2, "w": 1 }, + { "x": 12.75, "y": 2, "w": 1 }, + { + "x": 13.75, + "y": 1, + "w": 1.25, + "h": 2 + }, + { "x": 15.25, "y": 2, "w": 1 }, + { "x": 0, "y": 3, "w": 1.25 }, + { "x": 1.25, "y": 3, "w": 1 }, + { "x": 2.25, "y": 3, "w": 1 }, + { "x": 3.25, "y": 3, "w": 1 }, + { "x": 4.25, "y": 3, "w": 1 }, + { "x": 5.25, "y": 3, "w": 1 }, + { "x": 6.25, "y": 3, "w": 1 }, + { "x": 7.25, "y": 3, "w": 1 }, + { "x": 8.25, "y": 3, "w": 1 }, + { "x": 9.25, "y": 3, "w": 1 }, + { "x": 10.25, "y": 3, "w": 1 }, + { "x": 11.25, "y": 3, "w": 1 }, + { "x": 12.25, "y": 3, "w": 1.75 }, + { "x": 14.25, "y": 3.25, "w": 1 }, + { "x": 0, "y": 4, "w": 1.25 }, + { "x": 1.25, "y": 4, "w": 1.25 }, + { "x": 2.5, "y": 4, "w": 1.25 }, + { "x": 3.75, "y": 4, "w": 6.25 }, + { "x": 10, "y": 4, "w": 1 }, + { "x": 11, "y": 4, "w": 1 }, + { "x": 12, "y": 4, "w": 1 }, + { "x": 13.25, "y": 4.25, "w": 1 }, + { "x": 14.25, "y": 4.25, "w": 1 }, + { "x": 15.25, "y": 4.25, "w": 1 } + ] + } + } +} diff --git a/keyboards/boardsource/the_mark/keymaps/default/keymap.c b/keyboards/boardsource/the_mark/keymaps/default/keymap.c new file mode 100644 index 000000000000..ead93baf55db --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, RGB_TOG, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, RGB_MOD, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, MO(_FN), + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), +[_FN] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + diff --git a/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c new file mode 100644 index 000000000000..250ecf766953 --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, RGB_TOG, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, RGB_MOD, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, MO(_FN), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), +[_FN] = LAYOUT_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, _______, KC_END, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + diff --git a/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c new file mode 100644 index 000000000000..6aeace190a92 --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_iso( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, RGB_TOG, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, RGB_MOD, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, MO(_FN), + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), +[_FN] = LAYOUT_iso( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_END, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,KC_MUTE, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + diff --git a/keyboards/boardsource/the_mark/keymaps/via/keymap.c b/keyboards/boardsource/the_mark/keymaps/via/keymap.c new file mode 100644 index 000000000000..2b0477f39f25 --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ +#include QMK_KEYBOARD_H + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, RGB_TOG, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), +LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + + +}; + diff --git a/keyboards/boardsource/the_mark/keymaps/via/readme.md b/keyboards/boardsource/the_mark/keymaps/via/readme.md new file mode 100644 index 000000000000..5fda80e18bb8 --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# The via keymap for The Mark: 65 + +This folder contains the VIA configuration for the boardsource's The Mark: 65 diff --git a/keyboards/boardsource/the_mark/keymaps/via/rules.mk b/keyboards/boardsource/the_mark/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/boardsource/the_mark/readme.md b/keyboards/boardsource/the_mark/readme.md new file mode 100644 index 000000000000..100466b0352e --- /dev/null +++ b/keyboards/boardsource/the_mark/readme.md @@ -0,0 +1,19 @@ +# the_mark + +![The Mark: 65](https://i.imgur.com/3zC4PKkl.jpg) + +The Mark: 65 is a no compromise 65% keyboard designed and produced by Boardsource. + +* Keyboard Maintainer: [Boardsource](https://github.com/boardsource) +* Hardware Supported: The Mark:65 v1 +* Hardware Availability: [Boardsource](https://boardsource.xyz/store/5fc2eb0b86b9341522d8f7a3) + +Make example for this keyboard (after setting up your build environment): + + make boardsource/the_mark:default + +Flashing example for this keyboard: + + make boardsource/the_mark:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/boardsource/the_mark/rules.mk b/keyboards/boardsource/the_mark/rules.mk new file mode 100644 index 000000000000..38ce53e3096f --- /dev/null +++ b/keyboards/boardsource/the_mark/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/boardsource/the_mark/the_mark.c b/keyboards/boardsource/the_mark/the_mark.c new file mode 100644 index 000000000000..9d3dedc08590 --- /dev/null +++ b/keyboards/boardsource/the_mark/the_mark.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#include "the_mark.h" diff --git a/keyboards/boardsource/the_mark/the_mark.h b/keyboards/boardsource/the_mark/the_mark.h new file mode 100644 index 000000000000..9d527f946774 --- /dev/null +++ b/keyboards/boardsource/the_mark/the_mark.h @@ -0,0 +1,71 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { K301, K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314, KC_NO}, \ + { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414, K415 } \ +} + +#define LAYOUT_ansi( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K403, K406, K410, K411, K412, K413, K414, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { KC_NO, K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314, KC_NO}, \ + { K400, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414, K415 } \ +} + + +#define LAYOUT_iso( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K114, K213, K215, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K403, K406, K410, K411, K412, K413, K414, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { K301, K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314, KC_NO}, \ + { K400, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414, K415 } \ +} + From b4ea0a70be9966aa1459bc99e089fbdda59ea049 Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Wed, 30 Dec 2020 03:05:48 +0100 Subject: [PATCH 064/140] Add Axolstudio Helpo (#11117) * add axolstudio helpo * reverse matrix * fix path in readme * Apply suggestions from code review Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis * Update keyboards/axolstudio/helpo/readme.md Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/axolstudio/helpo/config.h | 42 ++++++++++++++++++ keyboards/axolstudio/helpo/helpo.c | 17 +++++++ keyboards/axolstudio/helpo/helpo.h | 39 ++++++++++++++++ keyboards/axolstudio/helpo/info.json | 33 ++++++++++++++ .../axolstudio/helpo/keymaps/default/keymap.c | 32 ++++++++++++++ .../axolstudio/helpo/keymaps/via/keymap.c | 44 +++++++++++++++++++ .../axolstudio/helpo/keymaps/via/rules.mk | 1 + keyboards/axolstudio/helpo/readme.md | 17 +++++++ keyboards/axolstudio/helpo/rules.mk | 25 +++++++++++ 9 files changed, 250 insertions(+) create mode 100644 keyboards/axolstudio/helpo/config.h create mode 100644 keyboards/axolstudio/helpo/helpo.c create mode 100644 keyboards/axolstudio/helpo/helpo.h create mode 100644 keyboards/axolstudio/helpo/info.json create mode 100644 keyboards/axolstudio/helpo/keymaps/default/keymap.c create mode 100644 keyboards/axolstudio/helpo/keymaps/via/keymap.c create mode 100644 keyboards/axolstudio/helpo/keymaps/via/rules.mk create mode 100644 keyboards/axolstudio/helpo/readme.md create mode 100644 keyboards/axolstudio/helpo/rules.mk diff --git a/keyboards/axolstudio/helpo/config.h b/keyboards/axolstudio/helpo/config.h new file mode 100644 index 000000000000..927c7cc56c81 --- /dev/null +++ b/keyboards/axolstudio/helpo/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2020 kb-elmo + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x525C +#define PRODUCT_ID 0xC89F +#define DEVICE_VER 0x0001 +#define MANUFACTURER Axolstudio +#define PRODUCT Helpo + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 5 + +/* Keyboard Matrix Assignments */ + +#define MATRIX_ROW_PINS { A2, A3, A4, A5 } +#define MATRIX_COL_PINS { A1, B4, B3, B2, B1 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/axolstudio/helpo/helpo.c b/keyboards/axolstudio/helpo/helpo.c new file mode 100644 index 000000000000..04c7b4f1a005 --- /dev/null +++ b/keyboards/axolstudio/helpo/helpo.c @@ -0,0 +1,17 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#include "helpo.h" diff --git a/keyboards/axolstudio/helpo/helpo.h b/keyboards/axolstudio/helpo/helpo.h new file mode 100644 index 000000000000..f6b0e07964ec --- /dev/null +++ b/keyboards/axolstudio/helpo/helpo.h @@ -0,0 +1,39 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k04, k03, k02, k01, k00, \ + k09, k08, k07, k06, k05, \ + k14, k13, k12, k11, k10, \ + k19, k18, k17, k16, k15 \ +) { \ + { k00, k01, k02, k03, k04, }, \ + { k05, k06, k07, k08, k09, }, \ + { k10, k11, k12, k13, k14, }, \ + { k15, k16, k17, k18, k19, } \ +} diff --git a/keyboards/axolstudio/helpo/info.json b/keyboards/axolstudio/helpo/info.json new file mode 100644 index 000000000000..557f0273a6d0 --- /dev/null +++ b/keyboards/axolstudio/helpo/info.json @@ -0,0 +1,33 @@ +{ + "keyboard_name": "helpo", + "url": "", + "maintainer": "kb-elmo", + "width": 5, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3} + ] + } + } +} diff --git a/keyboards/axolstudio/helpo/keymaps/default/keymap.c b/keyboards/axolstudio/helpo/keymaps/default/keymap.c new file mode 100644 index 000000000000..6a36b6d2bf41 --- /dev/null +++ b/keyboards/axolstudio/helpo/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, + KC_6, KC_7, KC_8, KC_9, KC_0, + KC_A, KC_B, KC_C, KC_D, KC_E, + KC_F, KC_G, KC_H, KC_I, MO(1) + ), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/axolstudio/helpo/keymaps/via/keymap.c b/keyboards/axolstudio/helpo/keymaps/via/keymap.c new file mode 100644 index 000000000000..f1b331002a61 --- /dev/null +++ b/keyboards/axolstudio/helpo/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, + KC_6, KC_7, KC_8, KC_9, KC_0, + KC_A, KC_B, KC_C, KC_D, KC_E, + KC_F, KC_G, KC_H, KC_I, MO(1) + ), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/axolstudio/helpo/keymaps/via/rules.mk b/keyboards/axolstudio/helpo/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/axolstudio/helpo/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/axolstudio/helpo/readme.md b/keyboards/axolstudio/helpo/readme.md new file mode 100644 index 000000000000..fa759c574c5a --- /dev/null +++ b/keyboards/axolstudio/helpo/readme.md @@ -0,0 +1,17 @@ +# Helpo + +ATmega32A powered 20 key THT macropad + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Helpo PCB +* Hardware Availability: will be added later + +Make example for this keyboard (after setting up your build environment): + + make axolstudio/helpo:default + +Flashing example for this keyboard: + + make axolstudio/helpo:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/axolstudio/helpo/rules.mk b/keyboards/axolstudio/helpo/rules.mk new file mode 100644 index 000000000000..3076166479fc --- /dev/null +++ b/keyboards/axolstudio/helpo/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32a + +# Processor frequency +F_CPU = 16000000 + +# Bootloader selection +BOOTLOADER = USBasp + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 992380a5ddc87546f124238b53122c23ade6b421 Mon Sep 17 00:00:00 2001 From: Jonathan Paugh Date: Tue, 29 Dec 2020 20:21:00 -0600 Subject: [PATCH 065/140] Add missing Debian/Ubuntu dependency to the install script (#11348) To successfully compile bootloadHID, we must have the libusb-config tool, which comes from the libusb-dev package. This package is available in both Ubuntu Groovy and Debian Buster Co-authored-by: Jonathan Paugh --- util/install/debian.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/install/debian.sh b/util/install/debian.sh index e7180c651228..0ae9764a33c1 100755 --- a/util/install/debian.sh +++ b/util/install/debian.sh @@ -16,7 +16,7 @@ _qmk_install() { python3-pip \ binutils-avr gcc-avr avr-libc \ binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi \ - avrdude dfu-programmer dfu-util teensy-loader-cli + avrdude dfu-programmer dfu-util teensy-loader-cli libusb-dev python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt } From c9156b50d9fe448222144cc31ff5fe66e9a847c8 Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Tue, 29 Dec 2020 22:21:44 -0500 Subject: [PATCH 066/140] [Keymap] spidey3 keymap for DMQDesign Spin (#11194) * My first cut at firmware for te DMQDesign Spin * Turn off underglow when computer sleeps * dmqdesigns spin - a little more refined keymap now * a few more refinements for spin * missing key up event for CH_CPNL and CH_ASST * better naming for keymap * cformat * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Old #include habits die hard... :) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- .../spin/keymaps/spidey3_pad/config.h | 42 ++++ .../spin/keymaps/spidey3_pad/keymap.c | 237 ++++++++++++++++++ .../spin/keymaps/spidey3_pad/readme.md | 1 + .../spin/keymaps/spidey3_pad/rules.mk | 7 + 4 files changed, 287 insertions(+) create mode 100644 keyboards/dmqdesign/spin/keymaps/spidey3_pad/config.h create mode 100644 keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c create mode 100644 keyboards/dmqdesign/spin/keymaps/spidey3_pad/readme.md create mode 100644 keyboards/dmqdesign/spin/keymaps/spidey3_pad/rules.mk diff --git a/keyboards/dmqdesign/spin/keymaps/spidey3_pad/config.h b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/config.h new file mode 100644 index 000000000000..1851f07f1d95 --- /dev/null +++ b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/config.h @@ -0,0 +1,42 @@ +/* Copyright 2019-2020 DMQ Design + * + * 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 . + */ + +#pragma once + +#define RGBLIGHT_HUE_STEP 8 + +// place overrides here + +#define NO_ACTION_ONESHOT +#undef LOCKING_SUPPORT_ENABLE + +#define LAYER_STATE_8BIT +#define MAX_LAYER 4 + +#undef RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE + +#define RGBLIGHT_SLEEP +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYER_BLINK +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF diff --git a/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c new file mode 100644 index 000000000000..ba3aa96d491d --- /dev/null +++ b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c @@ -0,0 +1,237 @@ +/* Copyright 2020 Joshua Moses Diamond + * + * 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 . + */ +#include QMK_KEYBOARD_H + +#include "version.h" +#include + +#define RGB_LAYER_ACK_DURATION 500 + +enum layers { _MACRO, _NUMPAD, _RGB, _FN }; + +enum layer_base { + LAYER_BASE = _MACRO, + LAYER_BASE_END = _FN + 1, +}; + +enum custom_keycodes { + HELLO = SAFE_RANGE, + CH_CPNL, // AL Control Panel + CH_ASST, // AL Context-aware Desktop Assistant + CH_SUSP, // Suspend +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MACRO] = LAYOUT( + A(S(KC_N)), HELLO, CH_SUSP, TO(_MACRO), + KC_MPRV, KC_MPLY, KC_MNXT, TO(_NUMPAD), + C(A(KC_COMM)), KC_F5, C(A(KC_DOT)), TO(_RGB), + MO(_FN), CH_ASST, CH_CPNL), + + [_NUMPAD] = LAYOUT( + KC_KP_7, KC_KP_8, KC_KP_9, KC_TRNS, + KC_KP_4, KC_KP_5, KC_KP_6, KC_TRNS, + KC_KP_1, KC_KP_2, KC_KP_3, KC_TRNS, + KC_KP_0, KC_PDOT, KC_PENT), + + [_RGB] = LAYOUT( + RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, + RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, + RGB_SPD, RGB_SPI, KC_NO, KC_TRNS, + RGB_RMOD, RGB_TOG, RGB_MOD), + + [_FN] = LAYOUT( + KC_TRNS, DEBUG, RESET, KC_TRNS, + KC_NO, KC_NO, EEP_RST, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_NO, KC_NO), +}; +// clang-format on + +typedef enum layer_ack { + ACK_NO = 0, + ACK_YES, + ACK_MEH, +} layer_ack_t; + +#define LAYER_OFFSET 0 +const rgblight_segment_t PROGMEM _macro_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 1, HSV_TEAL}); +const rgblight_segment_t PROGMEM _numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_TEAL}); +const rgblight_segment_t PROGMEM _rgb_layer[] = RGBLIGHT_LAYER_SEGMENTS({2, 1, HSV_TEAL}); +const rgblight_segment_t PROGMEM _fn_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 3, HSV_PURPLE}); + +#define ACK_OFFSET 4 +const rgblight_segment_t PROGMEM _no_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 3, HSV_RED}); +const rgblight_segment_t PROGMEM _yes_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 3, HSV_GREEN}); +const rgblight_segment_t PROGMEM _meh_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 3, HSV_YELLOW}); + +// clang-format on +const rgblight_segment_t *const PROGMEM _rgb_layers[] = { + [LAYER_OFFSET + 0] = _macro_layer, + [LAYER_OFFSET + 1] = _numpad_layer, + [LAYER_OFFSET + 2] = _rgb_layer, + [LAYER_OFFSET + 3] = _fn_layer, + + [ACK_OFFSET + ACK_NO] = _no_layer, + [ACK_OFFSET + ACK_YES] = _yes_layer, + [ACK_OFFSET + ACK_MEH] = _meh_layer, + + [ACK_OFFSET + ACK_MEH + 1] = NULL +}; +// clang-format off + +const uint8_t PROGMEM _n_rgb_layers = sizeof(_rgb_layers) / sizeof(_rgb_layers[0]) - 1; + +void clear_rgb_layers(void) { + dprint("clear_rgb_layers()\n"); + for (uint8_t i = 0; i < _n_rgb_layers; i++) { + rgblight_set_layer_state(i, false); + } +} + +void do_rgb_layers(layer_state_t state, uint8_t start, uint8_t end) { + dprintf("start=%u, end=%u, LAYER_OFFSET=%u\n", start, end, LAYER_OFFSET); + for (uint8_t i = start; i < end; i++) { + bool is_on = layer_state_cmp(state, i); + uint8_t rl = LAYER_OFFSET + i; + dprintf("layer[%u]=%u, rl=%u\n", i, is_on, rl); + rgblight_set_layer_state(rl, is_on); + } +} + +layer_state_t layer_state_set_user(layer_state_t state) { + do_rgb_layers(state, LAYER_BASE, LAYER_BASE_END); + return state; +} + +void rgb_layer_ack(layer_ack_t n) { + uint8_t layer = ACK_OFFSET + n; + dprintf("rgb_layer_ack(%u) ==> %u\n", n, layer); + rgblight_blink_layer(layer, RGB_LAYER_ACK_DURATION); +} + +void rgb_layer_ack_yn(bool yn) { rgb_layer_ack(yn ? ACK_YES : ACK_NO); } + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = _rgb_layers; + do_rgb_layers(layer_state, LAYER_BASE, LAYER_BASE_END); +} + +void shutdown_user() { + clear_rgb_layers(); + rgblight_enable(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_sethsv_noeeprom(HSV_RED); +} + +void spidey_glow(void) { + rgblight_enable(); + rgblight_mode(RGBLIGHT_MODE_RAINBOW_MOOD); + rgblight_sethsv(255, 230, 128); +} + +void eeconfig_init_user(void) { spidey_glow(); } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + // Re-implement this here, but fix the persistence! + case DEBUG: + if (!debug_enable) { + debug_enable = 1; + } else if (!debug_keyboard) { + debug_keyboard = 1; + } else if (!debug_matrix) { + debug_matrix = 1; + } else { + debug_enable = 0; + debug_keyboard = 0; + debug_matrix = 0; + } + uprintf("DEBUG: enable=%u, keyboard=%u, matrix=%u\n", debug_enable, debug_keyboard, debug_matrix); + uprintln(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE); + eeconfig_update_debug(debug_config.raw); + return false; + + // clang-format off + case CH_CPNL: host_consumer_send(AL_CONTROL_PANEL); return false; + case CH_ASST: host_consumer_send(AL_ASSISTANT); return false; + case CH_SUSP: tap_code16(LGUI(LSFT(KC_L))); return true; + case HELLO: SEND_STRING("Hello, world!"); return true; + // clang-format on + } + } else { + switch (keycode) { + case CH_CPNL: + case CH_ASST: + host_consumer_send(0); + return false; + } + } + + return true; +}; + + +void post_process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // Acks follow... + case DEBUG: + rgb_layer_ack_yn(debug_enable); + break; + case RGB_TOG: + rgb_layer_ack_yn(rgblight_is_enabled()); + break; + } +} + +void encoder_update_user(uint8_t index, bool clockwise) { + switch (get_highest_layer(layer_state)) { + case _RGB: + if (index == 0) { + if (clockwise) { + rgblight_increase_hue(); + } else { + rgblight_decrease_hue(); + } + } else if (index == 1) { + if (clockwise) { + rgblight_increase_sat(); + } else { + rgblight_decrease_sat(); + } + } else if (index == 2) { + if (clockwise) { + rgblight_increase_val(); + } else { + rgblight_decrease_val(); + } + } + break; + + default: + if (index == 0) { + tap_code16(C(S(clockwise ? KC_EQL : KC_MINS))); + } else if (index == 1) { + tap_code16(C(clockwise ? KC_EQL : KC_MINS)); + } else if (index == 2) { + tap_code(clockwise ? KC_VOLU : KC_VOLD); + } + break; + } +} diff --git a/keyboards/dmqdesign/spin/keymaps/spidey3_pad/readme.md b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/readme.md new file mode 100644 index 000000000000..1abca2748960 --- /dev/null +++ b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/readme.md @@ -0,0 +1 @@ +spidey3 keymap for spin keypad diff --git a/keyboards/dmqdesign/spin/keymaps/spidey3_pad/rules.mk b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/rules.mk new file mode 100644 index 000000000000..6df20e87101f --- /dev/null +++ b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/rules.mk @@ -0,0 +1,7 @@ +MOUSEKEY_ENABLE = no +MIDI_ENABLE = no +BOOTMAGIC_ENABLE = lite +LTO_ENABLE = yes +CONSOLE_ENABLE = yes # Console for debug +GRAVE_ESC_ENABLE = no + From fda514bbd7bb26a8a6cc12cd1d5e36b0d12e7ae0 Mon Sep 17 00:00:00 2001 From: ReFil <31960031+ReFil@users.noreply.github.com> Date: Wed, 30 Dec 2020 03:26:16 +0000 Subject: [PATCH 067/140] [Keyboard] Polarity works CRBN support (#11107) * Initial CRBN compatibility Updated readme.md too * formatting tweaks to meet requirements * Update crbn.c * Create readme.md * Required fixes and licence header * Fixes * Apply suggestions from code review Co-authored-by: Ryan * Update keyboards/crbn/rules.mk Co-authored-by: Ryan * Update keyboards/readme.md Co-authored-by: Ryan * Update crbn.c * Update keyboards/crbn/crbn.c Co-authored-by: Drashna Jaelre * Licence headers * Create info.json * Apply suggestions from code review Co-authored-by: Ryan * Configurator support * Update keymap.c * Update keymap.c Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- keyboards/crbn/config.h | 54 ++++++++++++ keyboards/crbn/crbn.c | 24 ++++++ keyboards/crbn/crbn.h | 42 +++++++++ keyboards/crbn/info.json | 109 ++++++++++++++++++++++++ keyboards/crbn/keymaps/default/keymap.c | 45 ++++++++++ keyboards/crbn/readme.md | 19 +++++ keyboards/crbn/rules.mk | 23 +++++ 7 files changed, 316 insertions(+) create mode 100644 keyboards/crbn/config.h create mode 100644 keyboards/crbn/crbn.c create mode 100644 keyboards/crbn/crbn.h create mode 100644 keyboards/crbn/info.json create mode 100644 keyboards/crbn/keymaps/default/keymap.c create mode 100644 keyboards/crbn/readme.md create mode 100644 keyboards/crbn/rules.mk diff --git a/keyboards/crbn/config.h b/keyboards/crbn/config.h new file mode 100644 index 000000000000..887302226967 --- /dev/null +++ b/keyboards/crbn/config.h @@ -0,0 +1,54 @@ +/* Copyright 2020 Harry Herring + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x726F +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Polarity Works +#define PRODUCT CRBN + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B3, B1, F7, F6 } +#define MATRIX_COL_PINS { D3, D2, D1, D0, D4, C6, D7, E6, B4, B5, B6, B2 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/*Rotary Encoder Pins*/ +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F4 } + +/*Sets the number of pulses per increment*/ +#define ENCODER_RESOLUTION 2 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/crbn/crbn.c b/keyboards/crbn/crbn.c new file mode 100644 index 000000000000..1da726b9c708 --- /dev/null +++ b/keyboards/crbn/crbn.c @@ -0,0 +1,24 @@ +/* Copyright 2020 Harry Herring + * + * 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 . + */ +#include "crbn.h" +/* Encoder setting. only one encoder despite 4 possible spots */ +__attribute__((weak)) void encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } +} diff --git a/keyboards/crbn/crbn.h b/keyboards/crbn/crbn.h new file mode 100644 index 000000000000..54ff00707405 --- /dev/null +++ b/keyboards/crbn/crbn.h @@ -0,0 +1,42 @@ +/* Copyright 2020 Harry Herring + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT_crbn_1x2u( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K305, K307, K308, K309, K310, K311 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, K305, KC_NO, K307, K308, K309, K310, K311 } \ +} + +#define LAYOUT_crbn_2x2u( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K307, K308, K309, K310, K311 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, KC_NO, KC_NO, K307, K308, K309, K310, K311 } \ +} diff --git a/keyboards/crbn/info.json b/keyboards/crbn/info.json new file mode 100644 index 000000000000..7b676680758b --- /dev/null +++ b/keyboards/crbn/info.json @@ -0,0 +1,109 @@ +{ + "keyboard_name": "CRBN", + "keyboard_folder": "crbn", + "url": "polarityworks.com", + "maintainer": "qmk", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_crbn_1x2u": { + "layout": [ + { "w": 1, "x": 0, "y": 0 }, + { "w": 1, "x": 1, "y": 0 }, + { "w": 1, "x": 2, "y": 0 }, + { "w": 1, "x": 3, "y": 0 }, + { "w": 1, "x": 4, "y": 0 }, + { "w": 1, "x": 5, "y": 0 }, + { "w": 1, "x": 6, "y": 0 }, + { "w": 1, "x": 7, "y": 0 }, + { "w": 1, "x": 8, "y": 0 }, + { "w": 1, "x": 9, "y": 0 }, + { "w": 1, "x": 10, "y": 0 }, + { "w": 1, "x": 11, "y": 0 }, + { "w": 1, "x": 0, "y": 1 }, + { "w": 1, "x": 1, "y": 1 }, + { "w": 1, "x": 2, "y": 1 }, + { "w": 1, "x": 3, "y": 1 }, + { "w": 1, "x": 4, "y": 1 }, + { "w": 1, "x": 5, "y": 1 }, + { "w": 1, "x": 6, "y": 1 }, + { "w": 1, "x": 7, "y": 1 }, + { "w": 1, "x": 8, "y": 1 }, + { "w": 1, "x": 9, "y": 1 }, + { "w": 1, "x": 10, "y": 1 }, + { "w": 1, "x": 11, "y": 1 }, + { "w": 1, "x": 0, "y": 2 }, + { "w": 1, "x": 1, "y": 2 }, + { "w": 1, "x": 2, "y": 2 }, + { "w": 1, "x": 3, "y": 2 }, + { "w": 1, "x": 4, "y": 2 }, + { "w": 1, "x": 5, "y": 2 }, + { "w": 1, "x": 6, "y": 2 }, + { "w": 1, "x": 7, "y": 2 }, + { "w": 1, "x": 8, "y": 2 }, + { "w": 1, "x": 9, "y": 2 }, + { "w": 1, "x": 10, "y": 2 }, + { "w": 1, "x": 11, "y": 2 }, + { "w": 1, "x": 0, "y": 3 }, + { "w": 1, "x": 1, "y": 3 }, + { "w": 1, "x": 2, "y": 3 }, + { "w": 1, "x": 3, "y": 3 }, + { "w": 1, "x": 4, "y": 3 }, + { "w": 2, "x": 5, "y": 3 }, + { "w": 1, "x": 7, "y": 3 }, + { "w": 1, "x": 8, "y": 3 }, + { "w": 1, "x": 9, "y": 3 }, + { "w": 1, "x": 10, "y": 3 }, + { "w": 1, "x": 11, "y": 3 } ] + }, + "LAYOUT_crbn_2x2u": { + "layout": [ + { "w": 1, "x": 0, "y": 0 }, + { "w": 1, "x": 1, "y": 0 }, + { "w": 1, "x": 2, "y": 0 }, + { "w": 1, "x": 3, "y": 0 }, + { "w": 1, "x": 4, "y": 0 }, + { "w": 1, "x": 5, "y": 0 }, + { "w": 1, "x": 6, "y": 0 }, + { "w": 1, "x": 7, "y": 0 }, + { "w": 1, "x": 8, "y": 0 }, + { "w": 1, "x": 9, "y": 0 }, + { "w": 1, "x": 10, "y": 0 }, + { "w": 1, "x": 11, "y": 0 }, + { "w": 1, "x": 0, "y": 1 }, + { "w": 1, "x": 1, "y": 1 }, + { "w": 1, "x": 2, "y": 1 }, + { "w": 1, "x": 3, "y": 1 }, + { "w": 1, "x": 4, "y": 1 }, + { "w": 1, "x": 5, "y": 1 }, + { "w": 1, "x": 6, "y": 1 }, + { "w": 1, "x": 7, "y": 1 }, + { "w": 1, "x": 8, "y": 1 }, + { "w": 1, "x": 9, "y": 1 }, + { "w": 1, "x": 10, "y": 1 }, + { "w": 1, "x": 11, "y": 1 }, + { "w": 1, "x": 0, "y": 2 }, + { "w": 1, "x": 1, "y": 2 }, + { "w": 1, "x": 2, "y": 2 }, + { "w": 1, "x": 3, "y": 2 }, + { "w": 1, "x": 4, "y": 2 }, + { "w": 1, "x": 5, "y": 2 }, + { "w": 1, "x": 6, "y": 2 }, + { "w": 1, "x": 7, "y": 2 }, + { "w": 1, "x": 8, "y": 2 }, + { "w": 1, "x": 9, "y": 2 }, + { "w": 1, "x": 10, "y": 2 }, + { "w": 1, "x": 11, "y": 2 }, + { "w": 1, "x": 0, "y": 3 }, + { "w": 1, "x": 1, "y": 3 }, + { "w": 1, "x": 2, "y": 3 }, + { "w": 1, "x": 3, "y": 3 }, + { "w": 2, "x": 4, "y": 3 }, + { "w": 2, "x": 6, "y": 3 }, + { "w": 1, "x": 8, "y": 3 }, + { "w": 1, "x": 9, "y": 3 }, + { "w": 1, "x": 10, "y": 3 }, + { "w": 1, "x": 11, "y": 3 } ] + } + } +} diff --git a/keyboards/crbn/keymaps/default/keymap.c b/keyboards/crbn/keymaps/default/keymap.c new file mode 100644 index 000000000000..a86c5e3d6e6d --- /dev/null +++ b/keyboards/crbn/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2020 Harry Herring + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT_crbn_1x2u( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + + LAYOUT_crbn_1x2u( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LSFT(KC_NUHS), LSFT(KC_NUBS), KC_HOME, KC_END, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + + LAYOUT_crbn_1x2u( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + + LAYOUT_crbn_1x2u( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/crbn/readme.md b/keyboards/crbn/readme.md new file mode 100644 index 000000000000..a8a1535c3369 --- /dev/null +++ b/keyboards/crbn/readme.md @@ -0,0 +1,19 @@ +# CRBN + +A compact 40% (12x4) ortholinear keyboard kit made by Polarity Works and sold by keygem + +* Keyboard Maintainer: [ReFil](https://github.com/ReFil) +* Hardware Supported: CRBN kit with a pro micro +* Hardware Availability: [Keygem](https://keygem.store/collections/group-buys/products/group-buy-featherlight-40-kit) + +Support for this keyboard is available in the Polarity Works [discord](https://discord.gg/NysAH3Gser) + +Make example for this keyboard (after setting up your build environment): + + make crbn:default + +Flashing example for this keyboard: + + make crbn:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/crbn/rules.mk b/keyboards/crbn/rules.mk new file mode 100644 index 000000000000..9e47502904b9 --- /dev/null +++ b/keyboards/crbn/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes From ca8df55858953476f2681dc1de432f66c8765356 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cruz?= Date: Wed, 30 Dec 2020 03:40:58 +0000 Subject: [PATCH 068/140] Added mac variant of portuguese keymap extras (#11260) * Added mac variant of portuguese keymap This keymap is very similar to the existing portuguese keymap, but some symbols are moved around. Apply suggestions from code review Corrected whitespace and implemented some suggested changes. Co-authored-by: Ryan Converted some spaces to nbsp Added sendstring ISO version * Apply suggestions from code review Added suggestions from code review Co-authored-by: Ryan * Replaced space with nbsp * Corrected 2 chars in ascii_to_shift_lut { and } require shift Co-authored-by: Ryan --- docs/ja/reference_keymap_extras.md | 1 + docs/reference_keymap_extras.md | 1 + .../keymap_extras/keymap_portuguese_osx_iso.h | 234 ++++++++++++++++++ .../sendstring_portuguese_osx_iso.h | 100 ++++++++ 4 files changed, 336 insertions(+) create mode 100644 quantum/keymap_extras/keymap_portuguese_osx_iso.h create mode 100644 quantum/keymap_extras/sendstring_portuguese_osx_iso.h diff --git a/docs/ja/reference_keymap_extras.md b/docs/ja/reference_keymap_extras.md index e8104e5f3e68..fb9d167ae035 100644 --- a/docs/ja/reference_keymap_extras.md +++ b/docs/ja/reference_keymap_extras.md @@ -51,6 +51,7 @@ HID Keyboard/Keypad usage ページでは 256 未満の usage が定義されて | Norwegian | `keymap_norwegian.h` | | Polish | `keymap_polish.h` | | Portuguese | `keymap_portuguese.h` | +| Portuguese (macOS, ISO) | `keymap_portuguese_osx_iso.h` | | Portuguese (Brazil) | `keymap_br_abnt2.h` | | Romanian | `keymap_romanian.h` | | Russian* | `keymap_russian.h` | diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index 7e3d9bf274f7..f2abb4e596b7 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -46,6 +46,7 @@ To use these, simply `#include` the corresponding [header file](https://github.c |Norwegian |`keymap_norwegian.h` | |Polish |`keymap_polish.h` | |Portuguese |`keymap_portuguese.h` | +|Portuguese (macOS, ISO) |`keymap_portuguese_osx_iso.h` | |Portuguese (Brazil) |`keymap_br_abnt2.h` | |Romanian |`keymap_romanian.h` | |Russian* |`keymap_russian.h` | diff --git a/quantum/keymap_extras/keymap_portuguese_osx_iso.h b/quantum/keymap_extras/keymap_portuguese_osx_iso.h new file mode 100644 index 000000000000..b2e52063a97e --- /dev/null +++ b/quantum/keymap_extras/keymap_portuguese_osx_iso.h @@ -0,0 +1,234 @@ +/* Copyright 2020 + * + * 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 . + */ + +#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 +#define PT_SECT KC_GRV // § +#define PT_1 KC_1 // 1 +#define PT_2 KC_2 // 2 +#define PT_3 KC_3 // 3 +#define PT_4 KC_4 // 4 +#define PT_5 KC_5 // 5 +#define PT_6 KC_6 // 6 +#define PT_7 KC_7 // 7 +#define PT_8 KC_8 // 8 +#define PT_9 KC_9 // 9 +#define PT_0 KC_0 // 0 +#define PT_QUOT KC_MINS // ' +#define PT_PLUS KC_EQL // + +// Row 2 +#define PT_Q KC_Q // Q +#define PT_W KC_W // W +#define PT_E KC_E // E +#define PT_R KC_R // R +#define PT_T KC_T // T +#define PT_Y KC_Y // Y +#define PT_U KC_U // U +#define PT_I KC_I // I +#define PT_O KC_O // O +#define PT_P KC_P // P +#define PT_MORD KC_LBRC // º +#define PT_ACUT KC_RBRC // ´ (dead) +// Row 3 +#define PT_A KC_A // A +#define PT_S KC_S // S +#define PT_D KC_D // D +#define PT_F KC_F // F +#define PT_G KC_G // G +#define PT_H KC_H // H +#define PT_J KC_J // J +#define PT_K KC_K // K +#define PT_L KC_L // L +#define PT_CCED KC_SCLN // Ç +#define PT_TILD KC_QUOT // ~ (dead) +#define PT_BSLS KC_NUHS // (backslash) +// Row 4 +#define PT_LABK KC_NUBS // < +#define PT_Z KC_Z // Z +#define PT_X KC_X // X +#define PT_C KC_C // C +#define PT_V KC_V // V +#define PT_B KC_B // B +#define PT_N KC_N // N +#define PT_M KC_M // M +#define PT_COMM KC_COMM // , +#define PT_DOT KC_DOT // . +#define PT_MINS KC_SLSH // - + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ ± │ ! │ " │ # │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ * │     │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │     │   │   │   │   │   │   │   │   │   │   │ ª │ ` │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │ + * │      │   │   │   │   │   │   │   │   │   │   │ ^ │ | │  │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │    │ > │   │   │   │   │   │   │   │ ; │ : │ _ │        │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │     │    │     │                       │     │    │     │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define PT_PLMN S(PT_SECT) // ± +#define PT_EXLM S(PT_1) // ! +#define PT_DQUO S(PT_2) // " +#define PT_HASH S(PT_3) // # +#define PT_DLR S(PT_4) // $ +#define PT_PERC S(PT_5) // % +#define PT_AMPR S(PT_6) // & +#define PT_SLSH S(PT_7) // / +#define PT_LPRN S(PT_8) // ( +#define PT_RPRN S(PT_9) // ) +#define PT_EQL S(PT_0) // = +#define PT_QUES S(PT_QUOT) // ? +#define PT_ASTR S(PT_PLUS) // * +// Row 2 +#define PT_FORD S(PT_MORD) // ª +#define PT_GRV S(PT_ACUT) // ` (dead) +// Row 3 +#define PT_CIRC S(PT_TILD) // ^ (dead) +#define PT_PIPE S(PT_BSLS) // | +// Row 4 +#define PT_RABK S(PT_LABK) // > +#define PT_SCLN S(PT_COMM) // ; +#define PT_COLN S(PT_DOT) // : +#define PT_UNDS S(PT_MINS) // _ + +/* Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │   │  │ @ │ € │ £ │ ‰ │ ¶ │ ÷ │ [ │ ] │ ≠ │   │   │     │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │     │ Œ │ ∑ │ Æ │ ® │ ™ │ ¥ │ † │ ı │ Ø │ π │ ° │ ¨ │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │ + * │      │ Å │ ß │ ∂ │ ƒ │ ˙ │ ˇ │ ¯ │ „ │ ‘ │ ¸ │ ˜ │ ‹ │  │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │    │ ≤ │ Ω │ « │ © │ √ │ ∫ │ ¬ │ µ │ “ │ … │ — │        │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │     │    │     │                       │     │    │     │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define PT_APPL A(PT_1) //  (Apple logo) +#define PT_AT A(PT_2) // @ +#define PT_EURO A(PT_3) // € +#define PT_PND A(PT_4) // £ +#define PT_PERM A(PT_5) // ‰ +#define PT_PILC A(PT_6) // ¶ +#define PT_DIV A(PT_7) // ÷ +#define PT_LBRC A(PT_8) // [ +#define PT_RBRC A(PT_9) // ] +#define PT_NEQL A(PT_0) // ≠ +// Row 2 +#define PT_OE A(PT_Q) // Œ +#define PT_NARS A(PT_W) // ∑ +#define PT_AE A(PT_E) // Æ +#define PT_REGD A(PT_R) // ® +#define PT_TM A(PT_T) // ™ +#define PT_YEN A(PT_Y) // ¥ +#define PT_DAGG A(PT_U) // † +#define PT_DLSI A(PT_I) // ı +#define PT_OSTR A(PT_O) // Ø +#define PT_PI A(PT_P) // π +#define PT_DEG A(PT_MORD) // ° +#define PT_DIAE A(PT_ACUT) // ¨ (dead) +// Row 3 +#define PT_ARNG A(PT_A) // å +#define PT_SS A(PT_S) // ß +#define PT_PDIF A(PT_D) // ∂ +#define PT_FHK A(PT_F) // ƒ +#define PT_DOTA A(PT_G) // ˙ +#define PT_CARN A(PT_H) // ˇ +#define PT_MACR A(PT_J) // ¯ +#define PT_DLQU A(PT_K) // „ +#define PT_LSQU A(PT_L) // ‘ +#define PT_CEDL A(PT_CCED) // ¸ +#define PT_STIL A(PT_TILD) // ˜ (dead) +#define PT_LSAQ A(PT_BSLS) // ‹ +// Row 4 +#define PT_LTEQ A(PT_LABK) // ≤ +#define PT_OMEG A(PT_Z) // Ω +#define PT_LDAQ A(PT_X) // « +#define PT_COPY A(PT_C) // © +#define PT_SQRT A(PT_V) // √ +#define PT_INTG A(PT_B) // ∫ +#define PT_NOT A(PT_N) // ¬ +#define PT_MICR A(PT_M) // µ +#define PT_LDQU A(PT_COMM) // “ +#define PT_ELLP A(PT_DOT) // … +#define PT_MDSH A(PT_MINS) // — + +/* Shift+Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │   │ ¡ │ fi │ fl │ ¢ │ ∞ │ • │ ⁄ │ { │ } │ ≈ │ ¿ │ ◊ │     │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │     │   │   │   │   │   │   │ ‡ │ ˚ │   │ ∏ │   │ ˝ │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │ + * │      │   │   │ ∆ │   │   │   │   │ ‚ │ ’ │ ˛ │ ˆ │ › │  │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │    │ ≥ │   │ » │   │   │   │   │   │ ” │ · │ – │        │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │     │    │     │                       │     │    │     │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define PT_IEXL S(A(PT_1)) // ¡ +#define PT_FI S(A(PT_2)) // fi +#define PT_FL S(A(PT_3)) // fl +#define PT_CENT S(A(PT_4)) // ¢ +#define PT_INFN S(A(PT_5)) // ∞ +#define PT_BULT S(A(PT_6)) // • +#define PT_FRSL S(A(PT_7)) // ⁄ +#define PT_LCBR S(A(PT_8)) // { +#define PT_RCBR S(A(PT_9)) // } +#define PT_AEQL S(A(PT_0)) // ≈ +#define PT_IQUE S(A(PT_QUOT)) // ¿ +#define PT_LOZN S(A(PT_PLUS)) // ◊ +// Row 2 +#define PT_DDAG S(A(PT_U)) // ‡ +#define PT_RNGA S(A(PT_I)) // ˚ +#define PT_NARP S(A(PT_P)) // ∏ +#define PT_DACU S(A(PT_ACUT)) // ˝ +// Row 3 +#define PT_INCR S(A(PT_D)) // ∆ +#define PT_SLQU S(A(PT_K)) // ‚ +#define PT_RSQU S(A(PT_L)) // ’ +#define PT_OGON S(A(PT_CCED)) // ˛ +#define PT_DCIR S(A(PT_TILD)) // ˆ (dead) +#define PT_RSAQ S(A(PT_BSLS)) // › +// Row 4 +#define PT_GTEQ S(A(PT_LABK)) // ≥ +#define PT_RDAQ S(A(PT_X)) // » +#define PT_RDQU S(A(PT_COMM)) // ” +#define PT_MDDT S(A(PT_DOT)) // · +#define PT_NDSH S(A(PT_MINS)) // – diff --git a/quantum/keymap_extras/sendstring_portuguese_osx_iso.h b/quantum/keymap_extras/sendstring_portuguese_osx_iso.h new file mode 100644 index 000000000000..1799347f3077 --- /dev/null +++ b/quantum/keymap_extras/sendstring_portuguese_osx_iso.h @@ -0,0 +1,100 @@ +/* Copyright 2020 + * + * 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 . + */ + +// Sendstring lookup tables for Portuguese layouts + +#pragma once + +#include "keymap_portuguese_osx_iso.h" +#include "quantum.h" + +// clang-format off + +const uint8_t ascii_to_shift_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 0), + KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 1, 1, 0, 1, 1, 1), + KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 1, 1), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 0, 0) +}; + +const uint8_t ascii_to_altgr_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 0, 0) +}; + +const uint8_t ascii_to_keycode_lut[128] PROGMEM = { + // NUL SOH STX ETX EOT ENQ ACK BEL + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // BS TAB LF VT FF CR SO SI + KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // DLE DC1 DC2 DC3 DC4 NAK SYN ETB + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // CAN EM SUB ESC FS GS RS US + XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + // ! " # $ % & ' + KC_SPC, PT_1, PT_2, PT_3, PT_4, PT_5, PT_6, PT_QUOT, + // ( ) * + , - . / + PT_8, PT_9, PT_PLUS, PT_PLUS, PT_COMM, PT_MINS, PT_DOT, PT_7, + // 0 1 2 3 4 5 6 7 + PT_0, PT_1, PT_2, PT_3, PT_4, PT_5, PT_6, PT_7, + // 8 9 : ; < = > ? + PT_8, PT_9, PT_DOT, PT_COMM, PT_LABK, PT_0, PT_LABK, PT_QUOT, + // @ A B C D E F G + PT_2, PT_A, PT_B, PT_C, PT_D, PT_E, PT_F, PT_G, + // H I J K L M N O + PT_H, PT_I, PT_J, PT_K, PT_L, PT_M, PT_N, PT_O, + // P Q R S T U V W + PT_P, PT_Q, PT_R, PT_S, PT_T, PT_U, PT_V, PT_W, + // X Y Z [ \ ] ^ _ + PT_X, PT_Y, PT_Z, PT_8, PT_BSLS, PT_9, PT_TILD, PT_MINS, + // ` a b c d e f g + PT_ACUT, PT_A, PT_B, PT_C, PT_D, PT_E, PT_F, PT_G, + // h i j k l m n o + PT_H, PT_I, PT_J, PT_K, PT_L, PT_M, PT_N, PT_O, + // p q r s t u v w + PT_P, PT_Q, PT_R, PT_S, PT_T, PT_U, PT_V, PT_W, + // x y z { | } ~ DEL + PT_X, PT_Y, PT_Z, PT_8, PT_BSLS, PT_9, PT_TILD, KC_DEL +}; From a038b712d06e0197a5fc64b4c5ecea441e3ff374 Mon Sep 17 00:00:00 2001 From: swampmonster Date: Wed, 30 Dec 2020 04:55:40 +0100 Subject: [PATCH 069/140] [Keyboard] Add support to Kyria for the 2x2u layout (#11227) * Adding support for the 2 x 2u layout. This adds a macro to support the 2 x 2u layout which facilitates a cleaner looking layout configuration for the people using it. * Update keyboards/kyria/kyria.h Co-authored-by: Drashna Jaelre Co-authored-by: swampmonster <> Co-authored-by: Drashna Jaelre --- keyboards/kyria/kyria.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/keyboards/kyria/kyria.h b/keyboards/kyria/kyria.h index 13375ae882b1..de87c5ba514e 100644 --- a/keyboards/kyria/kyria.h +++ b/keyboards/kyria/kyria.h @@ -63,3 +63,20 @@ { R32, R33, R34, R35, R36, R37, R38, R39 }, \ { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \ } + +#define LAYOUT_split_3x6_5( \ + L00, L01, L02, L03, L04, L05, R06, R07, R08, R09, R10, R11, \ + L12, L13, L14, L15, L16, L17, R18, R19, R20, R21, R22, R23, \ + L24, L25, L26, L27, L28, L29, R34, R35, R36, R37, R38, R39, \ + L40, L41, L42, L43, L44, R45, R46, R47, R48, R49 \ +) \ +{ \ + { KC_NO, KC_NO, L05, L04, L03, L02, L01, L00 }, \ + { KC_NO, KC_NO, L17, L16, L15, L14, L13, L12 }, \ + { KC_NO, KC_NO, L29, L28, L27, L26, L25, L24 }, \ + { L44, L43, L42, L41, L40, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, R06, R07, R08, R09, R10, R11 }, \ + { KC_NO, KC_NO, R18, R19, R20, R21, R22, R23 }, \ + { KC_NO, KC_NO, R34, R35, R36, R37, R38, R39 }, \ + { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \ +} From 0f5f6a6a75b26d06ae5ee2b726eb97a67d04d325 Mon Sep 17 00:00:00 2001 From: Maurizio Porrato Date: Wed, 30 Dec 2020 04:12:02 +0000 Subject: [PATCH 070/140] Add libusb-devel dependency for fedora (#11287) On fedora 33, libusb-devel is required to build BootloadHID --- util/install/fedora.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/install/fedora.sh b/util/install/fedora.sh index 250cda66247d..44b71b98bff4 100755 --- a/util/install/fedora.sh +++ b/util/install/fedora.sh @@ -9,7 +9,7 @@ _qmk_install() { python3 \ avr-binutils avr-gcc avr-libc \ arm-none-eabi-binutils-cs arm-none-eabi-gcc-cs arm-none-eabi-newlib \ - avrdude dfu-programmer dfu-util + avrdude dfu-programmer dfu-util libusb-devel python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt } From 1aa8a3b4243ad3b2bdeea535dba3980c779171ea Mon Sep 17 00:00:00 2001 From: Enoch Date: Wed, 30 Dec 2020 01:06:02 -0800 Subject: [PATCH 071/140] [Keymap] Yd60mq add 64 key layout (#11207) * 64 key layout * add license * add license add name --- keyboards/yd60mq/keymaps/64key/keymap.c | 44 +++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 keyboards/yd60mq/keymaps/64key/keymap.c diff --git a/keyboards/yd60mq/keymaps/64key/keymap.c b/keyboards/yd60mq/keymaps/64key/keymap.c new file mode 100644 index 000000000000..3c27f14d11a0 --- /dev/null +++ b/keyboards/yd60mq/keymaps/64key/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 ec965 + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPACE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, MO(1), KC_RALT, LT(1, KC_APP),KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, + _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_GRV, + _______, BL_TOGG, BL_DEC, BL_INC, BL_BRTG, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, MO(2), _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_HOME + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_WAKE, _______, _______, _______, _______, _______, _______, _______, KC_PWR, _______, _______, _______, + _______, _______, KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; From 411b92e206746faa0b2264a155d5c9a64cf38a37 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 30 Dec 2020 20:58:57 +1100 Subject: [PATCH 072/140] Remove useless wait in AVR suspend code (#11352) --- tmk_core/common/avr/suspend.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index 11ac146eb80e..aa0d42680add 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -179,9 +179,6 @@ void suspend_wakeup_init(void) { #if defined(RGBLIGHT_SLEEP) && defined(RGBLIGHT_ENABLE) is_suspended = false; if (rgblight_enabled) { -# ifdef BOOTLOADER_TEENSY - wait_ms(10); -# endif rgblight_enable_noeeprom(); } rgblight_timer_enable(); From 6f6e28b4c73a29d9fc5ac2699c2ce65671ff8118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reibl=20J=C3=A1nos=20D=C3=A1niel?= Date: Wed, 30 Dec 2020 15:02:24 +0100 Subject: [PATCH 073/140] Add Arch / Manjaro section for Linux setup instructions (#10509) --- docs/newbs_getting_started.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index 3793fe767395..4609275d0b4f 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -93,7 +93,15 @@ Install the QMK CLI by running: python3 -m pip install --user qmk -On Arch-based distros you can also try the `qmk` package from AUR (**NOTE**: this package is maintained by a community member, and at the time of writing marks some dependencies as optional that should not be): +#### Community Packages + +These packages are maintained by community members, so may not be up to date or completely functional. If you encounter problems, please report them to their respective maintainers. + +On Arch-based distros you can install the CLI from the official repositories (NOTE: at the time of writing this package marks some dependencies as optional that should not be): + + sudo pacman -S qmk + +You can also try the `qmk` package from AUR: yay -S qmk From 70719004070731481ca71998ff9039e7747956ba Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 31 Dec 2020 02:44:53 +1100 Subject: [PATCH 074/140] Missed a couple more `#pragma once`s (#11351) --- tests/test_common/test_matrix.h | 5 +---- tmk_core/make_dfu_header.sh | 4 +--- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/tests/test_common/test_matrix.h b/tests/test_common/test_matrix.h index 174fc4f227d1..abfcc24048b0 100644 --- a/tests/test_common/test_matrix.h +++ b/tests/test_common/test_matrix.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef TESTS_TEST_COMMON_TEST_MATRIX_H_ -#define TESTS_TEST_COMMON_TEST_MATRIX_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -28,5 +27,3 @@ void clear_all_keys(void); #ifdef __cplusplus } #endif - -#endif /* TESTS_TEST_COMMON_TEST_MATRIX_H_ */ diff --git a/tmk_core/make_dfu_header.sh b/tmk_core/make_dfu_header.sh index 49ba66251a0a..7e2283dd70ae 100755 --- a/tmk_core/make_dfu_header.sh +++ b/tmk_core/make_dfu_header.sh @@ -3,8 +3,7 @@ ALL_CONFIGS=$* GREP="grep" cat <<- EOF > lib/lufa/Bootloaders/DFU/Keyboard.h -#ifndef QMK_KEYBOARD -#define QMK_KEYBOARD +#pragma once $($GREP "MANUFACTURER[ \t]" $ALL_CONFIGS -h | tail -1) $($GREP "PRODUCT[ \t]" $ALL_CONFIGS -h | tail -1 | tr -d '\r') Bootloader @@ -12,5 +11,4 @@ $($GREP "QMK_ESC_OUTPUT[ \t]" $ALL_CONFIGS -h | tail -1) $($GREP "QMK_ESC_INPUT[ \t]" $ALL_CONFIGS -h | tail -1) $($GREP "QMK_LED[ \t]" $ALL_CONFIGS -h | tail -1) $($GREP "QMK_SPEAKER[ \t]" $ALL_CONFIGS -h | tail -1) -#endif EOF From 5e5ee3f8de9a0c088db1fb51b421ad1db169ed54 Mon Sep 17 00:00:00 2001 From: Nick Blyumberg Date: Wed, 30 Dec 2020 11:34:40 -0500 Subject: [PATCH 075/140] Correct encoder pins on BDN9v2 (#11357) * Update config.h Wrong pin used for the left encoder, should be A4 * Update config.h Added a media keys fix as well --- keyboards/keebio/bdn9/rev2/config.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/keebio/bdn9/rev2/config.h b/keyboards/keebio/bdn9/rev2/config.h index a3716fddcdd8..f47c8addc5d6 100644 --- a/keyboards/keebio/bdn9/rev2/config.h +++ b/keyboards/keebio/bdn9/rev2/config.h @@ -40,7 +40,8 @@ along with this program. If not, see . // Left, Right, Middle #define ENCODERS_PAD_A { A8, B3, A10 } -#define ENCODERS_PAD_B { B11, A15, A9 } +#define ENCODERS_PAD_B { A4, A15, A9 } +#define TAP_CODE_DELAY 10 #define RGB_DI_PIN B15 #ifdef RGB_DI_PIN From 10096fc42e52e5b22acd6ceef941816401468998 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 31 Dec 2020 03:35:06 +1100 Subject: [PATCH 076/140] Zadig docs: add APM32 device name (#11356) --- docs/driver_installation_zadig.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md index 9b3e8fadeaea..81b8408868fb 100644 --- a/docs/driver_installation_zadig.md +++ b/docs/driver_installation_zadig.md @@ -71,7 +71,7 @@ The device name here is the name that appears in Zadig, and may not be what the |`caterina` |Arduino Micro |`2A03:0037` |usbser | |`bootloadHID`|HIDBoot |`16C0:05DF` |HidUsb | |`USBasp` |USBasp |`16C0:05DC` |libusbK| -|`apm32-dfu` |??? |`314B:0106` |WinUSB | +|`apm32-dfu` |APM32 DFU ISP Mode |`314B:0106` |WinUSB | |`stm32-dfu` |STM32 BOOTLOADER |`0483:DF11` |WinUSB | |`kiibohd` |Kiibohd DFU Bootloader |`1C11:B007` |WinUSB | |`stm32duino` |Maple 003 |`1EAF:0003` |WinUSB | From 6169b47e82b475c629f9a957f8c36ea39e47ea50 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Thu, 31 Dec 2020 15:20:56 +0900 Subject: [PATCH 077/140] Add target 'check-md5' to `build_keyboard.mk` (#11338) * Add target 'build-for-compare' to `build_keyboard.mk` The `build-for-compare` target provides an easy way to check the md5 checksum of the generated binary. You can easily see if there is any change in the generated binaries between the two versions, as in the example below. ``` $ git checkout 0.11.0 M build_keyboard.mk M tmk_core/rules.mk Note: checking out '0.11.0'. HEAD is now at c66df1664 2020 November 28 Breaking Changes Update (#11053) $ make helix:all:build-for-compare | grep ^MD5 MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6 MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934 MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791 MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6 MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d MD5 (.build/helix_rev2_xulkal.hex) = 01f603dc46bcf9094d7e106831d8f5b1 MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba $ git checkout 0.11.1 M build_keyboard.mk M tmk_core/rules.mk Previous HEAD position was c66df1664 2020 November 28 Breaking Changes Update (#11053) HEAD is now at cc08e3082 nix-shell: add milc dependency (#11086) $ make helix:all:build-for-compare | grep ^MD5 MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6 MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934 MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791 MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6 MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d MD5 (.build/helix_rev2_xulkal.hex) = d848383adfd7463b138c6da179cf1436 MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba ``` * make builds reproducable by default * update build_keyboard.mk: remove 'build-for-compare' target * GNU make (3.81) on macOS 10.14(Mojave) does not have the 'undefine' directive. * Adopted fauxpark's suggestion. * Update tmk_core/rules.mk Co-authored-by: Ryan * update tmk_core/rules.mk * fix tmk_core/rules.mk Co-authored-by: Zach White Co-authored-by: Ryan --- build_keyboard.mk | 1 + tmk_core/common/command.c | 4 +--- tmk_core/rules.mk | 19 +++++++++++++++---- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/build_keyboard.mk b/build_keyboard.mk index e87dcb8f22c8..2b725ea68d4b 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -368,6 +368,7 @@ endif build: elf cpfirmware check-size: build +check-md5: build objs-size: build include show_options.mk diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index feeb2202e2b2..59aa4e4d34fb 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -144,10 +144,8 @@ static void print_version(void) { print("VID: " STR(VENDOR_ID) "(" STR(MANUFACTURER) ") " "PID: " STR(PRODUCT_ID) "(" STR(PRODUCT) ") " "VER: " STR(DEVICE_VER) "\n"); -#ifdef SKIP_VERSION print("BUILD: (" __DATE__ ")\n"); -#else - print("BUILD: " STR(QMK_VERSION) " (" __TIME__ " " __DATE__ ")\n"); +#ifndef SKIP_VERSION # ifdef PROTOCOL_CHIBIOS print("CHIBIOS: " STR(CHIBIOS_VERSION) ", CONTRIB: " STR(CHIBIOS_CONTRIB_VERSION) "\n"); # endif diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index a7053d185c60..a77e55dd13a7 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -79,7 +79,12 @@ CSTANDARD = -std=gnu99 # -Wall...: warning level # -Wa,...: tell GCC to pass this to the assembler. # -adhlns...: create assembler listing -ifndef SKIP_DEBUG_INFO +DEBUG_ENABLE ?= yes +ifeq ($(strip $(SKIP_DEBUG_INFO)),yes) + DEBUG_ENABLE=no +endif + +ifeq ($(strip $(DEBUG_ENABLE)),yes) CFLAGS += -g$(DEBUG) endif CFLAGS += $(CDEFS) @@ -110,7 +115,7 @@ CFLAGS += $(CSTANDARD) # -Wall...: warning level # -Wa,...: tell GCC to pass this to the assembler. # -adhlns...: create assembler listing -ifndef SKIP_DEBUG_INFO +ifeq ($(strip $(DEBUG_ENABLE)),yes) CXXFLAGS += -g$(DEBUG) endif CXXFLAGS += $(CXXDEFS) @@ -140,7 +145,7 @@ CXXFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) # -listing-cont-lines: Sets the maximum number of continuation lines of hex # dump that will be displayed for a given single line of source input. ASFLAGS += $(ADEFS) -ifndef SKIP_DEBUG_INFO +ifeq ($(strip $(DEBUG_ENABLE)),yes) ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100 else ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100 @@ -202,7 +207,10 @@ REMOVEDIR = rmdir COPY = cp WINSHELL = cmd SECHO = $(SILENT) || echo - +MD5SUM ?= md5sum +ifneq ($(filter Darwin FreeBSD,$(shell uname -s)),) + MD5SUM = md5 +endif # Compiler flags to generate dependency files. #GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d @@ -431,6 +439,9 @@ check-size: $(SILENT) || echo "(Firmware size check does not yet support $(MCU) microprocessors; skipping.)" endif +check-md5: + $(MD5SUM) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT) + # Create build directory $(shell mkdir -p $(BUILD_DIR) 2>/dev/null) From 9f690c94b85ce98019e18eba7f079eb0188a8735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20A=2E=20Volpato?= Date: Thu, 31 Dec 2020 09:58:59 -0300 Subject: [PATCH 078/140] Change PRODUCT_ID descriptors for M80S and M80H (#11371) * Change PRODUCT_ID descriptors for M80S and M80H * Update config.h * Update config.h * Update config.h * Remove PRODUCT_ID from root config.h --- keyboards/mode/eighty/config.h | 1 - keyboards/mode/eighty/m80h/config.h | 1 + keyboards/mode/eighty/m80s/config.h | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/mode/eighty/config.h b/keyboards/mode/eighty/config.h index 99b29de58a2c..d0c61d11933b 100644 --- a/keyboards/mode/eighty/config.h +++ b/keyboards/mode/eighty/config.h @@ -18,7 +18,6 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0x00DE -#define PRODUCT_ID 0x0080 #define MANUFACTURER Mode #define PRODUCT Eighty diff --git a/keyboards/mode/eighty/m80h/config.h b/keyboards/mode/eighty/m80h/config.h index 59935985e432..b119ad4fff37 100644 --- a/keyboards/mode/eighty/m80h/config.h +++ b/keyboards/mode/eighty/m80h/config.h @@ -18,4 +18,5 @@ along with this program. If not, see . #pragma once /* USB Device descriptor parameter */ +#define PRODUCT_ID 0x0081 #define DEVICE_VER 0x0072 //H for hotswap version diff --git a/keyboards/mode/eighty/m80s/config.h b/keyboards/mode/eighty/m80s/config.h index d34932a003ce..3e7f2ec3a808 100644 --- a/keyboards/mode/eighty/m80s/config.h +++ b/keyboards/mode/eighty/m80s/config.h @@ -18,4 +18,5 @@ along with this program. If not, see . #pragma once /* USB Device descriptor parameter */ +#define PRODUCT_ID 0x0080 #define DEVICE_VER 0x0083 //S for solderable version From 028d2c91dc5175904ee57917e2a90028569e0f8f Mon Sep 17 00:00:00 2001 From: Chas Date: Thu, 31 Dec 2020 06:53:06 -0800 Subject: [PATCH 079/140] Fixed typo in readme.md (#11333) * Fixed typo in readme.md censor -> sensor * Censor -> Sensor in the Ploopy Trackball Readme --- keyboards/ploopyco/mouse/readme.md | 2 +- keyboards/ploopyco/trackball/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ploopyco/mouse/readme.md b/keyboards/ploopyco/mouse/readme.md index 5532a199865a..ff37a6b8076a 100644 --- a/keyboards/ploopyco/mouse/readme.md +++ b/keyboards/ploopyco/mouse/readme.md @@ -19,7 +19,7 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to # Customzing your PloopyCo Mouse -While the defaults are designed so that it can be plugged in and used right away, there are a number of things that you may want to change. Such as adding DPI control, or to use the ball to scroll while holding a button. To allow for this sort of control, there is a callback for both the scroll wheel and the mouse censor. +While the defaults are designed so that it can be plugged in and used right away, there are a number of things that you may want to change. Such as adding DPI control, or to use the ball to scroll while holding a button. To allow for this sort of control, there is a callback for both the scroll wheel and the mouse sensor. The default behavior for this is: diff --git a/keyboards/ploopyco/trackball/readme.md b/keyboards/ploopyco/trackball/readme.md index 714f610346df..f34bbac30755 100644 --- a/keyboards/ploopyco/trackball/readme.md +++ b/keyboards/ploopyco/trackball/readme.md @@ -27,7 +27,7 @@ The PCB should indicate which revision this is. # Customzing your PloopyCo Trackball -While the defaults are designed so that it can be plugged in and used right away, there are a number of things that you may want to change. Such as adding DPI control, or to use the ball to scroll while holding a button. To allow for this sort of control, there is a callback for both the scroll wheel and the mouse censor. +While the defaults are designed so that it can be plugged in and used right away, there are a number of things that you may want to change. Such as adding DPI control, or to use the ball to scroll while holding a button. To allow for this sort of control, there is a callback for both the scroll wheel and the mouse sensor. The default behavior for this is: From 4ef4347543da5dcd93f342b2728840c6e0407906 Mon Sep 17 00:00:00 2001 From: npspears <40127181+npspears@users.noreply.github.com> Date: Thu, 31 Dec 2020 09:00:08 -0600 Subject: [PATCH 080/140] Quark PCB for Planck/Preonic (#11206) * Quark PCB for Planck/Preonic Quark provides alternate bottom row layouts for both the OLKB Planck and Preonic * Rename rules.mk.txt to rules.mk * added Tapping Toggle removed tapping toggle from keymap level * Update info.json took out } as requested * update config.h added GPL2+ license and #pragma once * update info.json again cleaned up syntax * Apply suggestions from code review Co-authored-by: Drashna Jaelre * update config.h added GPL2+ License * Update info.json - and again fixed it - oops Co-authored-by: Drashna Jaelre --- keyboards/quark/config.h | 75 +++++++++++++ keyboards/quark/info.json | 33 ++++++ keyboards/quark/keymaps/default/config.h | 2 + keyboards/quark/keymaps/default/keymap.c | 88 +++++++++++++++ keyboards/quark/keymaps/default/readme.md | 2 + .../quark/keymaps/default_4x12_2x225/config.h | 2 + .../quark/keymaps/default_4x12_2x225/keymap.c | 83 ++++++++++++++ .../quark/keymaps/default_4x12_2x3/config.h | 2 + .../quark/keymaps/default_4x12_2x3/keymap.c | 83 ++++++++++++++ .../quark/keymaps/default_4x12_grid/config.h | 2 + .../quark/keymaps/default_4x12_grid/keymap.c | 83 ++++++++++++++ .../quark/keymaps/default_4x12_mit/config.h | 19 ++++ .../quark/keymaps/default_4x12_mit/keymap.c | 83 ++++++++++++++ .../quark/keymaps/default_5x12_2x3/config.h | 18 +++ .../quark/keymaps/default_5x12_2x3/keymap.c | 89 +++++++++++++++ keyboards/quark/keymaps/via/keymap.c | 88 +++++++++++++++ keyboards/quark/keymaps/via/rules.mk | 1 + keyboards/quark/quark.c | 1 + keyboards/quark/quark.h | 106 ++++++++++++++++++ keyboards/quark/readme.md | 15 +++ keyboards/quark/rules.mk | 24 ++++ 21 files changed, 899 insertions(+) create mode 100644 keyboards/quark/config.h create mode 100644 keyboards/quark/info.json create mode 100644 keyboards/quark/keymaps/default/config.h create mode 100644 keyboards/quark/keymaps/default/keymap.c create mode 100644 keyboards/quark/keymaps/default/readme.md create mode 100644 keyboards/quark/keymaps/default_4x12_2x225/config.h create mode 100644 keyboards/quark/keymaps/default_4x12_2x225/keymap.c create mode 100644 keyboards/quark/keymaps/default_4x12_2x3/config.h create mode 100644 keyboards/quark/keymaps/default_4x12_2x3/keymap.c create mode 100644 keyboards/quark/keymaps/default_4x12_grid/config.h create mode 100644 keyboards/quark/keymaps/default_4x12_grid/keymap.c create mode 100644 keyboards/quark/keymaps/default_4x12_mit/config.h create mode 100644 keyboards/quark/keymaps/default_4x12_mit/keymap.c create mode 100644 keyboards/quark/keymaps/default_5x12_2x3/config.h create mode 100644 keyboards/quark/keymaps/default_5x12_2x3/keymap.c create mode 100644 keyboards/quark/keymaps/via/keymap.c create mode 100644 keyboards/quark/keymaps/via/rules.mk create mode 100644 keyboards/quark/quark.c create mode 100644 keyboards/quark/quark.h create mode 100644 keyboards/quark/readme.md create mode 100644 keyboards/quark/rules.mk diff --git a/keyboards/quark/config.h b/keyboards/quark/config.h new file mode 100644 index 000000000000..084891b2ce3e --- /dev/null +++ b/keyboards/quark/config.h @@ -0,0 +1,75 @@ +/* Copyright 2015-2017 Jack Humbert + * Modified by Nasp for the Quark + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7070 +#define PRODUCT_ID 0x5340 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nasp +#define PRODUCT QUARK + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { C5, C4, C6, C7, B7 } +#define MATRIX_COL_PINS { B4, B5, B6, B3, C2, B2, B1, D2, D3, D4, D5, D6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +// ws2812 options +#define RGB_DI_PIN D0 // pin the DI on the ws2812 is hooked-up to +#define RGBLIGHT_ANIMATIONS // run RGB animations +#define RGBLED_NUM 14 // number of LEDs +#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue +#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation +#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/info.json b/keyboards/quark/info.json new file mode 100644 index 000000000000..1687a1240322 --- /dev/null +++ b/keyboards/quark/info.json @@ -0,0 +1,33 @@ +{ + "keyboard_name": "QUARK", + "url": "", + "maintainer": "nasp", + "width": 12, + "height": 5, + "layouts": { + "LAYOUT_5x12_2x225": { + "layout": + [{"label":"_", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"+", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"CTRL", "x":0, "y":4, "w":1.25}, {"label":"WIN", "x":1.25, "y":4, "w":1.25}, {"label":"ALT", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":2.25}, {"label":"ALT", "x":8.25, "y":4, "w":1.25}, {"label":"MENU", "x":9.5, "y":4, "w":1.25}, {"label":"CTRL", "x":10.75, "y":4, "w":1.25}] + }, + "LAYOUT_5x12_2x3": { + "layout": + [{"label":"_", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"+", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"CTRL", "x":0, "y":4, "w":1.5}, {"label":"ALT", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":3}, {"x":6, "y":4, "w":3}, {"label":"ALT", "x":9, "y":4, "w":1.5}, {"label":"MENU", "x":10.5, "y":4, "w":1.5}] + }, + "LAYOUT_4x12_Grid": { + "layout": + [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"MENU", "x":2, "y":3}, {"label":"ALT", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"LEFT", "x":8, "y":3}, {"label":"DOWN", "x":9, "y":3}, {"label":"UP", "x":10, "y":3}, {"label":"RIGHT", "x":11, "y":3}] + }, + "LAYOUT_4x12_MIT": { + "layout": + [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"MENU", "x":2, "y":3}, {"label":"ALT", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3, "w":2}, {"label":"⇑", "x":7, "y":3}, {"label":"LEFT", "x":8, "y":3}, {"label":"DOWN", "x":9, "y":3}, {"label":"UP", "x":10, "y":3}, {"label":"RIGHT", "x":11, "y":3}] + }, + "LAYOUT_4x12_2x225": { + "layout": + [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3, "w":1.25}, {"label":"WIN", "x":1.25, "y":3, "w":1.25}, {"label":"ALT", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"label":"ALT", "x":8.25, "y":3, "w":1.25}, {"label":"MENU", "x":9.5, "y":3, "w":1.25}, {"label":"CTRL", "x":10.75, "y":3, "w":1.25}] + }, + "LAYOUT_4x12_2x3": { + "layout": + [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"ALT", "x":2, "y":3}, {"x":3, "y":3, "w":3}, {"x":6, "y":3, "w":3}, {"label":"ALT", "x":9, "y":3}, {"label":"MENU", "x":10, "y":3}, {"label":"CTRL", "x":11, "y":3}] + } + } +} diff --git a/keyboards/quark/keymaps/default/config.h b/keyboards/quark/keymaps/default/config.h new file mode 100644 index 000000000000..311c729c521a --- /dev/null +++ b/keyboards/quark/keymaps/default/config.h @@ -0,0 +1,2 @@ + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default/keymap.c b/keyboards/quark/keymaps/default/keymap.c new file mode 100644 index 000000000000..87e03fa18027 --- /dev/null +++ b/keyboards/quark/keymaps/default/keymap.c @@ -0,0 +1,88 @@ +/* Copyright 2020 Nathan Spears + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* [0] + * ,-----------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ +[0] = LAYOUT_5x12_2x225( \ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS +), + +/* [1] +* ,---------------------------------------------------------------------------------------. +* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | +* |------------+------+------+------+------+------+------+------+------+------+------+----| +* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | +* |------------+------+------+------+------+-------------+------+------+------+------+----| +* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | +* |------------+------+------+------+------+------|------+------+------+------+------+----| +* | | | | | | | | + | = | | | | +* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| +* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | +* `---------------------------------------------------------------------------------------' +*/ +[1] = LAYOUT_5x12_2x225( \ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ +), + +/* [2] +* ,---------------------------------------------------------------------------------------. +* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | +* |------------+------+------+------+------+------+------+------+------+------+------+---| +* | | | | UP | | | | _ | | [ | ] | | +* |------------+------+------+------+------+-------------+------+------+------+------+---| +* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | +* |------------+------+------+------+------+-----+-----+------+------+------+------+-----| +* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| +* | RESET | | | | | | | | +* `---------------------------------------------------------------------------------------' + */ +[2] = LAYOUT_5x12_2x225( \ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ +), + +}; diff --git a/keyboards/quark/keymaps/default/readme.md b/keyboards/quark/keymaps/default/readme.md new file mode 100644 index 000000000000..1e0d8e25c498 --- /dev/null +++ b/keyboards/quark/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# The Default Quark Layout + diff --git a/keyboards/quark/keymaps/default_4x12_2x225/config.h b/keyboards/quark/keymaps/default_4x12_2x225/config.h new file mode 100644 index 000000000000..311c729c521a --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_2x225/config.h @@ -0,0 +1,2 @@ + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_4x12_2x225/keymap.c b/keyboards/quark/keymaps/default_4x12_2x225/keymap.c new file mode 100644 index 000000000000..d94d62026c71 --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_2x225/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2015-2017 Jack Humbert + * Modified by Nasp for the Quark + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_4x12_2x225( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_4x12_2x225( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_4x12_2x225( \ + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ + ), + + }; diff --git a/keyboards/quark/keymaps/default_4x12_2x3/config.h b/keyboards/quark/keymaps/default_4x12_2x3/config.h new file mode 100644 index 000000000000..311c729c521a --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_2x3/config.h @@ -0,0 +1,2 @@ + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_4x12_2x3/keymap.c b/keyboards/quark/keymaps/default_4x12_2x3/keymap.c new file mode 100644 index 000000000000..938fb6824eab --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_2x3/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2015-2017 Jack Humbert + * Modified by Nasp for the Quark + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* [0] +* ,-----------------------------------------------------------------------------------------. +* |------------+------+------+------+------+------+------+------+------+------+------+------| +* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | +* |------------+------+------+------+------+-------------+------+------+------+------+------| +* | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | +* |------------+------+------+------+------+------|------+------+------+------+------+------| +* | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | +* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| +* | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | +* `-----------------------------------------------------------------------------------------' +*/ +[0] = LAYOUT_4x12_2x3( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), + +/* [1] +* ,---------------------------------------------------------------------------------------. +* |------------+------+------+------+------+------+------+------+------+------+------+----| +* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | +* |------------+------+------+------+------+-------------+------+------+------+------+----| +* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | +* |------------+------+------+------+------+------|------+------+------+------+------+----| +* | | | | | | | | + | = | | | | +* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| +* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | +* `---------------------------------------------------------------------------------------' +*/ +[1] = LAYOUT_4x12_2x3( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + +/* [2] +* ,---------------------------------------------------------------------------------------. +* |------------+------+------+------+------+------+------+------+------+------+------+---| +* | | | | UP | | | | _ | | [ | ] | | +* |------------+------+------+------+------+-------------+------+------+------+------+---| +* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | +* |------------+------+------+------+------+-----+-----+------+------+------+------+-----| +* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| +* | RESET | | | | | | | | +* `---------------------------------------------------------------------------------------' + */ +[2] = LAYOUT_4x12_2x3( \ + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ + ), + + }; diff --git a/keyboards/quark/keymaps/default_4x12_grid/config.h b/keyboards/quark/keymaps/default_4x12_grid/config.h new file mode 100644 index 000000000000..311c729c521a --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_grid/config.h @@ -0,0 +1,2 @@ + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_4x12_grid/keymap.c b/keyboards/quark/keymaps/default_4x12_grid/keymap.c new file mode 100644 index 000000000000..3eb0e8f86c21 --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_grid/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2015-2017 Jack Humbert + * Modified by Nasp for the Quark + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | DEL | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTRL&ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | SHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | Ctrl | ALT | GUI |LOWER |SPACE |SPACE|RAISE | LEFT | DOWN | UP |RIGHT | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_4x12( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LCTL, KC_LALT, KC_LGUI, TT(1), KC_SPC, KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | | | ESC |CTRL-ALT-DEL|TASK| | | | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_4x12( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, + _______, KC_ESC, CALTDEL, TSKMGR, _______, _______, _______, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * |RESET | | | | | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_4x12( \ + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + }; diff --git a/keyboards/quark/keymaps/default_4x12_mit/config.h b/keyboards/quark/keymaps/default_4x12_mit/config.h new file mode 100644 index 000000000000..2e3dbdb6864a --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_mit/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Nathan_Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_4x12_mit/keymap.c b/keyboards/quark/keymaps/default_4x12_mit/keymap.c new file mode 100644 index 000000000000..db2042e63678 --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_mit/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2015-2017 Jack Humbert + * Modified by Nasp for the Quark + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | DEL | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTRL&ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | SHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | Ctrl | ALT | GUI |LOWER | SPACE |RAISE | LEFT | DOWN | UP |RIGHT | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_4x12_MIT( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LCTL, KC_LALT, KC_LGUI, TT(1), KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | | | ESC |CTRL-ALT-DEL|TASK| | | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_4x12_MIT( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, + _______, KC_ESC, CALTDEL, TSKMGR, _______, _______, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * |RESET | | | | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_4x12_MIT( \ + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + }; diff --git a/keyboards/quark/keymaps/default_5x12_2x3/config.h b/keyboards/quark/keymaps/default_5x12_2x3/config.h new file mode 100644 index 000000000000..ef97c811fce5 --- /dev/null +++ b/keyboards/quark/keymaps/default_5x12_2x3/config.h @@ -0,0 +1,18 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_5x12_2x3/keymap.c b/keyboards/quark/keymaps/default_5x12_2x3/keymap.c new file mode 100644 index 000000000000..8b3cf03119c6 --- /dev/null +++ b/keyboards/quark/keymaps/default_5x12_2x3/keymap.c @@ -0,0 +1,89 @@ +/* Copyright 2015-2017 Jack Humbert + * Modified by Nasp for the Quark + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* [0] + * ,-----------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | OS | Alt | Layer | Space & Layer | [ | ] | + * `-----------------------------------------------------------------------------------------' + */ +[0] = LAYOUT_5x12_2x3( \ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC +), + +/* [1] +* ,---------------------------------------------------------------------------------------. +* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | +* |------------+------+------+------+------+------+------+------+------+------+------+----| +* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | +* |------------+------+------+------+------+-------------+------+------+------+------+----| +* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | +* |------------+------+------+------+------+------|------+------+------+------+------+----| +* | | | | | | | | + | = | | | | +* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| +* | ESC | CTRL-ALT-DEL | | | '|' | ` | +* `---------------------------------------------------------------------------------------' +*/ +[1] = LAYOUT_5x12_2x3( \ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, _______, _______, KC_NUBS, KC_GRV +), + +/* [2] +* ,---------------------------------------------------------------------------------------. +* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | +* |------------+------+------+------+------+------+------+------+------+------+------+---| +* | | | | UP | | | | _ | | [ | ] | | +* |------------+------+------+------+------+-------------+------+------+------+------+---| +* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | +* |------------+------+------+------+------+-----+-----+------+------+------+------+-----| +* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| +* | RESET | | | | | | +* `---------------------------------------------------------------------------------------' + */ +[2] = LAYOUT_5x12_2x3( \ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______ +), + +}; diff --git a/keyboards/quark/keymaps/via/keymap.c b/keyboards/quark/keymaps/via/keymap.c new file mode 100644 index 000000000000..87e03fa18027 --- /dev/null +++ b/keyboards/quark/keymaps/via/keymap.c @@ -0,0 +1,88 @@ +/* Copyright 2020 Nathan Spears + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* [0] + * ,-----------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ +[0] = LAYOUT_5x12_2x225( \ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS +), + +/* [1] +* ,---------------------------------------------------------------------------------------. +* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | +* |------------+------+------+------+------+------+------+------+------+------+------+----| +* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | +* |------------+------+------+------+------+-------------+------+------+------+------+----| +* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | +* |------------+------+------+------+------+------|------+------+------+------+------+----| +* | | | | | | | | + | = | | | | +* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| +* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | +* `---------------------------------------------------------------------------------------' +*/ +[1] = LAYOUT_5x12_2x225( \ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ +), + +/* [2] +* ,---------------------------------------------------------------------------------------. +* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | +* |------------+------+------+------+------+------+------+------+------+------+------+---| +* | | | | UP | | | | _ | | [ | ] | | +* |------------+------+------+------+------+-------------+------+------+------+------+---| +* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | +* |------------+------+------+------+------+-----+-----+------+------+------+------+-----| +* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| +* | RESET | | | | | | | | +* `---------------------------------------------------------------------------------------' + */ +[2] = LAYOUT_5x12_2x225( \ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ +), + +}; diff --git a/keyboards/quark/keymaps/via/rules.mk b/keyboards/quark/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/quark/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/quark/quark.c b/keyboards/quark/quark.c new file mode 100644 index 000000000000..6b962a893748 --- /dev/null +++ b/keyboards/quark/quark.c @@ -0,0 +1 @@ +#include "quark.h" diff --git a/keyboards/quark/quark.h b/keyboards/quark/quark.h new file mode 100644 index 000000000000..a81b062d0160 --- /dev/null +++ b/keyboards/quark/quark.h @@ -0,0 +1,106 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + + +#pragma once + +#include "quantum.h" + +#define LAYOUT_5x12_2x225( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, \ + k400, k401, k402, k403, k404, k405, k406, k407 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311 }, \ + { k400, k401, KC_NO, k402, k403, KC_NO, KC_NO, k404, k405, KC_NO, k406, k407 } \ +} + +#define LAYOUT_5x12_2x3( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, \ + k400, k401, k402, k403, k404, k405 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311 }, \ + { k400, k401, KC_NO, KC_NO, k402, KC_NO, KC_NO, k403, KC_NO, KC_NO, k404, k405 } \ +} + +#define LAYOUT_ortho_4x12( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311 }, \ + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \ +} + +#define LAYOUT_4x12_MIT( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ + { k300, k301, k302, k303, k304, k305, KC_NO, k306, k307, k308, k309, k310 }, \ + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \ +} + +#define LAYOUT_4x12_2x225( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ + k300, k301, k302, k303, k304, k305, k306, k307 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ + { k300, k301, KC_NO, k302, k303, KC_NO, KC_NO, k304, k305, KC_NO, k306, k307 }, \ + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \ +} + +#define LAYOUT_4x12_2x3( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ + k300, k301, k302, k303, k304, k305, k306, k307 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ + { k300, k301, k302, KC_NO, k303, KC_NO, KC_NO, k304, KC_NO, k305, k306, k307 }, \ + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \ +} diff --git a/keyboards/quark/readme.md b/keyboards/quark/readme.md new file mode 100644 index 000000000000..def04f59f358 --- /dev/null +++ b/keyboards/quark/readme.md @@ -0,0 +1,15 @@ +# Quark + +![Quark](https://i.imgur.com/WcvKyf4.jpg) + +The Quark PCB is a modified layout for the Planck by OLKB. It's similar to a Planck, but the bottom row was designed to be more useable-larger than 1u keys. + +Keyboard Maintainer: [Nasp](https://github.com/npspears) +Hardware Supported: Planck +Hardware Availability: https://forms.gle/ZpGtQjBNtsbuSV767 + +Make example for this keyboard (after setting up your build environment): + + make quark:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/quark/rules.mk b/keyboards/quark/rules.mk new file mode 100644 index 000000000000..535d7c25c5cd --- /dev/null +++ b/keyboards/quark/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes # Unicode + +LAYOUTS = ortho_4x12 From a68d289fa58210fc26c6eba9ff4832d39473c71d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 31 Dec 2020 16:50:32 +0000 Subject: [PATCH 081/140] Manually run formatting CI process (#11375) --- keyboards/quark/info.json | 66 +++++++++---------- .../protocol/arm_atsam/usb/udi_hid_kbd_desc.c | 2 +- tmk_core/protocol/chibios/usb_main.c | 14 ++-- tmk_core/protocol/usb_descriptor.h | 6 +- 4 files changed, 44 insertions(+), 44 deletions(-) diff --git a/keyboards/quark/info.json b/keyboards/quark/info.json index 1687a1240322..5c685743489e 100644 --- a/keyboards/quark/info.json +++ b/keyboards/quark/info.json @@ -1,33 +1,33 @@ -{ - "keyboard_name": "QUARK", - "url": "", - "maintainer": "nasp", - "width": 12, - "height": 5, - "layouts": { - "LAYOUT_5x12_2x225": { - "layout": - [{"label":"_", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"+", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"CTRL", "x":0, "y":4, "w":1.25}, {"label":"WIN", "x":1.25, "y":4, "w":1.25}, {"label":"ALT", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":2.25}, {"label":"ALT", "x":8.25, "y":4, "w":1.25}, {"label":"MENU", "x":9.5, "y":4, "w":1.25}, {"label":"CTRL", "x":10.75, "y":4, "w":1.25}] - }, - "LAYOUT_5x12_2x3": { - "layout": - [{"label":"_", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"+", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"CTRL", "x":0, "y":4, "w":1.5}, {"label":"ALT", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":3}, {"x":6, "y":4, "w":3}, {"label":"ALT", "x":9, "y":4, "w":1.5}, {"label":"MENU", "x":10.5, "y":4, "w":1.5}] - }, - "LAYOUT_4x12_Grid": { - "layout": - [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"MENU", "x":2, "y":3}, {"label":"ALT", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"LEFT", "x":8, "y":3}, {"label":"DOWN", "x":9, "y":3}, {"label":"UP", "x":10, "y":3}, {"label":"RIGHT", "x":11, "y":3}] - }, - "LAYOUT_4x12_MIT": { - "layout": - [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"MENU", "x":2, "y":3}, {"label":"ALT", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3, "w":2}, {"label":"⇑", "x":7, "y":3}, {"label":"LEFT", "x":8, "y":3}, {"label":"DOWN", "x":9, "y":3}, {"label":"UP", "x":10, "y":3}, {"label":"RIGHT", "x":11, "y":3}] - }, - "LAYOUT_4x12_2x225": { - "layout": - [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3, "w":1.25}, {"label":"WIN", "x":1.25, "y":3, "w":1.25}, {"label":"ALT", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"label":"ALT", "x":8.25, "y":3, "w":1.25}, {"label":"MENU", "x":9.5, "y":3, "w":1.25}, {"label":"CTRL", "x":10.75, "y":3, "w":1.25}] - }, - "LAYOUT_4x12_2x3": { - "layout": - [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"ALT", "x":2, "y":3}, {"x":3, "y":3, "w":3}, {"x":6, "y":3, "w":3}, {"label":"ALT", "x":9, "y":3}, {"label":"MENU", "x":10, "y":3}, {"label":"CTRL", "x":11, "y":3}] - } - } -} +{ + "keyboard_name": "QUARK", + "url": "", + "maintainer": "nasp", + "width": 12, + "height": 5, + "layouts": { + "LAYOUT_5x12_2x225": { + "layout": + [{"label":"_", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"+", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"CTRL", "x":0, "y":4, "w":1.25}, {"label":"WIN", "x":1.25, "y":4, "w":1.25}, {"label":"ALT", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":2.25}, {"label":"ALT", "x":8.25, "y":4, "w":1.25}, {"label":"MENU", "x":9.5, "y":4, "w":1.25}, {"label":"CTRL", "x":10.75, "y":4, "w":1.25}] + }, + "LAYOUT_5x12_2x3": { + "layout": + [{"label":"_", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"+", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"CTRL", "x":0, "y":4, "w":1.5}, {"label":"ALT", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":3}, {"x":6, "y":4, "w":3}, {"label":"ALT", "x":9, "y":4, "w":1.5}, {"label":"MENU", "x":10.5, "y":4, "w":1.5}] + }, + "LAYOUT_4x12_Grid": { + "layout": + [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"MENU", "x":2, "y":3}, {"label":"ALT", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"LEFT", "x":8, "y":3}, {"label":"DOWN", "x":9, "y":3}, {"label":"UP", "x":10, "y":3}, {"label":"RIGHT", "x":11, "y":3}] + }, + "LAYOUT_4x12_MIT": { + "layout": + [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"MENU", "x":2, "y":3}, {"label":"ALT", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3, "w":2}, {"label":"⇑", "x":7, "y":3}, {"label":"LEFT", "x":8, "y":3}, {"label":"DOWN", "x":9, "y":3}, {"label":"UP", "x":10, "y":3}, {"label":"RIGHT", "x":11, "y":3}] + }, + "LAYOUT_4x12_2x225": { + "layout": + [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3, "w":1.25}, {"label":"WIN", "x":1.25, "y":3, "w":1.25}, {"label":"ALT", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"label":"ALT", "x":8.25, "y":3, "w":1.25}, {"label":"MENU", "x":9.5, "y":3, "w":1.25}, {"label":"CTRL", "x":10.75, "y":3, "w":1.25}] + }, + "LAYOUT_4x12_2x3": { + "layout": + [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"ALT", "x":2, "y":3}, {"x":3, "y":3, "w":3}, {"x":6, "y":3, "w":3}, {"label":"ALT", "x":9, "y":3}, {"label":"MENU", "x":10, "y":3}, {"label":"CTRL", "x":11, "y":3}] + } + } +} diff --git a/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd_desc.c b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd_desc.c index 814389b6e73a..3c1c9a792699 100644 --- a/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd_desc.c +++ b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd_desc.c @@ -83,7 +83,7 @@ UDC_DESC_STORAGE usb_dev_desc_t udc_device_desc = {.bLength = sizeof(usb #ifdef USB_DEVICE_PRODUCT_NAME .iProduct = 2, #else - .iProduct = 0, // No product string + .iProduct = 0, // No product string #endif #if (defined USB_DEVICE_SERIAL_NAME || defined USB_DEVICE_GET_SERIAL_NAME_POINTER) .iSerialNumber = 3, diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index 9745d147c344..ad489fb91666 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -544,7 +544,7 @@ static bool usb_request_hook_cb(USBDriver *usbp) { #ifdef NKRO_ENABLE keymap_config.nkro = !!keyboard_protocol; if (!keymap_config.nkro && keyboard_idle) { -#else /* NKRO_ENABLE */ +#else /* NKRO_ENABLE */ if (keyboard_idle) { #endif /* NKRO_ENABLE */ /* arm the idle timer if boot protocol & idle */ @@ -562,7 +562,7 @@ static bool usb_request_hook_cb(USBDriver *usbp) { /* arm the timer */ #ifdef NKRO_ENABLE if (!keymap_config.nkro && keyboard_idle) { -#else /* NKRO_ENABLE */ +#else /* NKRO_ENABLE */ if (keyboard_idle) { #endif /* NKRO_ENABLE */ osalSysLockFromISR(); @@ -689,7 +689,7 @@ static void keyboard_idle_timer_cb(void *arg) { #ifdef NKRO_ENABLE if (!keymap_config.nkro && keyboard_idle && keyboard_protocol) { -#else /* NKRO_ENABLE */ +#else /* NKRO_ENABLE */ if (keyboard_idle && keyboard_protocol) { #endif /* NKRO_ENABLE */ /* TODO: are we sure we want the KBD_ENDPOINT? */ @@ -738,7 +738,7 @@ void send_keyboard(report_keyboard_t *report) { usbStartTransmitI(&USB_DRIVER, SHARED_IN_EPNUM, (uint8_t *)report, sizeof(struct nkro_report)); } else #endif /* NKRO_ENABLE */ - { /* regular protocol */ + { /* regular protocol */ /* need to wait until the previous packet has made it through */ /* busy wait, should be short and not very common */ if (usbGetTransmitStatusI(&USB_DRIVER, KEYBOARD_IN_EPNUM)) { @@ -805,8 +805,8 @@ void send_mouse(report_mouse_t *report) { osalSysUnlock(); } -#else /* MOUSE_ENABLE */ -void send_mouse(report_mouse_t *report) { (void)report; } +#else /* MOUSE_ENABLE */ +void send_mouse(report_mouse_t *report) { (void)report; } #endif /* MOUSE_ENABLE */ /* --------------------------------------------------------- @@ -885,7 +885,7 @@ void console_task(void) { } while (size > 0); } -#else /* CONSOLE_ENABLE */ +#else /* CONSOLE_ENABLE */ int8_t sendchar(uint8_t c) { (void)c; return 0; diff --git a/tmk_core/protocol/usb_descriptor.h b/tmk_core/protocol/usb_descriptor.h index 4c6728ebb916..867e549b4f84 100644 --- a/tmk_core/protocol/usb_descriptor.h +++ b/tmk_core/protocol/usb_descriptor.h @@ -208,7 +208,7 @@ enum usb_endpoints { # if STM32_USB_USE_OTG1 # define RAW_OUT_EPNUM RAW_IN_EPNUM # else - RAW_OUT_EPNUM = NEXT_EPNUM, + RAW_OUT_EPNUM = NEXT_EPNUM, # endif #endif @@ -248,7 +248,7 @@ enum usb_endpoints { # if STM32_USB_USE_OTG1 # define CDC_OUT_EPNUM CDC_IN_EPNUM # else - CDC_OUT_EPNUM = NEXT_EPNUM, + CDC_OUT_EPNUM = NEXT_EPNUM, # endif #endif #ifdef JOYSTICK_ENABLE @@ -256,7 +256,7 @@ enum usb_endpoints { # if STM32_USB_USE_OTG1 JOYSTICK_OUT_EPNUM = JOYSTICK_IN_EPNUM, # else - JOYSTICK_OUT_EPNUM = NEXT_EPNUM, + JOYSTICK_OUT_EPNUM = NEXT_EPNUM, # endif #endif }; From 53e9213a2255cebf9ec2c3f8302241ede8d16f07 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 1 Jan 2021 05:04:00 +1100 Subject: [PATCH 082/140] Quark refactor (#11377) --- keyboards/quark/config.h | 6 +- keyboards/quark/info.json | 343 ++++++++++++++++-- keyboards/quark/keymaps/default/config.h | 17 + keyboards/quark/keymaps/default/keymap.c | 124 ++++--- keyboards/quark/keymaps/default/readme.md | 1 - keyboards/quark/keymaps/default_4x12/config.h | 19 + keyboards/quark/keymaps/default_4x12/keymap.c | 80 ++++ .../quark/keymaps/default_4x12_2x225/config.h | 2 - .../quark/keymaps/default_4x12_2x225/keymap.c | 83 ----- .../keymaps/default_4x12_2x225u/config.h | 19 + .../keymaps/default_4x12_2x225u/keymap.c | 80 ++++ .../quark/keymaps/default_4x12_2x3/config.h | 2 - .../quark/keymaps/default_4x12_2x3/keymap.c | 83 ----- .../quark/keymaps/default_4x12_2x3u/config.h | 19 + .../quark/keymaps/default_4x12_2x3u/keymap.c | 80 ++++ .../quark/keymaps/default_4x12_grid/config.h | 2 - .../quark/keymaps/default_4x12_grid/keymap.c | 83 ----- .../quark/keymaps/default_4x12_mit/config.h | 19 - .../quark/keymaps/default_4x12_mit/keymap.c | 83 ----- .../quark/keymaps/default_5x12_2x3/config.h | 18 - .../quark/keymaps/default_5x12_2x3/keymap.c | 89 ----- .../quark/keymaps/default_5x12_2x3u/config.h | 19 + .../quark/keymaps/default_5x12_2x3u/keymap.c | 86 +++++ keyboards/quark/keymaps/default_mit/config.h | 19 + keyboards/quark/keymaps/default_mit/keymap.c | 80 ++++ keyboards/quark/keymaps/via/keymap.c | 124 ++++--- keyboards/quark/quark.c | 16 + keyboards/quark/quark.h | 143 ++++---- keyboards/quark/readme.md | 10 +- keyboards/quark/rules.mk | 3 +- 30 files changed, 1052 insertions(+), 700 deletions(-) create mode 100644 keyboards/quark/keymaps/default_4x12/config.h create mode 100644 keyboards/quark/keymaps/default_4x12/keymap.c delete mode 100644 keyboards/quark/keymaps/default_4x12_2x225/config.h delete mode 100644 keyboards/quark/keymaps/default_4x12_2x225/keymap.c create mode 100644 keyboards/quark/keymaps/default_4x12_2x225u/config.h create mode 100644 keyboards/quark/keymaps/default_4x12_2x225u/keymap.c delete mode 100644 keyboards/quark/keymaps/default_4x12_2x3/config.h delete mode 100644 keyboards/quark/keymaps/default_4x12_2x3/keymap.c create mode 100644 keyboards/quark/keymaps/default_4x12_2x3u/config.h create mode 100644 keyboards/quark/keymaps/default_4x12_2x3u/keymap.c delete mode 100644 keyboards/quark/keymaps/default_4x12_grid/config.h delete mode 100644 keyboards/quark/keymaps/default_4x12_grid/keymap.c delete mode 100644 keyboards/quark/keymaps/default_4x12_mit/config.h delete mode 100644 keyboards/quark/keymaps/default_4x12_mit/keymap.c delete mode 100644 keyboards/quark/keymaps/default_5x12_2x3/config.h delete mode 100644 keyboards/quark/keymaps/default_5x12_2x3/keymap.c create mode 100644 keyboards/quark/keymaps/default_5x12_2x3u/config.h create mode 100644 keyboards/quark/keymaps/default_5x12_2x3u/keymap.c create mode 100644 keyboards/quark/keymaps/default_mit/config.h create mode 100644 keyboards/quark/keymaps/default_mit/keymap.c diff --git a/keyboards/quark/config.h b/keyboards/quark/config.h index 084891b2ce3e..1dede7ed68fc 100644 --- a/keyboards/quark/config.h +++ b/keyboards/quark/config.h @@ -1,5 +1,5 @@ -/* Copyright 2015-2017 Jack Humbert - * Modified by Nasp for the Quark +/* Copyright 2020 Nathan Spears + * * 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 @@ -71,5 +71,3 @@ #define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue #define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation #define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) - -#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/info.json b/keyboards/quark/info.json index 5c685743489e..e85fbd4adb23 100644 --- a/keyboards/quark/info.json +++ b/keyboards/quark/info.json @@ -5,29 +5,322 @@ "width": 12, "height": 5, "layouts": { - "LAYOUT_5x12_2x225": { - "layout": - [{"label":"_", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"+", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"CTRL", "x":0, "y":4, "w":1.25}, {"label":"WIN", "x":1.25, "y":4, "w":1.25}, {"label":"ALT", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":2.25}, {"label":"ALT", "x":8.25, "y":4, "w":1.25}, {"label":"MENU", "x":9.5, "y":4, "w":1.25}, {"label":"CTRL", "x":10.75, "y":4, "w":1.25}] - }, - "LAYOUT_5x12_2x3": { - "layout": - [{"label":"_", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"+", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"CTRL", "x":0, "y":4, "w":1.5}, {"label":"ALT", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":3}, {"x":6, "y":4, "w":3}, {"label":"ALT", "x":9, "y":4, "w":1.5}, {"label":"MENU", "x":10.5, "y":4, "w":1.5}] - }, - "LAYOUT_4x12_Grid": { - "layout": - [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"MENU", "x":2, "y":3}, {"label":"ALT", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"LEFT", "x":8, "y":3}, {"label":"DOWN", "x":9, "y":3}, {"label":"UP", "x":10, "y":3}, {"label":"RIGHT", "x":11, "y":3}] - }, - "LAYOUT_4x12_MIT": { - "layout": - [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"MENU", "x":2, "y":3}, {"label":"ALT", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3, "w":2}, {"label":"⇑", "x":7, "y":3}, {"label":"LEFT", "x":8, "y":3}, {"label":"DOWN", "x":9, "y":3}, {"label":"UP", "x":10, "y":3}, {"label":"RIGHT", "x":11, "y":3}] - }, - "LAYOUT_4x12_2x225": { - "layout": - [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3, "w":1.25}, {"label":"WIN", "x":1.25, "y":3, "w":1.25}, {"label":"ALT", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"label":"ALT", "x":8.25, "y":3, "w":1.25}, {"label":"MENU", "x":9.5, "y":3, "w":1.25}, {"label":"CTRL", "x":10.75, "y":3, "w":1.25}] - }, - "LAYOUT_4x12_2x3": { - "layout": - [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"ALT", "x":2, "y":3}, {"x":3, "y":3, "w":3}, {"x":6, "y":3, "w":3}, {"label":"ALT", "x":9, "y":3}, {"label":"MENU", "x":10, "y":3}, {"label":"CTRL", "x":11, "y":3}] - } - } + "LAYOUT_ortho_5x12_2x225u": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6, "y": 4, "w": 2.25}, + {"x": 8.25, "y": 4, "w": 1.25}, + {"x": 9.5, "y": 4, "w": 1.25}, + {"x": 10.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_ortho_5x12_2x3u": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 0, "y": 4, "w": 1.5}, + {"x": 1.5, "y": 4, "w": 1.5}, + {"x": 3, "y": 4, "w": 3}, + {"x": 6, "y": 4, "w": 3}, + {"x": 9, "y": 4, "w": 1.5}, + {"x": 10.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_ortho_4x12": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3} + ] + }, + "LAYOUT_planck_mit": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3, "w": 2}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3} + ] + }, + "LAYOUT_ortho_4x12_2x225u": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3, "w": 1.25}, + {"x": 2.5, "y": 3, "w": 1.25}, + {"x": 3.75, "y": 3, "w": 2.25}, + {"x": 6, "y": 3, "w": 2.25}, + {"x": 8.25, "y": 3, "w": 1.25}, + {"x": 9.5, "y": 3, "w": 1.25}, + {"x": 10.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_ortho_4x12_2x3u": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3, "w": 3}, + {"x": 6, "y": 3, "w": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3} + ] + } + } } diff --git a/keyboards/quark/keymaps/default/config.h b/keyboards/quark/keymaps/default/config.h index 311c729c521a..c6f30237d16a 100644 --- a/keyboards/quark/keymaps/default/config.h +++ b/keyboards/quark/keymaps/default/config.h @@ -1,2 +1,19 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#pragma once #define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default/keymap.c b/keyboards/quark/keymaps/default/keymap.c index 87e03fa18027..3953b6a68d42 100644 --- a/keyboards/quark/keymaps/default/keymap.c +++ b/keyboards/quark/keymaps/default/keymap.c @@ -1,4 +1,5 @@ /* Copyright 2020 Nathan Spears + * * 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 @@ -19,70 +20,67 @@ #define CALTDEL LCTL(LALT(KC_DEL)) #define TSKMGR LCTL(LSFT(KC_ESC)) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_5x12_2x225u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), -/* [0] - * ,-----------------------------------------------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | - * |------------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | - * |------------+------+------+------+------+-------------+------+------+------+------+------| - * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | - * |------------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| - * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | - * `-----------------------------------------------------------------------------------------' - */ -[0] = LAYOUT_5x12_2x225( \ - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS -), - -/* [1] -* ,---------------------------------------------------------------------------------------. -* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | -* |------------+------+------+------+------+------+------+------+------+------+------+----| -* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | -* |------------+------+------+------+------+-------------+------+------+------+------+----| -* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | -* |------------+------+------+------+------+------|------+------+------+------+------+----| -* | | | | | | | | + | = | | | | -* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| -* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | -* `---------------------------------------------------------------------------------------' -*/ -[1] = LAYOUT_5x12_2x225( \ - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, - KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ -), - -/* [2] -* ,---------------------------------------------------------------------------------------. -* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | -* |------------+------+------+------+------+------+------+------+------+------+------+---| -* | | | | UP | | | | _ | | [ | ] | | -* |------------+------+------+------+------+-------------+------+------+------+------+---| -* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | -* |------------+------+------+------+------+-----+-----+------+------+------+------+-----| -* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | -* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| -* | RESET | | | | | | | | -* `---------------------------------------------------------------------------------------' - */ -[2] = LAYOUT_5x12_2x225( \ - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - RESET, _______, _______, _______, _______, _______, _______, _______ -), + /* [1] + * ,---------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_5x12_2x225u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + /* [2] + * ,---------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_5x12_2x225u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/quark/keymaps/default/readme.md b/keyboards/quark/keymaps/default/readme.md index 1e0d8e25c498..9a85e831e9d5 100644 --- a/keyboards/quark/keymaps/default/readme.md +++ b/keyboards/quark/keymaps/default/readme.md @@ -1,2 +1 @@ # The Default Quark Layout - diff --git a/keyboards/quark/keymaps/default_4x12/config.h b/keyboards/quark/keymaps/default_4x12/config.h new file mode 100644 index 000000000000..c6f30237d16a --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_4x12/keymap.c b/keyboards/quark/keymaps/default_4x12/keymap.c new file mode 100644 index 000000000000..aefb2f2a3769 --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | DEL | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTRL&ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | SHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | Ctrl | ALT | GUI |LOWER |SPACE |SPACE|RAISE | LEFT | DOWN | UP |RIGHT | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LCTL, KC_LALT, KC_LGUI, TT(1), KC_SPC, KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | | | ESC |CTRL-ALT-DEL|TASK| | | | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + _______, KC_ESC, CALTDEL, TSKMGR, _______, _______, _______, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * |RESET | | | | | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_4x12( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/quark/keymaps/default_4x12_2x225/config.h b/keyboards/quark/keymaps/default_4x12_2x225/config.h deleted file mode 100644 index 311c729c521a..000000000000 --- a/keyboards/quark/keymaps/default_4x12_2x225/config.h +++ /dev/null @@ -1,2 +0,0 @@ - -#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_4x12_2x225/keymap.c b/keyboards/quark/keymaps/default_4x12_2x225/keymap.c deleted file mode 100644 index d94d62026c71..000000000000 --- a/keyboards/quark/keymaps/default_4x12_2x225/keymap.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright 2015-2017 Jack Humbert - * Modified by Nasp for the Quark - * 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 . - */ - -#include QMK_KEYBOARD_H - -// Defines for task manager and such -#define CALTDEL LCTL(LALT(KC_DEL)) -#define TSKMGR LCTL(LSFT(KC_ESC)) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* [0] - * ,-----------------------------------------------------------------------------------------. - * |------------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | - * |------------+------+------+------+------+-------------+------+------+------+------+------| - * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | - * |------------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| - * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | - * `-----------------------------------------------------------------------------------------' - */ - [0] = LAYOUT_4x12_2x225( \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS - ), - - /* [1] - * ,---------------------------------------------------------------------------------------. - * |------------+------+------+------+------+------+------+------+------+------+------+----| - * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | - * |------------+------+------+------+------+-------------+------+------+------+------+----| - * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | - * |------------+------+------+------+------+------|------+------+------+------+------+----| - * | | | | | | | | + | = | | | | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| - * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | - * `---------------------------------------------------------------------------------------' - */ - [1] = LAYOUT_4x12_2x225( \ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, - KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ - ), - - /* [2] - * ,---------------------------------------------------------------------------------------. - * |------------+------+------+------+------+------+------+------+------+------+------+---| - * | | | | UP | | | | _ | | [ | ] | | - * |------------+------+------+------+------+-------------+------+------+------+------+---| - * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | - * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| - * | RESET | | | | | | | | - * `---------------------------------------------------------------------------------------' - */ - [2] = LAYOUT_4x12_2x225( \ - _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - RESET, _______, _______, _______, _______, _______, _______, _______ - ), - - }; diff --git a/keyboards/quark/keymaps/default_4x12_2x225u/config.h b/keyboards/quark/keymaps/default_4x12_2x225u/config.h new file mode 100644 index 000000000000..c6f30237d16a --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_2x225u/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_4x12_2x225u/keymap.c b/keyboards/quark/keymaps/default_4x12_2x225u/keymap.c new file mode 100644 index 000000000000..f2f187bf40ec --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_2x225u/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_4x12_2x225u( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_4x12_2x225u( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_4x12_2x225u( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/quark/keymaps/default_4x12_2x3/config.h b/keyboards/quark/keymaps/default_4x12_2x3/config.h deleted file mode 100644 index 311c729c521a..000000000000 --- a/keyboards/quark/keymaps/default_4x12_2x3/config.h +++ /dev/null @@ -1,2 +0,0 @@ - -#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_4x12_2x3/keymap.c b/keyboards/quark/keymaps/default_4x12_2x3/keymap.c deleted file mode 100644 index 938fb6824eab..000000000000 --- a/keyboards/quark/keymaps/default_4x12_2x3/keymap.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright 2015-2017 Jack Humbert - * Modified by Nasp for the Quark - * 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 . - */ - -#include QMK_KEYBOARD_H - -// Defines for task manager and such -#define CALTDEL LCTL(LALT(KC_DEL)) -#define TSKMGR LCTL(LSFT(KC_ESC)) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* [0] -* ,-----------------------------------------------------------------------------------------. -* |------------+------+------+------+------+------+------+------+------+------+------+------| -* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | -* |------------+------+------+------+------+-------------+------+------+------+------+------| -* | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | -* |------------+------+------+------+------+------|------+------+------+------+------+------| -* | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | -* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| -* | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | -* `-----------------------------------------------------------------------------------------' -*/ -[0] = LAYOUT_4x12_2x3( \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS - ), - -/* [1] -* ,---------------------------------------------------------------------------------------. -* |------------+------+------+------+------+------+------+------+------+------+------+----| -* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | -* |------------+------+------+------+------+-------------+------+------+------+------+----| -* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | -* |------------+------+------+------+------+------|------+------+------+------+------+----| -* | | | | | | | | + | = | | | | -* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| -* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | -* `---------------------------------------------------------------------------------------' -*/ -[1] = LAYOUT_4x12_2x3( \ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, - KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ - ), - -/* [2] -* ,---------------------------------------------------------------------------------------. -* |------------+------+------+------+------+------+------+------+------+------+------+---| -* | | | | UP | | | | _ | | [ | ] | | -* |------------+------+------+------+------+-------------+------+------+------+------+---| -* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | -* |------------+------+------+------+------+-----+-----+------+------+------+------+-----| -* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | -* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| -* | RESET | | | | | | | | -* `---------------------------------------------------------------------------------------' - */ -[2] = LAYOUT_4x12_2x3( \ - _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - RESET, _______, _______, _______, _______, _______, _______, _______ - ), - - }; diff --git a/keyboards/quark/keymaps/default_4x12_2x3u/config.h b/keyboards/quark/keymaps/default_4x12_2x3u/config.h new file mode 100644 index 000000000000..c6f30237d16a --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_2x3u/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_4x12_2x3u/keymap.c b/keyboards/quark/keymaps/default_4x12_2x3u/keymap.c new file mode 100644 index 000000000000..128c3e1a04a1 --- /dev/null +++ b/keyboards/quark/keymaps/default_4x12_2x3u/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_4x12_2x3u( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_4x12_2x3u( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_4x12_2x3u( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/quark/keymaps/default_4x12_grid/config.h b/keyboards/quark/keymaps/default_4x12_grid/config.h deleted file mode 100644 index 311c729c521a..000000000000 --- a/keyboards/quark/keymaps/default_4x12_grid/config.h +++ /dev/null @@ -1,2 +0,0 @@ - -#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_4x12_grid/keymap.c b/keyboards/quark/keymaps/default_4x12_grid/keymap.c deleted file mode 100644 index 3eb0e8f86c21..000000000000 --- a/keyboards/quark/keymaps/default_4x12_grid/keymap.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright 2015-2017 Jack Humbert - * Modified by Nasp for the Quark - * 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 . - */ - -#include QMK_KEYBOARD_H - -// Defines for task manager and such -#define CALTDEL LCTL(LALT(KC_DEL)) -#define TSKMGR LCTL(LSFT(KC_ESC)) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* [0] - * ,-----------------------------------------------------------------------------------------. - * |------------+------+------+------+------+------+------+------+------+------+------+------| - * | TAB | Q | W | E | R | T | Y | U | I | O | P | DEL | - * |------------+------+------+------+------+-------------+------+------+------+------+------| - * | CTRL&ESC | A | S | D | F | G | H | J | K | L | ; | " | - * |------------+------+------+------+------+------|------+------+------+------+------+------| - * | SHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| - * | PRINT | Ctrl | ALT | GUI |LOWER |SPACE |SPACE|RAISE | LEFT | DOWN | UP |RIGHT | - * `-----------------------------------------------------------------------------------------' - */ - [0] = LAYOUT_ortho_4x12( \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_PSCR, KC_LCTL, KC_LALT, KC_LGUI, TT(1), KC_SPC, KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - /* [1] - * ,---------------------------------------------------------------------------------------. - * |------------+------+------+------+------+------+------+------+------+------+------+----| - * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | - * |------------+------+------+------+------+-------------+------+------+------+------+----| - * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | - * |------------+------+------+------+------+------|------+------+------+------+------+----| - * | | | | | | | | + | = | | | | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| - * | | | ESC |CTRL-ALT-DEL|TASK| | | | | | '|' | ` | | - * `---------------------------------------------------------------------------------------' - */ - [1] = LAYOUT_ortho_4x12( \ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, - _______, KC_ESC, CALTDEL, TSKMGR, _______, _______, _______, _______, _______, KC_NUBS, KC_GRV, _______ - ), - - /* [2] - * ,---------------------------------------------------------------------------------------. - * |------------+------+------+------+------+------+------+------+------+------+------+---| - * | | | | UP | | | | _ | | [ | ] | | - * |------------+------+------+------+------+-------------+------+------+------+------+---| - * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | - * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| - * |RESET | | | | | | | | | | | | - * `---------------------------------------------------------------------------------------' - */ - [2] = LAYOUT_ortho_4x12( \ - _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - }; diff --git a/keyboards/quark/keymaps/default_4x12_mit/config.h b/keyboards/quark/keymaps/default_4x12_mit/config.h deleted file mode 100644 index 2e3dbdb6864a..000000000000 --- a/keyboards/quark/keymaps/default_4x12_mit/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2020 Nathan_Spears - * - * 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 . - */ - -#pragma once - -#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_4x12_mit/keymap.c b/keyboards/quark/keymaps/default_4x12_mit/keymap.c deleted file mode 100644 index db2042e63678..000000000000 --- a/keyboards/quark/keymaps/default_4x12_mit/keymap.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright 2015-2017 Jack Humbert - * Modified by Nasp for the Quark - * 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 . - */ - -#include QMK_KEYBOARD_H - -// Defines for task manager and such -#define CALTDEL LCTL(LALT(KC_DEL)) -#define TSKMGR LCTL(LSFT(KC_ESC)) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* [0] - * ,-----------------------------------------------------------------------------------------. - * |------------+------+------+------+------+------+------+------+------+------+------+------| - * | TAB | Q | W | E | R | T | Y | U | I | O | P | DEL | - * |------------+------+------+------+------+-------------+------+------+------+------+------| - * | CTRL&ESC | A | S | D | F | G | H | J | K | L | ; | " | - * |------------+------+------+------+------+------|------+------+------+------+------+------| - * | SHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| - * | PRINT | Ctrl | ALT | GUI |LOWER | SPACE |RAISE | LEFT | DOWN | UP |RIGHT | - * `-----------------------------------------------------------------------------------------' - */ - [0] = LAYOUT_4x12_MIT( \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_PSCR, KC_LCTL, KC_LALT, KC_LGUI, TT(1), KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - /* [1] - * ,---------------------------------------------------------------------------------------. - * |------------+------+------+------+------+------+------+------+------+------+------+----| - * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | - * |------------+------+------+------+------+-------------+------+------+------+------+----| - * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | - * |------------+------+------+------+------+------|------+------+------+------+------+----| - * | | | | | | | | + | = | | | | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| - * | | | ESC |CTRL-ALT-DEL|TASK| | | | | '|' | ` | | - * `---------------------------------------------------------------------------------------' - */ - [1] = LAYOUT_4x12_MIT( \ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, - _______, KC_ESC, CALTDEL, TSKMGR, _______, _______, _______, _______, KC_NUBS, KC_GRV, _______ - ), - - /* [2] - * ,---------------------------------------------------------------------------------------. - * |------------+------+------+------+------+------+------+------+------+------+------+---| - * | | | | UP | | | | _ | | [ | ] | | - * |------------+------+------+------+------+-------------+------+------+------+------+---| - * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | - * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| - * |RESET | | | | | | | | | | | - * `---------------------------------------------------------------------------------------' - */ - [2] = LAYOUT_4x12_MIT( \ - _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - }; diff --git a/keyboards/quark/keymaps/default_5x12_2x3/config.h b/keyboards/quark/keymaps/default_5x12_2x3/config.h deleted file mode 100644 index ef97c811fce5..000000000000 --- a/keyboards/quark/keymaps/default_5x12_2x3/config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright 2020 Nathan Spears - * - * 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 . - */ - - -#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_5x12_2x3/keymap.c b/keyboards/quark/keymaps/default_5x12_2x3/keymap.c deleted file mode 100644 index 8b3cf03119c6..000000000000 --- a/keyboards/quark/keymaps/default_5x12_2x3/keymap.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright 2015-2017 Jack Humbert - * Modified by Nasp for the Quark - * 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 . - */ - -#include QMK_KEYBOARD_H - -// Defines for task manager and such -#define CALTDEL LCTL(LALT(KC_DEL)) -#define TSKMGR LCTL(LSFT(KC_ESC)) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* [0] - * ,-----------------------------------------------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | - * |------------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | - * |------------+------+------+------+------+-------------+------+------+------+------+------| - * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | - * |------------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| - * | OS | Alt | Layer | Space & Layer | [ | ] | - * `-----------------------------------------------------------------------------------------' - */ -[0] = LAYOUT_5x12_2x3( \ - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC -), - -/* [1] -* ,---------------------------------------------------------------------------------------. -* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | -* |------------+------+------+------+------+------+------+------+------+------+------+----| -* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | -* |------------+------+------+------+------+-------------+------+------+------+------+----| -* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | -* |------------+------+------+------+------+------|------+------+------+------+------+----| -* | | | | | | | | + | = | | | | -* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| -* | ESC | CTRL-ALT-DEL | | | '|' | ` | -* `---------------------------------------------------------------------------------------' -*/ -[1] = LAYOUT_5x12_2x3( \ - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, - KC_ESC, CALTDEL, _______, _______, KC_NUBS, KC_GRV -), - -/* [2] -* ,---------------------------------------------------------------------------------------. -* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | -* |------------+------+------+------+------+------+------+------+------+------+------+---| -* | | | | UP | | | | _ | | [ | ] | | -* |------------+------+------+------+------+-------------+------+------+------+------+---| -* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | -* |------------+------+------+------+------+-----+-----+------+------+------+------+-----| -* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | -* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| -* | RESET | | | | | | -* `---------------------------------------------------------------------------------------' - */ -[2] = LAYOUT_5x12_2x3( \ - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - RESET, _______, _______, _______, _______, _______ -), - -}; diff --git a/keyboards/quark/keymaps/default_5x12_2x3u/config.h b/keyboards/quark/keymaps/default_5x12_2x3u/config.h new file mode 100644 index 000000000000..c6f30237d16a --- /dev/null +++ b/keyboards/quark/keymaps/default_5x12_2x3u/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_5x12_2x3u/keymap.c b/keyboards/quark/keymaps/default_5x12_2x3u/keymap.c new file mode 100644 index 000000000000..43e4d7e1327a --- /dev/null +++ b/keyboards/quark/keymaps/default_5x12_2x3u/keymap.c @@ -0,0 +1,86 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | OS | Alt | Layer | Space & Layer | [ | ] | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_5x12_2x3u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | | | '|' | ` | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_5x12_2x3u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, _______, _______, KC_NUBS, KC_GRV + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_5x12_2x3u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/quark/keymaps/default_mit/config.h b/keyboards/quark/keymaps/default_mit/config.h new file mode 100644 index 000000000000..c6f30237d16a --- /dev/null +++ b/keyboards/quark/keymaps/default_mit/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/quark/keymaps/default_mit/keymap.c b/keyboards/quark/keymaps/default_mit/keymap.c new file mode 100644 index 000000000000..c18b3b557e95 --- /dev/null +++ b/keyboards/quark/keymaps/default_mit/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | DEL | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTRL&ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | SHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | Ctrl | ALT | GUI |LOWER | SPACE |RAISE | LEFT | DOWN | UP |RIGHT | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_planck_mit( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LCTL, KC_LALT, KC_LGUI, TT(1), KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | | | ESC |CTRL-ALT-DEL|TASK| | | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_planck_mit( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + _______, KC_ESC, CALTDEL, TSKMGR, _______, _______, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * |RESET | | | | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_planck_mit( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/quark/keymaps/via/keymap.c b/keyboards/quark/keymaps/via/keymap.c index 87e03fa18027..3953b6a68d42 100644 --- a/keyboards/quark/keymaps/via/keymap.c +++ b/keyboards/quark/keymaps/via/keymap.c @@ -1,4 +1,5 @@ /* Copyright 2020 Nathan Spears + * * 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 @@ -19,70 +20,67 @@ #define CALTDEL LCTL(LALT(KC_DEL)) #define TSKMGR LCTL(LSFT(KC_ESC)) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_5x12_2x225u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), -/* [0] - * ,-----------------------------------------------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | - * |------------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | - * |------------+------+------+------+------+-------------+------+------+------+------+------| - * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | - * |------------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | - * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| - * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | - * `-----------------------------------------------------------------------------------------' - */ -[0] = LAYOUT_5x12_2x225( \ - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS -), - -/* [1] -* ,---------------------------------------------------------------------------------------. -* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | -* |------------+------+------+------+------+------+------+------+------+------+------+----| -* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | -* |------------+------+------+------+------+-------------+------+------+------+------+----| -* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | -* |------------+------+------+------+------+------|------+------+------+------+------+----| -* | | | | | | | | + | = | | | | -* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| -* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | -* `---------------------------------------------------------------------------------------' -*/ -[1] = LAYOUT_5x12_2x225( \ - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, - KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ -), - -/* [2] -* ,---------------------------------------------------------------------------------------. -* | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | -* |------------+------+------+------+------+------+------+------+------+------+------+---| -* | | | | UP | | | | _ | | [ | ] | | -* |------------+------+------+------+------+-------------+------+------+------+------+---| -* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | -* |------------+------+------+------+------+-----+-----+------+------+------+------+-----| -* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | -* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| -* | RESET | | | | | | | | -* `---------------------------------------------------------------------------------------' - */ -[2] = LAYOUT_5x12_2x225( \ - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - RESET, _______, _______, _______, _______, _______, _______, _______ -), + /* [1] + * ,---------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_5x12_2x225u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + /* [2] + * ,---------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_5x12_2x225u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/quark/quark.c b/keyboards/quark/quark.c index 6b962a893748..02610c420324 100644 --- a/keyboards/quark/quark.c +++ b/keyboards/quark/quark.c @@ -1 +1,17 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + #include "quark.h" diff --git a/keyboards/quark/quark.h b/keyboards/quark/quark.h index a81b062d0160..e1af96eb7643 100644 --- a/keyboards/quark/quark.h +++ b/keyboards/quark/quark.h @@ -14,93 +14,88 @@ * along with this program. If not, see . */ - #pragma once #include "quantum.h" -#define LAYOUT_5x12_2x225( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, \ - k400, k401, k402, k403, k404, k405, k406, k407 \ -) \ -{ \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ - { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311 }, \ - { k400, k401, KC_NO, k402, k403, KC_NO, KC_NO, k404, k405, KC_NO, k406, k407 } \ +#define XXX KC_NO + +#define LAYOUT_ortho_5x12_2x225u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \ + k40, k41, k43, k44, k47, k48, k4A, k4B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \ + { k40, k41, XXX, k43, k44, XXX, XXX, k47, k48, XXX, k4A, k4B } \ } -#define LAYOUT_5x12_2x3( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, \ - k400, k401, k402, k403, k404, k405 \ -) \ -{ \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ - { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311 }, \ - { k400, k401, KC_NO, KC_NO, k402, KC_NO, KC_NO, k403, KC_NO, KC_NO, k404, k405 } \ +#define LAYOUT_ortho_5x12_2x3u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \ + k40, k41, k43, k48, k4A, k4B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \ + { k40, k41, XXX, XXX, k43, XXX, XXX, k48, XXX, XXX, k4A, k4B } \ } #define LAYOUT_ortho_4x12( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311 \ -) \ -{ \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ - { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311 }, \ - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ } -#define LAYOUT_4x12_MIT( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310 \ -) \ -{ \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ - { k300, k301, k302, k303, k304, k305, KC_NO, k306, k307, k308, k309, k310 }, \ - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \ +#define LAYOUT_planck_mit( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, k32, k33, k34, k35, XXX, k36, k37, k38, k39, k3A }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ } -#define LAYOUT_4x12_2x225( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ - k300, k301, k302, k303, k304, k305, k306, k307 \ -) \ -{ \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ - { k300, k301, KC_NO, k302, k303, KC_NO, KC_NO, k304, k305, KC_NO, k306, k307 }, \ - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \ +#define LAYOUT_ortho_4x12_2x225u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k33, k34, k37, k38, k3A, k3B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, XXX, k33, k34, XXX, XXX, k37, k38, XXX, k3A, k3B }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ } -#define LAYOUT_4x12_2x3( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, \ - k300, k301, k302, k303, k304, k305, k306, k307 \ -) \ -{ \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ - { k300, k301, k302, KC_NO, k303, KC_NO, KC_NO, k304, KC_NO, k305, k306, k307 }, \ - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \ +#define LAYOUT_ortho_4x12_2x3u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k34, k37, k39, k3A, k3B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, k32, XXX, k34, XXX, XXX, k37, XXX, k39, k3A, k3B }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ } diff --git a/keyboards/quark/readme.md b/keyboards/quark/readme.md index def04f59f358..88b742f8218b 100644 --- a/keyboards/quark/readme.md +++ b/keyboards/quark/readme.md @@ -1,12 +1,12 @@ # Quark -![Quark](https://i.imgur.com/WcvKyf4.jpg) +![Quark](https://i.imgur.com/WcvKyf4l.jpg) -The Quark PCB is a modified layout for the Planck by OLKB. It's similar to a Planck, but the bottom row was designed to be more useable-larger than 1u keys. +The Quark PCB is a modified layout for the Planck by OLKB. It's similar to a Planck, but the bottom row was designed to be more useable-larger than 1u keys. -Keyboard Maintainer: [Nasp](https://github.com/npspears) -Hardware Supported: Planck -Hardware Availability: https://forms.gle/ZpGtQjBNtsbuSV767 +* Keyboard Maintainer: [Nasp](https://github.com/npspears) +* Hardware Supported: Planck +* Hardware Availability: https://forms.gle/ZpGtQjBNtsbuSV767 Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/quark/rules.mk b/keyboards/quark/rules.mk index 535d7c25c5cd..41e815be5f13 100644 --- a/keyboards/quark/rules.mk +++ b/keyboards/quark/rules.mk @@ -12,6 +12,7 @@ MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover @@ -21,4 +22,4 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes # Unicode -LAYOUTS = ortho_4x12 +LAYOUTS = ortho_4x12 planck_mit From 565a038a3d49b19de972d08258b6961455ea1b1e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 1 Jan 2021 13:42:36 +0000 Subject: [PATCH 083/140] Fix layout ortho_4x12 macro for montsinger/rebound/rev4 (#11382) --- keyboards/montsinger/rebound/rev4/rev4.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/keyboards/montsinger/rebound/rev4/rev4.h b/keyboards/montsinger/rebound/rev4/rev4.h index 923f7d1a2477..c0e5c9e68d77 100644 --- a/keyboards/montsinger/rebound/rev4/rev4.h +++ b/keyboards/montsinger/rebound/rev4/rev4.h @@ -26,19 +26,19 @@ * represents the switch matrix. */ #define LAYOUT_ortho_4x12( \ - K00, K70, K01, K71, K02, K72, K04, K84, K05, K75, K06, K76, \ - K10, K60, K11, K61, K12, K62, K14, K74, K15, K65, K16, K66, \ - K20, K50, K21, K51, K22, K52, K24, K64, K25, K55, K26, K56,\ - K30, K40, K31, K41, K32, K42, K34, K54, K35, K45, K36, K46\ + K00, K70, K01, K71, K02, K72, K04, K74, K05, K75, K06, K76, \ + K10, K60, K11, K61, K12, K62, K14, K64, K15, K65, K16, K66, \ + K20, K50, K21, K51, K22, K52, K24, K54, K25, K55, K26, K56, \ + K30, K40, K31, K41, K32, K42, K34, K44, K35, K45, K36, K46 \ ) { \ - { K00, K01, K02, K04, K05, K06, K07}, \ - { K10, K11, K12, K14, K15, K16, K17 }, \ - { K20, K21, K22, K24, K25, K26, K27 }, \ - { K30, K31, K32, K34, K35, K36, K37 }, \ - { K40, K41, K42, K44, K45, K46, K47 }, \ - { K50, K51, K52, K54, K55, K56, K57 }, \ - { K60, K61, K62, K64, K65, K66, K67 }, \ - { K70, K71, K72, K74, K75, K76, K77 } \ + { K00, K01, K02, KC_NO, K04, K05, K06}, \ + { K10, K11, K12, KC_NO, K14, K15, K16}, \ + { K20, K21, K22, KC_NO, K24, K25, K26}, \ + { K30, K31, K32, KC_NO, K34, K35, K36}, \ + { K40, K41, K42, KC_NO, K44, K45, K46}, \ + { K50, K51, K52, KC_NO, K54, K55, K56}, \ + { K60, K61, K62, KC_NO, K64, K65, K66}, \ + { K70, K71, K72, KC_NO, K74, K75, K76} \ } #define LAYOUT_all( \ From aab056a4a6ab838560bf533f79e7be71a3deb02d Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 2 Jan 2021 00:52:49 +1100 Subject: [PATCH 084/140] Manta60 refactor (#11378) --- keyboards/manta60/config.h | 118 +++++++++------ keyboards/manta60/info.json | 147 +++++++++--------- keyboards/manta60/keymaps/default/config.h | 2 - keyboards/manta60/keymaps/default/keymap.c | 166 +++++++++------------ keyboards/manta60/manta60.c | 16 ++ keyboards/manta60/manta60.h | 45 +++--- keyboards/manta60/readme.md | 6 +- keyboards/manta60/rules.mk | 24 +-- 8 files changed, 268 insertions(+), 256 deletions(-) diff --git a/keyboards/manta60/config.h b/keyboards/manta60/config.h index 0bc49541c90a..8bb63a566e56 100644 --- a/keyboards/manta60/config.h +++ b/keyboards/manta60/config.h @@ -20,12 +20,11 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x991D -#define DEVICE_VER 0x0001 +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x991D +#define DEVICE_VER 0x0001 #define MANUFACTURER kamonanban -#define PRODUCT manta60 -#define DESCRIPTION A split keyboard with 27 ortholinear keys and 5-7 thumb/little finger keys +#define PRODUCT manta60 /* key matrix size */ #define MATRIX_ROWS 10 @@ -45,7 +44,7 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } #define UNUSED_PINS -/* COL2ROW, ROW2COL*/ +/* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW /* @@ -54,50 +53,45 @@ along with this program. If not, see . #define SOFT_SERIAL_PIN D2 #define SELECT_SOFT_SERIAL_SPEED 1 -#define RGBLIGHT_SPLIT #define RGB_DI_PIN D3 - -#ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 68 // Number of LEDs - #define RGBLED_SPLIT { 34, 34 } -#endif - #ifdef RGB_DI_PIN - #define RGBLIGHT_ANIMATIONS -// /*== or choose animations ==*/ -// #define RGBLIGHT_EFFECT_BREATHING -// #define RGBLIGHT_EFFECT_RAINBOW_MOOD -// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL -// #define RGBLIGHT_EFFECT_SNAKE -// #define RGBLIGHT_EFFECT_KNIGHT -// #define RGBLIGHT_EFFECT_CHRISTMAS -// #define RGBLIGHT_EFFECT_STATIC_GRADIENT -// #define RGBLIGHT_EFFECT_RGB_TEST -// #define RGBLIGHT_EFFECT_ALTERNATING -// /*== customize breathing effect ==*/ -// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ -// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 -// /*==== use exp() and sin() ====*/ -// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 -// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 -#endif - -#ifndef IOS_DEVICE_ENABLE - /* The maximum brightness level */ - #define RGBLIGHT_LIMIT_VAL 128 - #define RGBLIGHT_VAL_STEP 16 -#else - #define RGBLIGHT_LIMIT_VAL 32 - #define RGBLIGHT_VAL_STEP 4 +# define RGBLED_NUM 68 +# define RGBLIGHT_SPLIT +# define RGBLED_SPLIT { 34, 34 } +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# ifndef IOS_DEVICE_ENABLE +# define RGBLIGHT_VAL_STEP 16 +# define RGBLIGHT_LIMIT_VAL 128 /* The maximum brightness level */ +# else +# define RGBLIGHT_VAL_STEP 4 +# define RGBLIGHT_LIMIT_VAL 32 /* The maximum brightness level */ +# endif +//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +# define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 #endif -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 - #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) - #define USB_MAX_POWER_CONSUMPTION 400 +# define USB_MAX_POWER_CONSUMPTION 400 #else - #define USB_MAX_POWER_CONSUMPTION 100 +# define USB_MAX_POWER_CONSUMPTION 100 #endif /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ @@ -111,6 +105,32 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + /* * Feature disable options * These options are also useful to firmware size reduction. @@ -126,5 +146,11 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/manta60/info.json b/keyboards/manta60/info.json index 9362869e63f7..08039557b561 100644 --- a/keyboards/manta60/info.json +++ b/keyboards/manta60/info.json @@ -7,74 +7,85 @@ "layouts": { "LAYOUT": { "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"!", "x":1, "y":0}, - {"label":"@", "x":2, "y":0}, - {"label":"#", "x":3, "y":0}, - {"label":"$", "x":4, "y":0}, - {"label":"%", "x":5, "y":0}, - {"label":"=", "x":6, "y":0}, - {"label":"-", "x":10, "y":0}, - {"label":"^", "x":11, "y":0}, - {"label":"&", "x":12, "y":0}, - {"label":"*", "x":13, "y":0}, - {"label":"(", "x":14, "y":0}, - {"label":")", "x":15, "y":0}, - {"label":"\\", "x":16, "y":0}, - {"label":"-", "x":0, "y":1}, - {"label":"Q", "x":1, "y":1}, - {"label":"W", "x":2, "y":1}, - {"label":"E", "x":3, "y":1}, - {"label":"R", "x":4, "y":1}, - {"label":"T", "x":5, "y":1}, - {"label":"[", "x":6, "y":1}, - {"label":"]", "x":10, "y":1}, - {"label":"Y", "x":11, "y":1}, - {"label":"U", "x":12, "y":1}, - {"label":"I", "x":13, "y":1}, - {"label":"O", "x":14, "y":1}, - {"label":"P", "x":15, "y":1}, - {"label":"@", "x":16, "y":1}, - {"label":"Tab", "x":0, "y":2}, - {"label":"A", "x":1, "y":2}, - {"label":"S", "x":2, "y":2}, - {"label":"D", "x":3, "y":2}, - {"label":"F", "x":4, "y":2}, - {"label":"G", "x":5, "y":2}, - {"label":",", "x":6, "y":2}, - {"label":".", "x":10, "y":2}, - {"label":"H", "x":11, "y":2}, - {"label":"J", "x":12, "y":2}, - {"label":"K", "x":13, "y":2}, - {"label":"L", "x":14, "y":2}, - {"label":"UP", "x":15, "y":2}, - {"label":";", "x":16, "y":2}, - {"label":"Shft", "x":0, "y":3}, - {"label":"Z", "x":1, "y":3}, - {"label":"X", "x":2, "y":3}, - {"label":"C", "x":3, "y":3}, - {"label":"V", "x":4, "y":3}, - {"label":"Alt", "x":5, "y":3}, - {"label":"B", "x":11, "y":3}, - {"label":"N", "x":12, "y":3}, - {"label":"M", "x":13, "y":3}, - {"label":"LEFT", "x":14, "y":3}, - {"label":"DOWN", "x":15, "y":3}, - {"label":"RIGHT", "x":16, "y":3}, - {"label":"LOWER", "x":0, "y":4}, - {"x":1, "y":4}, - {"label":"Alt", "x":4, "y":4}, - {"label":"Ctrl", "x":5, "y":4.25}, - {"label":"SPC", "x":6, "y":3.5, "h":2}, - {"label":"cmd", "x":7, "y":3.5}, - {"label":"Enter", "x":7, "y":4.5}, - {"label":"BS", "x":9, "y":4.5}, - {"label":"DEL", "x":9, "y":3.5}, - {"label":"SPC", "x":10, "y":3.5, "h":2}, - {"label":"Ctrl", "x":11, "y":4.25}, - {"label":"Alt", "x":12, "y":4}, - {"x":15, "y":4}, - {"label":"RAISE", "x":16, "y":4} + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + {"x": 15, "y": 0}, + {"x": 16, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 12, "y": 1}, + {"x": 13, "y": 1}, + {"x": 14, "y": 1}, + {"x": 15, "y": 1}, + {"x": 16, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 12, "y": 2}, + {"x": 13, "y": 2}, + {"x": 14, "y": 2}, + {"x": 15, "y": 2}, + {"x": 16, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + + {"x": 11, "y": 3}, + {"x": 12, "y": 3}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + {"x": 16, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + + {"x": 4, "y": 4}, + {"x": 5, "y": 4.25}, + {"x": 6, "y": 3.5, "h": 2}, + {"x": 7, "y": 3.5}, + {"x": 7, "y": 4.5}, + + {"x": 9, "y": 4.5}, + {"x": 9, "y": 3.5}, + {"x": 10, "y": 3.5, "h": 2}, + {"x": 11, "y": 4.25}, + {"x": 12, "y": 4}, + + {"x": 15, "y": 4}, + {"x": 16, "y": 4} ] } } diff --git a/keyboards/manta60/keymaps/default/config.h b/keyboards/manta60/keymaps/default/config.h index 55af5473e020..a59b247dedc9 100644 --- a/keyboards/manta60/keymaps/default/config.h +++ b/keyboards/manta60/keymaps/default/config.h @@ -17,5 +17,3 @@ #pragma once #define RGBLIGHT_SLEEP - -// place overrides here diff --git a/keyboards/manta60/keymaps/default/keymap.c b/keyboards/manta60/keymaps/default/keymap.c index 5e98141b7034..f7cafdacdd9e 100644 --- a/keyboards/manta60/keymaps/default/keymap.c +++ b/keyboards/manta60/keymaps/default/keymap.c @@ -13,119 +13,91 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #include QMK_KEYBOARD_H -// Defines names for use in layer keycodes and the keymap -enum layer_number { - _BASE = 0, - _LOWER, - _RAISE, - _ADJUST, +enum layer_names { + _BASE = 0, + _LOWER, + _RAISE, + _ADJUST }; -// Defines the keycodes used by our macros in process_record_user enum custom_keycodes { - LOWER = SAFE_RANGE, - RAISE, - ADJUST + LOWER = SAFE_RANGE, + RAISE, + ADJUST }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - //,---------------------------------------------------------------------.,---------------------------------------------------------------------. - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_AT, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_COMM, KC_DOT, KC_H, KC_J, KC_K, KC_L, KC_UP, KC_SCLN, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_SLSH, KC_B, KC_N, KC_M, KC_LEFT, KC_DOWN, KC_RGHT, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - LOWER, XXXXXXX, KC_LALT, KC_LCTRL, KC_SPC, KC_LGUI, KC_ENT, KC_BSPC, KC_DEL, KC_SPC, KC_RCTRL, KC_RALT, XXXXXXX, RAISE - //`---------+----------/\-------+---------+---------+---------+---------/\---------+---------+---------+---------+---------/\--------+----------' - ), + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_AT, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_COMM, KC_DOT, KC_H, KC_J, KC_K, KC_L, KC_UP, KC_SCLN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_SLSH, KC_B, KC_N, KC_M, KC_LEFT, KC_DOWN, KC_RGHT, + LOWER, XXXXXXX, KC_LALT, KC_LCTL, KC_SPC, KC_LGUI, KC_ENT, KC_BSPC, KC_DEL, KC_SPC, KC_RCTL, KC_RALT, XXXXXXX, RAISE + ), - [_LOWER] = LAYOUT( - //,---------------------------------------------------------------------.,---------------------------------------------------------------------. - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_JYEN, KC_LBRC, KC_RBRC, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSLS, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - _______, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - LOWER, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, RAISE - //`---------+----------/\-------+---------+---------+---------+---------/\---------+---------+---------+---------+---------/\--------+----------' - ), + [_LOWER] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_JYEN, KC_LBRC, KC_RBRC, + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSLS, + _______, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + LOWER, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, RAISE + ), - [_RAISE] = LAYOUT( - //,---------------------------------------------------------------------.,---------------------------------------------------------------------. - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - LOWER, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, RAISE - //`---------+----------/\-------+---------+---------+---------+---------/\---------+---------+---------+---------+---------/\--------+----------' - ), + [_RAISE] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + LOWER, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, RAISE + ), - [_ADJUST] = LAYOUT( - //,---------------------------------------------------------------------.,---------------------------------------------------------------------. - _______, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_M_SN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - _______, RGB_M_T, RGB_HUD, RGB_SAD, RGB_VAD, RGB_M_K, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - _______, RGB_M_P, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_SW, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------| - LOWER, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, RAISE - //`---------+----------/\-------+---------+---------+---------+---------/\---------+---------+---------+---------+---------/\--------+----------' - ) + [_ADJUST] = LAYOUT( + _______, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, + _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_M_SN,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, RGB_M_T, RGB_HUD, RGB_SAD, RGB_VAD, RGB_M_K, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, RGB_M_P, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_SW, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + LOWER, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, RAISE + ) }; static inline void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { - layer_on(layer3); - } else { - layer_off(layer3); - } + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + layer_on(layer3); + } else { + layer_off(layer3); + } } bool process_record_user(uint16_t keycode, keyrecord_t *record) { -switch (keycode) { -case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - break; -case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - break; -case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); + switch (keycode) { + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; } - return false; - break; - } - return true; + return true; } diff --git a/keyboards/manta60/manta60.c b/keyboards/manta60/manta60.c index 59319d32ee33..1013fce72d52 100644 --- a/keyboards/manta60/manta60.c +++ b/keyboards/manta60/manta60.c @@ -1 +1,17 @@ +/* Copyright 2020 kamonanban + * + * 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 . + */ + #include "manta60.h" diff --git a/keyboards/manta60/manta60.h b/keyboards/manta60/manta60.h index f68594d75974..163ed0153892 100644 --- a/keyboards/manta60/manta60.h +++ b/keyboards/manta60/manta60.h @@ -18,28 +18,23 @@ #include "quantum.h" -/* This is a shortcut to help you visually see your layout. - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ - #define LAYOUT( \ - L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ - L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ - L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ - L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \ - L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05, L06 }, \ - { L10, L11, L12, L13, L14, L15, L16 }, \ - { L20, L21, L22, L23, L24, L25, L26 }, \ - { L30, L31, L32, L33, L34, L35, KC_NO}, \ - { L40, L41, L42, L43, L44, L45, L46 }, \ - { R06, R05, R04, R03, R02, R01, R00 }, \ - { R16, R15, R14, R13, R12, R11, R10 }, \ - { R26, R25, R24, R23, R22, R21, R20 }, \ - { R35, R34, R33, R32, R31, R30, KC_NO } , \ - { R46, R45, R44, R43, R42, R41, R40 } \ - } +#define XXX KC_NO + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ +) { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, XXX }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R06, R05, R04, R03, R02, R01, R00 }, \ + { R16, R15, R14, R13, R12, R11, R10 }, \ + { R26, R25, R24, R23, R22, R21, R20 }, \ + { R35, R34, R33, R32, R31, R30, XXX }, \ + { R46, R45, R44, R43, R42, R41, R40 } \ +} diff --git a/keyboards/manta60/readme.md b/keyboards/manta60/readme.md index f163be27df05..959aa93cdcc1 100644 --- a/keyboards/manta60/readme.md +++ b/keyboards/manta60/readme.md @@ -1,6 +1,6 @@ # manta60 -![manta60](https://github.com/KamoNanban/Manta60/blob/master/documents/_image/manta60_1.jpg) +![manta60](https://i.imgur.com/vkNC8prl.jpg) A split keyboard with 27 ortholinear keys and 5-7 thumb/little finger keys @@ -12,4 +12,8 @@ Make example for this keyboard (after setting up your build environment): make manta60:default +Flashing example for this keyboard: + + make manta60:default:flash + See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/manta60/rules.mk b/keyboards/manta60/rules.mk index 1e898f540909..71148e248c29 100644 --- a/keyboards/manta60/rules.mk +++ b/keyboards/manta60/rules.mk @@ -2,37 +2,27 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = caterina # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control -CONSOLE_ENABLE = no # Console for debug +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches - +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output SPLIT_KEYBOARD = yes -IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) +IOS_DEVICE_ENABLE = no # connect to IOS device (iPad, iPhone) ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) OPT_DEFS += -DIOS_DEVICE_ENABLE From 08fdf086b77f04ebed7996eb3b4b45a72644a6db Mon Sep 17 00:00:00 2001 From: s-maurice <51819025+s-maurice@users.noreply.github.com> Date: Fri, 1 Jan 2021 22:57:02 +0800 Subject: [PATCH 085/140] Fix typo in hand wiring guide (#11388) ridid -> rigid --- docs/hand_wire.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hand_wire.md b/docs/hand_wire.md index 0c5b4f45f4df..0a4f0322c801 100644 --- a/docs/hand_wire.md +++ b/docs/hand_wire.md @@ -78,7 +78,7 @@ Established materials and techniques include: | Short lengths of wire | [u/xicolinguada's ortho build](https://www.reddit.com/r/MechanicalKeyboards/comments/c39k4f/my_first_hand_wired_keyboard_its_not_perfect_but/) | Easier to strip the wire | More difficult to place | ![individual wire lengths](https://i.imgur.com/mBe5vkL.jpg) | Magnet/Enamelled wire | [Brett Kosinski's handwired alpha](http://blog.b-ark.ca/Blog-2019-01-27) and [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | ![Magnet wire](https://i.imgur.com/b4b7KDb.jpg) | Bending the legs of the diodes for the rows | [Matt3o's Brownfox](https://deskthority.net/viewtopic.php?f=7&t=6050) | Fewer solder joints required | Uninsulated | ![Bent diode legs](https://i.imgur.com/aTnG8TV.jpg) -| Using ridid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | ![Hardline hand wire](https://i.imgur.com/CnASmPo.jpg) +| Using rigid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | ![Hardline hand wire](https://i.imgur.com/CnASmPo.jpg) | Bare wire with insulation added after (e.g. kapton tape) | [Matt3o's 65% on his website](https://matt3o.com/hand-wiring-a-custom-keyboard/) | Easier (no wire stripping required) | Not as attractive | ![Bare wire](https://i.imgur.com/AvXZShD.jpg) | Copper tape | [ManuForm Dactyl](https://github.com/tshort/dactyl-keyboard) | Very easy | Only really works when your plate/case aligns with the bottom of your switches | ![Copper tape](https://i.imgur.com/RFyNMlL.jpg) From b5fc6f0682764414de1a6446112854e579e3a45e Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 2 Jan 2021 01:58:55 +1100 Subject: [PATCH 086/140] Fix rart4x4 info.json (#11390) --- keyboards/rart/rart4x4/info.json | 56 ++++++++++++++++---------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/keyboards/rart/rart4x4/info.json b/keyboards/rart/rart4x4/info.json index a115f3a644e3..dac31d36ff41 100644 --- a/keyboards/rart/rart4x4/info.json +++ b/keyboards/rart/rart4x4/info.json @@ -1,32 +1,32 @@ { - "keyboard_name": "RART4X4", - "url": "", - "maintainer": "Alabahuy", - "width": 4, - "height": 4, - "layouts": { - "LAYOUT_ortho_4x4": { + "keyboard_name": "RART4X4", + "url": "", + "maintainer": "Alabahuy", + "width": 4, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x4": { "layout": [ - {"label": "Numlock", "x": 0, "y": 0}, - {"label": "/", "x": 1, "y": 0}, - {"label": "*", "x": 2, "y": 0}, - {"label": "-", "x": 3, "y": 0}, - - {"label": "7", "x": 0, "y": 1}, - {"label": "8", "x": 1, "y": 1}, - {"label": "9", "x": 2, "y": 1}, - {"label": "=", "x": 3, "y": 1}, - - {"label": "4", "x": 0, "y": 2}, - {"label": "5", "x": 1, "y": 2}, - {"label": "6", "x": 2, "y": 2}, - {"label": "+", "x": 3, "y": 2}, - - {"label": "1", "x": 0, "y": 3}, - {"label": "2", "x": 1, "y": 3}, - {"label": "3", "x": 2, "y": 3}, - {"label": "Esc", "x": 3, "y": 3}, + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3} ] - } - } + } + } } From c01a8b030e7f47e8972904f953a3ad27257ab495 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 2 Jan 2021 03:32:21 +1100 Subject: [PATCH 087/140] O4L 5x12 refactor (#11392) * O4L 5x12 refactor * Remove config.h --- keyboards/keycapsss/o4l_5x12/config.h | 115 +++++- keyboards/keycapsss/o4l_5x12/info.json | 369 +++++++++--------- .../keycapsss/o4l_5x12/keymaps/2x2u/config.h | 3 - .../keycapsss/o4l_5x12/keymaps/2x2u/keymap.c | 126 +++--- .../o4l_5x12/keymaps/default/config.h | 3 - .../o4l_5x12/keymaps/default/keymap.c | 233 ++++++----- keyboards/keycapsss/o4l_5x12/o4l_5x12.h | 81 ++-- keyboards/keycapsss/o4l_5x12/readme.md | 16 +- keyboards/keycapsss/o4l_5x12/rules.mk | 25 +- 9 files changed, 513 insertions(+), 458 deletions(-) delete mode 100644 keyboards/keycapsss/o4l_5x12/keymaps/2x2u/config.h delete mode 100644 keyboards/keycapsss/o4l_5x12/keymaps/default/config.h diff --git a/keyboards/keycapsss/o4l_5x12/config.h b/keyboards/keycapsss/o4l_5x12/config.h index 67bde35cf24b..e24275160fbd 100644 --- a/keyboards/keycapsss/o4l_5x12/config.h +++ b/keyboards/keycapsss/o4l_5x12/config.h @@ -3,41 +3,122 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0x7983 -#define PRODUCT_ID 0x0512 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Keycapsss -#define PRODUCT O4L:5x12 -#define DESCRIPTION A 60 key ortholinear keyboard +#define VENDOR_ID 0x7983 +#define PRODUCT_ID 0x0512 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Keycapsss +#define PRODUCT O4L:5x12 /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 -/* key matrix pins */ +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ #define MATRIX_ROW_PINS { F7, B1, B3, B2, B6 } #define MATRIX_COL_PINS { B5, B4, E6, D7, C6, D4, D0, D1, D2, F6, F5, F4 } #define UNUSED_PINS -/* COL2ROW or ROW2COL */ +/* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* WS2812 RGB LED */ -#define RGB_DI_PIN D3 +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING +#define RGB_DI_PIN D3 #ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLIGHT_HUE_STEP 4 -#define RGBLIGHT_SAT_STEP 4 -#define RGBLIGHT_VAL_STEP 4 +# define RGBLED_NUM 12 +# define RGBLIGHT_HUE_STEP 4 +# define RGBLIGHT_SAT_STEP 4 +# define RGBLIGHT_VAL_STEP 4 +//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +# define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 #endif -/* Set 0 if debouncing isn't needed */ +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE - /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/keycapsss/o4l_5x12/info.json b/keyboards/keycapsss/o4l_5x12/info.json index 7dba0dab56e8..b2eb8ad51e00 100644 --- a/keyboards/keycapsss/o4l_5x12/info.json +++ b/keyboards/keycapsss/o4l_5x12/info.json @@ -7,195 +7,204 @@ "height": 5, "layouts": { "LAYOUT_ortho_5x12": { - "key_count": 60, "layout": [ - {"w": 1, "x": 0, "y": 0}, - {"w": 1, "x": 1, "y": 0}, - {"w": 1, "x": 2, "y": 0}, - {"w": 1, "x": 3, "y": 0}, - {"w": 1, "x": 4, "y": 0}, - {"w": 1, "x": 5, "y": 0}, - {"w": 1, "x": 6, "y": 0}, - {"w": 1, "x": 7, "y": 0}, - {"w": 1, "x": 8, "y": 0}, - {"w": 1, "x": 9, "y": 0}, - {"w": 1, "x": 10, "y": 0}, - {"w": 1, "x": 11, "y": 0}, - {"w": 1, "x": 0, "y": 1}, - {"w": 1, "x": 1, "y": 1}, - {"w": 1, "x": 2, "y": 1}, - {"w": 1, "x": 3, "y": 1}, - {"w": 1, "x": 4, "y": 1}, - {"w": 1, "x": 5, "y": 1}, - {"w": 1, "x": 6, "y": 1}, - {"w": 1, "x": 7, "y": 1}, - {"w": 1, "x": 8, "y": 1}, - {"w": 1, "x": 9, "y": 1}, - {"w": 1, "x": 10, "y": 1}, - {"w": 1, "x": 11, "y": 1}, - {"w": 1, "x": 0, "y": 2}, - {"w": 1, "x": 1, "y": 2}, - {"w": 1, "x": 2, "y": 2}, - {"w": 1, "x": 3, "y": 2}, - {"w": 1, "x": 4, "y": 2}, - {"w": 1, "x": 5, "y": 2}, - {"w": 1, "x": 6, "y": 2}, - {"w": 1, "x": 7, "y": 2}, - {"w": 1, "x": 8, "y": 2}, - {"w": 1, "x": 9, "y": 2}, - {"w": 1, "x": 10, "y": 2}, - {"w": 1, "x": 11, "y": 2}, - {"w": 1, "x": 0, "y": 3}, - {"w": 1, "x": 1, "y": 3}, - {"w": 1, "x": 2, "y": 3}, - {"w": 1, "x": 3, "y": 3}, - {"w": 1, "x": 4, "y": 3}, - {"w": 1, "x": 5, "y": 3}, - {"w": 1, "x": 6, "y": 3}, - {"w": 1, "x": 7, "y": 3}, - {"w": 1, "x": 8, "y": 3}, - {"w": 1, "x": 9, "y": 3}, - {"w": 1, "x": 10, "y": 3}, - {"w": 1, "x": 11, "y": 3}, - {"w": 1, "x": 0, "y": 4}, - {"w": 1, "x": 1, "y": 4}, - {"w": 1, "x": 2, "y": 4}, - {"w": 1, "x": 3, "y": 4}, - {"w": 1, "x": 4, "y": 4}, - {"w": 1, "x": 5, "y": 4}, - {"w": 1, "x": 6, "y": 4}, - {"w": 1, "x": 7, "y": 4}, - {"w": 1, "x": 8, "y": 4}, - {"w": 1, "x": 9, "y": 4}, - {"w": 1, "x": 10, "y": 4}, - {"w": 1, "x": 11, "y": 4} + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4}, + {"x": 6, "y": 4}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} ] }, "LAYOUT_ortho_5x12_1x2uC": { - "key_count": 59, "layout": [ - {"w": 1, "x": 0, "y": 0}, - {"w": 1, "x": 1, "y": 0}, - {"w": 1, "x": 2, "y": 0}, - {"w": 1, "x": 3, "y": 0}, - {"w": 1, "x": 4, "y": 0}, - {"w": 1, "x": 5, "y": 0}, - {"w": 1, "x": 6, "y": 0}, - {"w": 1, "x": 7, "y": 0}, - {"w": 1, "x": 8, "y": 0}, - {"w": 1, "x": 9, "y": 0}, - {"w": 1, "x": 10, "y": 0}, - {"w": 1, "x": 11, "y": 0}, - {"w": 1, "x": 0, "y": 1}, - {"w": 1, "x": 1, "y": 1}, - {"w": 1, "x": 2, "y": 1}, - {"w": 1, "x": 3, "y": 1}, - {"w": 1, "x": 4, "y": 1}, - {"w": 1, "x": 5, "y": 1}, - {"w": 1, "x": 6, "y": 1}, - {"w": 1, "x": 7, "y": 1}, - {"w": 1, "x": 8, "y": 1}, - {"w": 1, "x": 9, "y": 1}, - {"w": 1, "x": 10, "y": 1}, - {"w": 1, "x": 11, "y": 1}, - {"w": 1, "x": 0, "y": 2}, - {"w": 1, "x": 1, "y": 2}, - {"w": 1, "x": 2, "y": 2}, - {"w": 1, "x": 3, "y": 2}, - {"w": 1, "x": 4, "y": 2}, - {"w": 1, "x": 5, "y": 2}, - {"w": 1, "x": 6, "y": 2}, - {"w": 1, "x": 7, "y": 2}, - {"w": 1, "x": 8, "y": 2}, - {"w": 1, "x": 9, "y": 2}, - {"w": 1, "x": 10, "y": 2}, - {"w": 1, "x": 11, "y": 2}, - {"w": 1, "x": 0, "y": 3}, - {"w": 1, "x": 1, "y": 3}, - {"w": 1, "x": 2, "y": 3}, - {"w": 1, "x": 3, "y": 3}, - {"w": 1, "x": 4, "y": 3}, - {"w": 1, "x": 5, "y": 3}, - {"w": 1, "x": 6, "y": 3}, - {"w": 1, "x": 7, "y": 3}, - {"w": 1, "x": 8, "y": 3}, - {"w": 1, "x": 9, "y": 3}, - {"w": 1, "x": 10, "y": 3}, - {"w": 1, "x": 11, "y": 3}, - {"w": 1, "x": 0, "y": 4}, - {"w": 1, "x": 1, "y": 4}, - {"w": 1, "x": 2, "y": 4}, - {"w": 1, "x": 3, "y": 4}, - {"w": 1, "x": 4, "y": 4}, - {"w": 2, "x": 5, "y": 4}, - {"w": 1, "x": 7, "y": 4}, - {"w": 1, "x": 8, "y": 4}, - {"w": 1, "x": 9, "y": 4}, - {"w": 1, "x": 10, "y": 4}, - {"w": 1, "x": 11, "y": 4} + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4, "w": 2}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} ] }, "LAYOUT_ortho_5x12_2x2u": { - "key_count": 58, "layout": [ - {"w": 1, "x": 0, "y": 0}, - {"w": 1, "x": 1, "y": 0}, - {"w": 1, "x": 2, "y": 0}, - {"w": 1, "x": 3, "y": 0}, - {"w": 1, "x": 4, "y": 0}, - {"w": 1, "x": 5, "y": 0}, - {"w": 1, "x": 6, "y": 0}, - {"w": 1, "x": 7, "y": 0}, - {"w": 1, "x": 8, "y": 0}, - {"w": 1, "x": 9, "y": 0}, - {"w": 1, "x": 10, "y": 0}, - {"w": 1, "x": 11, "y": 0}, - {"w": 1, "x": 0, "y": 1}, - {"w": 1, "x": 1, "y": 1}, - {"w": 1, "x": 2, "y": 1}, - {"w": 1, "x": 3, "y": 1}, - {"w": 1, "x": 4, "y": 1}, - {"w": 1, "x": 5, "y": 1}, - {"w": 1, "x": 6, "y": 1}, - {"w": 1, "x": 7, "y": 1}, - {"w": 1, "x": 8, "y": 1}, - {"w": 1, "x": 9, "y": 1}, - {"w": 1, "x": 10, "y": 1}, - {"w": 1, "x": 11, "y": 1}, - {"w": 1, "x": 0, "y": 2}, - {"w": 1, "x": 1, "y": 2}, - {"w": 1, "x": 2, "y": 2}, - {"w": 1, "x": 3, "y": 2}, - {"w": 1, "x": 4, "y": 2}, - {"w": 1, "x": 5, "y": 2}, - {"w": 1, "x": 6, "y": 2}, - {"w": 1, "x": 7, "y": 2}, - {"w": 1, "x": 8, "y": 2}, - {"w": 1, "x": 9, "y": 2}, - {"w": 1, "x": 10, "y": 2}, - {"w": 1, "x": 11, "y": 2}, - {"w": 1, "x": 0, "y": 3}, - {"w": 1, "x": 1, "y": 3}, - {"w": 1, "x": 2, "y": 3}, - {"w": 1, "x": 3, "y": 3}, - {"w": 1, "x": 4, "y": 3}, - {"w": 1, "x": 5, "y": 3}, - {"w": 1, "x": 6, "y": 3}, - {"w": 1, "x": 7, "y": 3}, - {"w": 1, "x": 8, "y": 3}, - {"w": 1, "x": 9, "y": 3}, - {"w": 1, "x": 10, "y": 3}, - {"w": 1, "x": 11, "y": 3}, - {"w": 1, "x": 0, "y": 4}, - {"w": 1, "x": 1, "y": 4}, - {"w": 1, "x": 2, "y": 4}, - {"w": 1, "x": 3, "y": 4}, - {"w": 2, "x": 4, "y": 4}, - {"w": 2, "x": 6, "y": 4}, - {"w": 1, "x": 8, "y": 4}, - {"w": 1, "x": 9, "y": 4}, - {"w": 1, "x": 10, "y": 4}, - {"w": 1, "x": 11, "y": 4} + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4, "w": 2}, + {"x": 6, "y": 4, "w": 2}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} ] } } diff --git a/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/config.h b/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/config.h deleted file mode 100644 index 271f48d0011b..000000000000 --- a/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -// place overrides here diff --git a/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c b/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c index 00aec245ef90..75d89702c956 100644 --- a/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c +++ b/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c @@ -1,83 +1,73 @@ #include QMK_KEYBOARD_H -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum o4l5x12_layers { - _QWERTY, - _LOWER +enum layer_names { + _QWERTY, + _LOWER }; -// Layers get their own keys. These are defined to make them not mess up -// the grid. -enum o4l5x12_keycodes { - QWERTY = SAFE_RANGE, - LOWER +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | Y | U | I | O | P | BSPC | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Lower | Enter | Space | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_ortho_5x12_2x2u( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ESC | Q | W | E | R | T | Y | U | I | O | P | BSPC | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Tab | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Lower | Enter | Space | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT_ortho_5x12_2x2u( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, - KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * |RGBPLA| { | [ | ( | | | ) | ] | } | | | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * |RGBMOD| | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * |UGlow | Reset| | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LOWER] = LAYOUT_ortho_5x12_2x2u( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_DEL, - RGB_M_P, KC_LCBR, KC_LBRC, KC_LPRN, KC_SLSH, KC_BSLS, KC_RPRN, KC_RBRC, KC_RCBR, _______, _______, KC_PIPE, - RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_TOG, RESET, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -), - + /* Lower + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |RGBPLA| { | [ | ( | | | ) | ] | } | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |RGBMOD| | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |UGlow | Reset| | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_ortho_5x12_2x2u( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_DEL, + RGB_M_P, KC_LCBR, KC_LBRC, KC_LPRN, KC_SLSH, KC_BSLS, KC_RPRN, KC_RBRC, KC_RCBR, _______, _______, KC_PIPE, + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RESET, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ) }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { + switch (keycode) { case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - } else { - layer_off(_LOWER); - } - return false; - break; - } + if (record->event.pressed) { + layer_on(_LOWER); + } else { + layer_off(_LOWER); + } + return false; + } return true; }; diff --git a/keyboards/keycapsss/o4l_5x12/keymaps/default/config.h b/keyboards/keycapsss/o4l_5x12/keymaps/default/config.h deleted file mode 100644 index 271f48d0011b..000000000000 --- a/keyboards/keycapsss/o4l_5x12/keymaps/default/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -// place overrides here diff --git a/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c b/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c index 3e9dc335d7e6..107d6c940b83 100644 --- a/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c +++ b/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c @@ -1,140 +1,129 @@ #include QMK_KEYBOARD_H -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum preonic_layers { - _QWERTY, - _LOWER, - _RAISE, - _ADJUST +enum layer_names { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST }; -// Layers get their own keys. These are defined to make them not mess up -// the grid. -enum preonic_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty (Preonic Layer Style) + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), -/* Qwerty (Preonic Layer Style) - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT_ortho_5x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), + /* Lower (Preonic Layer Style) + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_ortho_5x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), -/* Lower (Preonic Layer Style) - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LOWER] = LAYOUT_ortho_5x12( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -), - -/* Raise (Preonic Layer Style) - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RAISE] = LAYOUT_ortho_5x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -), - -/* Adjust (Lower + Raise) (Preonic Layer Style) - * ,-----------------------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | Reset| | | | | | | | | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty| | | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_ADJUST] = LAYOUT_ortho_5x12( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) + /* Raise (Preonic Layer Style) + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + /* Adjust (Lower + Raise) (Preonic Layer Style) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty| | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT_ortho_5x12( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { + switch (keycode) { case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - } + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + } return true; }; diff --git a/keyboards/keycapsss/o4l_5x12/o4l_5x12.h b/keyboards/keycapsss/o4l_5x12/o4l_5x12.h index 2061d477b92f..a5f775ef135c 100644 --- a/keyboards/keycapsss/o4l_5x12/o4l_5x12.h +++ b/keyboards/keycapsss/o4l_5x12/o4l_5x12.h @@ -4,47 +4,44 @@ #define XXX KC_NO - #define LAYOUT_ortho_5x12( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ - } +#define LAYOUT_ortho_5x12( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B } \ +} - #define LAYOUT_ortho_5x12_1x2uC( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, }, \ - { k40, k41, k42, k43, k44, k45, XXX, k47, k48, k49, k4a, k4b } \ - } +#define LAYOUT_ortho_5x12_1x2uC( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \ + k40, k41, k42, k43, k44, k45, k47, k48, k49, k4A, k4B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \ + { k40, k41, k42, k43, k44, k45, XXX, k47, k48, k49, k4A, k4B } \ +} - #define LAYOUT_ortho_5x12_2x2u( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k46, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, }, \ - { k40, k41, k42, k43, k44, XXX, k46, XXX, k48, k49, k4a, k4b } \ - } +#define LAYOUT_ortho_5x12_2x2u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \ + k40, k41, k42, k43, k44, k46, k48, k49, k4A, k4B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \ + { k40, k41, k42, k43, k44, XXX, k46, XXX, k48, k49, k4A, k4B } \ +} diff --git a/keyboards/keycapsss/o4l_5x12/readme.md b/keyboards/keycapsss/o4l_5x12/readme.md index 16bdcc49f5b5..a6989617142e 100644 --- a/keyboards/keycapsss/o4l_5x12/readme.md +++ b/keyboards/keycapsss/o4l_5x12/readme.md @@ -2,7 +2,7 @@ A ortholinear 5x12 keyboard made and sold by Keycapsss. [More info at Keycapsss.com](https://keycapsss.com). - +![o4l_5x12](https://i.imgur.com/5p8rDmel.jpg) ## Features: @@ -14,18 +14,16 @@ A ortholinear 5x12 keyboard made and sold by Keycapsss. [More info at Keycapsss. --- -- Keyboard Maintainer: BenRoe [GitHub](https://github.com/BenRoe) / [Twitter](https://twitter.com/ben_roe) -- Hardware Supported: Pro Micro -- Hardware Availability: [Keycapsss.com](https://keycapsss.com) +* Keyboard Maintainer: BenRoe [GitHub](https://github.com/BenRoe) / [Twitter](https://twitter.com/ben_roe) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keycapsss.com](https://keycapsss.com) - - -Make firmware .hex for this keyboard (after setting up your build environment): +Make example for this keyboard (after setting up your build environment): make keycapsss/o4l_5x12:default -Example of flashing this keyboard (or use [QMK Toolbox](https://github.com/qmk/qmk_toolbox)): +Flashing example for this keyboard: - make keycapsss/o4l_5x12:default:avrdude + make keycapsss/o4l_5x12:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/keycapsss/o4l_5x12/rules.mk b/keyboards/keycapsss/o4l_5x12/rules.mk index 8077dc1e14b5..05de11caf5da 100644 --- a/keyboards/keycapsss/o4l_5x12/rules.mk +++ b/keyboards/keycapsss/o4l_5x12/rules.mk @@ -2,26 +2,23 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = caterina +# Build Options +# change yes to no to disable +# BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output LAYOUTS = ortho_5x12 From e11d3d524da21912250dae170fa8e0d2039f6bcb Mon Sep 17 00:00:00 2001 From: MURAOKA Taro Date: Sat, 2 Jan 2021 02:24:05 +0900 Subject: [PATCH 088/140] speed up list_keyboards.sh --- util/list_keyboards.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/util/list_keyboards.sh b/util/list_keyboards.sh index 7849cf4d91b8..1c103e0f11d6 100755 --- a/util/list_keyboards.sh +++ b/util/list_keyboards.sh @@ -3,8 +3,6 @@ # # This allows us to exclude keyboards by including a .noci file. -find -L keyboards -type f -name rules.mk | grep -v keymaps | while read keyboard; do - keyboard=$(echo $keyboard | sed 's!keyboards/\(.*\)/rules.mk!\1!') - +find -L keyboards -type f -name rules.mk | grep -v keymaps | sed 's!keyboards/\(.*\)/rules.mk!\1!' | while read keyboard; do [ "$1" = "noci" -a -e "keyboards/${keyboard}/.noci" ] || echo "$keyboard" done From fcd921f3aa9475f82b0f1a3f35e0d791b1614801 Mon Sep 17 00:00:00 2001 From: Ross Montsinger Date: Fri, 1 Jan 2021 18:05:02 -0500 Subject: [PATCH 089/140] [Keyboard] Rebound, adding files for VIA compat (#11193) * changes for via * add manu to product name * remove manu from product value * remove description * i m licensed --- keyboards/montsinger/rebound/rev4/config.h | 1 - .../rebound/rev4/keymaps/via/keymap.c | 118 ++++++++++++++++++ .../rebound/rev4/keymaps/via/rules.mk | 2 + 3 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 keyboards/montsinger/rebound/rev4/keymaps/via/keymap.c create mode 100644 keyboards/montsinger/rebound/rev4/keymaps/via/rules.mk diff --git a/keyboards/montsinger/rebound/rev4/config.h b/keyboards/montsinger/rebound/rev4/config.h index 9932cd2d674a..be97ab98d737 100644 --- a/keyboards/montsinger/rebound/rev4/config.h +++ b/keyboards/montsinger/rebound/rev4/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0002 #define MANUFACTURER Montsinger #define PRODUCT Rebound -#define DESCRIPTION "A conjoined Let's Split" /* key matrix size */ diff --git a/keyboards/montsinger/rebound/rev4/keymaps/via/keymap.c b/keyboards/montsinger/rebound/rev4/keymaps/via/keymap.c new file mode 100644 index 000000000000..325036231dfe --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/keymaps/via/keymap.c @@ -0,0 +1,118 @@ +/* Copyright 2021 Ross Montsinger + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum layer_names { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = LAYOUT_all( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +[_COLEMAK] = LAYOUT_all( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, _______, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +[_DVORAK] = LAYOUT_all( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +[_LOWER] = LAYOUT_all( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +[_RAISE] = LAYOUT_all( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +[_ADJUST] = LAYOUT_all( + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + break; + } + return true; +} + +void encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code16(S(KC_VOLD)); + } else { + tap_code16(KC_VOLU); + } +} diff --git a/keyboards/montsinger/rebound/rev4/keymaps/via/rules.mk b/keyboards/montsinger/rebound/rev4/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes From 1d2a9a1cdb022b0a62003c550897786140e4aa10 Mon Sep 17 00:00:00 2001 From: Kyle McCreery Date: Fri, 1 Jan 2021 13:16:00 -1000 Subject: [PATCH 090/140] [Keyboard] New Keyboard - Mercutio (#11214) * Initial commit on new clean branch. Testing out functionality of oled and encoder for default features. * Cleaned up the initial push and removed the fancy keymap until the extra features and functionality can be tested and made more user friendly. * Cleaned up the readme some more, compiled and tested both default and via keymaps, and did another round of checks to prepare for starting the PR. * Cleaning up the keymap to meet expected formatting in a couple places and also adding in the TAP_CODE_DELAY after newly encoutnered encoder issues and inconsistencies. * Apply suggestions from code review Co-authored-by: Joel Challis * Update keyboards/mechwild/mercutio/readme.md Co-authored-by: Ryan * Fixing json syntax. * Update keyboards/mechwild/mercutio/rules.mk Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/mechwild/mercutio/config.h | 56 ++++ keyboards/mechwild/mercutio/info.json | 12 + .../mercutio/keymaps/default/config.h | 20 ++ .../mercutio/keymaps/default/keymap.c | 81 ++++++ .../mechwild/mercutio/keymaps/via/config.h | 20 ++ .../mechwild/mercutio/keymaps/via/keymap.c | 81 ++++++ .../mechwild/mercutio/keymaps/via/rules.mk | 2 + .../mechwild/mercutio/lib/mercutiofont.c | 244 ++++++++++++++++++ keyboards/mechwild/mercutio/mercutio.c | 18 ++ keyboards/mechwild/mercutio/mercutio.h | 40 +++ keyboards/mechwild/mercutio/readme.md | 24 ++ keyboards/mechwild/mercutio/rules.mk | 24 ++ 12 files changed, 622 insertions(+) create mode 100755 keyboards/mechwild/mercutio/config.h create mode 100644 keyboards/mechwild/mercutio/info.json create mode 100644 keyboards/mechwild/mercutio/keymaps/default/config.h create mode 100644 keyboards/mechwild/mercutio/keymaps/default/keymap.c create mode 100644 keyboards/mechwild/mercutio/keymaps/via/config.h create mode 100755 keyboards/mechwild/mercutio/keymaps/via/keymap.c create mode 100644 keyboards/mechwild/mercutio/keymaps/via/rules.mk create mode 100755 keyboards/mechwild/mercutio/lib/mercutiofont.c create mode 100755 keyboards/mechwild/mercutio/mercutio.c create mode 100644 keyboards/mechwild/mercutio/mercutio.h create mode 100644 keyboards/mechwild/mercutio/readme.md create mode 100755 keyboards/mechwild/mercutio/rules.mk diff --git a/keyboards/mechwild/mercutio/config.h b/keyboards/mechwild/mercutio/config.h new file mode 100755 index 000000000000..457b3bfdf9f3 --- /dev/null +++ b/keyboards/mechwild/mercutio/config.h @@ -0,0 +1,56 @@ +/* Copyright 2020 Kyle McCreery + * + * 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 . + */ + + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6D77 // mw = "MechWild" +#define PRODUCT_ID 0x1703 +#define DEVICE_VER 0x0100 +#define MANUFACTURER MechWild +#define PRODUCT Mercutio + +/* key matrix size */ +#define MATRIX_ROWS 7 +#define MATRIX_COLS 7 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D0, D1, D4, C3, C0, C1, C2} +#define MATRIX_COL_PINS { B0, D7, D6, D5, B1, B2, B3} +#define UNUSED_PINS + +/* encoder pins */ +#define ENCODERS_PAD_A { B4 } +#define ENCODERS_PAD_B { B5 } + +/* encoder resolution */ +#define ENCODER_RESOLUTION 2 +#define TAP_CODE_DELAY 10 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/mechwild/mercutio/info.json b/keyboards/mechwild/mercutio/info.json new file mode 100644 index 000000000000..fc915c611cd1 --- /dev/null +++ b/keyboards/mechwild/mercutio/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "MechWild Mercutio", + "url": "mechwild.com", + "maintainer": "kylemccreery", + "width": 12, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"encoder", "x":12, "y":0}, {"label":"1.5u", "x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"label":"1.5u", "x":11.5, "y":1, "w":1.5}, {"label":"1.75u", "x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"label":"1.25u", "x":11.75, "y":2, "w":1.25}, {"label":"1.25u", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"label":"1.75u", "x":11.25, "y":3, "w":1.75},{"label":"1.25u", "x":0, "y":4, "w":1.25}, {"label":"1u", "x":1.25, "y":4}, {"label":"1.25u", "x":2.25, "y":4, "w":1.25}, {"label":"2.25u", "x":3.5, "y":4, "w":2.25}, {"label":"1u", "x":5.75, "y":4}, {"label":"2.75u", "x":6.75, "y":4, "w":2.75}, {"label":"1.25u", "x":9.5, "y":4, "w":1.25}, {"label":"1u", "x":10.75, "y":4}, {"label":"1.25u", "x":11.75, "y":4, "w":1.25}] + } + } +} diff --git a/keyboards/mechwild/mercutio/keymaps/default/config.h b/keyboards/mechwild/mercutio/keymaps/default/config.h new file mode 100644 index 000000000000..e51d4878cf13 --- /dev/null +++ b/keyboards/mechwild/mercutio/keymaps/default/config.h @@ -0,0 +1,20 @@ +/* Copyright 2020 Kyle McCreery + * + * 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 . + */ + +#pragma once + +/* Define custom font */ +#define OLED_FONT_H "keyboards/mechwild/mercutio/lib/mercutiofont.c" \ No newline at end of file diff --git a/keyboards/mechwild/mercutio/keymaps/default/keymap.c b/keyboards/mechwild/mercutio/keymaps/default/keymap.c new file mode 100644 index 000000000000..f6a78d0c50dd --- /dev/null +++ b/keyboards/mechwild/mercutio/keymaps/default/keymap.c @@ -0,0 +1,81 @@ +/* Copyright 2020 Kyle McCreery + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_MUTE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(2), KC_RCTL ), + + [1] = LAYOUT_all( + KC_TRNS, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TRNS, KC_TRNS, KC_GRV, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_TRNS, KC_QUOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_SLSH, KC_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT ), + + [2] = LAYOUT_all( + KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + + [3] = LAYOUT_all( + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) +}; + +#ifdef ENCODER_ENABLE +void encoder_update_user(uint8_t index, bool clockwise) { + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + } +} +#endif + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand +} + +static void render_name(void) { + static const char PROGMEM mercutio_name[] = { + 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0x95, 0xB5, 0x96, 0xD5, 0xB6, 0xB6, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 + }; + oled_write_P(mercutio_name, false); +} + +void oled_task_user(void) { + render_name(); +} +#endif \ No newline at end of file diff --git a/keyboards/mechwild/mercutio/keymaps/via/config.h b/keyboards/mechwild/mercutio/keymaps/via/config.h new file mode 100644 index 000000000000..e51d4878cf13 --- /dev/null +++ b/keyboards/mechwild/mercutio/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* Copyright 2020 Kyle McCreery + * + * 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 . + */ + +#pragma once + +/* Define custom font */ +#define OLED_FONT_H "keyboards/mechwild/mercutio/lib/mercutiofont.c" \ No newline at end of file diff --git a/keyboards/mechwild/mercutio/keymaps/via/keymap.c b/keyboards/mechwild/mercutio/keymaps/via/keymap.c new file mode 100755 index 000000000000..f6a78d0c50dd --- /dev/null +++ b/keyboards/mechwild/mercutio/keymaps/via/keymap.c @@ -0,0 +1,81 @@ +/* Copyright 2020 Kyle McCreery + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_MUTE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(2), KC_RCTL ), + + [1] = LAYOUT_all( + KC_TRNS, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TRNS, KC_TRNS, KC_GRV, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_TRNS, KC_QUOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_SLSH, KC_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT ), + + [2] = LAYOUT_all( + KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + + [3] = LAYOUT_all( + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) +}; + +#ifdef ENCODER_ENABLE +void encoder_update_user(uint8_t index, bool clockwise) { + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + } +} +#endif + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand +} + +static void render_name(void) { + static const char PROGMEM mercutio_name[] = { + 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0x95, 0xB5, 0x96, 0xD5, 0xB6, 0xB6, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 + }; + oled_write_P(mercutio_name, false); +} + +void oled_task_user(void) { + render_name(); +} +#endif \ No newline at end of file diff --git a/keyboards/mechwild/mercutio/keymaps/via/rules.mk b/keyboards/mechwild/mercutio/keymaps/via/rules.mk new file mode 100644 index 000000000000..16d33cd89fe4 --- /dev/null +++ b/keyboards/mechwild/mercutio/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes + diff --git a/keyboards/mechwild/mercutio/lib/mercutiofont.c b/keyboards/mechwild/mercutio/lib/mercutiofont.c new file mode 100755 index 000000000000..f0fec0e37a00 --- /dev/null +++ b/keyboards/mechwild/mercutio/lib/mercutiofont.c @@ -0,0 +1,244 @@ +/* Copyright 2020 Kyle McCreery + * + * 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 . + */ + +#include "progmem.h" + +const unsigned char font[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7E, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xC0, 0xE0, 0xF0, 0xF0, 0x30, 0x00, + 0x00, 0xC0, 0x60, 0xF0, 0xF0, 0xF0, + 0x30, 0x00, 0x80, 0xC0, 0x20, 0xF0, + 0xF0, 0xF0, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, + 0x30, 0x18, 0xB8, 0xF8, 0xF0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xDC, 0x7E, + 0x3F, 0xBE, 0xF0, 0xF0, 0xE0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xC0, 0xE0, 0x70, 0x10, 0x18, 0x18, + 0xF8, 0xF0, 0x60, 0x00, 0x00, 0x00, + 0x00, 0xC0, 0x60, 0xF0, 0xF8, 0xF8, + 0x30, 0x00, 0x00, 0x00, 0x80, 0xE0, + 0xF0, 0xF8, 0xF8, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xFC, + 0xFF, 0x3F, 0x0F, 0x01, 0x00, 0x00, + 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xC0, 0x60, 0x30, 0x90, 0x40, + 0x20, 0x30, 0x70, 0xE0, 0xC0, 0x00, + 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x00, 0x00, 0x00, 0xE0, 0xFE, 0xFF, + 0xFE, 0xF8, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0xFC, 0xFF, 0xFE, + 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x3E, + 0xE0, 0x80, 0x70, 0x0E, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x3C, 0xE0, + 0x80, 0x78, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x0C, 0x06, 0xC3, 0xF9, + 0xFE, 0x3F, 0xC7, 0x71, 0x18, 0x06, + 0xC3, 0xF0, 0x7C, 0x1F, 0xC7, 0x71, + 0x18, 0x06, 0xC3, 0xF8, 0xFE, 0x3F, + 0x0F, 0x01, 0x80, 0xC0, 0xF0, 0xF8, + 0xFE, 0xDF, 0x47, 0x63, 0x60, 0x30, + 0x38, 0x1E, 0x0F, 0x07, 0x81, 0x40, + 0x20, 0x18, 0x06, 0x03, 0x81, 0xF0, + 0xFC, 0x7F, 0x1F, 0x07, 0x80, 0xC0, + 0xE0, 0xF8, 0xFC, 0x3E, 0x0F, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x01, 0x80, 0x60, 0x10, 0x08, 0x06, + 0xE3, 0xFC, 0xFF, 0x3F, 0x07, 0x01, + 0xC0, 0x30, 0x8C, 0xE3, 0xFF, 0x7F, + 0x1F, 0x03, 0x80, 0xC0, 0x30, 0x18, + 0x8C, 0xE3, 0xF9, 0xFF, 0x3F, 0x07, + 0x01, 0x80, 0xC0, 0x30, 0x18, 0x0C, + 0xC3, 0xF1, 0xFC, 0x7F, 0x0F, 0x03, + 0x80, 0xC0, 0xF0, 0xFC, 0xFE, 0x3F, + 0x07, 0x01, 0x00, 0x3E, 0xC1, 0x80, + 0x80, 0xE0, 0xFC, 0x3F, 0x8F, 0x40, + 0x40, 0xC0, 0xF0, 0xFC, 0x7E, 0x4E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, + 0x07, 0x1F, 0xFF, 0xFE, 0xF0, 0xC0, + 0xF8, 0xFF, 0x7F, 0x0F, 0x07, 0x7F, + 0xFF, 0xFE, 0xFC, 0x04, 0x04, 0x78, + 0x80, 0x00, 0x00, 0x00, 0xC0, 0x38, + 0x0C, 0x1C, 0x60, 0x80, 0x00, 0x00, + 0x00, 0xF0, 0x0C, 0x04, 0xF4, 0x1C, + 0x80, 0xC0, 0xFC, 0xE6, 0xC3, 0xC1, + 0xC1, 0xC3, 0xE6, 0xFC, 0xC0, 0x80, + 0x00, 0x00, 0x38, 0x3F, 0x3F, 0x1F, + 0x07, 0x03, 0x00, 0x00, 0x38, 0x3E, + 0x3F, 0x1F, 0x0E, 0x03, 0x00, 0x00, + 0x30, 0x7F, 0x7F, 0x3F, 0x19, 0x0C, + 0x06, 0x03, 0x01, 0x0F, 0x1F, 0x3F, + 0x71, 0x60, 0x60, 0x70, 0x30, 0x18, + 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x7E, 0x7F, 0x3F, + 0x3B, 0x18, 0x04, 0x03, 0x01, 0x00, + 0x0F, 0x1F, 0x31, 0x20, 0x20, 0x20, + 0x20, 0x10, 0x18, 0x08, 0x04, 0x02, + 0x01, 0x00, 0x00, 0x00, 0x1C, 0x3F, + 0x7F, 0x7F, 0x31, 0x18, 0x06, 0x03, + 0x18, 0x3E, 0x3F, 0x3F, 0x1B, 0x08, + 0x04, 0x02, 0x01, 0x00, 0x00, 0x1E, + 0x3F, 0x3F, 0x3F, 0x10, 0x08, 0x04, + 0x02, 0x01, 0x00, 0x00, 0x18, 0x3E, + 0x3F, 0x3F, 0x19, 0x0C, 0x06, 0x03, + 0x01, 0x00, 0x0F, 0x1F, 0x31, 0x60, + 0x60, 0x60, 0x30, 0x18, 0x1C, 0x0F, + 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x18, 0x3C, 0x3C, 0x1C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1F, 0x1F, 0x1F, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x1F, 0x1F, + 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x1F, 0x1F, 0x1E, 0xF8, 0x00, + 0x0F, 0x70, 0x30, 0x0E, 0xC1, 0x38, + 0x07, 0x0E, 0x70, 0x83, 0x1C, 0x60, + 0x1E, 0x03, 0xC0, 0x3E, 0x01, 0x00, + 0x3F, 0x7F, 0xFF, 0xFF, 0xF9, 0xC0, + 0xC0, 0xF9, 0xFF, 0xFF, 0x7F, 0x3F, +}; diff --git a/keyboards/mechwild/mercutio/mercutio.c b/keyboards/mechwild/mercutio/mercutio.c new file mode 100755 index 000000000000..de4437a1337b --- /dev/null +++ b/keyboards/mechwild/mercutio/mercutio.c @@ -0,0 +1,18 @@ +/* Copyright 2020 Kyle McCreery + * + * 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 . + */ + + +#include "mercutio.h" diff --git a/keyboards/mechwild/mercutio/mercutio.h b/keyboards/mechwild/mercutio/mercutio.h new file mode 100644 index 000000000000..6f9da39b7a6d --- /dev/null +++ b/keyboards/mechwild/mercutio/mercutio.h @@ -0,0 +1,40 @@ +/* Copyright 2020 Kyle McCreery + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + + +#define LAYOUT_all( \ + KEN, \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K34, K36, K37, K39, K3A, K3B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06 }, \ + { K10, K11, K12, K13, K14, K15, K16 }, \ + { K20, K21, K3B, K23, K24, K25, K26 }, \ + { K30, K32, K3A, K39, K34, K36, K37 }, \ + { ___, K1A, KEN, K0A, K09, K08, K07 }, \ + { ___, K31, K0B, K1B, K19, K18, K17 }, \ + { ___, K22, K2B, K2A, K29, K28, K27 } \ +} + + + diff --git a/keyboards/mechwild/mercutio/readme.md b/keyboards/mechwild/mercutio/readme.md new file mode 100644 index 000000000000..0ab08b2b075a --- /dev/null +++ b/keyboards/mechwild/mercutio/readme.md @@ -0,0 +1,24 @@ +# Mercutio + +![Mercutio](https://i.imgur.com/23J9GqXl.jpg) + +A through-hole 40% keyboard kit featuring an encoder and oled display. + +* Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery) +* Hardware Supported: Mercutio v1.0 +* Hardware Availability: [Mercutio on MechWild](https://mechwild.com/product/mercutio/) + +Make example for this keyboard (after setting up your build environment): + + make mechwild/mercutio:default + +## Bootloader +Uses usbasploader, which has been preflashed on the atmega328p before being shipped to you. The usbasploader build available on [hsgw's repository](https://github.com/hsgw/USBaspLoader/tree/plaid) will work if you need to flash a new and unprepared replacement microcontroller. To flash this onto your fresh atmega328p, you will need to use the provided ISP headers and an external ISP programmer. + +In order to put the board into bootloader mode you must first hold the boot button (labeled BOOT) and while holding the boot button, press the reset button (labeled RESET) and release it. Wait for another second, then release the boot button as well. The microcontroller will now be in bootloader mode if the bootloader is present and prepared correctly. Continue to flash as you normally would from this point (ie. QMK Toolbox). If you have autoflash enabled on QMK Toolbox, it will do it automatically now. Reset the board once more in order to use the new firmware (you can do this by unplugging and replugging it or by pressing and releasing the reset button.) + +By default, Mercutio firmware has bootmagic enabled (lite). This means that instead of holding or pressing either of the small buttons, you are able to unplug the Mercutio, hold the top left button (tab), plug the Mercutio back in, and then release the top left button (tab). This will work the same to put the Mercutio into bootloader mode. For more information, see the [bootmagic feature page](https://beta.docs.qmk.fm/using-qmk/hardware-features/feature_bootmagic). Reset the board once more in order to use the new firmware (you can do this by unplugging and replugging it or by pressing and releasing the reset button.) + + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/mechwild/mercutio/rules.mk b/keyboards/mechwild/mercutio/rules.mk new file mode 100755 index 000000000000..d2a2a02a0885 --- /dev/null +++ b/keyboards/mechwild/mercutio/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega328p + +# Bootloader selection +BOOTLOADER = USBasp + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes +OLED_DRIVER_ENABLE = yes From 8ed9eb9c7f75b898c867060be46b404725339cea Mon Sep 17 00:00:00 2001 From: gkeyboard Date: Sat, 2 Jan 2021 06:26:00 +0700 Subject: [PATCH 091/140] [Keyboard] Add GKB-M16 Macro Pad (#11262) * Add GKB-M16 Macro Pad Add GKB-M16 (gkb_m16) Macro Pad under gkeyboard * Update keyboards/gkeyboard/gkb_m16/config.h Co-authored-by: Joel Challis * Update keyboards/gkeyboard/gkb_m16/keymaps/via/keymap.c Co-authored-by: Joel Challis * Update keyboards/gkeyboard/gkb_m16/info.json Co-authored-by: Ryan * Update keyboards/gkeyboard/gkb_m16/keymaps/default/keymap.c Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/gkeyboard/gkb_m16/config.h | 151 ++++++++++++++++++ keyboards/gkeyboard/gkb_m16/gkb_m16.c | 17 ++ keyboards/gkeyboard/gkb_m16/gkb_m16.h | 40 +++++ keyboards/gkeyboard/gkb_m16/info.json | 29 ++++ .../gkb_m16/keymaps/default/keymap.c | 73 +++++++++ .../gkb_m16/keymaps/default/readme.md | 1 + .../gkeyboard/gkb_m16/keymaps/via/keymap.c | 44 +++++ .../gkeyboard/gkb_m16/keymaps/via/readme.md | 1 + .../gkeyboard/gkb_m16/keymaps/via/rules.mk | 2 + keyboards/gkeyboard/gkb_m16/readme.md | 19 +++ keyboards/gkeyboard/gkb_m16/rules.mk | 22 +++ 11 files changed, 399 insertions(+) create mode 100644 keyboards/gkeyboard/gkb_m16/config.h create mode 100644 keyboards/gkeyboard/gkb_m16/gkb_m16.c create mode 100644 keyboards/gkeyboard/gkb_m16/gkb_m16.h create mode 100644 keyboards/gkeyboard/gkb_m16/info.json create mode 100644 keyboards/gkeyboard/gkb_m16/keymaps/default/keymap.c create mode 100644 keyboards/gkeyboard/gkb_m16/keymaps/default/readme.md create mode 100644 keyboards/gkeyboard/gkb_m16/keymaps/via/keymap.c create mode 100644 keyboards/gkeyboard/gkb_m16/keymaps/via/readme.md create mode 100644 keyboards/gkeyboard/gkb_m16/keymaps/via/rules.mk create mode 100644 keyboards/gkeyboard/gkb_m16/readme.md create mode 100644 keyboards/gkeyboard/gkb_m16/rules.mk diff --git a/keyboards/gkeyboard/gkb_m16/config.h b/keyboards/gkeyboard/gkb_m16/config.h new file mode 100644 index 000000000000..be1861b90f73 --- /dev/null +++ b/keyboards/gkeyboard/gkb_m16/config.h @@ -0,0 +1,151 @@ +/* +Copyright 2020 gkeyboard + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x474B // "GK" +#define PRODUCT_ID 0x4201 +#define DEVICE_VER 0x0001 +#define MANUFACTURER gkeyboard +#define PRODUCT GKB-M16 +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 4 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D4, D5, D6, D7 } +#define MATRIX_COL_PINS { F4, F5, F6, F7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +//#define LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN F1 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 4 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/gkeyboard/gkb_m16/gkb_m16.c b/keyboards/gkeyboard/gkb_m16/gkb_m16.c new file mode 100644 index 000000000000..5a1f7f13e3c9 --- /dev/null +++ b/keyboards/gkeyboard/gkb_m16/gkb_m16.c @@ -0,0 +1,17 @@ +/* Copyright 2020 gkeyboard + * + * 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 . + */ + +#include "gkb_m16.h" diff --git a/keyboards/gkeyboard/gkb_m16/gkb_m16.h b/keyboards/gkeyboard/gkb_m16/gkb_m16.h new file mode 100644 index 000000000000..8477f4cda3bd --- /dev/null +++ b/keyboards/gkeyboard/gkb_m16/gkb_m16.h @@ -0,0 +1,40 @@ +/* Copyright 2020 gkeyboard + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_ortho_4x4( \ + K01, K02, K03, K04, \ + K11, K12, K13, K14, \ + K21, K22, K23, K24, \ + K31, K32, K33, K34 \ +) \ +{ \ + { K01, K02, K03, K04 }, \ + { K11, K12, K13, K14 }, \ + { K21, K22, K23, K24 }, \ + { K31, K32, K33, K34 } \ +} diff --git a/keyboards/gkeyboard/gkb_m16/info.json b/keyboards/gkeyboard/gkb_m16/info.json new file mode 100644 index 000000000000..a9263a3cd749 --- /dev/null +++ b/keyboards/gkeyboard/gkb_m16/info.json @@ -0,0 +1,29 @@ +{ + "keyboard_name": "gkb_m16", + "url": "", + "maintainer": "gkeyboard", + "width": 4, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3} + ] + } + } + } diff --git a/keyboards/gkeyboard/gkb_m16/keymaps/default/keymap.c b/keyboards/gkeyboard/gkb_m16/keymaps/default/keymap.c new file mode 100644 index 000000000000..4fcde1b55c14 --- /dev/null +++ b/keyboards/gkeyboard/gkb_m16/keymaps/default/keymap.c @@ -0,0 +1,73 @@ +/* Copyright 2020 gkeyboard + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layers { + _BASE = 0, + _FN1, + _FN2, +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QMKBEST = SAFE_RANGE, + QMKURL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_ortho_4x4( + KC_PGUP, KC_HOME, KC_UP, KC_END , + KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, + MO(_FN2), KC_VOLU, KC_MPLY, KC_MPRV, + MO(_FN1), KC_VOLD, KC_MUTE, KC_MNXT + ), + [_FN1] = LAYOUT_ortho_4x4( + KC_ESC, KC_P7, KC_P8, KC_P9, + KC_TAB, KC_P4, KC_P5, KC_P6, + KC_ENT, KC_P1, KC_P2, KC_P3, + _______, KC_P0, KC_P0, KC_DOT + ), + [_FN2] = LAYOUT_ortho_4x4( + RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, + RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, RESET, + RGB_TOG, _______, QMKBEST, QMKURL + ) + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QMKBEST: + if (record->event.pressed) { + // when keycode QMKBEST is pressed + SEND_STRING("QMK is the best thing ever!"); + } else { + // when keycode QMKBEST is released + } + break; + case QMKURL: + if (record->event.pressed) { + // when keycode QMKURL is pressed + SEND_STRING("https://qmk.fm/\n"); + } else { + // when keycode QMKURL is released + } + break; + } + return true; +} diff --git a/keyboards/gkeyboard/gkb_m16/keymaps/default/readme.md b/keyboards/gkeyboard/gkb_m16/keymaps/default/readme.md new file mode 100644 index 000000000000..7e4960124944 --- /dev/null +++ b/keyboards/gkeyboard/gkb_m16/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for GKB-M16 diff --git a/keyboards/gkeyboard/gkb_m16/keymaps/via/keymap.c b/keyboards/gkeyboard/gkb_m16/keymaps/via/keymap.c new file mode 100644 index 000000000000..7d43c33082b4 --- /dev/null +++ b/keyboards/gkeyboard/gkb_m16/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 gkeyboard + * + * 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 . + */ +#include QMK_KEYBOARD_H +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_4x4( + KC_PGUP, KC_HOME, KC_UP, KC_END , + KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, + KC_DOT, KC_VOLU, KC_MPLY, KC_MPRV, + MO(1), KC_VOLD, KC_MUTE, KC_MNXT + ), + [1] = LAYOUT_ortho_4x4( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ortho_4x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_ortho_4x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/gkeyboard/gkb_m16/keymaps/via/readme.md b/keyboards/gkeyboard/gkb_m16/keymaps/via/readme.md new file mode 100644 index 000000000000..b04d2f4a3179 --- /dev/null +++ b/keyboards/gkeyboard/gkb_m16/keymaps/via/readme.md @@ -0,0 +1 @@ +# Via keymap for GKB-M16 diff --git a/keyboards/gkeyboard/gkb_m16/keymaps/via/rules.mk b/keyboards/gkeyboard/gkb_m16/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/gkeyboard/gkb_m16/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/gkeyboard/gkb_m16/readme.md b/keyboards/gkeyboard/gkb_m16/readme.md new file mode 100644 index 000000000000..40b94574376a --- /dev/null +++ b/keyboards/gkeyboard/gkb_m16/readme.md @@ -0,0 +1,19 @@ +# GKB-M16 + +![GKB-M16](https://i.imgur.com/LP5I5ZQ.png) + +4x4 Custom Macro Pad, with USB Type-C, RGB underglow. + +* Keyboard Maintainer: [gkeyboard](https://github.com/gkeyboard) +* Hardware Supported: GKB-M16 PCB +* Hardware Availability: http://www.mltelectronic.com + +Make example for this keyboard (after setting up your build environment): + + make gkeyboard/gkb_m16:default + +Flashing example for this keyboard: + + make gkeyboard/gkb_m16:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/gkeyboard/gkb_m16/rules.mk b/keyboards/gkeyboard/gkb_m16/rules.mk new file mode 100644 index 000000000000..f49426d5137f --- /dev/null +++ b/keyboards/gkeyboard/gkb_m16/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From d321cb3f8bcdd2ab15c13785f6fc4dd3474ec1ec Mon Sep 17 00:00:00 2001 From: smssmssms Date: Fri, 1 Jan 2021 23:27:13 +0000 Subject: [PATCH 092/140] [Keyboard] Pos78 update (#11274) * Added LED hardware pin numbers CAPS and NUM lock LEDs * Added "LED_PIN_ON_STATE 1" * Make MATRIX_ROW/COL pins match reality --- keyboards/pos78/config.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/keyboards/pos78/config.h b/keyboards/pos78/config.h index c307c6f5c6c0..c070d1358d16 100644 --- a/keyboards/pos78/config.h +++ b/keyboards/pos78/config.h @@ -39,8 +39,8 @@ along with this program. If not, see . * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * */ -#define MATRIX_ROW_PINS { F7, F6, F5, F4, F1, F0 } -#define MATRIX_COL_PINS { C7, D6, B7 ,B6, B5, E6, C6, D0, D1, D3, D2, B1, B2 } +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B2, B1, D2, D3, D1, D0, C6, E6, B5, B6, B7, D6, C7 } #define UNUSED_PINS /* COL2ROW, ROW2COL */ @@ -59,6 +59,11 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +/* Hardware LED pins*/ +#define LED_CAPS_LOCK_PIN D4 +#define LED_NUM_LOCK_PIN D2 +#define LED_PIN_ON_STATE 1 + /* If defined, GRAVE_ESC will always act as ESC when CTRL is held. * This is useful for the Windows task manager shortcut (ctrl+shift+esc). */ From 8da9219c1616aa77781af60d16721b1706b28f04 Mon Sep 17 00:00:00 2001 From: Felix Jen Date: Fri, 1 Jan 2021 18:44:45 -0600 Subject: [PATCH 093/140] [Keyboard] Added Phantom Solder PCB and KBD8X HS PCB Variants (#11282) * Added config for phantom solder all layout via only * fixed matrix def * Added KBD8X * changed info name * lowercase instances of LAYOUT_ALL and edited rules.mk * edited kbd8x results * fixed kbd8x rules * removed trailing comma in kbd8x info * Update keyboards/lucid/kbd8x_hs/config.h Co-authored-by: Joel Challis * Update keyboards/lucid/kbd8x_hs/kbd8x_hs.h Co-authored-by: Joel Challis * Update keyboards/lucid/kbd8x_hs/readme.md Co-authored-by: Joel Challis * Update keyboards/lucid/kbd8x_hs/rules.mk Co-authored-by: Joel Challis * Update keyboards/lucid/phantom_solder/info.json Co-authored-by: Joel Challis * Update keyboards/lucid/phantom_solder/readme.md Co-authored-by: Joel Challis * Update keyboards/lucid/phantom_solder/rules.mk Co-authored-by: Joel Challis * Fixed info.json key mismatch Co-authored-by: Joel Challis --- keyboards/lucid/kbd8x_hs/config.h | 105 ++++++ keyboards/lucid/kbd8x_hs/info.json | 298 ++++++++++++++++++ keyboards/lucid/kbd8x_hs/kbd8x_hs.h | 67 ++++ keyboards/lucid/kbd8x_hs/kbx8s_hs.c | 14 + .../lucid/kbd8x_hs/keymaps/default/keymap.c | 41 +++ .../kbd8x_hs/keymaps/default_7u/keymap.c | 41 +++ keyboards/lucid/kbd8x_hs/keymaps/via/keymap.c | 61 ++++ keyboards/lucid/kbd8x_hs/keymaps/via/rules.mk | 1 + keyboards/lucid/kbd8x_hs/readme.md | 11 + keyboards/lucid/kbd8x_hs/rules.mk | 26 ++ keyboards/lucid/phantom_solder/config.h | 105 ++++++ keyboards/lucid/phantom_solder/info.json | 88 ++++++ .../phantom_solder/keymaps/default/keymap.c | 39 +++ .../lucid/phantom_solder/keymaps/via/keymap.c | 58 ++++ .../lucid/phantom_solder/keymaps/via/rules.mk | 1 + .../lucid/phantom_solder/phantom_solder.c | 14 + .../lucid/phantom_solder/phantom_solder.h | 32 ++ keyboards/lucid/phantom_solder/readme.md | 11 + keyboards/lucid/phantom_solder/rules.mk | 26 ++ 19 files changed, 1039 insertions(+) create mode 100644 keyboards/lucid/kbd8x_hs/config.h create mode 100644 keyboards/lucid/kbd8x_hs/info.json create mode 100644 keyboards/lucid/kbd8x_hs/kbd8x_hs.h create mode 100644 keyboards/lucid/kbd8x_hs/kbx8s_hs.c create mode 100644 keyboards/lucid/kbd8x_hs/keymaps/default/keymap.c create mode 100644 keyboards/lucid/kbd8x_hs/keymaps/default_7u/keymap.c create mode 100644 keyboards/lucid/kbd8x_hs/keymaps/via/keymap.c create mode 100644 keyboards/lucid/kbd8x_hs/keymaps/via/rules.mk create mode 100644 keyboards/lucid/kbd8x_hs/readme.md create mode 100644 keyboards/lucid/kbd8x_hs/rules.mk create mode 100644 keyboards/lucid/phantom_solder/config.h create mode 100644 keyboards/lucid/phantom_solder/info.json create mode 100644 keyboards/lucid/phantom_solder/keymaps/default/keymap.c create mode 100644 keyboards/lucid/phantom_solder/keymaps/via/keymap.c create mode 100644 keyboards/lucid/phantom_solder/keymaps/via/rules.mk create mode 100644 keyboards/lucid/phantom_solder/phantom_solder.c create mode 100644 keyboards/lucid/phantom_solder/phantom_solder.h create mode 100644 keyboards/lucid/phantom_solder/readme.md create mode 100644 keyboards/lucid/phantom_solder/rules.mk diff --git a/keyboards/lucid/kbd8x_hs/config.h b/keyboards/lucid/kbd8x_hs/config.h new file mode 100644 index 000000000000..a7e63aa07065 --- /dev/null +++ b/keyboards/lucid/kbd8x_hs/config.h @@ -0,0 +1,105 @@ +/* +Copyright 2020 + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7667 // Lucid +#define PRODUCT_ID 0x0003 // KBD8X Hotswap PCB's +#define DEVICE_VER 0x0001 // Version 1 +#define MANUFACTURER Lucid +#define PRODUCT KBD8X_HS + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + *å +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { B4, B5, B6, C0, E1, E0 } +#define MATRIX_COL_PINS { F2, F3, F4, F5, F6, F7, A0, A1, A2, A3, A4, A5, A6, A7, D5, D7, D7 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Define Indicator LED's */ +#define LED_CAPS_LOCK_PIN B7 + +/* Define less important options */ + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/lucid/kbd8x_hs/info.json b/keyboards/lucid/kbd8x_hs/info.json new file mode 100644 index 000000000000..c8e81f5451b5 --- /dev/null +++ b/keyboards/lucid/kbd8x_hs/info.json @@ -0,0 +1,298 @@ +{ + "keyboard_name": "KBD8X Hotswap PCB's", + "url": "http://www.lucidkb.com", + "maintainer": "Lucid", + "width": 18.25, + "height": 6.25, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.25}, + {"label":"!", "x":1, "y":1.25}, + {"label":"@", "x":2, "y":1.25}, + {"label":"#", "x":3, "y":1.25}, + {"label":"$", "x":4, "y":1.25}, + {"label":"%", "x":5, "y":1.25}, + {"label":"^", "x":6, "y":1.25}, + {"label":"&", "x":7, "y":1.25}, + {"label":"*", "x":8, "y":1.25}, + {"label":"(", "x":9, "y":1.25}, + {"label":")", "x":10, "y":1.25}, + {"label":"_", "x":11, "y":1.25}, + {"label":"+", "x":12, "y":1.25}, + {"label":"Back Space", "x":13, "y":1.25, "w": 2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"SQ", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + + "LAYOUT_tkl_ansi_7u": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.25}, + {"label":"!", "x":1, "y":1.25}, + {"label":"@", "x":2, "y":1.25}, + {"label":"#", "x":3, "y":1.25}, + {"label":"$", "x":4, "y":1.25}, + {"label":"%", "x":5, "y":1.25}, + {"label":"^", "x":6, "y":1.25}, + {"label":"&", "x":7, "y":1.25}, + {"label":"*", "x":8, "y":1.25}, + {"label":"(", "x":9, "y":1.25}, + {"label":")", "x":10, "y":1.25}, + {"label":"_", "x":11, "y":1.25}, + {"label":"+", "x":12, "y":1.25}, + {"label":"Back Space", "x":13, "y":1.25, "w": 2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"SQ", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.5, "y":5.25, "w":1}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + + "LAYOUT_tkl_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"~", "x":0, "y":1.25}, + {"label":"!", "x":1, "y":1.25}, + {"label":"@", "x":2, "y":1.25}, + {"label":"#", "x":3, "y":1.25}, + {"label":"$", "x":4, "y":1.25}, + {"label":"%", "x":5, "y":1.25}, + {"label":"^", "x":6, "y":1.25}, + {"label":"&", "x":7, "y":1.25}, + {"label":"*", "x":8, "y":1.25}, + {"label":"(", "x":9, "y":1.25}, + {"label":")", "x":10, "y":1.25}, + {"label":"_", "x":11, "y":1.25}, + {"label":"+", "x":12, "y":1.25}, + {"label":"Back Space", "x":13, "y":1.25, "w": 2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"{", "x":11.5, "y":2.25}, + {"label":"}", "x":12.5, "y":2.25}, + {"label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":":", "x":10.75, "y":3.25}, + {"label":"SQ", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/lucid/kbd8x_hs/kbd8x_hs.h b/keyboards/lucid/kbd8x_hs/kbd8x_hs.h new file mode 100644 index 000000000000..565bc43a6a98 --- /dev/null +++ b/keyboards/lucid/kbd8x_hs/kbd8x_hs.h @@ -0,0 +1,67 @@ +/* +Copyright 2020 +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 . +*/ + +#pragma once + +#include "quantum.h" +/* === TKL ANSI w/ 6.25U Space === */ +#define LAYOUT_tkl_ansi( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ + K50, K51, K52, K55, K59, K5A, K5B, K5D, K5E, K5F, K5G \ +) { \ + { K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, KC_NO, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, KC_NO, K59, K5A, K5B, KC_NO, K5D, K5E, K5F, K5G } \ +} + +/* === TKL ANSI w/ 7U Space === */ +#define LAYOUT_tkl_ansi_7u( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ + K50, K51, K52, K55, K5A, K5B, K5D, K5E, K5F, K5G \ +) { \ + { K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, KC_NO, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, KC_NO, KC_NO, K5A, K5B, KC_NO, K5D, K5E, K5F, K5G } \ +} + +/* === All used matrix spots populated === */ +#define LAYOUT_tkl_all( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ + K50, K51, K52, K55, K59, K5A, K5B, K5D, K5E, K5F, K5G \ +) { \ + { K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, KC_NO, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, KC_NO, K59, K5A, K5B, KC_NO, K5D, K5E, K5F, K5G } \ +} diff --git a/keyboards/lucid/kbd8x_hs/kbx8s_hs.c b/keyboards/lucid/kbd8x_hs/kbx8s_hs.c new file mode 100644 index 000000000000..52e4ed53943f --- /dev/null +++ b/keyboards/lucid/kbd8x_hs/kbx8s_hs.c @@ -0,0 +1,14 @@ +/* +Copyright 2020 +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 . +*/ +#include "kbd8x_hs.h" diff --git a/keyboards/lucid/kbd8x_hs/keymaps/default/keymap.c b/keyboards/lucid/kbd8x_hs/keymaps/default/keymap.c new file mode 100644 index 000000000000..30ff6137cdb2 --- /dev/null +++ b/keyboards/lucid/kbd8x_hs/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* +Copyright 2020 +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_tkl_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/lucid/kbd8x_hs/keymaps/default_7u/keymap.c b/keyboards/lucid/kbd8x_hs/keymaps/default_7u/keymap.c new file mode 100644 index 000000000000..0c6a1d971012 --- /dev/null +++ b/keyboards/lucid/kbd8x_hs/keymaps/default_7u/keymap.c @@ -0,0 +1,41 @@ +/* +Copyright 2020 +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_tkl_ansi_7u( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_tkl_ansi_7u( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/lucid/kbd8x_hs/keymaps/via/keymap.c b/keyboards/lucid/kbd8x_hs/keymaps/via/keymap.c new file mode 100644 index 000000000000..70acb644a2d7 --- /dev/null +++ b/keyboards/lucid/kbd8x_hs/keymaps/via/keymap.c @@ -0,0 +1,61 @@ +/* +Copyright 2020 +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_tkl_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_tkl_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER2] = LAYOUT_tkl_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER3] = LAYOUT_tkl_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/lucid/kbd8x_hs/keymaps/via/rules.mk b/keyboards/lucid/kbd8x_hs/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/lucid/kbd8x_hs/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/lucid/kbd8x_hs/readme.md b/keyboards/lucid/kbd8x_hs/readme.md new file mode 100644 index 000000000000..7f992ebbf6a6 --- /dev/null +++ b/keyboards/lucid/kbd8x_hs/readme.md @@ -0,0 +1,11 @@ +# KBD8X Replacement Hotswap PCB by Lucid + +The following is the QMK Firmware for the KBD8X Replacement Hotswap PCB by [LucidKB](http://www.lucidkb.cm). +* Keyboard Maintainer: Lucid +* Hardware Supported: KBD8X_HS + +Make example for this keyboard (after setting up your build environment): + + make lucid/kbd8x_hs:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/lucid/kbd8x_hs/rules.mk b/keyboards/lucid/kbd8x_hs/rules.mk new file mode 100644 index 000000000000..a6dd88ac1c22 --- /dev/null +++ b/keyboards/lucid/kbd8x_hs/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = at90usb646 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +KEYBOARD_LOCK_ENABLE = yes diff --git a/keyboards/lucid/phantom_solder/config.h b/keyboards/lucid/phantom_solder/config.h new file mode 100644 index 000000000000..af2537d386a6 --- /dev/null +++ b/keyboards/lucid/phantom_solder/config.h @@ -0,0 +1,105 @@ +/* +Copyright 2020 + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7667 // Lucid +#define PRODUCT_ID 0x0002 // Phantom_Solder +#define DEVICE_VER 0x0001 // Version 1 +#define MANUFACTURER Lucid +#define PRODUCT Phantom + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + *å +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { F4, F1, F7, F6, F5 } +#define MATRIX_COL_PINS { F0, B1, B2, B3, B7, D0, D1, D2, D3, D5, D7, B4, B5, B6, C6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Define Indicator LED's */ +#define LED_CAPS_LOCK_PIN C7 + +/* Define less important options */ + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/lucid/phantom_solder/info.json b/keyboards/lucid/phantom_solder/info.json new file mode 100644 index 000000000000..4c969046d0f2 --- /dev/null +++ b/keyboards/lucid/phantom_solder/info.json @@ -0,0 +1,88 @@ +{ + "keyboard_name": "Phantom Solder", + "url": "http://www.lucidkb.com", + "maintainer": "Lucid", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y":4, "w": 1.25}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/lucid/phantom_solder/keymaps/default/keymap.c b/keyboards/lucid/phantom_solder/keymaps/default/keymap.c new file mode 100644 index 000000000000..2647d1a1b009 --- /dev/null +++ b/keyboards/lucid/phantom_solder/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +Copyright 2020 +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, RESET, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + ) +}; diff --git a/keyboards/lucid/phantom_solder/keymaps/via/keymap.c b/keyboards/lucid/phantom_solder/keymaps/via/keymap.c new file mode 100644 index 000000000000..ca288fa0be4f --- /dev/null +++ b/keyboards/lucid/phantom_solder/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2020 +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, RESET, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + ), + + [_LAYER2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; \ No newline at end of file diff --git a/keyboards/lucid/phantom_solder/keymaps/via/rules.mk b/keyboards/lucid/phantom_solder/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/lucid/phantom_solder/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/lucid/phantom_solder/phantom_solder.c b/keyboards/lucid/phantom_solder/phantom_solder.c new file mode 100644 index 000000000000..bd036146f4b3 --- /dev/null +++ b/keyboards/lucid/phantom_solder/phantom_solder.c @@ -0,0 +1,14 @@ +/* +Copyright 2020 +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 . +*/ +#include "phantom_solder.h" diff --git a/keyboards/lucid/phantom_solder/phantom_solder.h b/keyboards/lucid/phantom_solder/phantom_solder.h new file mode 100644 index 000000000000..7df6335b6cce --- /dev/null +++ b/keyboards/lucid/phantom_solder/phantom_solder.h @@ -0,0 +1,32 @@ +/* +Copyright 2020 +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 . +*/ + +#pragma once + +#include "quantum.h" + +/* Phantom Keymap Definitions */ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K43, K46, K48, K49, K4A, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, K43, KC_NO, KC_NO, K46, KC_NO, K48, K49, K4A, KC_NO, K4C, K4D, K4E } \ +} diff --git a/keyboards/lucid/phantom_solder/readme.md b/keyboards/lucid/phantom_solder/readme.md new file mode 100644 index 000000000000..9459d3256c47 --- /dev/null +++ b/keyboards/lucid/phantom_solder/readme.md @@ -0,0 +1,11 @@ +# Phantom Solder PCB by Lucid + +The following is the QMK Firmware for the Phantom *Solder* PCB for [LucidKB](http://www.lucidkb.cm). +* Keyboard Maintainer: Lucid +* Hardware Supported: Phantom + +Make example for this keyboard (after setting up your build environment): + + make lucid/phantom_solder:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/lucid/phantom_solder/rules.mk b/keyboards/lucid/phantom_solder/rules.mk new file mode 100644 index 000000000000..ddf921edb128 --- /dev/null +++ b/keyboards/lucid/phantom_solder/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +KEYBOARD_LOCK_ENABLE = yes From 988715910ce58e21c9ab56e1a3e7da64b6e0c0f5 Mon Sep 17 00:00:00 2001 From: Michael Overman Date: Fri, 1 Jan 2021 19:36:17 -0600 Subject: [PATCH 094/140] [Docs] Fix typo in hand_wire.md (#11297) --- docs/hand_wire.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hand_wire.md b/docs/hand_wire.md index 0a4f0322c801..badcd79b2295 100644 --- a/docs/hand_wire.md +++ b/docs/hand_wire.md @@ -121,7 +121,7 @@ Letting the diode rest, grab your solder, and touch both it and the soldering ir The smoke that the rosin releases is harmful, so be careful not to breath it or get it in your eyes/face. -After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiny) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blow on it will accelerate this process. +After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiny) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blowing on it will accelerate this process. When the first diode is complete, the next one will need to be soldered to both the keyswitch, and the previous diode at the new elbow. That will look something like this: From 13efa8290e7394b5386fdb588f3661ca1d0b7e7d Mon Sep 17 00:00:00 2001 From: npspears <40127181+npspears@users.noreply.github.com> Date: Fri, 1 Jan 2021 19:38:50 -0600 Subject: [PATCH 095/140] Update quark pin config (#11398) --- keyboards/quark/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/quark/config.h b/keyboards/quark/config.h index 1dede7ed68fc..353569d8ec2d 100644 --- a/keyboards/quark/config.h +++ b/keyboards/quark/config.h @@ -31,7 +31,7 @@ /* key matrix pins */ #define MATRIX_ROW_PINS { C5, C4, C6, C7, B7 } -#define MATRIX_COL_PINS { B4, B5, B6, B3, C2, B2, B1, D2, D3, D4, D5, D6 } +#define MATRIX_COL_PINS { B4, B5, B6, B3, C2, B2, D6, D2, D3, D4, D5, B1 } #define UNUSED_PINS /* COL2ROW or ROW2COL */ From 2e9d0919600e4b834a4e48c1673fe638c4b92eab Mon Sep 17 00:00:00 2001 From: Felix Jen Date: Sat, 2 Jan 2021 02:46:25 -0600 Subject: [PATCH 096/140] [Keyboard] Added LDK65 based off BKS65 (#11335) --- keyboards/fjlabs/ldk65/config.h | 105 ++++++++++++++++++ keyboards/fjlabs/ldk65/info.json | 85 ++++++++++++++ .../fjlabs/ldk65/keymaps/default/keymap.c | 39 +++++++ keyboards/fjlabs/ldk65/keymaps/via/keymap.c | 58 ++++++++++ keyboards/fjlabs/ldk65/keymaps/via/rules.mk | 1 + keyboards/fjlabs/ldk65/ldk65.c | 14 +++ keyboards/fjlabs/ldk65/ldk65.h | 32 ++++++ keyboards/fjlabs/ldk65/readme.md | 19 ++++ keyboards/fjlabs/ldk65/rules.mk | 28 +++++ 9 files changed, 381 insertions(+) create mode 100644 keyboards/fjlabs/ldk65/config.h create mode 100644 keyboards/fjlabs/ldk65/info.json create mode 100644 keyboards/fjlabs/ldk65/keymaps/default/keymap.c create mode 100644 keyboards/fjlabs/ldk65/keymaps/via/keymap.c create mode 100644 keyboards/fjlabs/ldk65/keymaps/via/rules.mk create mode 100644 keyboards/fjlabs/ldk65/ldk65.c create mode 100644 keyboards/fjlabs/ldk65/ldk65.h create mode 100644 keyboards/fjlabs/ldk65/readme.md create mode 100644 keyboards/fjlabs/ldk65/rules.mk diff --git a/keyboards/fjlabs/ldk65/config.h b/keyboards/fjlabs/ldk65/config.h new file mode 100644 index 000000000000..1c8eaff2ec0c --- /dev/null +++ b/keyboards/fjlabs/ldk65/config.h @@ -0,0 +1,105 @@ +/* +Copyright 2020 + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7074 // FJLabs +#define PRODUCT_ID 0x0002 // LDK65 +#define DEVICE_VER 0x0001 // Version 1 +#define MANUFACTURER FJLabs +#define PRODUCT LDK65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { F4, F1, F7, F6, F5 } +#define MATRIX_COL_PINS { F0, B1, B2, B3, B7, D0, D1, D2, D3, D5, D7, B4, B5, B6, C6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Define Indicator LED's */ +#define LED_CAPS_LOCK_PIN C7 + +/* Define less important options */ + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/fjlabs/ldk65/info.json b/keyboards/fjlabs/ldk65/info.json new file mode 100644 index 000000000000..5a58a2b0c622 --- /dev/null +++ b/keyboards/fjlabs/ldk65/info.json @@ -0,0 +1,85 @@ +{ + "keyboard_name": "LDK65", + "url": "https://www.bolsakeyboardsupply.com", + "maintainer": "FJLabs", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_ansi": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/fjlabs/ldk65/keymaps/default/keymap.c b/keyboards/fjlabs/ldk65/keymaps/default/keymap.c new file mode 100644 index 000000000000..8d2c13f3b0d3 --- /dev/null +++ b/keyboards/fjlabs/ldk65/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +Copyright 2020 +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_65_ansi( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_65_ansi( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, RESET, KC_PGUP, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + ) +}; diff --git a/keyboards/fjlabs/ldk65/keymaps/via/keymap.c b/keyboards/fjlabs/ldk65/keymaps/via/keymap.c new file mode 100644 index 000000000000..839991f0f08f --- /dev/null +++ b/keyboards/fjlabs/ldk65/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2020 +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_65_ansi( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_65_ansi( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, RESET, KC_PGUP, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + ), + + [_LAYER2] = LAYOUT_65_ansi( + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER3] = LAYOUT_65_ansi( + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; diff --git a/keyboards/fjlabs/ldk65/keymaps/via/rules.mk b/keyboards/fjlabs/ldk65/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/fjlabs/ldk65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/fjlabs/ldk65/ldk65.c b/keyboards/fjlabs/ldk65/ldk65.c new file mode 100644 index 000000000000..ed4e5bc681b9 --- /dev/null +++ b/keyboards/fjlabs/ldk65/ldk65.c @@ -0,0 +1,14 @@ +/* +Copyright 2020 +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 . +*/ +#include "ldk65.h" diff --git a/keyboards/fjlabs/ldk65/ldk65.h b/keyboards/fjlabs/ldk65/ldk65.h new file mode 100644 index 000000000000..1e53c540b5e7 --- /dev/null +++ b/keyboards/fjlabs/ldk65/ldk65.h @@ -0,0 +1,32 @@ +/* +Copyright 2020 +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 . +*/ + +#pragma once + +#include "quantum.h" + +/* BKS65 Keymap Definitions */ +#define LAYOUT_65_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D, K4E } \ +} diff --git a/keyboards/fjlabs/ldk65/readme.md b/keyboards/fjlabs/ldk65/readme.md new file mode 100644 index 000000000000..525338b23bd8 --- /dev/null +++ b/keyboards/fjlabs/ldk65/readme.md @@ -0,0 +1,19 @@ +# bolsa65 + +The following is the QMK Firmware for the [BolsaKeyboardSupply](https://www.bolsakeyboardsupply.com) LDK65 PCB. The LDK65 is a tray-mount board that fits PCB's compatible with the Tofu65 including the BKS65. + +The PCB will feature: +* Kailh Hotswap sockets +* QMK & VIA compatibility +* Some cool bolsa branding + +--- + +* Keyboard Maintainer: FJLabs +* Hardware Supported: LDK65 + +Make example for this keyboard (after setting up your build environment): + + make fjlabs/ldk65:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/fjlabs/ldk65/rules.mk b/keyboards/fjlabs/ldk65/rules.mk new file mode 100644 index 000000000000..6d4300e482ad --- /dev/null +++ b/keyboards/fjlabs/ldk65/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +KEYBOARD_LOCK_ENABLE = yes + +LAYOUTS = 65_ansi From c07543133a092039c7eae0cead6c9ee3badcc7dc Mon Sep 17 00:00:00 2001 From: Zach White Date: Sat, 2 Jan 2021 09:27:35 -0800 Subject: [PATCH 097/140] Return the make exit code for qmk compile and flash (#11402) --- lib/python/qmk/cli/compile.py | 3 ++- lib/python/qmk/cli/flash.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/cli/compile.py b/lib/python/qmk/cli/compile.py index 341f365f8c17..daee597d8ead 100755 --- a/lib/python/qmk/cli/compile.py +++ b/lib/python/qmk/cli/compile.py @@ -48,7 +48,8 @@ def compile(cli): cli.log.info('Compiling keymap with {fg_cyan}%s', ' '.join(command)) if not cli.args.dry_run: cli.echo('\n') - subprocess.run(command) + compile = subprocess.run(command) + return compile.returncode else: cli.log.error('You must supply a configurator export, both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.') diff --git a/lib/python/qmk/cli/flash.py b/lib/python/qmk/cli/flash.py index cefb9ca31a5e..d720d42e71f3 100644 --- a/lib/python/qmk/cli/flash.py +++ b/lib/python/qmk/cli/flash.py @@ -81,7 +81,8 @@ def flash(cli): cli.log.info('Compiling keymap with {fg_cyan}%s', ' '.join(command)) if not cli.args.dry_run: cli.echo('\n') - subprocess.run(command) + compile = subprocess.run(command) + return compile.returncode else: cli.log.error('You must supply a configurator export, both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.') From b3de903a3dfe5f75312b6b8a7555ccabe01a5e6e Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Sat, 2 Jan 2021 16:42:48 -0500 Subject: [PATCH 098/140] Fix broken Lighting Layers when RGBLIGHT_MAX_LAYERS > 16 (#11406) * fix incorrect bit math when RGBLIGHT_MAX_LAYERS > 16 * with 1UL cast is not needed * ...but just casting works and is even more efficient * cformat --- quantum/rgblight.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index db725301cbd9..beeef6568919 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -628,7 +628,7 @@ void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_set #ifdef RGBLIGHT_LAYERS void rgblight_set_layer_state(uint8_t layer, bool enabled) { - rgblight_layer_mask_t mask = 1 << layer; + rgblight_layer_mask_t mask = (rgblight_layer_mask_t)1 << layer; if (enabled) { rgblight_status.enabled_layer_mask |= mask; } else { @@ -649,7 +649,7 @@ void rgblight_set_layer_state(uint8_t layer, bool enabled) { } bool rgblight_get_layer_state(uint8_t layer) { - rgblight_layer_mask_t mask = 1 << layer; + rgblight_layer_mask_t mask = (rgblight_layer_mask_t)1 << layer; return (rgblight_status.enabled_layer_mask & mask) != 0; } @@ -689,7 +689,7 @@ static uint16_t _blink_timer; void rgblight_blink_layer(uint8_t layer, uint16_t duration_ms) { rgblight_set_layer_state(layer, true); - _blinked_layer_mask |= 1 << layer; + _blinked_layer_mask |= (rgblight_layer_mask_t)1 << layer; _blink_timer = timer_read(); _blink_duration = duration_ms; } @@ -697,7 +697,7 @@ void rgblight_blink_layer(uint8_t layer, uint16_t duration_ms) { void rgblight_unblink_layers(void) { if (_blinked_layer_mask != 0 && timer_elapsed(_blink_timer) > _blink_duration) { for (uint8_t layer = 0; layer < RGBLIGHT_MAX_LAYERS; layer++) { - if ((_blinked_layer_mask & 1 << layer) != 0) { + if ((_blinked_layer_mask & (rgblight_layer_mask_t)1 << layer) != 0) { rgblight_set_layer_state(layer, false); } } From f3ac792c096c10c9dd5004e6e06aad60710ef599 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 3 Jan 2021 14:53:53 +1100 Subject: [PATCH 099/140] Align ChibiOS spi_master behaviour with AVR (#11404) * Align ChibiOS spi_master behaviour with AVR * Rollback `spi_transmit()` and `spi_receive()` to preserve DMA --- drivers/chibios/spi_master.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/chibios/spi_master.c b/drivers/chibios/spi_master.c index 5aa60742e326..8341b59a532d 100644 --- a/drivers/chibios/spi_master.c +++ b/drivers/chibios/spi_master.c @@ -115,11 +115,17 @@ bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { return true; } -spi_status_t spi_write(uint8_t data) { return spi_transmit(&data, 1); } +spi_status_t spi_write(uint8_t data) { + uint8_t rxData; + spiExchange(&SPI_DRIVER, 1, &data, &rxData); + + return rxData; +} spi_status_t spi_read(void) { uint8_t data = 0; - spi_receive(&data, 1); + spiReceive(&SPI_DRIVER, 1, &data); + return data; } From 070240f2123f91c51a3cb146d601cf5b61beebfe Mon Sep 17 00:00:00 2001 From: Joel Elkins Date: Sun, 3 Jan 2021 14:30:22 -0600 Subject: [PATCH 100/140] arm_atsam: Use PROGRAM_CMD for :flash target if set (#11424) --- tmk_core/arm_atsam.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tmk_core/arm_atsam.mk b/tmk_core/arm_atsam.mk index 403ebf3a8943..e4bf60e1af7e 100644 --- a/tmk_core/arm_atsam.mk +++ b/tmk_core/arm_atsam.mk @@ -56,4 +56,8 @@ bin: $(BUILD_DIR)/$(TARGET).hex $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin; flash: bin +ifneq ($(strip $(PROGRAM_CMD)),) + $(PROGRAM_CMD) +else $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_ARCH)" +endif From acec174fde729982c273b326ef7dc75a1f1949e8 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 4 Jan 2021 07:30:59 +1100 Subject: [PATCH 101/140] Homebrew install: ignore pinned formulae in `brew upgrade` (#11423) --- util/install/macos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/install/macos.sh b/util/install/macos.sh index 93fda912150d..4b87217ba002 100755 --- a/util/install/macos.sh +++ b/util/install/macos.sh @@ -9,7 +9,7 @@ _qmk_install_prepare() { return 1 fi - brew update && brew upgrade + brew update && brew upgrade --ignore-pinned } _qmk_install() { From d1e10a067b6e0a976979daec25f3c61486f6b64f Mon Sep 17 00:00:00 2001 From: YangPiCui Date: Tue, 5 Jan 2021 02:58:36 +0800 Subject: [PATCH 102/140] [Keyboard] Add handwired/evk (#11034) * Add the Ergonomic Vertical Keyboards * generic update * Update readme.md * Update readme.md * Update readme.md * Update info.json * put into handwired * Update readme.md * Update readme.md * i * Change copy author from RedForty to Yang Cui * add version 1.3 * rename keyboard version * Update config.h * j * h * fix bugs * Update config.h * Update config.h * Update keymap.c * update default keymap * Update keymap.c * Add handwired/evk * Add handwired/evk * Update v1_3.c * Update keyboards/handwired/evk/v1_3/config.h Co-authored-by: Drashna Jaelre * Update keyboards/handwired/evk/v1_3/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/handwired/evk/v1_3/v1_3.c Co-authored-by: Drashna Jaelre * Update config.h * Commit change requests from the pull request * remove copy right * Update v1_3.c * Update v1_3.c * Update keyboards/handwired/evk/v1_3/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/evk/v1_3/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/evk/v1_3/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/evk/v1_3/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/evk/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update info.json * change all names to YangPiCui * Update keyboards/handwired/evk/v1_3/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/handwired/evk/v1_3/readme.md Co-authored-by: Ryan * Update keyboards/handwired/evk/v1_3/config.h Co-authored-by: Ryan * Delete config.h Co-authored-by: Drashna Jaelre Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Ryan --- keyboards/handwired/evk/info.json | 4 + keyboards/handwired/evk/readme.md | 6 + keyboards/handwired/evk/v1_3/config.h | 148 ++++++++++++++++++ keyboards/handwired/evk/v1_3/info.json | 101 ++++++++++++ .../evk/v1_3/keymaps/default/keymap.c | 34 ++++ .../evk/v1_3/keymaps/default/readme.md | 1 + keyboards/handwired/evk/v1_3/readme.md | 10 ++ keyboards/handwired/evk/v1_3/rules.mk | 22 +++ keyboards/handwired/evk/v1_3/v1_3.c | 58 +++++++ keyboards/handwired/evk/v1_3/v1_3.h | 43 +++++ 10 files changed, 427 insertions(+) create mode 100644 keyboards/handwired/evk/info.json create mode 100644 keyboards/handwired/evk/readme.md create mode 100644 keyboards/handwired/evk/v1_3/config.h create mode 100644 keyboards/handwired/evk/v1_3/info.json create mode 100644 keyboards/handwired/evk/v1_3/keymaps/default/keymap.c create mode 100644 keyboards/handwired/evk/v1_3/keymaps/default/readme.md create mode 100644 keyboards/handwired/evk/v1_3/readme.md create mode 100644 keyboards/handwired/evk/v1_3/rules.mk create mode 100644 keyboards/handwired/evk/v1_3/v1_3.c create mode 100644 keyboards/handwired/evk/v1_3/v1_3.h diff --git a/keyboards/handwired/evk/info.json b/keyboards/handwired/evk/info.json new file mode 100644 index 000000000000..b7593cdd1534 --- /dev/null +++ b/keyboards/handwired/evk/info.json @@ -0,0 +1,4 @@ +{ + "manufacturer": "YangPiCui", + "maintainer": "YangPiCui" +} diff --git a/keyboards/handwired/evk/readme.md b/keyboards/handwired/evk/readme.md new file mode 100644 index 000000000000..ccfed391d4e8 --- /dev/null +++ b/keyboards/handwired/evk/readme.md @@ -0,0 +1,6 @@ +# [Ergonomic Vertical Keyboard (EVK)](https://github.com/YangPiCui/ErgonomicVerticalKeyboard) + +The Ergonomic Vertical Keyboard (EVK) deletes our humpback. + +* Maintainer: [YangPiCui](https://github.com/YangPiCui) +* Hardware Availability: Upon Custom Ordering \ No newline at end of file diff --git a/keyboards/handwired/evk/v1_3/config.h b/keyboards/handwired/evk/v1_3/config.h new file mode 100644 index 000000000000..cc9b143f653d --- /dev/null +++ b/keyboards/handwired/evk/v1_3/config.h @@ -0,0 +1,148 @@ +/* +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Yang Cui +#define PRODUCT evk v1_3 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS \ + { B0, B1, B2, B3, B7, D0 } +#define MATRIX_COL_PINS \ + { D1, D2, D3, C6, C7, F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL // the current flows into the rows and then out of the columns + +/* define whiche Pins to use for the status LEDs*/ +#define LED_CAPS_LOCK_PIN D4 + + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +// #define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/handwired/evk/v1_3/info.json b/keyboards/handwired/evk/v1_3/info.json new file mode 100644 index 000000000000..b890a9e2a1c7 --- /dev/null +++ b/keyboards/handwired/evk/v1_3/info.json @@ -0,0 +1,101 @@ +{ + "keyboard_name": "Ergonomic Vertical Keyboard (EVK) version 1.3 with Teensy 2.0", + "url": "https://github.com/YangPiCui/ErgonomicVerticalKeyboard", + "maintainer": "YangPiCui", + "width": 22.75, + "height": 7.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"k0A", "x":0, "y":0.5, "w":1.25, "h":1.25}, + {"label":"k0B", "x":1.25, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0C", "x":2.5, "y":0, "w":1.25, "h":1.25}, + {"label":"k0D", "x":3.75, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0E", "x":5, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0F", "x":6.25, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0G", "x":8.75, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0H", "x":10, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0I", "x":11.25, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0J", "x":12.5, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0K", "x":15.25, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0L", "x":16.5, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0M", "x":17.75, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0N", "x":19, "y":0, "w":1.25, "h":1.25}, + {"label":"k0O", "x":20.25, "y":0.25, "w":1.25, "h":1.25}, + {"label":"k0P", "x":21.5, "y":0.5, "w":1.25, "h":1.25}, + {"label":"k1A", "x":0, "y":1.75, "w":1.25, "h":1.25}, + {"label":"k1B", "x":1.25, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1C", "x":2.5, "y":1.25, "w":1.25, "h":1.25}, + {"label":"k1D", "x":3.75, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1E", "x":5, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1F", "x":6.25, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1G", "x":8.75, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1H", "x":10, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1I", "x":11.25, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1J", "x":12.5, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1K", "x":15.25, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1L", "x":16.5, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1M", "x":17.75, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1N", "x":19, "y":1.25, "w":1.25, "h":1.25}, + {"label":"k1O", "x":20.25, "y":1.5, "w":1.25, "h":1.25}, + {"label":"k1P", "x":21.5, "y":1.75, "w":1.25, "h":1.25}, + {"label":"k2A", "x":0, "y":3, "w":1.25, "h":1.25}, + {"label":"k2B", "x":1.25, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2C", "x":2.5, "y":2.5, "w":1.25, "h":1.25}, + {"label":"k2D", "x":3.75, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2E", "x":5, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2F", "x":6.25, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2G", "x":8.75, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2H", "x":10, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2I", "x":11.25, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2J", "x":12.5, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2K", "x":15.25, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2L", "x":16.5, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2M", "x":17.75, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2N", "x":19, "y":2.5, "w":1.25, "h":1.25}, + {"label":"k2O", "x":20.25, "y":2.75, "w":1.25, "h":1.25}, + {"label":"k2P", "x":21.5, "y":3, "w":1.25, "h":1.25}, + {"label":"k3A", "x":0, "y":4.25, "w":1.25, "h":1.25}, + {"label":"k3B", "x":1.25, "y":4, "w":1.25, "h":1.25}, + {"label":"k3C", "x":2.5, "y":3.75, "w":1.25, "h":1.25}, + {"label":"k3D", "x":3.75, "y":4, "w":1.25, "h":1.25}, + {"label":"k3E", "x":5, "y":4, "w":1.25, "h":1.25}, + {"label":"k3F", "x":6.75, "y":4.5, "w":1.25, "h":1.25}, + {"label":"k3G", "x":8.75, "y":4, "w":1.25, "h":1.25}, + {"label":"k3H", "x":10, "y":4, "w":1.25, "h":1.25}, + {"label":"k3I", "x":11.25, "y":4, "w":1.25, "h":1.25}, + {"label":"k3J", "x":12.5, "y":4, "w":1.25, "h":1.25}, + {"label":"k3K", "x":14.75, "y":4.5, "w":1.25, "h":1.25}, + {"label":"k3L", "x":16.5, "y":4, "w":1.25, "h":1.25}, + {"label":"k3M", "x":17.75, "y":4, "w":1.25, "h":1.25}, + {"label":"k3N", "x":19, "y":3.75, "w":1.25, "h":1.25}, + {"label":"k3O", "x":20.25, "y":4, "w":1.25, "h":1.25}, + {"label":"k3P", "x":21.5, "y":4.25, "w":1.25, "h":1.25}, + {"label":"k4A", "x":0, "y":5.5, "w":1.25, "h":1.25}, + {"label":"k4B", "x":1.25, "y":5.25, "w":1.25, "h":1.25}, + {"label":"k4C", "x":2.5, "y":5, "w":1.25, "h":1.25}, + {"label":"k4D", "x":3.75, "y":5.25, "w":1.25, "h":1.25}, + {"label":"k4E", "x":5.5, "y":5.75, "w":1.25, "h":1.25}, + {"label":"k4F", "x":6.75, "y":5.75, "w":1.25, "h":1.25}, + {"label":"k4G", "x":8.75, "y":5.25, "w":1.25, "h":1.25}, + {"label":"k4H", "x":10, "y":5.25, "w":1.25, "h":1.25}, + {"label":"k4I", "x":11.25, "y":5.25, "w":1.25, "h":1.25}, + {"label":"k4J", "x":12.5, "y":5.25, "w":1.25, "h":1.25}, + {"label":"k4K", "x":14.75, "y":5.75, "w":1.25, "h":1.25}, + {"label":"k4L", "x":16, "y":5.75, "w":1.25, "h":1.25}, + {"label":"k4M", "x":17.75, "y":5.25, "w":1.25, "h":1.25}, + {"label":"k4N", "x":19, "y":5, "w":1.25, "h":1.25}, + {"label":"k4O", "x":20.25, "y":5.25, "w":1.25, "h":1.25}, + {"label":"k4P", "x":21.5, "y":5.5, "w":1.25, "h":1.25}, + {"label":"k5B", "x":1.25, "y":6.5, "w":1.25, "h":1.25}, + {"label":"k5C", "x":2.5, "y":6.25, "w":1.25, "h":1.25}, + {"label":"k5G", "x":8.75, "y":6.5, "w":1.25, "h":1.25}, + {"label":"k5H", "x":10, "y":6.5, "w":1.25, "h":1.25}, + {"label":"k5I", "x":11.25, "y":6.5, "w":1.25, "h":1.25}, + {"label":"k5J", "x":12.5, "y":6.5, "w":1.25, "h":1.25}, + {"label":"k5N", "x":19, "y":6.25, "w":1.25, "h":1.25}, + {"label":"k5O", "x":20.25, "y":6.5, "w":1.25, "h":1.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/handwired/evk/v1_3/keymaps/default/keymap.c b/keyboards/handwired/evk/v1_3/keymaps/default/keymap.c new file mode 100644 index 000000000000..5d9229ab0bf4 --- /dev/null +++ b/keyboards/handwired/evk/v1_3/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(/* Base Layer (0th Layer) - default Layout */ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, TG(1), KC_PSCR, KC_INS, KC_APP, KC_CAPS, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_Q, KC_H, KC_R, KC_F, KC_X, KC_LBRC, KC_F1, KC_F2, KC_F3, KC_F4, KC_RBRC, KC_BSPC, KC_Y, KC_O, KC_U, KC_J, + KC_L, KC_S, KC_N, KC_T, KC_D, KC_END, KC_F5, KC_F6, KC_F7, KC_F8, KC_DEL, KC_P, KC_I, KC_A, KC_E, KC_K, + KC_Z, KC_M, KC_C, KC_V, KC_B, KC_LCTL, KC_F9, KC_F10, KC_F11, KC_F12, KC_RCTL, KC_W, KC_G, KC_COMM, KC_DOT, KC_ENT, + KC_LALT, KC_MINS, KC_EQL, KC_TAB, KC_SPC, KC_LGUI, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_RGUI, KC_SPC, KC_QUOT, KC_SCLN, KC_SLSH, KC_RALT, + KC_LSFT, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_BSLS, KC_RSFT + ), + [1] = LAYOUT(/* 1st Layer - Numpad Keys */ + _______, _______, _______, _______, _______, _______, _______, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PEQL, _______, _______, _______, _______, _______, _______, + _______, _______, KC_P0, KC_P0, KC_PDOT, KC_PENT, _______, _______ + ) +}; diff --git a/keyboards/handwired/evk/v1_3/keymaps/default/readme.md b/keyboards/handwired/evk/v1_3/keymaps/default/readme.md new file mode 100644 index 000000000000..4bb6a3de8135 --- /dev/null +++ b/keyboards/handwired/evk/v1_3/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for this version of the EVK \ No newline at end of file diff --git a/keyboards/handwired/evk/v1_3/readme.md b/keyboards/handwired/evk/v1_3/readme.md new file mode 100644 index 000000000000..0073c252f5f1 --- /dev/null +++ b/keyboards/handwired/evk/v1_3/readme.md @@ -0,0 +1,10 @@ +# [Ergonomic Vertical Keyboard (EVK)](https://github.com/YangPiCui/ErgonomicVerticalKeyboard) version 1.3 with Teensy 2.0 + +* Keyboard Maintainer: [YangPiCui](https://github.com/YangPiCui) +* Hardware Supported: Ergonomic Vertical Keyboard (EVK) version 1.3 with Teensy 2.0 + +Make example for this keyboard (after setting up your build environment): + + make handwired/evk/v1_3:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/evk/v1_3/rules.mk b/keyboards/handwired/evk/v1_3/rules.mk new file mode 100644 index 000000000000..02a74ee91206 --- /dev/null +++ b/keyboards/handwired/evk/v1_3/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/handwired/evk/v1_3/v1_3.c b/keyboards/handwired/evk/v1_3/v1_3.c new file mode 100644 index 000000000000..62800bc88c8d --- /dev/null +++ b/keyboards/handwired/evk/v1_3/v1_3.c @@ -0,0 +1,58 @@ +/* +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 . + */ +#include "v1_3.h" + +// Optional override functions below. +// You can leave any or all of these undefined. +// These are only required if you want to perform custom actions. +// For reference, visit https://docs.qmk.fm/#/custom_quantum_functions?id=layer-change-code + +// keyboard start-up codes +// runs once when the firmware starts up +void matrix_init_kb(void) { + // Set the LEDs pins + setPinOutput(D5); // Layer 1 Status LED + + matrix_init_user(); +} + +// looping keyboard codes +// runs every cycle (a lot) +/*void matrix_scan_kb(void) { + + matrix_scan_user(); +}*/ + +// per-action keyboard codes +// runs for every key-press action, just before processing by the firmware +/*bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + + return process_record_user(keycode, record); +}*/ + +// Set LED based on layer +__attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { + writePin(D5, layer_state_cmp(state, 1)); + return state; +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + // writePin sets the pin high for 1 and low for 0. + writePin(D4, led_state.caps_lock); + } + return res; +} diff --git a/keyboards/handwired/evk/v1_3/v1_3.h b/keyboards/handwired/evk/v1_3/v1_3.h new file mode 100644 index 000000000000..6c2caff785a9 --- /dev/null +++ b/keyboards/handwired/evk/v1_3/v1_3.h @@ -0,0 +1,43 @@ +/* +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 . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT(\ + k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I, k0J, k0K, k0L, k0M, k0N, k0O, k0P, \ + k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, k1J, k1K, k1L, k1M, k1N, k1O, k1P, \ + k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, k2J, k2K, k2L, k2M, k2N, k2O, k2P, \ + k3A, k3B, k3C, k3D, k3E, k3F, k3G, k3H, k3I, k3J, k3K, k3L, k3M, k3N, k3O, k3P, \ + k4A, k4B, k4C, k4D, k4E, k4F, k4G, k4H, k4I, k4J, k4K, k4L, k4M, k4N, k4O, k4P, \ + k5B, k5C, k5G, k5H, k5I, k5J, k5N, k5O \ +) { \ + { k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I, k0J, k0K, k0L, k0M, k0N, k0O, k0P }, \ + { k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, k1J, k1K, k1L, k1M, k1N, k1O, k1P }, \ + { k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, k2J, k2K, k2L, k2M, k2N, k2O, k2P }, \ + { k3A, k3B, k3C, k3D, k3E, k3F, k3G, k3H, k3I, k3J, k3K, k3L, k3M, k3N, k3O, k3P }, \ + { k4A, k4B, k4C, k4D, k4E, k4F, k4G, k4H, k4I, k4J, k4K, k4L, k4M, k4N, k4O, k4P }, \ + { XXX, k5B, k5C, XXX, XXX, XXX, k5G, k5H, k5I, k5J, XXX, XXX, XXX, k5N, k5O, XXX } \ +} From c38fe492426676cf101eeb024f7f33d8e98c445f Mon Sep 17 00:00:00 2001 From: fauxpark Date: Sat, 26 Dec 2020 19:32:05 +1100 Subject: [PATCH 103/140] Update MXSS custom rgblight and fix compilation error --- keyboards/mxss/rgblight.c | 382 ++++++++++++++++++++++++++++---------- keyboards/mxss/rgblight.h | 358 ----------------------------------- 2 files changed, 289 insertions(+), 451 deletions(-) delete mode 100644 keyboards/mxss/rgblight.h diff --git a/keyboards/mxss/rgblight.c b/keyboards/mxss/rgblight.c index 2e9352c55d0e..d2d79815cd06 100644 --- a/keyboards/mxss/rgblight.c +++ b/keyboards/mxss/rgblight.c @@ -15,13 +15,16 @@ */ #include #include +#include #ifdef __AVR__ # include # include #endif +#ifdef EEPROM_ENABLE +# include "eeprom.h" +#endif #ifdef STM32_EEPROM_ENABLE # include -# include "eeprom.h" # include "eeprom_stm32.h" #endif #include "wait.h" @@ -38,17 +41,23 @@ // MxSS custom #include "mxss_frontled.h" +#ifndef MIN +# define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#endif + #ifdef RGBLIGHT_SPLIT /* for split keyboard */ # define RGBLIGHT_SPLIT_SET_CHANGE_MODE rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_MODE # define RGBLIGHT_SPLIT_SET_CHANGE_HSVS rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_HSVS # define RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS rgblight_status.change_flags |= (RGBLIGHT_STATUS_CHANGE_MODE | RGBLIGHT_STATUS_CHANGE_HSVS) +# define RGBLIGHT_SPLIT_SET_CHANGE_LAYERS rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_LAYERS # define RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_TIMER # define RGBLIGHT_SPLIT_ANIMATION_TICK rgblight_status.change_flags |= RGBLIGHT_STATUS_ANIMATION_TICK #else # define RGBLIGHT_SPLIT_SET_CHANGE_MODE # define RGBLIGHT_SPLIT_SET_CHANGE_HSVS # define RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS +# define RGBLIGHT_SPLIT_SET_CHANGE_LAYERS # define RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE # define RGBLIGHT_SPLIT_ANIMATION_TICK #endif @@ -97,11 +106,11 @@ LED_TYPE led[RGBLED_NUM]; # define LED_ARRAY led #endif -static uint8_t clipping_start_pos = 0; -static uint8_t clipping_num_leds = RGBLED_NUM; -static uint8_t effect_start_pos = 0; -static uint8_t effect_end_pos = RGBLED_NUM; -static uint8_t effect_num_leds = RGBLED_NUM; +#ifdef RGBLIGHT_LAYERS +rgblight_segment_t const *const *rgblight_layers = NULL; +#endif + +rgblight_ranges_t rgblight_ranges = {0, RGBLED_NUM, 0, RGBLED_NUM, RGBLED_NUM}; // MxSS custom extern uint8_t fled_mode; @@ -116,18 +125,20 @@ void copyrgb(LED_TYPE *src, LED_TYPE *dst) { } void rgblight_set_clipping_range(uint8_t start_pos, uint8_t num_leds) { - clipping_start_pos = start_pos; - clipping_num_leds = num_leds; + rgblight_ranges.clipping_start_pos = start_pos; + rgblight_ranges.clipping_num_leds = num_leds; } void rgblight_set_effect_range(uint8_t start_pos, uint8_t num_leds) { if (start_pos >= RGBLED_NUM) return; if (start_pos + num_leds > RGBLED_NUM) return; - effect_start_pos = start_pos; - effect_end_pos = start_pos + num_leds; - effect_num_leds = num_leds; + rgblight_ranges.effect_start_pos = start_pos; + rgblight_ranges.effect_end_pos = start_pos + num_leds; + rgblight_ranges.effect_num_leds = num_leds; } +__attribute__((weak)) RGB rgblight_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); } + void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { HSV hsv = {hue, sat, val}; // MxSS custom @@ -138,7 +149,8 @@ void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { } else if (led1 == &led[RGBLIGHT_FLED2]) { fled_hs[1].hue = hue; fled_hs[1].sat = sat; - } RGB rgb = hsv_to_rgb(hsv); + } + RGB rgb = rgblight_hsv_to_rgb(hsv); setrgb(rgb.r, rgb.g, rgb.b, led1); } @@ -168,7 +180,7 @@ void rgblight_check_config(void) { } uint32_t eeconfig_read_rgblight(void) { -#if defined(__AVR__) || defined(STM32_EEPROM_ENABLE) || defined(PROTOCOL_ARM_ATSAM) || defined(EEPROM_SIZE) +#ifdef EEPROM_ENABLE return eeprom_read_dword(EECONFIG_RGBLIGHT); #else return 0; @@ -176,15 +188,13 @@ uint32_t eeconfig_read_rgblight(void) { } void eeconfig_update_rgblight(uint32_t val) { -#if defined(__AVR__) || defined(STM32_EEPROM_ENABLE) || defined(PROTOCOL_ARM_ATSAM) || defined(EEPROM_SIZE) +#ifdef EEPROM_ENABLE rgblight_check_config(); eeprom_update_dword(EECONFIG_RGBLIGHT, val); #endif } -void eeconfig_update_rgblight_current(void) { - eeconfig_update_rgblight(rgblight_config.raw); -} +void eeconfig_update_rgblight_current(void) { eeconfig_update_rgblight(rgblight_config.raw); } void eeconfig_update_rgblight_default(void) { rgblight_config.enable = 1; @@ -233,9 +243,7 @@ void rgblight_init(void) { eeconfig_debug_rgblight(); // display current eeprom values -#ifdef RGBLIGHT_USE_TIMER rgblight_timer_init(); // setup the timer -#endif if (rgblight_config.enable) { rgblight_mode_noeeprom(rgblight_config.mode); @@ -252,9 +260,7 @@ void rgblight_update_dword(uint32_t dword) { if (rgblight_config.enable) rgblight_mode_noeeprom(rgblight_config.mode); else { -#ifdef RGBLIGHT_USE_TIMER rgblight_timer_disable(); -#endif rgblight_set(); } } @@ -322,13 +328,9 @@ void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) { dprintf("rgblight mode [NOEEPROM]: %u\n", rgblight_config.mode); } if (is_static_effect(rgblight_config.mode)) { -#ifdef RGBLIGHT_USE_TIMER rgblight_timer_disable(); -#endif } else { -#ifdef RGBLIGHT_USE_TIMER rgblight_timer_enable(); -#endif } #ifdef RGBLIGHT_USE_TIMER animation_status.restart = true; @@ -376,9 +378,7 @@ void rgblight_disable(void) { rgblight_config.enable = 0; eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); -#ifdef RGBLIGHT_USE_TIMER rgblight_timer_disable(); -#endif RGBLIGHT_SPLIT_SET_CHANGE_MODE; wait_ms(50); rgblight_set(); @@ -387,14 +387,14 @@ void rgblight_disable(void) { void rgblight_disable_noeeprom(void) { rgblight_config.enable = 0; dprintf("rgblight disable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); -#ifdef RGBLIGHT_USE_TIMER rgblight_timer_disable(); -#endif RGBLIGHT_SPLIT_SET_CHANGE_MODE; wait_ms(50); rgblight_set(); } +bool rgblight_is_enabled(void) { return rgblight_config.enable; } + void rgblight_increase_hue_helper(bool write_to_eeprom) { uint8_t hue = rgblight_config.hue + RGBLIGHT_HUE_STEP; rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom); @@ -431,17 +431,25 @@ void rgblight_decrease_val_helper(bool write_to_eeprom) { } void rgblight_decrease_val_noeeprom(void) { rgblight_decrease_val_helper(false); } void rgblight_decrease_val(void) { rgblight_decrease_val_helper(true); } -void rgblight_increase_speed(void) { + +void rgblight_increase_speed_helper(bool write_to_eeprom) { if (rgblight_config.speed < 3) rgblight_config.speed++; // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED? - eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this + if (write_to_eeprom) { + eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this + } } - -void rgblight_decrease_speed(void) { +void rgblight_increase_speed(void) { rgblight_increase_speed_helper(true); } +void rgblight_increase_speed_noeeprom(void) { rgblight_increase_speed_helper(false); } +void rgblight_decrease_speed_helper(bool write_to_eeprom) { if (rgblight_config.speed > 0) rgblight_config.speed--; // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED?? - eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this + if (write_to_eeprom) { + eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this + } } +void rgblight_decrease_speed(void) { rgblight_decrease_speed_helper(true); } +void rgblight_decrease_speed_noeeprom(void) { rgblight_decrease_speed_helper(false); } void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) { if (rgblight_config.enable) { @@ -502,15 +510,15 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w # else uint8_t range = RGBLED_GRADIENT_RANGES[delta / 2]; # endif - for (uint8_t i = 0; i < effect_num_leds; i++) { - uint8_t _hue = ((uint16_t)i * (uint16_t)range) / effect_num_leds; + for (uint8_t i = 0; i < rgblight_ranges.effect_num_leds; i++) { + uint8_t _hue = ((uint16_t)i * (uint16_t)range) / rgblight_ranges.effect_num_leds; if (direction) { _hue = hue + _hue; } else { _hue = hue - _hue; } dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range); - sethsv(_hue, sat, val, (LED_TYPE *)&led[i + effect_start_pos]); + sethsv(_hue, sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); } @@ -542,7 +550,7 @@ uint8_t rgblight_get_speed(void) { return rgblight_config.speed; } void rgblight_set_speed_eeprom_helper(uint8_t speed, bool write_to_eeprom) { rgblight_config.speed = speed; if (write_to_eeprom) { - eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this + eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this dprintf("rgblight set speed [EEPROM]: %u\n", rgblight_config.speed); } else { dprintf("rgblight set speed [NOEEPROM]: %u\n", rgblight_config.speed); @@ -559,12 +567,14 @@ uint8_t rgblight_get_sat(void) { return rgblight_config.sat; } uint8_t rgblight_get_val(void) { return rgblight_config.val; } +HSV rgblight_get_hsv(void) { return (HSV){rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; } + void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) { if (!rgblight_config.enable) { return; } - for (uint8_t i = effect_start_pos; i < effect_end_pos; i++) { + for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { led[i].r = r; led[i].g = g; led[i].b = b; @@ -599,7 +609,7 @@ void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) { rgblight_setrgb_at(tmp_led.r, tmp_led.g, tmp_led.b, index); } -#if defined(RGBLIGHT_EFFECT_BREATHING) || defined(RGBLIGHT_EFFECT_RAINBOW_MOOD) || defined(RGBLIGHT_EFFECT_RAINBOW_SWIRL) || defined(RGBLIGHT_EFFECT_SNAKE) || defined(RGBLIGHT_EFFECT_KNIGHT) +#if defined(RGBLIGHT_EFFECT_BREATHING) || defined(RGBLIGHT_EFFECT_RAINBOW_MOOD) || defined(RGBLIGHT_EFFECT_RAINBOW_SWIRL) || defined(RGBLIGHT_EFFECT_SNAKE) || defined(RGBLIGHT_EFFECT_KNIGHT) || defined(RGBLIGHT_EFFECT_TWINKLE) static uint8_t get_interval_time(const uint8_t *default_interval_address, uint8_t velocikey_min, uint8_t velocikey_max) { return @@ -648,13 +658,97 @@ void rgblight_sethsv_master(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_se void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_range(hue, sat, val, (uint8_t)RGBLED_NUM / 2, (uint8_t)RGBLED_NUM); } #endif // ifndef RGBLIGHT_SPLIT +#ifdef RGBLIGHT_LAYERS +void rgblight_set_layer_state(uint8_t layer, bool enabled) { + rgblight_layer_mask_t mask = 1 << layer; + if (enabled) { + rgblight_status.enabled_layer_mask |= mask; + } else { + rgblight_status.enabled_layer_mask &= ~mask; + } + RGBLIGHT_SPLIT_SET_CHANGE_LAYERS; + // Static modes don't have a ticker running to update the LEDs + if (rgblight_status.timer_enabled == false) { + rgblight_mode_noeeprom(rgblight_config.mode); + } + +# ifdef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF + // If not enabled, then nothing else will actually set the LEDs... + if (!rgblight_config.enable) { + rgblight_set(); + } +# endif +} + +bool rgblight_get_layer_state(uint8_t layer) { + rgblight_layer_mask_t mask = 1 << layer; + return (rgblight_status.enabled_layer_mask & mask) != 0; +} + +// Write any enabled LED layers into the buffer +static void rgblight_layers_write(void) { + uint8_t i = 0; + // For each layer + for (const rgblight_segment_t *const *layer_ptr = rgblight_layers; i < RGBLIGHT_MAX_LAYERS; layer_ptr++, i++) { + if (!rgblight_get_layer_state(i)) { + continue; // Layer is disabled + } + const rgblight_segment_t *segment_ptr = pgm_read_ptr(layer_ptr); + if (segment_ptr == NULL) { + break; // No more layers + } + // For each segment + while (1) { + rgblight_segment_t segment; + memcpy_P(&segment, segment_ptr, sizeof(rgblight_segment_t)); + if (segment.index == RGBLIGHT_END_SEGMENT_INDEX) { + break; // No more segments + } + // Write segment.count LEDs + LED_TYPE *const limit = &led[MIN(segment.index + segment.count, RGBLED_NUM)]; + for (LED_TYPE *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) { + sethsv(segment.hue, segment.sat, segment.val, led_ptr); + } + segment_ptr++; + } + } +} + +# ifdef RGBLIGHT_LAYER_BLINK +rgblight_layer_mask_t _blinked_layer_mask = 0; +uint16_t _blink_duration = 0; +static uint16_t _blink_timer; + +void rgblight_blink_layer(uint8_t layer, uint16_t duration_ms) { + rgblight_set_layer_state(layer, true); + _blinked_layer_mask |= 1 << layer; + _blink_timer = timer_read(); + _blink_duration = duration_ms; +} + +void rgblight_unblink_layers(void) { + if (_blinked_layer_mask != 0 && timer_elapsed(_blink_timer) > _blink_duration) { + for (uint8_t layer = 0; layer < RGBLIGHT_MAX_LAYERS; layer++) { + if ((_blinked_layer_mask & 1 << layer) != 0) { + rgblight_set_layer_state(layer, false); + } + } + _blinked_layer_mask = 0; + } +} +# endif + +#endif + +__attribute__((weak)) void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); } + #ifndef RGBLIGHT_CUSTOM_DRIVER void rgblight_set(void) { LED_TYPE *start_led; - uint16_t num_leds = clipping_num_leds; + uint8_t num_leds = rgblight_ranges.clipping_num_leds; if (!rgblight_config.enable) { - for (uint8_t i = effect_start_pos; i < effect_end_pos; i++) { + for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { if (i == RGBLIGHT_FLED1 && i == RGBLIGHT_FLED2) continue; @@ -667,54 +761,63 @@ void rgblight_set(void) { } } +# ifdef RGBLIGHT_LAYERS + if (rgblight_layers != NULL +# ifndef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF + && rgblight_config.enable +# endif + ) { + rgblight_layers_write(); + } +# endif + # ifdef RGBLIGHT_LED_MAP LED_TYPE led0[RGBLED_NUM]; for (uint8_t i = 0; i < RGBLED_NUM; i++) { led0[i] = led[pgm_read_byte(&led_map[i])]; } - start_led = led0 + clipping_start_pos; + start_led = led0 + rgblight_ranges.clipping_start_pos; # else - start_led = led + clipping_start_pos; + start_led = led + rgblight_ranges.clipping_start_pos; # endif -#ifdef RGBW +# ifdef RGBW for (uint8_t i = 0; i < num_leds; i++) { convert_rgb_to_rgbw(&start_led[i]); } -#endif +# endif // MxSS custom switch (fled_mode) { - case FLED_OFF: - setrgb(0, 0, 0, &led[RGBLIGHT_FLED1]); - setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]); - break; - - case FLED_INDI: - copyrgb(&fleds[0], &led[RGBLIGHT_FLED1]); - copyrgb(&fleds[1], &led[RGBLIGHT_FLED2]); - break; - - case FLED_RGB: - if (fled_hs[0].hue == 0 && fled_hs[0].hue == 0 && - (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE || - rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT)) + case FLED_OFF: setrgb(0, 0, 0, &led[RGBLIGHT_FLED1]); - else - sethsv(fled_hs[0].hue, fled_hs[0].sat, fled_val, &led[RGBLIGHT_FLED1]); + setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]); + break; + + case FLED_INDI: + copyrgb(&fleds[0], &led[RGBLIGHT_FLED1]); + copyrgb(&fleds[1], &led[RGBLIGHT_FLED2]); + break; - if (fled_hs[1].hue == 0 && fled_hs[1].hue == 0 && + case FLED_RGB: + if (fled_hs[0].hue == 0 && fled_hs[0].hue == 0 && (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE || rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT)) - setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]); - else - sethsv(fled_hs[1].hue, fled_hs[1].sat, fled_val, &led[RGBLIGHT_FLED2]); - break; + setrgb(0, 0, 0, &led[RGBLIGHT_FLED1]); + else + sethsv(fled_hs[0].hue, fled_hs[0].sat, fled_val, &led[RGBLIGHT_FLED1]); - default: - break; - } + if (fled_hs[1].hue == 0 && fled_hs[1].hue == 0 && + (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE || + rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT)) + setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]); + else + sethsv(fled_hs[1].hue, fled_hs[1].sat, fled_val, &led[RGBLIGHT_FLED2]); + break; + default: + break; + } - ws2812_setleds(start_led, num_leds); + rgblight_call_driver(start_led, num_leds); } #endif @@ -731,6 +834,11 @@ void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo) { /* for split keyboard slave side */ void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom) { +# ifdef RGBLIGHT_LAYERS + if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_LAYERS) { + rgblight_status.enabled_layer_mask = syncinfo->status.enabled_layer_mask; + } +# endif if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_MODE) { if (syncinfo->config.enable) { rgblight_config.enable = 1; // == rgblight_enable_noeeprom(); @@ -892,6 +1000,12 @@ void rgblight_task(void) { interval_time = 500; effect_func = (effect_func_t)rgblight_effect_alternating; } +# endif +# ifdef RGBLIGHT_EFFECT_TWINKLE + else if (rgblight_status.base_mode == RGBLIGHT_MODE_TWINKLE) { + interval_time = get_interval_time(&RGBLED_TWINKLE_INTERVALS[delta % 3], 5, 50); + effect_func = (effect_func_t)rgblight_effect_twinkle; + } # endif if (animation_status.restart) { animation_status.restart = false; @@ -922,6 +1036,10 @@ void rgblight_task(void) { # endif } } + +# ifdef RGBLIGHT_LAYER_BLINK + rgblight_unblink_layers(); +# endif } #endif /* RGBLIGHT_USE_TIMER */ @@ -972,9 +1090,9 @@ void rgblight_effect_rainbow_swirl(animation_status_t *anim) { uint8_t hue; uint8_t i; - for (i = 0; i < effect_num_leds; i++) { - hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / effect_num_leds * i + anim->current_hue); - sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + effect_start_pos]); + for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { + hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / rgblight_ranges.effect_num_leds * i + anim->current_hue); + sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); @@ -1002,7 +1120,7 @@ void rgblight_effect_snake(animation_status_t *anim) { # if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) if (anim->pos == 0) { // restart signal if (increment == 1) { - pos = effect_num_leds - 1; + pos = rgblight_ranges.effect_num_leds - 1; } else { pos = 0; } @@ -1014,8 +1132,8 @@ void rgblight_effect_snake(animation_status_t *anim) { fled_hs[0].hue = fled_hs[1].hue = 0; fled_hs[0].sat = fled_hs[1].sat = 0; - for (i = 0; i < effect_num_leds; i++) { - LED_TYPE *ledp = led + i + effect_start_pos; + for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { + LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; ledp->r = 0; ledp->g = 0; ledp->b = 0; @@ -1028,7 +1146,7 @@ void rgblight_effect_snake(animation_status_t *anim) { k = k % RGBLED_NUM; } if (k < 0) { - k = k + effect_num_leds; + k = k + rgblight_ranges.effect_num_leds; } if (i == k) { sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val * (RGBLIGHT_EFFECT_SNAKE_LENGTH - j) / RGBLIGHT_EFFECT_SNAKE_LENGTH), ledp); @@ -1038,7 +1156,7 @@ void rgblight_effect_snake(animation_status_t *anim) { rgblight_set(); if (increment == 1) { if (pos - 1 < 0) { - pos = effect_num_leds - 1; + pos = rgblight_ranges.effect_num_leds - 1; # if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) anim->pos = 0; # endif @@ -1049,7 +1167,7 @@ void rgblight_effect_snake(animation_status_t *anim) { # endif } } else { - pos = (pos + 1) % effect_num_leds; + pos = (pos + 1) % rgblight_ranges.effect_num_leds; # if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) anim->pos = pos; # endif @@ -1075,7 +1193,7 @@ void rgblight_effect_knight(animation_status_t *anim) { } # endif // Set all the LEDs to 0 - for (i = effect_start_pos; i < effect_end_pos; i++) { + for (i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { led[i].r = 0; led[i].g = 0; led[i].b = 0; @@ -1085,7 +1203,7 @@ void rgblight_effect_knight(animation_status_t *anim) { } // Determine which LEDs should be lit up for (i = 0; i < RGBLIGHT_EFFECT_KNIGHT_LED_NUM; i++) { - cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % effect_num_leds + effect_start_pos; + cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % rgblight_ranges.effect_num_leds + rgblight_ranges.effect_start_pos; if (i >= low_bound && i <= high_bound) { sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[cur]); @@ -1124,16 +1242,39 @@ void rgblight_effect_knight(animation_status_t *anim) { #endif #ifdef RGBLIGHT_EFFECT_CHRISTMAS -void rgblight_effect_christmas(animation_status_t *anim) { - uint8_t hue; - uint8_t i; +# define CUBED(x) ((x) * (x) * (x)) - anim->current_offset = (anim->current_offset + 1) % 2; - for (i = 0; i < effect_num_leds; i++) { - hue = 0 + ((i / RGBLIGHT_EFFECT_CHRISTMAS_STEP + anim->current_offset) % 2) * 85; - sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + effect_start_pos]); +/** + * Christmas lights effect, with a smooth animation between red & green. + */ +void rgblight_effect_christmas(animation_status_t *anim) { + static int8_t increment = 1; + const uint8_t max_pos = 32; + const uint8_t hue_green = 85; + + uint32_t xa; + uint8_t hue, val; + uint8_t i; + + // The effect works by animating anim->pos from 0 to 32 and back to 0. + // The pos is used in a cubic bezier formula to ease-in-out between red and green, leaving the interpolated colors visible as short as possible. + xa = CUBED((uint32_t)anim->pos); + hue = ((uint32_t)hue_green) * xa / (xa + CUBED((uint32_t)(max_pos - anim->pos))); + // Additionally, these interpolated colors get shown with a slightly darker value, to make them less prominent than the main colors. + val = 255 - (3 * (hue < hue_green / 2 ? hue : hue_green - hue) / 2); + + for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { + uint8_t local_hue = (i / RGBLIGHT_EFFECT_CHRISTMAS_STEP) % 2 ? hue : hue_green - hue; + sethsv(local_hue, rgblight_config.sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); + + if (anim->pos == 0) { + increment = 1; + } else if (anim->pos == max_pos) { + increment = -1; + } + anim->pos += increment; } #endif @@ -1183,11 +1324,11 @@ void rgblight_effect_rgbtest(animation_status_t *anim) { #ifdef RGBLIGHT_EFFECT_ALTERNATING void rgblight_effect_alternating(animation_status_t *anim) { - for (int i = 0; i < effect_num_leds; i++) { - LED_TYPE *ledp = led + i + effect_start_pos; - if (i < effect_num_leds / 2 && anim->pos) { + for (int i = 0; i < rgblight_ranges.effect_num_leds; i++) { + LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; + if (i < rgblight_ranges.effect_num_leds / 2 && anim->pos) { sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp); - } else if (i >= effect_num_leds / 2 && !anim->pos) { + } else if (i >= rgblight_ranges.effect_num_leds / 2 && !anim->pos) { sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp); } else { sethsv(rgblight_config.hue, rgblight_config.sat, 0, ledp); @@ -1197,3 +1338,58 @@ void rgblight_effect_alternating(animation_status_t *anim) { anim->pos = (anim->pos + 1) % 2; } #endif + +#ifdef RGBLIGHT_EFFECT_TWINKLE +__attribute__((weak)) const uint8_t RGBLED_TWINKLE_INTERVALS[] PROGMEM = {50, 25, 10}; + +typedef struct PACKED { + HSV hsv; + uint8_t life; + bool up; +} TwinkleState; + +static TwinkleState led_twinkle_state[RGBLED_NUM]; + +void rgblight_effect_twinkle(animation_status_t *anim) { + bool random_color = anim->delta / 3; + bool restart = anim->pos == 0; + anim->pos = 1; + + for (uint8_t i = 0; i < rgblight_ranges.effect_num_leds; i++) { + TwinkleState *t = &(led_twinkle_state[i]); + HSV * c = &(t->hsv); + if (restart) { + // Restart + t->life = 0; + t->hsv.v = 0; + } else if (t->life) { + // This LED is already on, either brightening or dimming + t->life--; + uint8_t on = t->up ? RGBLIGHT_EFFECT_TWINKLE_LIFE - t->life : t->life; + c->v = (uint16_t)rgblight_config.val * on / RGBLIGHT_EFFECT_TWINKLE_LIFE; + if (t->life == 0 && t->up) { + t->up = false; + t->life = RGBLIGHT_EFFECT_TWINKLE_LIFE; + } + if (!random_color) { + c->h = rgblight_config.hue; + c->s = rgblight_config.sat; + } + } else if (rand() < RAND_MAX * RGBLIGHT_EFFECT_TWINKLE_PROBABILITY) { + // This LED is off, but was randomly selected to start brightening + c->h = random_color ? rand() % 0xFF : rgblight_config.hue; + c->s = random_color ? (rand() % (rgblight_config.sat / 2)) + (rgblight_config.sat / 2) : rgblight_config.sat; + c->v = 0; + t->life = RGBLIGHT_EFFECT_TWINKLE_LIFE; + t->up = true; + } else { + // This LED is off, and was NOT selected to start brightening + } + + LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; + sethsv(c->h, c->s, c->v, ledp); + } + + rgblight_set(); +} +#endif diff --git a/keyboards/mxss/rgblight.h b/keyboards/mxss/rgblight.h deleted file mode 100644 index 21eff627dc70..000000000000 --- a/keyboards/mxss/rgblight.h +++ /dev/null @@ -1,358 +0,0 @@ -/* Copyright 2017 Yang Liu - * - * 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 . - */ -#ifndef RGBLIGHT_H -#define RGBLIGHT_H - -/***** rgblight_mode(mode)/rgblight_mode_noeeprom(mode) **** - - old mode number (before 0.6.117) to new mode name table - -|-----------------|-----------------------------------| -| old mode number | new mode name | -|-----------------|-----------------------------------| -| 1 | RGBLIGHT_MODE_STATIC_LIGHT | -| 2 | RGBLIGHT_MODE_BREATHING | -| 3 | RGBLIGHT_MODE_BREATHING + 1 | -| 4 | RGBLIGHT_MODE_BREATHING + 2 | -| 5 | RGBLIGHT_MODE_BREATHING + 3 | -| 6 | RGBLIGHT_MODE_RAINBOW_MOOD | -| 7 | RGBLIGHT_MODE_RAINBOW_MOOD + 1 | -| 8 | RGBLIGHT_MODE_RAINBOW_MOOD + 2 | -| 9 | RGBLIGHT_MODE_RAINBOW_SWIRL | -| 10 | RGBLIGHT_MODE_RAINBOW_SWIRL + 1 | -| 11 | RGBLIGHT_MODE_RAINBOW_SWIRL + 2 | -| 12 | RGBLIGHT_MODE_RAINBOW_SWIRL + 3 | -| 13 | RGBLIGHT_MODE_RAINBOW_SWIRL + 4 | -| 14 | RGBLIGHT_MODE_RAINBOW_SWIRL + 5 | -| 15 | RGBLIGHT_MODE_SNAKE | -| 16 | RGBLIGHT_MODE_SNAKE + 1 | -| 17 | RGBLIGHT_MODE_SNAKE + 2 | -| 18 | RGBLIGHT_MODE_SNAKE + 3 | -| 19 | RGBLIGHT_MODE_SNAKE + 4 | -| 20 | RGBLIGHT_MODE_SNAKE + 5 | -| 21 | RGBLIGHT_MODE_KNIGHT | -| 22 | RGBLIGHT_MODE_KNIGHT + 1 | -| 23 | RGBLIGHT_MODE_KNIGHT + 2 | -| 24 | RGBLIGHT_MODE_CHRISTMAS | -| 25 | RGBLIGHT_MODE_STATIC_GRADIENT | -| 26 | RGBLIGHT_MODE_STATIC_GRADIENT + 1 | -| 27 | RGBLIGHT_MODE_STATIC_GRADIENT + 2 | -| 28 | RGBLIGHT_MODE_STATIC_GRADIENT + 3 | -| 29 | RGBLIGHT_MODE_STATIC_GRADIENT + 4 | -| 30 | RGBLIGHT_MODE_STATIC_GRADIENT + 5 | -| 31 | RGBLIGHT_MODE_STATIC_GRADIENT + 6 | -| 32 | RGBLIGHT_MODE_STATIC_GRADIENT + 7 | -| 33 | RGBLIGHT_MODE_STATIC_GRADIENT + 8 | -| 34 | RGBLIGHT_MODE_STATIC_GRADIENT + 9 | -| 35 | RGBLIGHT_MODE_RGB_TEST | -| 36 | RGBLIGHT_MODE_ALTERNATING | -|-----------------|-----------------------------------| - *****/ - -#ifdef RGBLIGHT_ANIMATIONS -// for backward compatibility -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -#endif - -#ifdef RGBLIGHT_STATIC_PATTERNS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -#endif - -// clang-format off - -// check dynamic animation effects chose ? -#if defined(RGBLIGHT_EFFECT_BREATHING) \ - || defined(RGBLIGHT_EFFECT_RAINBOW_MOOD) \ - || defined(RGBLIGHT_EFFECT_RAINBOW_SWIRL) \ - || defined(RGBLIGHT_EFFECT_SNAKE) \ - || defined(RGBLIGHT_EFFECT_KNIGHT) \ - || defined(RGBLIGHT_EFFECT_CHRISTMAS) \ - || defined(RGBLIGHT_EFFECT_RGB_TEST) \ - || defined(RGBLIGHT_EFFECT_ALTERNATING) -# define RGBLIGHT_USE_TIMER -#endif - -// clang-format on - -#define _RGBM_SINGLE_STATIC(sym) RGBLIGHT_MODE_##sym, -#define _RGBM_SINGLE_DYNAMIC(sym) RGBLIGHT_MODE_##sym, -#define _RGBM_MULTI_STATIC(sym) RGBLIGHT_MODE_##sym, -#define _RGBM_MULTI_DYNAMIC(sym) RGBLIGHT_MODE_##sym, -#define _RGBM_TMP_STATIC(sym, msym) RGBLIGHT_MODE_##sym, -#define _RGBM_TMP_DYNAMIC(sym, msym) RGBLIGHT_MODE_##sym, -enum RGBLIGHT_EFFECT_MODE { - RGBLIGHT_MODE_zero = 0, -#include "rgblight_modes.h" - RGBLIGHT_MODE_last -}; - -#ifndef RGBLIGHT_H_DUMMY_DEFINE - -# define RGBLIGHT_MODES (RGBLIGHT_MODE_last - 1) - -// sample: #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 - -# ifndef RGBLIGHT_EFFECT_BREATHE_MAX -# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0-255 -# endif - -# ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH -# define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 -# endif - -# ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH -# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 -# endif - -# ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET -# define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0 -# endif - -# ifndef RGBLIGHT_EFFECT_KNIGHT_LED_NUM -# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM (effect_num_leds) -# endif - -# ifndef RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL -# define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 1000 -# endif - -# ifndef RGBLIGHT_EFFECT_CHRISTMAS_STEP -# define RGBLIGHT_EFFECT_CHRISTMAS_STEP 2 -# endif - -# ifndef RGBLIGHT_HUE_STEP -# define RGBLIGHT_HUE_STEP 8 -# endif -# ifndef RGBLIGHT_SAT_STEP -# define RGBLIGHT_SAT_STEP 17 -# endif -# ifndef RGBLIGHT_VAL_STEP -# define RGBLIGHT_VAL_STEP 17 -# endif -# ifndef RGBLIGHT_LIMIT_VAL -# define RGBLIGHT_LIMIT_VAL 255 -# endif - -# define RGBLED_TIMER_TOP F_CPU / (256 * 64) -// #define RGBLED_TIMER_TOP 0xFF10 - -# include -# include -# include "eeconfig.h" -# ifndef RGBLIGHT_CUSTOM_DRIVER -# include "ws2812.h" -# endif -# include "color.h" -# include "rgblight_list.h" - -# if defined(__AVR__) -# include -# endif - -extern LED_TYPE led[RGBLED_NUM]; - -extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM; -extern const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[3] PROGMEM; -extern const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[3] PROGMEM; -extern const uint8_t RGBLED_SNAKE_INTERVALS[3] PROGMEM; -extern const uint8_t RGBLED_KNIGHT_INTERVALS[3] PROGMEM; -extern const uint16_t RGBLED_RGBTEST_INTERVALS[1] PROGMEM; -extern bool is_rgblight_initialized; - -// Should stay in sycn with rgb matrix config as we reuse eeprom storage for both (for now) -typedef union { - uint32_t raw; - struct { - bool enable : 1; - uint8_t mode : 7; - uint8_t hue : 8; - uint8_t sat : 8; - uint8_t val : 8; - uint8_t speed : 8; // EECONFIG needs to be increased to support this - }; -} rgblight_config_t; - -typedef struct _rgblight_status_t { - uint8_t base_mode; - bool timer_enabled; -# ifdef RGBLIGHT_SPLIT - uint8_t change_flags; -# endif -} rgblight_status_t; - -/* === Utility Functions ===*/ -void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); -void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); // without RGBLIGHT_LIMIT_VAL check -void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1); - -/* === Low level Functions === */ -void rgblight_set(void); -void rgblight_set_clipping_range(uint8_t start_pos, uint8_t num_leds); - -/* === Effects and Animations Functions === */ -/* effect range setting */ -void rgblight_set_effect_range(uint8_t start_pos, uint8_t num_leds); - -/* direct operation */ -void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index); -void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index); -void rgblight_setrgb_range(uint8_t r, uint8_t g, uint8_t b, uint8_t start, uint8_t end); -void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end); -void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b); - -# ifndef RGBLIGHT_SPLIT -void rgblight_setrgb_master(uint8_t r, uint8_t g, uint8_t b); -void rgblight_setrgb_slave(uint8_t r, uint8_t g, uint8_t b); -void rgblight_sethsv_master(uint8_t hue, uint8_t sat, uint8_t val); -void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val); -# endif - -/* effect mode change */ -void rgblight_mode(uint8_t mode); -void rgblight_mode_noeeprom(uint8_t mode); -void rgblight_increase(void); -void rgblight_decrease(void); -void rgblight_step(void); -void rgblight_step_noeeprom(void); -void rgblight_step_reverse(void); -void rgblight_step_reverse_noeeprom(void); - -/* effects mode disable/enable */ -void rgblight_toggle(void); -void rgblight_toggle_noeeprom(void); -void rgblight_enable(void); -void rgblight_enable_noeeprom(void); -void rgblight_disable(void); -void rgblight_disable_noeeprom(void); - -/* hue, sat, val change */ -void rgblight_increase_hue(void); -void rgblight_increase_hue_noeeprom(void); -void rgblight_decrease_hue(void); -void rgblight_decrease_hue_noeeprom(void); -void rgblight_increase_sat(void); -void rgblight_increase_sat_noeeprom(void); -void rgblight_decrease_sat(void); -void rgblight_decrease_sat_noeeprom(void); -void rgblight_increase_val(void); -void rgblight_increase_val_noeeprom(void); -void rgblight_decrease_val(void); -void rgblight_decrease_val_noeeprom(void); -void rgblight_increase_speed(void); -void rgblight_decrease_speed(void); -void rgblight_sethsv(uint8_t hue, uint8_t sat, uint8_t val); -void rgblight_sethsv_noeeprom(uint8_t hue, uint8_t sat, uint8_t val); - -/* effect speed */ -uint8_t rgblight_get_speed(void); -void rgblight_set_speed(uint8_t speed); -void rgblight_set_speed_noeeprom(uint8_t speed); - -/* query */ -uint8_t rgblight_get_mode(void); -uint8_t rgblight_get_hue(void); -uint8_t rgblight_get_sat(void); -uint8_t rgblight_get_val(void); - -/* === qmk_firmware (core)internal Functions === */ -void rgblight_init(void); -uint32_t rgblight_read_dword(void); -void rgblight_update_dword(uint32_t dword); -uint32_t eeconfig_read_rgblight(void); -void eeconfig_update_rgblight(uint32_t val); -void eeconfig_update_rgblight_current(void); -void eeconfig_update_rgblight_default(void); -void eeconfig_debug_rgblight(void); - -void rgb_matrix_increase(void); -void rgb_matrix_decrease(void); - -void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom); -void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom); - -# define EZ_RGB(val) rgblight_show_solid_color((val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF) -void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b); - -# ifdef RGBLIGHT_USE_TIMER -void rgblight_task(void); -void rgblight_timer_init(void); -void rgblight_timer_enable(void); -void rgblight_timer_disable(void); -void rgblight_timer_toggle(void); -# else -# define rgblight_task() -# define rgblight_timer_init() -# define rgblight_timer_enable() -# define rgblight_timer_disable() -# define rgblight_timer_toggle() -# endif - -# ifdef RGBLIGHT_SPLIT -# define RGBLIGHT_STATUS_CHANGE_MODE (1 << 0) -# define RGBLIGHT_STATUS_CHANGE_HSVS (1 << 1) -# define RGBLIGHT_STATUS_CHANGE_TIMER (1 << 2) -# define RGBLIGHT_STATUS_ANIMATION_TICK (1 << 3) - -typedef struct _rgblight_syncinfo_t { - rgblight_config_t config; - rgblight_status_t status; -} rgblight_syncinfo_t; - -/* for split keyboard master side */ -uint8_t rgblight_get_change_flags(void); -void rgblight_clear_change_flags(void); -void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo); -/* for split keyboard slave side */ -void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom); -# endif - -# ifdef RGBLIGHT_USE_TIMER - -typedef struct _animation_status_t { - uint16_t last_timer; - uint8_t delta; /* mode - base_mode */ - bool restart; - union { - uint16_t pos16; - uint8_t pos; - int8_t current_hue; - uint16_t current_offset; - }; -} animation_status_t; - -extern animation_status_t animation_status; - -void rgblight_effect_breathing(animation_status_t *anim); -void rgblight_effect_rainbow_mood(animation_status_t *anim); -void rgblight_effect_rainbow_swirl(animation_status_t *anim); -void rgblight_effect_snake(animation_status_t *anim); -void rgblight_effect_knight(animation_status_t *anim); -void rgblight_effect_christmas(animation_status_t *anim); -void rgblight_effect_rgbtest(animation_status_t *anim); -void rgblight_effect_alternating(animation_status_t *anim); - -# endif - -#endif // #ifndef RGBLIGHT_H_DUMMY_DEFINE -#endif // RGBLIGHT_H From 810eafad121bda333c53490e2d8a29f3a83d9c19 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 4 Jan 2021 16:37:20 -0800 Subject: [PATCH 104/140] Fix Tap-Hold Configs (#11127) * Add proper prototypes for Tap-Hold Per Key functions * Fix handwired/tennie default keymap * Remove unneeded references * Fix tapping term per key check in space cadet * Pre-emptive fix for tap dance * Fix marksard/leftover30 * Replace hard coded tapping term with define --- keyboards/handwired/tennie/keymaps/default/config.h | 1 + keyboards/handwired/tennie/keymaps/default/keymap.c | 3 --- .../marksard/leftover30/keymaps/default/keymap.c | 2 +- quantum/process_keycode/process_space_cadet.c | 11 ++++++----- quantum/process_keycode/process_space_cadet.h | 3 --- quantum/process_keycode/process_tap_dance.c | 5 ++++- quantum/quantum.h | 1 + tmk_core/common/action_tapping.h | 9 ++++++--- 8 files changed, 19 insertions(+), 16 deletions(-) diff --git a/keyboards/handwired/tennie/keymaps/default/config.h b/keyboards/handwired/tennie/keymaps/default/config.h index 4496c5910061..b8f7e4278967 100644 --- a/keyboards/handwired/tennie/keymaps/default/config.h +++ b/keyboards/handwired/tennie/keymaps/default/config.h @@ -17,3 +17,4 @@ #pragma once // place overrides here +#define TAPPING_TOGGLE 2 diff --git a/keyboards/handwired/tennie/keymaps/default/keymap.c b/keyboards/handwired/tennie/keymaps/default/keymap.c index 3736841cbb9a..b65abb89e065 100644 --- a/keyboards/handwired/tennie/keymaps/default/keymap.c +++ b/keyboards/handwired/tennie/keymaps/default/keymap.c @@ -15,9 +15,6 @@ */ #include QMK_KEYBOARD_H -#define TAPPING_TOGGLE 2 - - // Layer names #define base 0 #define shrek 1 diff --git a/keyboards/marksard/leftover30/keymaps/default/keymap.c b/keyboards/marksard/leftover30/keymaps/default/keymap.c index 60751cd1ca08..b8d99733306e 100644 --- a/keyboards/marksard/leftover30/keymaps/default/keymap.c +++ b/keyboards/marksard/leftover30/keymaps/default/keymap.c @@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -uint16_t get_tapping_term(uint16_t keycode) { +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_SPRA: return TAPPING_LAYER_TERM; diff --git a/quantum/process_keycode/process_space_cadet.c b/quantum/process_keycode/process_space_cadet.c index bcaf62a964ec..f99db2a87b9e 100644 --- a/quantum/process_keycode/process_space_cadet.c +++ b/quantum/process_keycode/process_space_cadet.c @@ -16,10 +16,6 @@ #include "process_space_cadet.h" #include "action_tapping.h" -#ifdef NO_ACTION_TAPPING -__attribute__((weak)) uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { return TAPPING_TERM; }; -#endif - // ********** OBSOLETE DEFINES, STOP USING! (pls?) ********** // Shift / paren setup #ifndef LSPO_KEY @@ -97,7 +93,12 @@ void perform_space_cadet(keyrecord_t *record, uint16_t sc_keycode, uint8_t holdM register_mods(MOD_BIT(holdMod)); } } else { - if (sc_last == holdMod && timer_elapsed(sc_timer) < get_tapping_term(sc_keycode, record)) { +#ifdef TAPPING_TERM_PER_KEY + if (sc_last == holdMod && timer_elapsed(sc_timer) < get_tapping_term(sc_keycode, record)) +#else + if (sc_last == holdMod && timer_elapsed(sc_timer) < TAPPING_TERM) +#endif + { if (holdMod != tapMod) { if (IS_MOD(holdMod)) { unregister_mods(MOD_BIT(holdMod)); diff --git a/quantum/process_keycode/process_space_cadet.h b/quantum/process_keycode/process_space_cadet.h index 3ace073997af..fcb70f3b4369 100644 --- a/quantum/process_keycode/process_space_cadet.h +++ b/quantum/process_keycode/process_space_cadet.h @@ -19,6 +19,3 @@ void perform_space_cadet(keyrecord_t *record, uint16_t sc_keycode, uint8_t holdMod, uint8_t tapMod, uint8_t keycode); bool process_space_cadet(uint16_t keycode, keyrecord_t *record); -#ifdef NO_ACTION_TAPPING -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record); -#endif diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c index 0c7b6353eb51..138de0eba2fb 100644 --- a/quantum/process_keycode/process_tap_dance.c +++ b/quantum/process_keycode/process_tap_dance.c @@ -14,7 +14,6 @@ * along with this program. If not, see . */ #include "quantum.h" -#include "action_tapping.h" #ifndef NO_ACTION_ONESHOT uint8_t get_oneshot_mods(void); @@ -167,7 +166,11 @@ void matrix_scan_tap_dance() { if (action->custom_tapping_term > 0) { tap_user_defined = action->custom_tapping_term; } else { +#ifdef TAPPING_TERM_PER_KEY tap_user_defined = get_tapping_term(action->state.keycode, NULL); +#else + tap_user_defined = TAPPING_TERM; +#endif } if (action->state.count && timer_elapsed(action->state.timer) > tap_user_defined) { process_tap_dance_action_on_dance_finished(action); diff --git a/quantum/quantum.h b/quantum/quantum.h index 3e09df4f8809..f4df5bf155e7 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -56,6 +56,7 @@ #include "config_common.h" #include "led.h" #include "action_util.h" +#include "action_tapping.h" #include "print.h" #include "send_string_keycodes.h" #include "suspend.h" diff --git a/tmk_core/common/action_tapping.h b/tmk_core/common/action_tapping.h index 087090f8057b..4d10c668af39 100644 --- a/tmk_core/common/action_tapping.h +++ b/tmk_core/common/action_tapping.h @@ -22,8 +22,6 @@ along with this program. If not, see . # define TAPPING_TERM 200 #endif -//#define RETRO_TAPPING // Tap anyway, even after TAPPING_TERM, as long as there was no interruption - /* tap count needed for toggling a feature */ #ifndef TAPPING_TOGGLE # define TAPPING_TOGGLE 5 @@ -33,6 +31,11 @@ along with this program. If not, see . #ifndef NO_ACTION_TAPPING uint16_t get_event_keycode(keyevent_t event, bool update_layer_cache); -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record); void action_tapping_process(keyrecord_t record); + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record); +bool get_permissive_hold(uint16_t keycode, keyrecord_t *record); +bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record); +bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record); +bool get_retro_tapping(uint16_t keycode, keyrecord_t *record); #endif From f03b10b6c1c9a5b0e07f7f78c6060610246b4a7f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 5 Jan 2021 00:52:31 +0000 Subject: [PATCH 105/140] Migrate python tests away from onekey (#11367) * Migrate python tests away from onekey * Add stub files to stop lint complaints * Make all the pytest keymaps compile --- keyboards/handwired/onekey/pytest/config.h | 23 ------- keyboards/handwired/onekey/pytest/readme.md | 3 - keyboards/handwired/onekey/pytest/rules.mk | 2 - keyboards/handwired/{onekey => }/pytest/.noci | 0 keyboards/handwired/pytest/basic/.noci | 0 .../pytest/basic/keymaps/default/keymap.c | 5 ++ .../basic}/keymaps/default_json/keymap.json | 4 +- keyboards/handwired/pytest/basic/readme.md | 0 keyboards/handwired/pytest/basic/rules.mk | 1 + keyboards/handwired/pytest/config.h | 18 +++++ .../handwired/pytest/has_community/.noci | 0 .../handwired/pytest/has_community/readme.md | 0 .../handwired/pytest/has_community/rules.mk | 3 + keyboards/handwired/pytest/has_template/.noci | 0 .../pytest/has_template/keymaps/.noci | 0 .../has_template/keymaps/default/keymap.c | 5 ++ .../keymaps/default_json/keymap.json | 9 +++ .../has_template/keymaps/nocpp}/keymap.c | 0 .../handwired/pytest/has_template/readme.md | 0 .../handwired/pytest/has_template/rules.mk | 1 + .../has_template}/templates/keymap.c | 0 .../has_template}/templates/keymap.json | 2 +- keyboards/handwired/pytest/pytest.h | 11 +++ ...{onekey_export.json => pytest_export.json} | 2 +- lib/python/qmk/tests/test_cli_commands.py | 68 ++++++++++--------- lib/python/qmk/tests/test_qmk_keymap.py | 32 ++++----- lib/python/qmk/tests/test_qmk_path.py | 6 +- 27 files changed, 113 insertions(+), 82 deletions(-) delete mode 100644 keyboards/handwired/onekey/pytest/config.h delete mode 100644 keyboards/handwired/onekey/pytest/readme.md delete mode 100644 keyboards/handwired/onekey/pytest/rules.mk rename keyboards/handwired/{onekey => }/pytest/.noci (100%) create mode 100644 keyboards/handwired/pytest/basic/.noci create mode 100644 keyboards/handwired/pytest/basic/keymaps/default/keymap.c rename keyboards/handwired/{onekey => pytest/basic}/keymaps/default_json/keymap.json (52%) create mode 100644 keyboards/handwired/pytest/basic/readme.md create mode 100644 keyboards/handwired/pytest/basic/rules.mk create mode 100644 keyboards/handwired/pytest/config.h create mode 100644 keyboards/handwired/pytest/has_community/.noci create mode 100644 keyboards/handwired/pytest/has_community/readme.md create mode 100644 keyboards/handwired/pytest/has_community/rules.mk create mode 100644 keyboards/handwired/pytest/has_template/.noci create mode 100644 keyboards/handwired/pytest/has_template/keymaps/.noci create mode 100644 keyboards/handwired/pytest/has_template/keymaps/default/keymap.c create mode 100644 keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json rename keyboards/handwired/{onekey/keymaps/pytest_nocpp => pytest/has_template/keymaps/nocpp}/keymap.c (100%) create mode 100644 keyboards/handwired/pytest/has_template/readme.md create mode 100644 keyboards/handwired/pytest/has_template/rules.mk rename keyboards/handwired/{onekey/pytest => pytest/has_template}/templates/keymap.c (100%) rename keyboards/handwired/{onekey/pytest => pytest/has_template}/templates/keymap.json (74%) create mode 100644 keyboards/handwired/pytest/pytest.h rename lib/python/qmk/tests/{onekey_export.json => pytest_export.json} (66%) diff --git a/keyboards/handwired/onekey/pytest/config.h b/keyboards/handwired/onekey/pytest/config.h deleted file mode 100644 index f6bedcfe6481..000000000000 --- a/keyboards/handwired/onekey/pytest/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2019 - * - * 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 . - */ - -#pragma once - -#include "config_common.h" - -#define MATRIX_COL_PINS { A3 } -#define MATRIX_ROW_PINS { A2 } -#define UNUSED_PINS diff --git a/keyboards/handwired/onekey/pytest/readme.md b/keyboards/handwired/onekey/pytest/readme.md deleted file mode 100644 index dbbd991f1c37..000000000000 --- a/keyboards/handwired/onekey/pytest/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# PyTest onekey - -This is used by the python test framework. It's probably not useful otherwise. diff --git a/keyboards/handwired/onekey/pytest/rules.mk b/keyboards/handwired/onekey/pytest/rules.mk deleted file mode 100644 index b17a3d0316b5..000000000000 --- a/keyboards/handwired/onekey/pytest/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# MCU name -MCU = STM32F303 diff --git a/keyboards/handwired/onekey/pytest/.noci b/keyboards/handwired/pytest/.noci similarity index 100% rename from keyboards/handwired/onekey/pytest/.noci rename to keyboards/handwired/pytest/.noci diff --git a/keyboards/handwired/pytest/basic/.noci b/keyboards/handwired/pytest/basic/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pytest/basic/keymaps/default/keymap.c b/keyboards/handwired/pytest/basic/keymaps/default/keymap.c new file mode 100644 index 000000000000..a5782f7a1368 --- /dev/null +++ b/keyboards/handwired/pytest/basic/keymaps/default/keymap.c @@ -0,0 +1,5 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_ortho_1x1(KC_A) +}; diff --git a/keyboards/handwired/onekey/keymaps/default_json/keymap.json b/keyboards/handwired/pytest/basic/keymaps/default_json/keymap.json similarity index 52% rename from keyboards/handwired/onekey/keymaps/default_json/keymap.json rename to keyboards/handwired/pytest/basic/keymaps/default_json/keymap.json index ce4c4b474df6..e162e41399b0 100644 --- a/keyboards/handwired/onekey/keymaps/default_json/keymap.json +++ b/keyboards/handwired/pytest/basic/keymaps/default_json/keymap.json @@ -1,9 +1,9 @@ { - "keyboard": "handwired/onekey/pytest", + "keyboard": "handwired/pytest/basic", "keymap": "default_json", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]], "author": "qmk", - "notes": "This file is a keymap.json file for handwired/onekey/pytest", + "notes": "This file is a keymap.json file for handwired/pytest/basic", "version": 1 } diff --git a/keyboards/handwired/pytest/basic/readme.md b/keyboards/handwired/pytest/basic/readme.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pytest/basic/rules.mk b/keyboards/handwired/pytest/basic/rules.mk new file mode 100644 index 000000000000..6b42774dbffb --- /dev/null +++ b/keyboards/handwired/pytest/basic/rules.mk @@ -0,0 +1 @@ +MCU = atmega32u4 diff --git a/keyboards/handwired/pytest/config.h b/keyboards/handwired/pytest/config.h new file mode 100644 index 000000000000..64cf35312640 --- /dev/null +++ b/keyboards/handwired/pytest/config.h @@ -0,0 +1,18 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6465 +#define DEVICE_VER 0x0001 +#define MANUFACTURER none +#define PRODUCT pytest + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 + +#define MATRIX_COL_PINS { F4 } +#define MATRIX_ROW_PINS { F5 } +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/handwired/pytest/has_community/.noci b/keyboards/handwired/pytest/has_community/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pytest/has_community/readme.md b/keyboards/handwired/pytest/has_community/readme.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pytest/has_community/rules.mk b/keyboards/handwired/pytest/has_community/rules.mk new file mode 100644 index 000000000000..4161649cbcaa --- /dev/null +++ b/keyboards/handwired/pytest/has_community/rules.mk @@ -0,0 +1,3 @@ +MCU = atmega32u4 + +LAYOUTS = ortho_1x1 diff --git a/keyboards/handwired/pytest/has_template/.noci b/keyboards/handwired/pytest/has_template/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pytest/has_template/keymaps/.noci b/keyboards/handwired/pytest/has_template/keymaps/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pytest/has_template/keymaps/default/keymap.c b/keyboards/handwired/pytest/has_template/keymaps/default/keymap.c new file mode 100644 index 000000000000..a5782f7a1368 --- /dev/null +++ b/keyboards/handwired/pytest/has_template/keymaps/default/keymap.c @@ -0,0 +1,5 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_ortho_1x1(KC_A) +}; diff --git a/keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json b/keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json new file mode 100644 index 000000000000..cbdce6db3269 --- /dev/null +++ b/keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json @@ -0,0 +1,9 @@ +{ + "keyboard": "handwired/pytest/has_template", + "keymap": "default_json", + "layout": "LAYOUT_ortho_1x1", + "layers": [["KC_A"]], + "author": "qmk", + "notes": "This file is a keymap.json file for handwired/pytest/has_template", + "version": 1 +} diff --git a/keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c b/keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c similarity index 100% rename from keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c rename to keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c diff --git a/keyboards/handwired/pytest/has_template/readme.md b/keyboards/handwired/pytest/has_template/readme.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/pytest/has_template/rules.mk b/keyboards/handwired/pytest/has_template/rules.mk new file mode 100644 index 000000000000..6b42774dbffb --- /dev/null +++ b/keyboards/handwired/pytest/has_template/rules.mk @@ -0,0 +1 @@ +MCU = atmega32u4 diff --git a/keyboards/handwired/onekey/pytest/templates/keymap.c b/keyboards/handwired/pytest/has_template/templates/keymap.c similarity index 100% rename from keyboards/handwired/onekey/pytest/templates/keymap.c rename to keyboards/handwired/pytest/has_template/templates/keymap.c diff --git a/keyboards/handwired/onekey/pytest/templates/keymap.json b/keyboards/handwired/pytest/has_template/templates/keymap.json similarity index 74% rename from keyboards/handwired/onekey/pytest/templates/keymap.json rename to keyboards/handwired/pytest/has_template/templates/keymap.json index 35344388f639..04928564e962 100644 --- a/keyboards/handwired/onekey/pytest/templates/keymap.json +++ b/keyboards/handwired/pytest/has_template/templates/keymap.json @@ -1,3 +1,3 @@ { - "documentation": "This file is a keymap.json file for handwired/onekey/pytest" + "documentation": "This file is a keymap.json file for handwired/pytest/has_template" } diff --git a/keyboards/handwired/pytest/pytest.h b/keyboards/handwired/pytest/pytest.h new file mode 100644 index 000000000000..b8fe7dde59b5 --- /dev/null +++ b/keyboards/handwired/pytest/pytest.h @@ -0,0 +1,11 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_1x1( \ + k00 \ +) { \ + { k00 } \ +} + +#define LAYOUT LAYOUT_ortho_1x1 diff --git a/lib/python/qmk/tests/onekey_export.json b/lib/python/qmk/tests/pytest_export.json similarity index 66% rename from lib/python/qmk/tests/onekey_export.json rename to lib/python/qmk/tests/pytest_export.json index 95f0a980fe63..5fb0d624f8d6 100644 --- a/lib/python/qmk/tests/onekey_export.json +++ b/lib/python/qmk/tests/pytest_export.json @@ -1,5 +1,5 @@ { - "keyboard":"handwired/onekey/pytest", + "keyboard":"handwired/pytest/basic", "keymap":"pytest_unittest", "layout":"LAYOUT", "layers":[["KC_A"]] diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index efd9f6cf6a04..f889833d0b96 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -38,17 +38,17 @@ def test_cformat(): def test_compile(): - result = check_subcommand('compile', '-kb', 'handwired/onekey/pytest', '-km', 'default', '-n') + result = check_subcommand('compile', '-kb', 'handwired/pytest/basic', '-km', 'default', '-n') check_returncode(result) def test_compile_json(): - result = check_subcommand('compile', '-kb', 'handwired/onekey/pytest', '-km', 'default_json', '-n') + result = check_subcommand('compile', '-kb', 'handwired/pytest/basic', '-km', 'default_json', '-n') check_returncode(result) def test_flash(): - result = check_subcommand('flash', '-kb', 'handwired/onekey/pytest', '-km', 'default', '-n') + result = check_subcommand('flash', '-kb', 'handwired/pytest/basic', '-km', 'default', '-n') check_returncode(result) @@ -92,20 +92,26 @@ def test_list_keyboards(): result = check_subcommand('list-keyboards') check_returncode(result) # check to see if a known keyboard is returned - # this will fail if handwired/onekey/pytest is removed - assert 'handwired/onekey/pytest' in result.stdout + # this will fail if handwired/pytest/basic is removed + assert 'handwired/pytest/basic' in result.stdout def test_list_keymaps(): - result = check_subcommand('list-keymaps', '-kb', 'handwired/onekey/pytest') + result = check_subcommand('list-keymaps', '-kb', 'handwired/pytest/basic') check_returncode(result) - assert 'default' and 'test' in result.stdout + assert 'default' and 'default_json' in result.stdout def test_list_keymaps_long(): - result = check_subcommand('list-keymaps', '--keyboard', 'handwired/onekey/pytest') + result = check_subcommand('list-keymaps', '--keyboard', 'handwired/pytest/basic') check_returncode(result) - assert 'default' and 'test' in result.stdout + assert 'default' and 'default_json' in result.stdout + + +def test_list_keymaps_community(): + result = check_subcommand('list-keymaps', '--keyboard', 'handwired/pytest/has_community') + check_returncode(result) + assert 'test' in result.stdout def test_list_keymaps_kb_only(): @@ -133,40 +139,40 @@ def test_list_keymaps_no_keyboard_found(): def test_json2c(): - result = check_subcommand('json2c', 'keyboards/handwired/onekey/keymaps/default_json/keymap.json') + result = check_subcommand('json2c', 'keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json') check_returncode(result) assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n' def test_json2c_stdin(): - result = check_subcommand_stdin('keyboards/handwired/onekey/keymaps/default_json/keymap.json', 'json2c', '-') + result = check_subcommand_stdin('keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json', 'json2c', '-') check_returncode(result) assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n' def test_info(): - result = check_subcommand('info', '-kb', 'handwired/onekey/pytest') + result = check_subcommand('info', '-kb', 'handwired/pytest/basic') check_returncode(result) - assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout - assert 'Processor: STM32F303' in result.stdout + assert 'Keyboard Name: handwired/pytest/basic' in result.stdout + assert 'Processor: atmega32u4' in result.stdout assert 'Layout:' not in result.stdout assert 'k0' not in result.stdout def test_info_keyboard_render(): - result = check_subcommand('info', '-kb', 'handwired/onekey/pytest', '-l') + result = check_subcommand('info', '-kb', 'handwired/pytest/basic', '-l') check_returncode(result) - assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout - assert 'Processor: STM32F303' in result.stdout + assert 'Keyboard Name: handwired/pytest/basic' in result.stdout + assert 'Processor: atmega32u4' in result.stdout assert 'Layouts:' in result.stdout assert 'k0' in result.stdout def test_info_keymap_render(): - result = check_subcommand('info', '-kb', 'handwired/onekey/pytest', '-km', 'default_json') + result = check_subcommand('info', '-kb', 'handwired/pytest/basic', '-km', 'default_json') check_returncode(result) - assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout - assert 'Processor: STM32F303' in result.stdout + assert 'Keyboard Name: handwired/pytest/basic' in result.stdout + assert 'Processor: atmega32u4' in result.stdout if is_windows: assert '|A |' in result.stdout @@ -175,10 +181,10 @@ def test_info_keymap_render(): def test_info_matrix_render(): - result = check_subcommand('info', '-kb', 'handwired/onekey/pytest', '-m') + result = check_subcommand('info', '-kb', 'handwired/pytest/basic', '-m') check_returncode(result) - assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout - assert 'Processor: STM32F303' in result.stdout + assert 'Keyboard Name: handwired/pytest/basic' in result.stdout + assert 'Processor: atmega32u4' in result.stdout assert 'LAYOUT_ortho_1x1' in result.stdout if is_windows: @@ -190,27 +196,27 @@ def test_info_matrix_render(): def test_c2json(): - result = check_subcommand("c2json", "-kb", "handwired/onekey/pytest", "-km", "default", "keyboards/handwired/onekey/keymaps/default/keymap.c") + result = check_subcommand("c2json", "-kb", "handwired/pytest/has_template", "-km", "default", "keyboards/handwired/pytest/has_template/keymaps/default/keymap.c") check_returncode(result) - assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}' + assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}' def test_c2json_nocpp(): - result = check_subcommand("c2json", "--no-cpp", "-kb", "handwired/onekey/pytest", "-km", "default", "keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c") + result = check_subcommand("c2json", "--no-cpp", "-kb", "handwired/pytest/has_template", "-km", "default", "keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c") check_returncode(result) - assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}' + assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}' def test_c2json_stdin(): - result = check_subcommand_stdin("keyboards/handwired/onekey/keymaps/default/keymap.c", "c2json", "-kb", "handwired/onekey/pytest", "-km", "default", "-") + result = check_subcommand_stdin("keyboards/handwired/pytest/has_template/keymaps/default/keymap.c", "c2json", "-kb", "handwired/pytest/has_template", "-km", "default", "-") check_returncode(result) - assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}' + assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}' def test_c2json_nocpp_stdin(): - result = check_subcommand_stdin("keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c", "c2json", "--no-cpp", "-kb", "handwired/onekey/pytest", "-km", "default", "-") + result = check_subcommand_stdin("keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c", "c2json", "--no-cpp", "-kb", "handwired/pytest/has_template", "-km", "default", "-") check_returncode(result) - assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}' + assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}' def test_clean(): diff --git a/lib/python/qmk/tests/test_qmk_keymap.py b/lib/python/qmk/tests/test_qmk_keymap.py index f1ecf29378fc..b9e80df67249 100644 --- a/lib/python/qmk/tests/test_qmk_keymap.py +++ b/lib/python/qmk/tests/test_qmk_keymap.py @@ -1,38 +1,38 @@ import qmk.keymap -def test_template_c_onekey_proton_c(): - templ = qmk.keymap.template_c('handwired/onekey/proton_c') +def test_template_c_pytest_basic(): + templ = qmk.keymap.template_c('handwired/pytest/basic') assert templ == qmk.keymap.DEFAULT_KEYMAP_C -def test_template_json_onekey_proton_c(): - templ = qmk.keymap.template_json('handwired/onekey/proton_c') - assert templ == {'keyboard': 'handwired/onekey/proton_c'} +def test_template_json_pytest_basic(): + templ = qmk.keymap.template_json('handwired/pytest/basic') + assert templ == {'keyboard': 'handwired/pytest/basic'} -def test_template_c_onekey_pytest(): - templ = qmk.keymap.template_c('handwired/onekey/pytest') +def test_template_c_pytest_has_template(): + templ = qmk.keymap.template_c('handwired/pytest/has_template') assert templ == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {__KEYMAP_GOES_HERE__};\n' -def test_template_json_onekey_pytest(): - templ = qmk.keymap.template_json('handwired/onekey/pytest') - assert templ == {'keyboard': 'handwired/onekey/pytest', "documentation": "This file is a keymap.json file for handwired/onekey/pytest"} +def test_template_json_pytest_has_template(): + templ = qmk.keymap.template_json('handwired/pytest/has_template') + assert templ == {'keyboard': 'handwired/pytest/has_template', "documentation": "This file is a keymap.json file for handwired/pytest/has_template"} -def test_generate_c_onekey_pytest(): - templ = qmk.keymap.generate_c('handwired/onekey/pytest', 'LAYOUT', [['KC_A']]) +def test_generate_c_pytest_has_template(): + templ = qmk.keymap.generate_c('handwired/pytest/has_template', 'LAYOUT', [['KC_A']]) assert templ == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT(KC_A)};\n' -def test_generate_json_onekey_pytest(): - templ = qmk.keymap.generate_json('default', 'handwired/onekey/pytest', 'LAYOUT', [['KC_A']]) - assert templ == {"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_A"]]} +def test_generate_json_pytest_has_template(): + templ = qmk.keymap.generate_json('default', 'handwired/pytest/has_template', 'LAYOUT', [['KC_A']]) + assert templ == {"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_A"]]} def test_parse_keymap_c(): - parsed_keymap_c = qmk.keymap.parse_keymap_c('keyboards/handwired/onekey/keymaps/default/keymap.c') + parsed_keymap_c = qmk.keymap.parse_keymap_c('keyboards/handwired/pytest/basic/keymaps/default/keymap.c') assert parsed_keymap_c == {'layers': [{'name': '0', 'layout': 'LAYOUT_ortho_1x1', 'keycodes': ['KC_A']}]} diff --git a/lib/python/qmk/tests/test_qmk_path.py b/lib/python/qmk/tests/test_qmk_path.py index 74db7b3e2699..4b5132f13d32 100644 --- a/lib/python/qmk/tests/test_qmk_path.py +++ b/lib/python/qmk/tests/test_qmk_path.py @@ -4,9 +4,9 @@ import qmk.path -def test_keymap_onekey_pytest(): - path = qmk.path.keymap('handwired/onekey/pytest') - assert path.samefile('keyboards/handwired/onekey/keymaps') +def test_keymap_pytest_basic(): + path = qmk.path.keymap('handwired/pytest/basic') + assert path.samefile('keyboards/handwired/pytest/basic/keymaps') def test_normpath(): From 375ef0b8c3e13b9d60de2cb79ef2a54215388792 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 4 Jan 2021 20:14:10 -0800 Subject: [PATCH 106/140] [Keyboard] Fix compiler errors for Kingly Key boards (#11100) --- .../ave/ortho/keymaps/default/keymap.c | 47 +++++++++---------- .../ave/staggered/keymaps/default/keymap.c | 47 +++++++++---------- 2 files changed, 45 insertions(+), 49 deletions(-) diff --git a/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c b/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c index 4e195d43bbc9..2074c7386096 100644 --- a/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c +++ b/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c @@ -1,19 +1,19 @@ - /* + /* Copyright 2020 Garret Gartner - - 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 . - */ + + 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 . + */ #include QMK_KEYBOARD_H @@ -159,7 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // KEYMAP TEMPLATE: -// +// // /* <_LAYER>: // * // * ┌────┐ ┌────┐ ┌────┬────┬────┐ @@ -185,16 +185,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Per-Key Tapping Term Definitions: -uint16_t get_tapping_term(uint16_t keycode) { - switch (keycode) { - case TD(TD_DBQT): - return 235; - default: - return TAPPING_TERM; - } +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_DBQT): + return 235; + default: + return TAPPING_TERM; + } } - // Encoder Customization: (*Order-of-Keycode Specific) void encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { diff --git a/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c b/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c index 16f469b53ab5..8607c8e4eeb7 100644 --- a/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c +++ b/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c @@ -1,19 +1,19 @@ - /* + /* Copyright 2020 Garret Gartner - - 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 . - */ + + 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 . + */ #include QMK_KEYBOARD_H @@ -184,19 +184,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ) - // Per-Key Tapping Term Definitions: -uint16_t get_tapping_term(uint16_t keycode) { - switch (keycode) { - case TD(TD_DBQT): - return 235; - default: - return TAPPING_TERM; - } +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_DBQT): + return 235; + default: + return TAPPING_TERM; + } } - - // Encoder Customization: (*Order-of-Keycode Specific) void encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { From 3d1e7bd36fee748b6bfaa89d4a14c3f4f841c0ca Mon Sep 17 00:00:00 2001 From: Drashna Jael're Date: Mon, 4 Jan 2021 18:48:13 -0800 Subject: [PATCH 107/140] [Keyboard] Disable music mode on OctoPad to reduce size --- keyboards/nightly_boards/octopad/config.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/keyboards/nightly_boards/octopad/config.h b/keyboards/nightly_boards/octopad/config.h index fc8956d1d3e9..1477ce93e25c 100644 --- a/keyboards/nightly_boards/octopad/config.h +++ b/keyboards/nightly_boards/octopad/config.h @@ -69,7 +69,7 @@ along with this program. If not, see . #define B5_AUDIO #define AUDIO_CLICKY - +#define NO_MUSIC_MODE /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 @@ -81,5 +81,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - From 34513b466599066e0f3d33cc66e72ac4f039b717 Mon Sep 17 00:00:00 2001 From: Zach White Date: Tue, 5 Jan 2021 10:43:06 -0800 Subject: [PATCH 108/140] enable LTO to bring firmware size down --- keyboards/nightly_boards/octopad/rules.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/nightly_boards/octopad/rules.mk b/keyboards/nightly_boards/octopad/rules.mk index 0e0230e1e530..9ac5c6d729c8 100644 --- a/keyboards/nightly_boards/octopad/rules.mk +++ b/keyboards/nightly_boards/octopad/rules.mk @@ -15,6 +15,7 @@ COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +LTO_ENABLE = yes # Link Time Optimization, makes the firmware smaller but some features may not work NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow @@ -23,4 +24,4 @@ AUDIO_ENABLE = yes # Audio output ENCODER_ENABLE = yes # Enable Rotary Encoders # Added encoder Action -SRC += encoder_action.c \ No newline at end of file +SRC += encoder_action.c From 3edfb93d5de5ce1a783cecb2d97b0ca0ff1e0aff Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Wed, 6 Jan 2021 07:27:10 +0900 Subject: [PATCH 109/140] Add build debug option to tmk_core/rules.mk (#11324) * Add DUMP_C_MACROS to tmk_core/rules.mk * update DUMP_C_MACROS * add VERBOSE_LD_CMD, VERBOSE_AS_CMD * add VERBOSE_C_CMD, VERBOSE_C_INCLUDE * update DUMP_C_MACROS, VERBOSE_C_INCLUDE, VERBOSE_C_CMD --- tmk_core/rules.mk | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index a77e55dd13a7..f5f758943ea1 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -150,6 +150,9 @@ ifeq ($(strip $(DEBUG_ENABLE)),yes) else ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100 endif +ifeq ($(VERBOSE_AS_CMD),yes) + ASFLAGS += -v +endif #---------------- Library Options ---------------- # Minimalistic printf version @@ -192,6 +195,9 @@ CREATE_MAP ?= yes ifeq ($(CREATE_MAP),yes) LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref endif +ifeq ($(VERBOSE_LD_CMD),yes) + LDFLAGS += -v +endif #LDFLAGS += -Wl,--relax LDFLAGS += $(EXTMEMOPTS) LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) @@ -327,8 +333,19 @@ $1_ASFLAGS = $$(ALL_ASFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) $1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN) @mkdir -p $$(@D) @$$(SILENT) || printf "$$(MSG_COMPILING) $$<" | $$(AWK_CMD) - $$(eval CMD := $$(CC) -c $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) + $$(eval CC_EXEC := $$(CC)) + ifneq ($$(VERBOSE_C_CMD),) + $$(if $$(filter $$(notdir $$(VERBOSE_C_CMD)),$$(notdir $$<)),$$(eval CC_EXEC += -v)) + endif + ifneq ($$(VERBOSE_C_INCLUDE),) + $$(if $$(filter $$(notdir $$(VERBOSE_C_INCLUDE)),$$(notdir $$<)),$$(eval CC_EXEC += -H)) + endif + $$(eval CMD := $$(CC_EXEC) -c $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) @$$(BUILD_CMD) + ifneq ($$(DUMP_C_MACROS),) + $$(eval CMD := $$(CC) -E -dM $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$<) + @$$(if $$(filter $$(notdir $$(DUMP_C_MACROS)),$$(notdir $$<)),$$(BUILD_CMD)) + endif # Compile: create object files from C++ source files. $1/%.o : %.cpp $1/%.d $1/cxxflags.txt $1/compiler.txt | $(BEGIN) From 6009e7d8b5e1c6c81381bcefcb7d4630cb5b43a1 Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Tue, 5 Jan 2021 23:51:10 +0100 Subject: [PATCH 110/140] [Keyboard] add dz96 (#11252) * add dz96 * Apply suggestions from code review * Update keyboards/dztech/dz96/keymaps/iso/keymap.c * add image to readme --- keyboards/dztech/dz96/config.h | 50 ++ keyboards/dztech/dz96/dz96.c | 17 + keyboards/dztech/dz96/dz96.h | 97 ++++ keyboards/dztech/dz96/info.json | 454 ++++++++++++++++++ .../dztech/dz96/keymaps/default/keymap.c | 39 ++ keyboards/dztech/dz96/keymaps/iso/keymap.c | 39 ++ keyboards/dztech/dz96/keymaps/via/keymap.c | 57 +++ keyboards/dztech/dz96/keymaps/via/rules.mk | 1 + keyboards/dztech/dz96/readme.md | 15 + keyboards/dztech/dz96/rules.mk | 22 + 10 files changed, 791 insertions(+) create mode 100644 keyboards/dztech/dz96/config.h create mode 100644 keyboards/dztech/dz96/dz96.c create mode 100644 keyboards/dztech/dz96/dz96.h create mode 100644 keyboards/dztech/dz96/info.json create mode 100644 keyboards/dztech/dz96/keymaps/default/keymap.c create mode 100644 keyboards/dztech/dz96/keymaps/iso/keymap.c create mode 100644 keyboards/dztech/dz96/keymaps/via/keymap.c create mode 100644 keyboards/dztech/dz96/keymaps/via/rules.mk create mode 100644 keyboards/dztech/dz96/readme.md create mode 100644 keyboards/dztech/dz96/rules.mk diff --git a/keyboards/dztech/dz96/config.h b/keyboards/dztech/dz96/config.h new file mode 100644 index 000000000000..351b39426372 --- /dev/null +++ b/keyboards/dztech/dz96/config.h @@ -0,0 +1,50 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x445A +#define PRODUCT_ID 0xDB96 +#define DEVICE_VER 0x0001 +#define MANUFACTURER DZTECH +#define PRODUCT DZ96 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 13 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B7, B3, E6, F0, D5, D4, D6, C7 } +#define MATRIX_COL_PINS { C6, F1, F4, F5, F6, F7, D7, B4, B5, D0, D1, D2, D3} +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define LED_NUM_LOCK_PIN B0 +#define LED_CAPS_LOCK_PIN B2 +#define LED_SCROLL_LOCK_PIN B1 +#define LED_PIN_ON_STATE 0 + +/* number of backlight levels */ +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_LEVELS 5 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 diff --git a/keyboards/dztech/dz96/dz96.c b/keyboards/dztech/dz96/dz96.c new file mode 100644 index 000000000000..c83c0a2c4daf --- /dev/null +++ b/keyboards/dztech/dz96/dz96.c @@ -0,0 +1,17 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#include "dz96.h" diff --git a/keyboards/dztech/dz96/dz96.h b/keyboards/dztech/dz96/dz96.h new file mode 100644 index 000000000000..bf84dfc3aa30 --- /dev/null +++ b/keyboards/dztech/dz96/dz96.h @@ -0,0 +1,97 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + + +#pragma once + +#include "quantum.h" + +//Arrow keys and 1.75u right shift +#define LAYOUT_default( \ + K00, K01, K02, K03, K04, K60, K61, K62, K63, K05, K06, K07, K08, K72, K09, K0A, K0B, K0C, K7C, \ + K10, K11, K12, K13, K14, K64, K65, K66, K67, K15, K16, K17, K18, K71, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K68, K69, K6A, K6B, K25, K26, K27, K28, K73, K29, K2A, K2B, K2C, \ + K30, K31, K32, K33, K34, K6C, K75, K76, K77, K35, K36, K37, K38, K39, K3A, K3B, \ + K40, K42, K43, K44, K78, K79, K7A, K7B, K45, K46, K47, K48, K74, K49, K4A, K4B, K4C, \ + K50, K51, K52, K59, K55, K56, K57, K58, K53, K54, K5A, K5B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, KC_NO }, \ + { K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, K6C }, \ + { KC_NO, K71, K72, K73, K74, K75, K76, K77, K78, K79, K7A, K7B, K7C } \ +} + +// Split backspace 1.5u right mods +#define LAYOUT_split_bs_joined_right( \ + K00, K01, K02, K03, K04, K60, K61, K62, K63, K05, K06, K07, K08, K72, K09, K0A, K0B, K0C, K7C, \ + K10, K11, K12, K13, K14, K64, K65, K66, K67, K15, K16, K17, K18, K70, K71, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K68, K69, K6A, K6B, K25, K26, K27, K28, K73, K29, K2A, K2B, K2C, \ + K30, K31, K32, K33, K34, K6C, K75, K76, K77, K35, K36, K37, K38, K39, K3A, K3B, \ + K40, K42, K43, K44, K78, K79, K7A, K7B, K45, K46, K47, K48, K74, K49, K4A, K4B, K4C, \ + K50, K51, K52, K59, K55, K57, K58, K53, K54, K5A, K5B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C }, \ + { K50, K51, K52, K53, K54, K55, KC_NO, K57, K58, K59, K5A, K5B, KC_NO }, \ + { K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, K6C }, \ + { K70, K71, K72, K73, K74, K75, K76, K77, K78, K79, K7A, K7B, K7C }, \ +} + +// Split numpad (enter, 0), split shifts (right, left), split backspace +// This layout contains every possible keycode placement +#define LAYOUT_split_shift_and_bs( \ + K00, K01, K02, K03, K04, K60, K61, K62, K63, K05, K06, K07, K08, K72, K09, K0A, K0B, K0C, K7C, \ + K10, K11, K12, K13, K14, K64, K65, K66, K67, K15, K16, K17, K18, K70, K71, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K68, K69, K6A, K6B, K25, K26, K27, K28, K73, K29, K2A, K2B, K2C, \ + K30, K31, K32, K33, K34, K6C, K75, K76, K77, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K78, K79, K7A, K7B, K45, K46, K47, K48, K74, K49, K4A, K4B, K4C, \ + K50, K51, K52, K59, K55, K56, K57, K58, K53, K54, K5A, K5B, K5C \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C }, \ + { K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, K6C }, \ + { K70, K71, K72, K73, K74, K75, K76, K77, K78, K79, K7A, K7B, K7C }, \ +} + +// ISO Layout +#define LAYOUT_iso( \ + K00, K01, K02, K03, K04, K60, K61, K62, K63, K05, K06, K07, K08, K72, K09, K0A, K0B, K0C, K7C, \ + K10, K11, K12, K13, K14, K64, K65, K66, K67, K15, K16, K17, K18, K71, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K68, K69, K6A, K6B, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K31, K32, K33, K34, K6C, K75, K76, K77, K35, K36, K37, K73, K38, K39, K3A, K3B, \ + K40, K41, K42, K43, K44, K78, K79, K7A, K7B, K45, K46, K47, K48, K74, K49, K4A, K4B, K4C, \ + K50, K51, K52, K59, K55, K56, K57, K58, K53, K54, K5A, K5B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, KC_NO }, \ + { K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, K6C }, \ + { KC_NO, K71, K72, K73, K74, K75, K76, K77, K78, K79, K7A, K7B, K7C } \ +} diff --git a/keyboards/dztech/dz96/info.json b/keyboards/dztech/dz96/info.json new file mode 100644 index 000000000000..950d179d9b97 --- /dev/null +++ b/keyboards/dztech/dz96/info.json @@ -0,0 +1,454 @@ +{ + "keyboard_name": "DZ96", + "keyboard_folder": "dztech/dz96", + "url": "", + "maintainer": "kb-elmo", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT_default": { + "layout": [ + {"label":"ESC", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PRINT SCREEN", "x":13, "y":0}, + {"label":"HOME", "x":14, "y":0}, + {"label":"END", "x":15, "y":0}, + {"label":"PAGE UP", "x":16, "y":0}, + {"label":"PAGE DOWN", "x":17, "y":0}, + {"label":"DELETE", "x":18, "y":0}, + + {"label":"GRAVE", "x":0, "y":1}, + {"label":"1", "x":1, "y":1}, + {"label":"2", "x":2, "y":1}, + {"label":"3", "x":3, "y":1}, + {"label":"4", "x":4, "y":1}, + {"label":"5", "x":5, "y":1}, + {"label":"6", "x":6, "y":1}, + {"label":"7", "x":7, "y":1}, + {"label":"8", "x":8, "y":1}, + {"label":"9", "x":9, "y":1}, + {"label":"0", "x":10, "y":1}, + {"label":"MINUS", "x":11, "y":1}, + {"label":"EQUAL", "x":12, "y":1}, + {"label":"BACKSPACE", "x":13, "y":1, "w":2}, + {"label":"NUM LOCK", "x":15, "y":1}, + {"label":"KEYPAD /", "x":16, "y":1}, + {"label":"KEYPAD *", "x":17, "y":1}, + {"label":"KEYPAD -", "x":18, "y":1}, + + {"label":"TAB", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"LBRACKET", "x":11.5, "y":2}, + {"label":"RBRACKET", "x":12.5, "y":2}, + {"label":"BACKSLASH", "x":13.5, "y":2, "w":1.5}, + {"label":"KEYPAD 7", "x":15, "y":2}, + {"label":"KEYPAD 8", "x":16, "y":2}, + {"label":"KEYPAD 9", "x":17, "y":2}, + {"label":"KEYPAD +", "x":18, "y":2, "h":2}, + + {"label":"CAPS LOCK", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":"SEMICOLON", "x":10.75, "y":3}, + {"label":"QUOTE", "x":11.75, "y":3}, + {"label":"ENTER", "x":12.75, "y":3, "w":2.25}, + {"label":"KEYPAD 4", "x":15, "y":3}, + {"label":"KEYPAD 5", "x":16, "y":3}, + {"label":"KEYPAD 6", "x":17, "y":3}, + + {"label":"LSHIFT", "x":0, "y":4, "w":2.25}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"COMMA", "x":9.25, "y":4}, + {"label":"PERIOD", "x":10.25, "y":4}, + {"label":"SLASH", "x":11.25, "y":4}, + {"label":"RSHIFT", "x":12.25, "y":4, "w":1.75}, + {"label":"UP", "x":14, "y":4}, + {"label":"KEYPAD 1", "x":15, "y":4}, + {"label":"KEYPAD 2", "x":16, "y":4}, + {"label":"KEYPAD 3", "x":17, "y":4}, + {"label":"KEYPAD ENTER", "x":18, "y":4, "h":2}, + + {"label":"LCTRL", "x":0, "y":5, "w":1.25}, + {"label":"LGUI", "x":1.25, "y":5, "w":1.25}, + {"label":"LALT", "x":2.5, "y":5, "w":1.25}, + {"label":"SPACE", "x":3.75, "y":5, "w":6.25}, + {"label":"RALT", "x":10, "y":5}, + {"label":"RCTRL", "x":11, "y":5}, + {"label":"FN", "x":12, "y":5}, + {"label":"LEFT", "x":13, "y":5}, + {"label":"DOWN", "x":14, "y":5}, + {"label":"RIGHT", "x":15, "y":5}, + {"label":"KEYPAD 0", "x":16, "y":5}, + {"label":"KEYPAD .", "x":17, "y":5} + ] + }, + + "LAYOUT_split_bs_joined_right": { + "layout": [ + {"label": "K00", "x": 0, "y": 0}, + {"label": "K01", "x": 1, "y": 0}, + {"label": "K02", "x": 2, "y": 0}, + {"label": "K03", "x": 3, "y": 0}, + {"label": "K04", "x": 4, "y": 0}, + {"label": "K60", "x": 5, "y": 0}, + {"label": "K61", "x": 6, "y": 0}, + {"label": "K62", "x": 7, "y": 0}, + {"label": "K63", "x": 8, "y": 0}, + {"label": "K05", "x": 9, "y": 0}, + {"label": "K06", "x": 10, "y": 0}, + {"label": "K07", "x": 11, "y": 0}, + {"label": "K08", "x": 12, "y": 0}, + {"label": "K72", "x": 13, "y": 0}, + {"label": "K09", "x": 14, "y": 0}, + {"label": "K0A", "x": 15, "y": 0}, + {"label": "K0B", "x": 16, "y": 0}, + {"label": "K0C", "x": 17, "y": 0}, + {"label": "K7C", "x": 18, "y": 0}, + + {"label": "K10", "x": 0, "y": 1}, + {"label": "K11", "x": 1, "y": 1}, + {"label": "K12", "x": 2, "y": 1}, + {"label": "K13", "x": 3, "y": 1}, + {"label": "K14", "x": 4, "y": 1}, + {"label": "K64", "x": 5, "y": 1}, + {"label": "K65", "x": 6, "y": 1}, + {"label": "K66", "x": 7, "y": 1}, + {"label": "K67", "x": 8, "y": 1}, + {"label": "K15", "x": 9, "y": 1}, + {"label": "K16", "x": 10, "y": 1}, + {"label": "K17", "x": 11, "y": 1}, + {"label": "K18", "x": 12, "y": 1}, + {"label": "K70", "x": 13, "y": 1}, + {"label": "K71", "x": 14, "y": 1}, + {"label": "K19", "x": 15, "y": 1}, + {"label": "K1A", "x": 16, "y": 1}, + {"label": "K1B", "x": 17, "y": 1}, + {"label": "K1C", "x": 18, "y": 1}, + + {"label": "K20", "x": 0, "y": 2, "w": 1.5}, + {"label": "K21", "x": 1.5, "y": 2}, + {"label": "K22", "x": 2.5, "y": 2}, + {"label": "K23", "x": 3.5, "y": 2}, + {"label": "K24", "x": 4.5, "y": 2}, + {"label": "K68", "x": 5.5, "y": 2}, + {"label": "K69", "x": 6.5, "y": 2}, + {"label": "K6A", "x": 7.5, "y": 2}, + {"label": "K6B", "x": 8.5, "y": 2}, + {"label": "K25", "x": 9.5, "y": 2}, + {"label": "K26", "x": 10.5, "y": 2}, + {"label": "K27", "x": 11.5, "y": 2}, + {"label": "K28", "x": 12.5, "y": 2}, + {"label": "K73", "x": 13.5, "y": 2, "w": 1.5}, + {"label": "K29", "x": 15, "y": 2}, + {"label": "K2A", "x": 16, "y": 2}, + {"label": "K2B", "x": 17, "y": 2}, + {"label": "K2C", "x": 18, "y": 2, "h": 2}, + + {"label": "K30", "x": 0, "y": 3, "w": 1.75}, + {"label": "K31", "x": 1.75, "y": 3}, + {"label": "K32", "x": 2.75, "y": 3}, + {"label": "K33", "x": 3.75, "y": 3}, + {"label": "K34", "x": 4.75, "y": 3}, + {"label": "K6C", "x": 5.75, "y": 3}, + {"label": "K75", "x": 6.75, "y": 3}, + {"label": "K76", "x": 7.75, "y": 3}, + {"label": "K77", "x": 8.75, "y": 3}, + {"label": "K35", "x": 9.75, "y": 3}, + {"label": "K36", "x": 10.75, "y": 3}, + {"label": "K37", "x": 11.75, "y": 3}, + {"label": "K38", "x": 12.75, "y": 3, "w": 2.25}, + {"label": "K39", "x": 15, "y": 3}, + {"label": "K3A", "x": 16, "y": 3}, + {"label": "K3B", "x": 17, "y": 3}, + + {"label": "K40", "x": 0, "y": 4, "w": 2.25}, + {"label": "K42", "x": 2.25, "y": 4}, + {"label": "K43", "x": 3.25, "y": 4}, + {"label": "K44", "x": 4.25, "y": 4}, + {"label": "K78", "x": 5.25, "y": 4}, + {"label": "K79", "x": 6.25, "y": 4}, + {"label": "K7A", "x": 7.25, "y": 4}, + {"label": "K7B", "x": 8.25, "y": 4}, + {"label": "K45", "x": 9.25, "y": 4}, + {"label": "K46", "x": 10.25, "y": 4}, + {"label": "K47", "x": 11.25, "y": 4}, + {"label": "K48", "x": 12.25, "y": 4, "w": 1.75}, + {"label": "K74", "x": 14, "y": 4}, + {"label": "K49", "x": 15, "y": 4}, + {"label": "K4A", "x": 16, "y": 4}, + {"label": "K4B", "x": 17, "y": 4}, + {"label": "K4C", "x": 18, "y": 4, "h": 2}, + + {"label": "K50", "x": 0, "y": 5, "w": 1.25}, + {"label": "K51", "x": 1.25, "y": 5, "w": 1.25}, + {"label": "K52", "x": 2.5, "y": 5, "w": 1.25}, + {"label": "K59", "x": 3.75, "y": 5, "w": 6.25}, + {"label": "K55", "x": 10, "y": 5, "w": 1.5}, + {"label": "K57", "x": 11.5, "y": 5, "w": 1.5}, + {"label": "K58", "x": 13, "y": 5}, + {"label": "K53", "x": 14, "y": 5}, + {"label": "K54", "x": 15, "y": 5}, + {"label": "K5A", "x": 16, "y": 5}, + {"label": "K5B", "x": 17, "y": 5} + ] + }, + + "LAYOUT_split_shift_and_bs": { + "layout": [ + {"label":"ESC", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PRINT SCREEN", "x":13, "y":0}, + {"label":"HOME", "x":14, "y":0}, + {"label":"END", "x":15, "y":0}, + {"label":"PAGE UP", "x":16, "y":0}, + {"label":"PAGE DOWN", "x":17, "y":0}, + {"label":"DELETE", "x":18, "y":0}, + + {"label":"GRAVE", "x":0, "y":1}, + {"label":"1", "x":1, "y":1}, + {"label":"2", "x":2, "y":1}, + {"label":"3", "x":3, "y":1}, + {"label":"4", "x":4, "y":1}, + {"label":"5", "x":5, "y":1}, + {"label":"6", "x":6, "y":1}, + {"label":"7", "x":7, "y":1}, + {"label":"8", "x":8, "y":1}, + {"label":"9", "x":9, "y":1}, + {"label":"0", "x":10, "y":1}, + {"label":"MINUS", "x":11, "y":1}, + {"label":"EQUAL", "x":12, "y":1}, + {"label":"BACKSPACE", "x":13, "y":1}, + {"label":"BACKSPACE", "x":14, "y":1}, + {"label":"NUM LOCK", "x":15, "y":1}, + {"label":"KEYPAD /", "x":16, "y":1}, + {"label":"KEYPAD *", "x":17, "y":1}, + {"label":"KEYPAD -", "x":18, "y":1}, + + {"label":"TAB", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"LBRACKET", "x":11.5, "y":2}, + {"label":"RBRACKET", "x":12.5, "y":2}, + {"label":"BACKSLASH", "x":13.5, "y":2, "w":1.5}, + {"label":"KEYPAD 7", "x":15, "y":2}, + {"label":"KEYPAD 8", "x":16, "y":2}, + {"label":"KEYPAD 9", "x":17, "y":2}, + {"label":"KEYPAD +", "x":18, "y":2}, + + {"label":"CAPS LOCK", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":"SEMICOLON", "x":10.75, "y":3}, + {"label":"QUOTE", "x":11.75, "y":3}, + {"label":"ENTER", "x":12.75, "y":3, "w":2.25}, + {"label":"KEYPAD 4", "x":15, "y":3}, + {"label":"KEYPAD 5", "x":16, "y":3}, + {"label":"KEYPAD 6", "x":17, "y":3}, + {"label":"KEYPAD +", "x":18, "y":3}, + + {"label":"LSHIFT", "x":0, "y":4, "w":1.25}, + {"label":"ISO BACKSLASH", "x":1.25, "y":4}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"COMMA", "x":9.25, "y":4}, + {"label":"PERIOD", "x":10.25, "y":4}, + {"label":"SLASH", "x":11.25, "y":4}, + {"label":"RSHIFT", "x":12.25, "y":4, "w":1.75}, + {"label":"UP", "x":14, "y":4}, + {"label":"KEYPAD 1", "x":15, "y":4}, + {"label":"KEYPAD 2", "x":16, "y":4}, + {"label":"KEYPAD 3", "x":17, "y":4}, + {"label":"KEYPAD ENTER", "x":18, "y":4}, + + {"label":"LCTRL", "x":0, "y":5, "w":1.25}, + {"label":"LGUI", "x":1.25, "y":5, "w":1.25}, + {"label":"LALT", "x":2.5, "y":5, "w":1.25}, + {"label":"SPACE", "x":3.75, "y":5, "w":6.25}, + {"label":"RALT", "x":10, "y":5}, + {"label":"MENU", "x":11, "y":5}, + {"label":"RCTRL", "x":12, "y":5}, + {"label":"LEFT", "x":13, "y":5}, + {"label":"DOWN", "x":14, "y":5}, + {"label":"RIGHT", "x":15, "y":5}, + {"label":"KEYPAD 0", "x":16, "y":5}, + {"label":"KEYPAD .", "x":17, "y":5}, + {"label":"KEYPAD ENTER", "x":18, "y":5} + ] + }, + + "LAYOUT_iso": { + "layout": [ + {"label":"ESC", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PRINT SCREEN", "x":13, "y":0}, + {"label":"HOME", "x":14, "y":0}, + {"label":"END", "x":15, "y":0}, + {"label":"PAGE UP", "x":16, "y":0}, + {"label":"PAGE DOWN", "x":17, "y":0}, + {"label":"DELETE", "x":18, "y":0}, + + {"label":"GRAVE", "x":0, "y":1}, + {"label":"1", "x":1, "y":1}, + {"label":"2", "x":2, "y":1}, + {"label":"3", "x":3, "y":1}, + {"label":"4", "x":4, "y":1}, + {"label":"5", "x":5, "y":1}, + {"label":"6", "x":6, "y":1}, + {"label":"7", "x":7, "y":1}, + {"label":"8", "x":8, "y":1}, + {"label":"9", "x":9, "y":1}, + {"label":"0", "x":10, "y":1}, + {"label":"MINUS", "x":11, "y":1}, + {"label":"EQUAL", "x":12, "y":1}, + {"label":"BACKSPACE", "x":13, "y":1, "w":2}, + {"label":"NUM LOCK", "x":15, "y":1}, + {"label":"KEYPAD /", "x":16, "y":1}, + {"label":"KEYPAD *", "x":17, "y":1}, + {"label":"KEYPAD -", "x":18, "y":1}, + + {"label":"TAB", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"LBRACKET", "x":11.5, "y":2}, + {"label":"RBRACKET", "x":12.5, "y":2}, + {"label":"KEYPAD 7", "x":15, "y":2}, + {"label":"KEYPAD 8", "x":16, "y":2}, + {"label":"KEYPAD 9", "x":17, "y":2}, + {"label":"KEYPAD +", "x":18, "y":2, "h":2}, + + {"label":"CAPS LOCK", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":"SEMICOLON", "x":10.75, "y":3}, + {"label":"QUOTE", "x":11.75, "y":3}, + {"label":"ISO HASH", "x":12.75, "y":3}, + {"label":"ENTER", "x":13.75, "y":2, "w":1.25, "h":2}, + {"label":"KEYPAD 4", "x":15, "y":3}, + {"label":"KEYPAD 5", "x":16, "y":3}, + {"label":"KEYPAD 6", "x":17, "y":3}, + + {"label":"LSHIFT", "x":0, "y":4, "w":1.25}, + {"label":"ISO BACKSLASH", "x":1.25, "y":4}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"COMMA", "x":9.25, "y":4}, + {"label":"PERIOD", "x":10.25, "y":4}, + {"label":"SLASH", "x":11.25, "y":4}, + {"label":"RSHIFT", "x":12.25, "y":4, "w":1.75}, + {"label":"UP", "x":14, "y":4}, + {"label":"KEYPAD 1", "x":15, "y":4}, + {"label":"KEYPAD 2", "x":16, "y":4}, + {"label":"KEYPAD 3", "x":17, "y":4}, + {"label":"KEYPAD ENTER", "x":18, "y":4, "h":2}, + + {"label":"LCTRL", "x":0, "y":5, "w":1.25}, + {"label":"LGUI", "x":1.25, "y":5, "w":1.25}, + {"label":"LALT", "x":2.5, "y":5, "w":1.25}, + {"label":"SPACE", "x":3.75, "y":5, "w":6.25}, + {"label":"RALT", "x":10, "y":5}, + {"label":"MENU", "x":11, "y":5}, + {"label":"RCTRL", "x":12, "y":5}, + {"label":"LEFT", "x":13, "y":5}, + {"label":"DOWN", "x":14, "y":5}, + {"label":"RIGHT", "x":15, "y":5}, + {"label":"KEYPAD 0", "x":16, "y":5}, + {"label":"KEYPAD .", "x":17, "y":5} + ] + } + } +} diff --git a/keyboards/dztech/dz96/keymaps/default/keymap.c b/keyboards/dztech/dz96/keymaps/default/keymap.c new file mode 100644 index 000000000000..17d0c8a36cc9 --- /dev/null +++ b/keyboards/dztech/dz96/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_default( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, KC_SLCK, KC_PAUS, KC_PGUP, KC_PGDN, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + [1] = LAYOUT_default( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_HOME, KC_END, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, + _______, BL_TOGG, BL_INC, BL_DEC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/dztech/dz96/keymaps/iso/keymap.c b/keyboards/dztech/dz96/keymaps/iso/keymap.c new file mode 100644 index 000000000000..00c04a6a2c45 --- /dev/null +++ b/keyboards/dztech/dz96/keymaps/iso/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_iso( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + [1] = LAYOUT_iso( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_HOME, KC_END, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, + _______, BL_TOGG, BL_INC, BL_DEC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/dztech/dz96/keymaps/via/keymap.c b/keyboards/dztech/dz96/keymaps/via/keymap.c new file mode 100644 index 000000000000..698838a53d77 --- /dev/null +++ b/keyboards/dztech/dz96/keymaps/via/keymap.c @@ -0,0 +1,57 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_default( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, KC_SLCK, KC_PAUS, KC_PGUP, KC_PGDN, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + [1] = LAYOUT_default( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_HOME, KC_END, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, + _______, BL_TOGG, BL_INC, BL_DEC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/dztech/dz96/keymaps/via/rules.mk b/keyboards/dztech/dz96/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/dztech/dz96/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/dztech/dz96/readme.md b/keyboards/dztech/dz96/readme.md new file mode 100644 index 000000000000..8a52752b039d --- /dev/null +++ b/keyboards/dztech/dz96/readme.md @@ -0,0 +1,15 @@ +# DZ96 + +![Tofu96](https://i.imgur.com/MT2L6IQl.jpg) + +A 96% PCB made by KBDFans. Sold together with the Tofu96 DIY kit. + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: DZ96 +* Hardware Availability: [KBDFans](https://kbdfans.com/products/tofu96-mechanical-keyboard-diy-kit) + +Make example for this keyboard (after setting up your build environment): + + make dztech/dz96:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/dztech/dz96/rules.mk b/keyboards/dztech/dz96/rules.mk new file mode 100644 index 000000000000..6e53d4cab232 --- /dev/null +++ b/keyboards/dztech/dz96/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From dd356f90b09047d921504e217d3b6f01689c7ca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20A=2E=20Volpato?= Date: Wed, 6 Jan 2021 01:22:45 -0300 Subject: [PATCH 111/140] [Keyboard] Evolv75 (#10947) * Initial support for Evolv75 * Fix encoder directional and layer support * Invert knob directions * Remove info.json and updated README * Update keyboards/evolv/evolv.c Update encoder_update call Co-authored-by: Drashna Jaelre * Update keyboards/evolv/config.h Remove description field from USB descriptors Co-authored-by: Drashna Jaelre * Remove KC_NO define from default keymap * Update config.h New USB descriptor ID numbers * Update keyboards/evolv/rules.mk Remove words from bluetooth and audio enable comments Co-authored-by: Ryan * Update keyboards/evolv/rules.mk Enable full bootmagic Co-authored-by: Ryan * Add info.json for QMK Configurator * Edit copyright info, add VIA initial support * Fix KC_NO seven underscores issue in keymap definitions * Update info.json * Update info.json * ANSI and ISO layouts, info.json file with both * Reorganized layouts to match info.json order Co-authored-by: Gondolindrim Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/evolv/chconf.h | 714 +++++++++++++++++++++++ keyboards/evolv/config.h | 79 +++ keyboards/evolv/evolv.c | 28 + keyboards/evolv/evolv.h | 54 ++ keyboards/evolv/halconf.h | 525 +++++++++++++++++ keyboards/evolv/info.json | 190 ++++++ keyboards/evolv/keymaps/default/keymap.c | 49 ++ keyboards/evolv/keymaps/iso/keymap.c | 49 ++ keyboards/evolv/keymaps/via/keymap.c | 49 ++ keyboards/evolv/keymaps/via/rules.mk | 1 + keyboards/evolv/mcuconf.h | 176 ++++++ keyboards/evolv/readme.md | 15 + keyboards/evolv/rules.mk | 23 + 13 files changed, 1952 insertions(+) create mode 100644 keyboards/evolv/chconf.h create mode 100644 keyboards/evolv/config.h create mode 100644 keyboards/evolv/evolv.c create mode 100644 keyboards/evolv/evolv.h create mode 100644 keyboards/evolv/halconf.h create mode 100644 keyboards/evolv/info.json create mode 100755 keyboards/evolv/keymaps/default/keymap.c create mode 100755 keyboards/evolv/keymaps/iso/keymap.c create mode 100755 keyboards/evolv/keymaps/via/keymap.c create mode 100644 keyboards/evolv/keymaps/via/rules.mk create mode 100644 keyboards/evolv/mcuconf.h create mode 100644 keyboards/evolv/readme.md create mode 100644 keyboards/evolv/rules.mk diff --git a/keyboards/evolv/chconf.h b/keyboards/evolv/chconf.h new file mode 100644 index 000000000000..4640ff5332b0 --- /dev/null +++ b/keyboards/evolv/chconf.h @@ -0,0 +1,714 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file rt/templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ +#define _CHIBIOS_RT_CONF_VER_6_0_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_ST_RESOLUTION) +#define CH_CFG_ST_RESOLUTION 32 +#endif + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_CFG_ST_FREQUENCY) +#define CH_CFG_ST_FREQUENCY 10000 +#endif + +/** + * @brief Time intervals data size. + * @note Allowed values are 16, 32 or 64 bits. + */ +#if !defined(CH_CFG_INTERVALS_SIZE) +#define CH_CFG_INTERVALS_SIZE 32 +#endif + +/** + * @brief Time types data size. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_TIME_TYPES_SIZE) +#define CH_CFG_TIME_TYPES_SIZE 32 +#endif + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#if !defined(CH_CFG_ST_TIMEDELTA) +#define CH_CFG_ST_TIMEDELTA 2 +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#if !defined(CH_CFG_TIME_QUANTUM) +#define CH_CFG_TIME_QUANTUM 0 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#if !defined(CH_CFG_MEMCORE_SIZE) +#define CH_CFG_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#if !defined(CH_CFG_NO_IDLE_THREAD) +#define CH_CFG_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) +#define CH_CFG_OPTIMIZE_SPEED FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_TM) +#define CH_CFG_USE_TM FALSE +#endif + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_REGISTRY) +#define CH_CFG_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_WAITEXIT) +#define CH_CFG_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_SEMAPHORES) +#define CH_CFG_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MUTEXES) +#define CH_CFG_USE_MUTEXES TRUE +#endif + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_CONDVARS) +#define CH_CFG_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_EVENTS) +#define CH_CFG_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MESSAGES) +#define CH_CFG_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_MAILBOXES) +#define CH_CFG_USE_MAILBOXES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCORE) +#define CH_CFG_USE_MEMCORE FALSE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_CFG_USE_HEAP) +#define CH_CFG_USE_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMPOOLS) +#define CH_CFG_USE_MEMPOOLS FALSE +#endif + +/** + * @brief Objects FIFOs APIs. + * @details If enabled then the objects FIFOs APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_OBJ_FIFOS) +#define CH_CFG_USE_OBJ_FIFOS FALSE +#endif + +/** + * @brief Pipes APIs. + * @details If enabled then the pipes APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_PIPES) +#define CH_CFG_USE_PIPES FALSE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#if !defined(CH_CFG_USE_DYNAMIC) +#define CH_CFG_USE_DYNAMIC FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Objects factory options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Objects Factory APIs. + * @details If enabled then the objects factory APIs are included in the + * kernel. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_CFG_USE_FACTORY) +#define CH_CFG_USE_FACTORY FALSE +#endif + +/** + * @brief Maximum length for object names. + * @details If the specified length is zero then the name is stored by + * pointer but this could have unintended side effects. + */ +#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) +#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 +#endif + +/** + * @brief Enables the registry of generic objects. + */ +#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) +#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE +#endif + +/** + * @brief Enables factory for generic buffers. + */ +#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE +#endif + +/** + * @brief Enables factory for semaphores. + */ +#if !defined(CH_CFG_FACTORY_SEMAPHORES) +#define CH_CFG_FACTORY_SEMAPHORES FALSE +#endif + +/** + * @brief Enables factory for mailboxes. + */ +#if !defined(CH_CFG_FACTORY_MAILBOXES) +#define CH_CFG_FACTORY_MAILBOXES FALSE +#endif + +/** + * @brief Enables factory for objects FIFOs. + */ +#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +#define CH_CFG_FACTORY_OBJ_FIFOS FALSE +#endif + +/** + * @brief Enables factory for Pipes. + */ +#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) +#define CH_CFG_FACTORY_PIPES FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_STATISTICS) +#define CH_DBG_STATISTICS FALSE +#endif + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_MASK) +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED +#endif + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) +#define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) +#define CH_DBG_ENABLE_STACK_CHECK FALSE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) +#define CH_DBG_FILL_THREADS FALSE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#if !defined(CH_DBG_THREADS_PROFILING) +#define CH_DBG_THREADS_PROFILING FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System structure extension. + * @details User fields added to the end of the @p ch_system_t structure. + */ +#define CH_CFG_SYSTEM_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief System initialization hook. + * @details User initialization code added to the @p chSysInit() function + * just before interrupts are enabled globally. + */ +#define CH_CFG_SYSTEM_INIT_HOOK() { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p _thread_init() function. + * + * @note It is invoked from within @p _thread_init() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/evolv/config.h b/keyboards/evolv/config.h new file mode 100644 index 000000000000..7b4acbcc940b --- /dev/null +++ b/keyboards/evolv/config.h @@ -0,0 +1,79 @@ +/* + Copyright 2020 Álvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7865 // NA for NathanAlpha +#define PRODUCT_ID 0x0E75 // For Evolv75 +#define DEVICE_VER 0x0001 // Revision pre-Alpha +#define MANUFACTURER NathanAlpha +#define PRODUCT Evolv75 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +#define MATRIX_COL_PINS { A6, A5, A4, A3, A2, A1, A0, C14, F0, C15, B9, B8, B7, B6, B5, B4} +#define MATRIX_ROW_PINS { B10, B11, A7, B0, B1, B2} +#define DIODE_DIRECTION COL2ROW + +//#define BACKLIGHT_PIN A6 +//#define BACKLIGHT_PWM_DRIVER PWMD3 +//#define BACKLIGHT_PWM_CHANNEL 1 +//#define BACKLIGHT_PAL_MODE 1 +//#define BACKLIGHT_LEVELS 6 +//#define BACKLIGHT_BREATHING +//#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGB_DI_PIN B15 +#define RGBLED_NUM 16 +#define RGBLIGT_LIMIT_VAL 200 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_ANIMATIONS + +#define ENCODERS_PAD_A { B3 } +#define ENCODERS_PAD_B { A15 } + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/evolv/evolv.c b/keyboards/evolv/evolv.c new file mode 100644 index 000000000000..276fac26fdc2 --- /dev/null +++ b/keyboards/evolv/evolv.c @@ -0,0 +1,28 @@ +/* + Copyright 2020 Álvaro "Gondolindrim" Volpato + +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 . +*/ + +#include "evolv.h" + +__attribute__((weak)) void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } +} diff --git a/keyboards/evolv/evolv.h b/keyboards/evolv/evolv.h new file mode 100644 index 000000000000..22eb2da4da3c --- /dev/null +++ b/keyboards/evolv/evolv.h @@ -0,0 +1,54 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +#define ___ KC_NO + +#include "quantum.h" + +#define LAYOUT_evolv_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K3D, K3F , \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K1F, K0F , K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K4F , \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F}, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F}, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F}, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F}, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E, ___} \ +} + +#define LAYOUT_evolv_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K3D, K3F , \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K1F, K0F , K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K4F , \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E \ +){ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F}, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F}, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F}, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F}, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E, ___} \ +} diff --git a/keyboards/evolv/halconf.h b/keyboards/evolv/halconf.h new file mode 100644 index 000000000000..df71dd64c429 --- /dev/null +++ b/keyboards/evolv/halconf.h @@ -0,0 +1,525 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef HALCONF_H +#define HALCONF_H + +#define _CHIBIOS_HAL_CONF_ +#define _CHIBIOS_HAL_CONF_VER_7_0_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the cryptographic subsystem. + */ +#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) +#define HAL_USE_CRY FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SIO subsystem. + */ +#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) +#define HAL_USE_SIO FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI TRUE +#endif + +/** + * @brief Enables the TRNG subsystem. + */ +#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) +#define HAL_USE_TRNG FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/** + * @brief Enables the WSPI subsystem. + */ +#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) +#define HAL_USE_WSPI FALSE +#endif + +/*===========================================================================*/ +/* PAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) +#define PAL_USE_CALLBACKS FALSE +#endif + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) +#define PAL_USE_WAIT FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/** + * @brief Enforces the driver to use direct callbacks rather than OSAL events. + */ +#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) +#define CAN_ENFORCE_USE_CALLBACKS FALSE +#endif + +/*===========================================================================*/ +/* CRY driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the SW fall-back of the cryptographic driver. + * @details When enabled, this option, activates a fall-back software + * implementation for algorithms not supported by the underlying + * hardware. + * @note Fall-back implementations may not be present for all algorithms. + */ +#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_USE_FALLBACK FALSE +#endif + +/** + * @brief Makes the driver forcibly use the fall-back implementations. + */ +#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_ENFORCE_FALLBACK FALSE +#endif + +/*===========================================================================*/ +/* DAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) +#define DAC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define DAC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the zero-copy API. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/** + * @brief OCR initialization constant for V20 cards. + */ +#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) +#define SDC_INIT_OCR_V20 0x50FF8000U +#endif + +/** + * @brief OCR initialization constant for non-V20 cards. + */ +#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) +#define SDC_INIT_OCR 0x80100000U +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 16 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 256 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 1 +#endif + +/** + * @brief Serial over USB number of buffers. + * @note The default is 2 buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_NUMBER 2 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables circular transfers APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) +#define SPI_USE_CIRCULAR FALSE +#endif + + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/** + * @brief Handling method for SPI CS line. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + +/*===========================================================================*/ +/* UART driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) +#define UART_USE_WAIT FALSE +#endif + +/** + * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define UART_USE_MUTUAL_EXCLUSION FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +/*===========================================================================*/ +/* WSPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) +#define WSPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define WSPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* HALCONF_H */ + +/** @} */ diff --git a/keyboards/evolv/info.json b/keyboards/evolv/info.json new file mode 100644 index 000000000000..8774a7d04fdb --- /dev/null +++ b/keyboards/evolv/info.json @@ -0,0 +1,190 @@ +{ + "keyboard_name": "Evolv75", + "url": "", + "maintainer": "qmk", + "width": 17.5, + "height": 6.75, + "layouts": { + "LAYOUT_evolv_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0.25}, + {"label":"F1", "x":1.25, "y":0.25}, + {"label":"F2", "x":2.25, "y":0.25}, + {"label":"F3", "x":3.25, "y":0.25}, + {"label":"F4", "x":4.25, "y":0.25}, + {"label":"F5", "x":5.5, "y":0.25}, + {"label":"F6", "x":6.5, "y":0.25}, + {"label":"F7", "x":7.5, "y":0.25}, + {"label":"F8", "x":8.5, "y":0.25}, + {"label":"F9", "x":9.75, "y":0.25}, + {"label":"F10", "x":10.75, "y":0.25}, + {"label":"F11", "x":11.75, "y":0.25}, + {"label":"F12", "x":12.75, "y":0.25}, + {"label":"F13", "x":14, "y":0.25}, + {"label":"~", "x":0, "y":1.5}, + {"label":"!", "x":1, "y":1.5}, + {"label":"@", "x":2, "y":1.5}, + {"label":"#", "x":3, "y":1.5}, + {"label":"$", "x":4, "y":1.5}, + {"label":"%", "x":5, "y":1.5}, + {"label":"^", "x":6, "y":1.5}, + {"label":"&", "x":7, "y":1.5}, + {"label":"*", "x":8, "y":1.5}, + {"label":"(", "x":9, "y":1.5}, + {"label":")", "x":10, "y":1.5}, + {"label":"_", "x":11, "y":1.5}, + {"label":"+", "x":12, "y":1.5}, + {"label":"LBksp", "x":13, "y":1.5}, + {"label":"RBksp", "x":14, "y":1.5}, + {"label":"Del", "x":15.25, "y":1.5}, + {"label":"VolUp", "x":17.75, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"{", "x":11.5, "y":2.5}, + {"label":"}", "x":12.5, "y":2.5}, + {"label":"|", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Page Up", "x":15.25, "y":2.5}, + {"label":"Prev", "x":16.75, "y":2.5}, + {"label":"Play", "x":17.75, "y":2.5}, + {"label":"Next", "x":18.75, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":":", "x":10.75, "y":3.5}, + {"label":"\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Page Down", "x":15.25, "y":3.5}, + {"label":"VolDn", "x":17.75, "y":3.5}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":"<", "x":9.25, "y":4.5}, + {"label":">", "x":10.25, "y":4.5}, + {"label":"?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.5}, + {"label":"\u2191", "x":14, "y":4.75}, + {"label":"Fn", "x":15.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.5}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, + {"x":4, "y":5.5, "w":6.25}, + {"label":"Win", "x":10.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":11.5, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":13, "y":5.75}, + {"label":"\u2193", "x":14, "y":5.75}, + {"label":"\u2192", "x":15, "y":5.75}] + }, + "LAYOUT_evolv_iso": { + "layout": [ + {"label":"Esc", "x":0, "y":0.25}, + {"label":"F1", "x":1.25, "y":0.25}, + {"label":"F2", "x":2.25, "y":0.25}, + {"label":"F3", "x":3.25, "y":0.25}, + {"label":"F4", "x":4.25, "y":0.25}, + {"label":"F5", "x":5.5, "y":0.25}, + {"label":"F6", "x":6.5, "y":0.25}, + {"label":"F7", "x":7.5, "y":0.25}, + {"label":"F8", "x":8.5, "y":0.25}, + {"label":"F9", "x":9.75, "y":0.25}, + {"label":"F10", "x":10.75, "y":0.25}, + {"label":"F11", "x":11.75, "y":0.25}, + {"label":"F12", "x":12.75, "y":0.25}, + {"label":"F13", "x":14, "y":0.25}, + {"label":"~", "x":0, "y":1.5}, + {"label":"!", "x":1, "y":1.5}, + {"label":"@", "x":2, "y":1.5}, + {"label":"#", "x":3, "y":1.5}, + {"label":"$", "x":4, "y":1.5}, + {"label":"%", "x":5, "y":1.5}, + {"label":"^", "x":6, "y":1.5}, + {"label":"&", "x":7, "y":1.5}, + {"label":"*", "x":8, "y":1.5}, + {"label":"(", "x":9, "y":1.5}, + {"label":")", "x":10, "y":1.5}, + {"label":"_", "x":11, "y":1.5}, + {"label":"+", "x":12, "y":1.5}, + {"label":"LBksp", "x":13, "y":1.5}, + {"label":"RBksp", "x":14, "y":1.5}, + {"label":"Del", "x":15.25, "y":1.5}, + {"label":"VolUp", "x":17.75, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"{", "x":11.5, "y":2.5}, + {"label":"}", "x":12.5, "y":2.5}, + {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, + {"label":"Page Up", "x":15.25, "y":2.5}, + {"label":"Prev", "x":16.75, "y":2.5}, + {"label":"Play", "x":17.75, "y":2.5}, + {"label":"Next", "x":18.75, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":":", "x":10.75, "y":3.5}, + {"label":"\"", "x":11.75, "y":3.5}, + {"label":"~", "x":12.75, "y":3.5}, + {"label":"Page Down", "x":15.25, "y":3.5}, + {"label":"VolDn", "x":17.75, "y":3.5}, + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":"<", "x":9.25, "y":4.5}, + {"label":">", "x":10.25, "y":4.5}, + {"label":"?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.5}, + {"label":"\u2191", "x":14, "y":4.75}, + {"label":"Fn", "x":15.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.5}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, + {"x":4, "y":5.5, "w":6.25}, + {"label":"Win", "x":10.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":11.5, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":13, "y":5.75}, + {"label":"\u2193", "x":14, "y":5.75}, + {"label":"\u2192", "x":15, "y":5.75}] + } + } +} diff --git a/keyboards/evolv/keymaps/default/keymap.c b/keyboards/evolv/keymaps/default/keymap.c new file mode 100755 index 000000000000..5e5e5e7abb63 --- /dev/null +++ b/keyboards/evolv/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_evolv_ansi( + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_INS , + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_DEL , KC_VOLU, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_MPRV, KC_MPLY, KC_MNXT, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGDN, KC_VOLD, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT_evolv_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + [2] = LAYOUT_evolv_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + [3] = LAYOUT_evolv_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/evolv/keymaps/iso/keymap.c b/keyboards/evolv/keymaps/iso/keymap.c new file mode 100755 index 000000000000..4efe8268d350 --- /dev/null +++ b/keyboards/evolv/keymaps/iso/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_evolv_iso( + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_INS , + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_DEL , KC_VOLU, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_ENT , KC_PGUP, KC_MPRV, KC_MPLY, KC_MNXT, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, KC_VOLD, + KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT_evolv_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + [2] = LAYOUT_evolv_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + [3] = LAYOUT_evolv_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/evolv/keymaps/via/keymap.c b/keyboards/evolv/keymaps/via/keymap.c new file mode 100755 index 000000000000..4efe8268d350 --- /dev/null +++ b/keyboards/evolv/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_evolv_iso( + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_INS , + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_DEL , KC_VOLU, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_ENT , KC_PGUP, KC_MPRV, KC_MPLY, KC_MNXT, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, KC_VOLD, + KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT_evolv_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + [2] = LAYOUT_evolv_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + [3] = LAYOUT_evolv_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/evolv/keymaps/via/rules.mk b/keyboards/evolv/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/evolv/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/evolv/mcuconf.h b/keyboards/evolv/mcuconf.h new file mode 100644 index 000000000000..4b5afe73ecc8 --- /dev/null +++ b/keyboards/evolv/mcuconf.h @@ -0,0 +1,176 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +/* + * STM32F0xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 3...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F0xx_MCUCONF +// #define STM32F070xB + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_HSI_ENABLED TRUE +#define STM32_HSI14_ENABLED TRUE +#define STM32_HSI48_ENABLED FALSE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED FALSE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 +#define STM32_PREDIV_VALUE 1 +#define STM32_PLLMUL_VALUE 12 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE STM32_PPRE_DIV1 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_USBSW STM32_USBSW_HSI48 +#define STM32_CECSW STM32_CECSW_HSI +#define STM32_I2C1SW STM32_I2C1SW_HSI +#define STM32_USART1SW STM32_USART1SW_PCLK +#define STM32_RTCSEL STM32_RTCSEL_LSI + +/* + * ADC driver system settings. + */ +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 2 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM14 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 2 +#define STM32_GPT_TIM2_IRQ_PRIORITY 2 +#define STM32_GPT_TIM3_IRQ_PRIORITY 2 +#define STM32_GPT_TIM14_IRQ_PRIORITY 2 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_IRQ_PRIORITY 3 +#define STM32_I2C_I2C2_IRQ_PRIORITY 3 +#define STM32_I2C_USE_DMA FALSE +#define STM32_I2C_I2C1_DMA_PRIORITY 1 +#define STM32_I2C_I2C2_DMA_PRIORITY 1 +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 3 +#define STM32_ICU_TIM2_IRQ_PRIORITY 3 +#define STM32_ICU_TIM3_IRQ_PRIORITY 3 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_TIM1_IRQ_PRIORITY 3 +#define STM32_PWM_TIM2_IRQ_PRIORITY 3 +#define STM32_PWM_TIM3_IRQ_PRIORITY 3 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USART1_PRIORITY 3 +#define STM32_SERIAL_USART2_PRIORITY 3 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 TRUE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 2 +#define STM32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USART1_IRQ_PRIORITY 3 +#define STM32_UART_USART2_IRQ_PRIORITY 3 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_USB1 TRUE +#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE +#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/evolv/readme.md b/keyboards/evolv/readme.md new file mode 100644 index 000000000000..461425845844 --- /dev/null +++ b/keyboards/evolv/readme.md @@ -0,0 +1,15 @@ +# Evolv75 PCB QMK firmware + +## Introduction + +This is the QMK firmware repository for the Evolv75 PCB, a 75% with encoder keyboard designed by NathanAlphaMan in aprtnership with Gondolindrim. + +As of november 2020, there is no way to buy an Evolv75 as it has not yet entered Group Buy phase. The IC page for the keyboard can be found [here](https://geekhack.org/index.php?topic=104531). + +## How to compile + +After setting up your build environment, you can compile the Arctic default keymap by using: + + make evolv:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/evolv/rules.mk b/keyboards/evolv/rules.mk new file mode 100644 index 000000000000..13a44c3c63dd --- /dev/null +++ b/keyboards/evolv/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F072 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From 495a61ad7a14bb7dd4022f1837fc18085026cfde Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Tue, 5 Jan 2021 23:23:35 -0500 Subject: [PATCH 112/140] [Keyboard] Sagittarius (#10896) * Sagittarius keyboard * Update Sagittarius keyboard * fix * remove info.json as it's very hard to make * Add license and address PR comments * Apply suggestions from code review Co-authored-by: Joel Challis * Apply suggestions from code review Co-authored-by: Ryan * Add info json, update keymap * Fix info json * Update keymap * Update keyboards/cannonkeys/sagittarius/info.json Co-authored-by: Joel Challis Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/cannonkeys/sagittarius/chconf.h | 714 ++++++++++++++++++ keyboards/cannonkeys/sagittarius/config.h | 82 ++ keyboards/cannonkeys/sagittarius/halconf.h | 525 +++++++++++++ keyboards/cannonkeys/sagittarius/info.json | 12 + .../sagittarius/keymaps/default/keymap.c | 46 ++ .../sagittarius/keymaps/via/keymap.c | 46 ++ .../sagittarius/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/sagittarius/mcuconf.h | 176 +++++ keyboards/cannonkeys/sagittarius/readme.md | 10 + keyboards/cannonkeys/sagittarius/rules.mk | 26 + .../cannonkeys/sagittarius/sagittarius.c | 17 + .../cannonkeys/sagittarius/sagittarius.h | 38 + 12 files changed, 1693 insertions(+) create mode 100644 keyboards/cannonkeys/sagittarius/chconf.h create mode 100644 keyboards/cannonkeys/sagittarius/config.h create mode 100644 keyboards/cannonkeys/sagittarius/halconf.h create mode 100644 keyboards/cannonkeys/sagittarius/info.json create mode 100644 keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/sagittarius/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/sagittarius/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/sagittarius/mcuconf.h create mode 100644 keyboards/cannonkeys/sagittarius/readme.md create mode 100644 keyboards/cannonkeys/sagittarius/rules.mk create mode 100644 keyboards/cannonkeys/sagittarius/sagittarius.c create mode 100644 keyboards/cannonkeys/sagittarius/sagittarius.h diff --git a/keyboards/cannonkeys/sagittarius/chconf.h b/keyboards/cannonkeys/sagittarius/chconf.h new file mode 100644 index 000000000000..03f63da36a88 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/chconf.h @@ -0,0 +1,714 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file rt/templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ +#define _CHIBIOS_RT_CONF_VER_6_0_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_ST_RESOLUTION) +#define CH_CFG_ST_RESOLUTION 32 +#endif + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_CFG_ST_FREQUENCY) +#define CH_CFG_ST_FREQUENCY 10000 +#endif + +/** + * @brief Time intervals data size. + * @note Allowed values are 16, 32 or 64 bits. + */ +#if !defined(CH_CFG_INTERVALS_SIZE) +#define CH_CFG_INTERVALS_SIZE 32 +#endif + +/** + * @brief Time types data size. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_TIME_TYPES_SIZE) +#define CH_CFG_TIME_TYPES_SIZE 32 +#endif + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#if !defined(CH_CFG_ST_TIMEDELTA) +#define CH_CFG_ST_TIMEDELTA 2 +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#if !defined(CH_CFG_TIME_QUANTUM) +#define CH_CFG_TIME_QUANTUM 0 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#if !defined(CH_CFG_MEMCORE_SIZE) +#define CH_CFG_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#if !defined(CH_CFG_NO_IDLE_THREAD) +#define CH_CFG_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) +#define CH_CFG_OPTIMIZE_SPEED FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_TM) +#define CH_CFG_USE_TM FALSE +#endif + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_REGISTRY) +#define CH_CFG_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_WAITEXIT) +#define CH_CFG_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_SEMAPHORES) +#define CH_CFG_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MUTEXES) +#define CH_CFG_USE_MUTEXES TRUE +#endif + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_CONDVARS) +#define CH_CFG_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_EVENTS) +#define CH_CFG_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MESSAGES) +#define CH_CFG_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_MAILBOXES) +#define CH_CFG_USE_MAILBOXES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCORE) +#define CH_CFG_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_CFG_USE_HEAP) +#define CH_CFG_USE_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMPOOLS) +#define CH_CFG_USE_MEMPOOLS FALSE +#endif + +/** + * @brief Objects FIFOs APIs. + * @details If enabled then the objects FIFOs APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_OBJ_FIFOS) +#define CH_CFG_USE_OBJ_FIFOS FALSE +#endif + +/** + * @brief Pipes APIs. + * @details If enabled then the pipes APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_PIPES) +#define CH_CFG_USE_PIPES FALSE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#if !defined(CH_CFG_USE_DYNAMIC) +#define CH_CFG_USE_DYNAMIC FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Objects factory options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Objects Factory APIs. + * @details If enabled then the objects factory APIs are included in the + * kernel. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_CFG_USE_FACTORY) +#define CH_CFG_USE_FACTORY FALSE +#endif + +/** + * @brief Maximum length for object names. + * @details If the specified length is zero then the name is stored by + * pointer but this could have unintended side effects. + */ +#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) +#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 +#endif + +/** + * @brief Enables the registry of generic objects. + */ +#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) +#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE +#endif + +/** + * @brief Enables factory for generic buffers. + */ +#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE +#endif + +/** + * @brief Enables factory for semaphores. + */ +#if !defined(CH_CFG_FACTORY_SEMAPHORES) +#define CH_CFG_FACTORY_SEMAPHORES FALSE +#endif + +/** + * @brief Enables factory for mailboxes. + */ +#if !defined(CH_CFG_FACTORY_MAILBOXES) +#define CH_CFG_FACTORY_MAILBOXES FALSE +#endif + +/** + * @brief Enables factory for objects FIFOs. + */ +#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +#define CH_CFG_FACTORY_OBJ_FIFOS FALSE +#endif + +/** + * @brief Enables factory for Pipes. + */ +#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) +#define CH_CFG_FACTORY_PIPES FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_STATISTICS) +#define CH_DBG_STATISTICS FALSE +#endif + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_MASK) +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED +#endif + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) +#define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) +#define CH_DBG_ENABLE_STACK_CHECK FALSE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) +#define CH_DBG_FILL_THREADS FALSE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#if !defined(CH_DBG_THREADS_PROFILING) +#define CH_DBG_THREADS_PROFILING FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System structure extension. + * @details User fields added to the end of the @p ch_system_t structure. + */ +#define CH_CFG_SYSTEM_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief System initialization hook. + * @details User initialization code added to the @p chSysInit() function + * just before interrupts are enabled globally. + */ +#define CH_CFG_SYSTEM_INIT_HOOK() { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p _thread_init() function. + * + * @note It is invoked from within @p _thread_init() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/cannonkeys/sagittarius/config.h b/keyboards/cannonkeys/sagittarius/config.h new file mode 100644 index 000000000000..6c1648713e64 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/config.h @@ -0,0 +1,82 @@ +/* +Copyright 2015 Jun Wako + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CannonKeys +#define PRODUCT Sagittarius + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 16 + +#define MATRIX_COL_PINS { A7, A5, A4, A3, A2, A1, A0, B5, A13, B2, B1, B0, B9, B8, B7, B6 } +#define MATRIX_ROW_PINS { B10, B14, A8, A9, A10, C13, C14, C15, F0, F1 } +#define DIODE_DIRECTION COL2ROW + +#define LED_NUM_LOCK_PIN B4 +#define LED_CAPS_LOCK_PIN B3 +#define LED_SCROLL_LOCK_PIN A15 + +#define BACKLIGHT_PIN A6 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN B15 +#define RGBLED_NUM 8 +#define WS2812_SPI SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 + +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/cannonkeys/sagittarius/halconf.h b/keyboards/cannonkeys/sagittarius/halconf.h new file mode 100644 index 000000000000..921803762eaf --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/halconf.h @@ -0,0 +1,525 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef HALCONF_H +#define HALCONF_H + +#define _CHIBIOS_HAL_CONF_ +#define _CHIBIOS_HAL_CONF_VER_7_0_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the cryptographic subsystem. + */ +#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) +#define HAL_USE_CRY FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM TRUE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SIO subsystem. + */ +#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) +#define HAL_USE_SIO FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI TRUE +#endif + +/** + * @brief Enables the TRNG subsystem. + */ +#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) +#define HAL_USE_TRNG FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/** + * @brief Enables the WSPI subsystem. + */ +#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) +#define HAL_USE_WSPI FALSE +#endif + +/*===========================================================================*/ +/* PAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) +#define PAL_USE_CALLBACKS FALSE +#endif + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) +#define PAL_USE_WAIT FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/** + * @brief Enforces the driver to use direct callbacks rather than OSAL events. + */ +#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) +#define CAN_ENFORCE_USE_CALLBACKS FALSE +#endif + +/*===========================================================================*/ +/* CRY driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the SW fall-back of the cryptographic driver. + * @details When enabled, this option, activates a fall-back software + * implementation for algorithms not supported by the underlying + * hardware. + * @note Fall-back implementations may not be present for all algorithms. + */ +#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_USE_FALLBACK FALSE +#endif + +/** + * @brief Makes the driver forcibly use the fall-back implementations. + */ +#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_ENFORCE_FALLBACK FALSE +#endif + +/*===========================================================================*/ +/* DAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) +#define DAC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define DAC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the zero-copy API. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/** + * @brief OCR initialization constant for V20 cards. + */ +#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) +#define SDC_INIT_OCR_V20 0x50FF8000U +#endif + +/** + * @brief OCR initialization constant for non-V20 cards. + */ +#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) +#define SDC_INIT_OCR 0x80100000U +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 16 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 256 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 1 +#endif + +/** + * @brief Serial over USB number of buffers. + * @note The default is 2 buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_NUMBER 2 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables circular transfers APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) +#define SPI_USE_CIRCULAR FALSE +#endif + + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/** + * @brief Handling method for SPI CS line. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + +/*===========================================================================*/ +/* UART driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) +#define UART_USE_WAIT FALSE +#endif + +/** + * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define UART_USE_MUTUAL_EXCLUSION FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +/*===========================================================================*/ +/* WSPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) +#define WSPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define WSPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* HALCONF_H */ + +/** @} */ diff --git a/keyboards/cannonkeys/sagittarius/info.json b/keyboards/cannonkeys/sagittarius/info.json new file mode 100644 index 000000000000..0fa825ef5235 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Sagittarius", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "width": 20.25, + "height": 5, + "layouts": { + "LAYOUT_default": { + "layout": [{"x":0, "y":0}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":13.75, "y":0}, {"x":14.75, "y":0}, {"x":15.75, "y":0}, {"x":16.75, "y":0}, {"x":17.75, "y":0}, {"x":0, "y":1}, {"x":1.5, "y":1, "w":1.5}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":15.75, "y":1}, {"x":16.75, "y":1}, {"x":17.75, "y":1, "w":1.5}, {"x":0, "y":2}, {"x":1.5, "y":2, "w":1.75}, {"x":3.25, "y":2}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":17, "y":2}, {"x":18, "y":2, "w":1.25}, {"x":19.25, "y":2}, {"x":0, "y":3}, {"x":1.5, "y":3, "w":1.25}, {"x":2.75, "y":3}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":16, "y":3, "w":1.25}, {"x":17.25, "y":3}, {"x":18.25, "y":3}, {"x":1.5, "y":4, "w":1.25}, {"x":2.75, "y":4, "w":1.25}, {"x":5.5, "y":4}, {"x":6.5, "y":4, "w":2.25}, {"x":11, "y":4, "w":1.75}, {"x":12.75, "y":4}, {"x":16.25, "y":4}, {"x":17.25, "y":4}, {"x":18.25, "y":4}] + } + } +} diff --git a/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c b/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c new file mode 100644 index 000000000000..a976b0e1754a --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_default( + KC_PGUP, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_PGDN, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_HOME, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_ENT, + KC_END, KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_INS, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/sagittarius/keymaps/via/keymap.c b/keyboards/cannonkeys/sagittarius/keymaps/via/keymap.c new file mode 100644 index 000000000000..829cdaeb6cfd --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_default( + KC_PGUP, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_PGDN, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_HOME, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_ENT, + KC_END, KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_INS, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/cannonkeys/sagittarius/keymaps/via/rules.mk b/keyboards/cannonkeys/sagittarius/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/sagittarius/mcuconf.h b/keyboards/cannonkeys/sagittarius/mcuconf.h new file mode 100644 index 000000000000..43fe0a462ef1 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/mcuconf.h @@ -0,0 +1,176 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +/* + * STM32F0xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 3...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F0xx_MCUCONF +// #define STM32F070xB + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_HSI_ENABLED TRUE +#define STM32_HSI14_ENABLED TRUE +#define STM32_HSI48_ENABLED FALSE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED FALSE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 +#define STM32_PREDIV_VALUE 1 +#define STM32_PLLMUL_VALUE 12 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE STM32_PPRE_DIV1 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_USBSW STM32_USBSW_HSI48 +#define STM32_CECSW STM32_CECSW_HSI +#define STM32_I2C1SW STM32_I2C1SW_HSI +#define STM32_USART1SW STM32_USART1SW_PCLK +#define STM32_RTCSEL STM32_RTCSEL_LSI + +/* + * ADC driver system settings. + */ +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 2 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM14 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 2 +#define STM32_GPT_TIM2_IRQ_PRIORITY 2 +#define STM32_GPT_TIM3_IRQ_PRIORITY 2 +#define STM32_GPT_TIM14_IRQ_PRIORITY 2 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_IRQ_PRIORITY 3 +#define STM32_I2C_I2C2_IRQ_PRIORITY 3 +#define STM32_I2C_USE_DMA TRUE +#define STM32_I2C_I2C1_DMA_PRIORITY 1 +#define STM32_I2C_I2C2_DMA_PRIORITY 1 +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 3 +#define STM32_ICU_TIM2_IRQ_PRIORITY 3 +#define STM32_ICU_TIM3_IRQ_PRIORITY 3 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 TRUE +#define STM32_PWM_TIM1_IRQ_PRIORITY 3 +#define STM32_PWM_TIM2_IRQ_PRIORITY 3 +#define STM32_PWM_TIM3_IRQ_PRIORITY 3 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USART1_PRIORITY 3 +#define STM32_SERIAL_USART2_PRIORITY 3 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 TRUE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 2 +#define STM32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USART1_IRQ_PRIORITY 3 +#define STM32_UART_USART2_IRQ_PRIORITY 3 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_USB1 TRUE +#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE +#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/sagittarius/readme.md b/keyboards/cannonkeys/sagittarius/readme.md new file mode 100644 index 000000000000..c27d7f004d3b --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/readme.md @@ -0,0 +1,10 @@ +# CannonKeys + Acheron Sagittarius + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/sagittarius:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/sagittarius/rules.mk b/keyboards/cannonkeys/sagittarius/rules.mk new file mode 100644 index 000000000000..62d0ab63d4e8 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = STM32F072 + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +WS2812_DRIVER = spi + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/sagittarius/sagittarius.c b/keyboards/cannonkeys/sagittarius/sagittarius.c new file mode 100644 index 000000000000..ea1b979c49c3 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/sagittarius.c @@ -0,0 +1,17 @@ + /* Copyright 2020 Andrew Kannan + * + * 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 . + */ + +#include "sagittarius.h" diff --git a/keyboards/cannonkeys/sagittarius/sagittarius.h b/keyboards/cannonkeys/sagittarius/sagittarius.h new file mode 100644 index 000000000000..ba2fb2bc1851 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/sagittarius.h @@ -0,0 +1,38 @@ + /* Copyright 2020 Andrew Kannan + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_default( \ + k11, k12, k13, k14, k15, k16, k17, k18, k69, k610, k611, k612, k613, k614, k615, k616, \ + k21, k22, k23, k24, k25, k26, k27, k78, k79, k710, k711, k712, k713, k714, k715, \ + k31, k32, k33, k34, k35, k36, k37, k88, k89, k810, k811, k812, k813, k814, k815, k816, \ + k41, k42, k43, k44, k45, k46, k47, k48, k99, k910, k911, k912, k913, k914, k915, k916, \ + k51, k52, k57, k58, k109, k1010, k1014, k1015, k1016 \ +) { \ + { k11, k12, k13, k14, k15, k16, k17, k18, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k21, k22, k23, k24, k25, k26, k27, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k31, k32, k33, k34, k35, k36, k37, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k41, k42, k43, k44, k45, k46, k47, k48, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k51, k52, KC_NO, KC_NO, KC_NO, KC_NO, k57, k58, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k69, k610, k611, k612, k613, k614, k615, k616 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k78, k79, k710, k711, k712, k713, k714, k715, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k88, k89, k810, k811, k812, k813, k814, k815, k816 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k99, k910, k911, k912, k913, k914, k915, k916 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k109, k1010, KC_NO, KC_NO, KC_NO, k1014, k1015, k1016 }\ +} From db8e88aae040a6f3b33f85fff6a3046ea47a4a88 Mon Sep 17 00:00:00 2001 From: umi <57262844+umi-umi@users.noreply.github.com> Date: Wed, 6 Jan 2021 14:07:07 +0900 Subject: [PATCH 113/140] [Docs] Japanese translation of feature_led_indicators.md (#10960) * add feature_led_indicators.md translation * update related document * add link on _summary --- docs/ja/_summary.md | 1 + docs/ja/custom_quantum_functions.md | 106 +------------------------ docs/ja/feature_led_indicators.md | 119 ++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 103 deletions(-) create mode 100644 docs/ja/feature_led_indicators.md diff --git a/docs/ja/_summary.md b/docs/ja/_summary.md index cf2e37aaf4d6..d6b67440a2f2 100644 --- a/docs/ja/_summary.md +++ b/docs/ja/_summary.md @@ -103,6 +103,7 @@ * [DIP スイッチ](ja/feature_dip_switch.md) * [エンコーダ](ja/feature_encoders.md) * [触覚フィードバック](ja/feature_haptic_feedback.md) + * [LED インジケータ](ja/feature_led_indicators.md) * [Proton C 変換](ja/proton_c_conversion.md) * [PS/2 マウス](ja/feature_ps2_mouse.md) * [分割キーボード](ja/feature_split_keyboard.md) diff --git a/docs/ja/custom_quantum_functions.md b/docs/ja/custom_quantum_functions.md index 952b5d8a87e9..c19fea5275f0 100644 --- a/docs/ja/custom_quantum_functions.md +++ b/docs/ja/custom_quantum_functions.md @@ -1,8 +1,8 @@ # キーボードの挙動をカスタマイズする方法 多くの人にとって、カスタムキーボードはボタンの押下をコンピュータに送信するだけではありません。単純なボタンの押下やマクロよりも複雑なことを実行できるようにしたいでしょう。QMK にはコードを挿入したり、機能を上書きしたり、様々な状況でキーボードの挙動をカスタマイズできるフックがあります。 @@ -93,106 +93,6 @@ keyrecord_t record { } ``` -# LED 制御 - -QMK は HID 仕様で定義された5つの LED の読み取りメソッドを提供します: - -* Num Lock -* Caps Lock -* Scroll Lock -* Compose -* Kana - -ロック LED の状態を取得するには2つの方法があります: - -* `bool led_update_kb(led_t led_state)` あるいは `_user(led_t led_state)` を実装する、または -* `led_t host_keyboard_led_state()` を呼び出す - -!> `host_keyboard_led_state()` は `led_update_user()` が呼ばれる前に新しい値を既に反映している場合があります。 - -LED の状態を `uint8_t` として提供する2つの非推奨の関数があります: - -* `uint8_t led_set_kb(uint8_t usb_led)` と `_user(uint8_t usb_led)` -* `uint8_t host_keyboard_leds()` - -## `led_update_user()` - -この関数はこれら5つの LED のいずれかの状態が変化すると呼ばれます。LED の状態を構造体のパラメータとして受け取ります。 - -慣例により、`led_update_kb()` にそのコードを実行するようフックさせるために `led_update_user()` から `true` を返し、`led_update_kb()` でコードを実行したくない場合は `false` を返します。 - -以下はいくつかの例です: - -- レイヤー表示のような何かのために LED を使うために LED を上書きする - - `_kb()` 関数を実行したくないので、`false` を返します。これはレイヤーの挙動を上書きするためです。 -- LED がオンあるいはオフになった時に音楽を再生する。 - - `_kb` 関数を実行したいので、`true` を返します。これはデフォルトの LED の挙動に追加されます。 - -?> `led_set_*` 関数は `bool` の代わりに `void` を返すため、キーボードの LED 制御を上書きすることができません。従って、代わりに `led_update_*` を使うことをお勧めします。 - -### `led_update_kb()` の実装例 - -```c -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if(res) { - // writePin は 1 でピンを high に、0 で low に設定します。 - // この例では、ピンは反転していて、 - // low/0 は LED がオンになり、high/1 は LED がオフになります。 - // この挙動は、LED がピンと VCC の間にあるか、ピンと GND の間にあるかどうかに依存します。 - writePin(B0, !led_state.num_lock); - writePin(B1, !led_state.caps_lock); - writePin(B2, !led_state.scroll_lock); - writePin(B3, !led_state.compose); - writePin(B4, !led_state.kana); - } - return res; -} -``` - -### `led_update_user()` の実装例 - -この不完全な例は Caps Lock がオンまたはオフになった場合に音を再生します。また LED の状態を保持する必要があるため、`true` を返します。 - -```c -#ifdef AUDIO_ENABLE - float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); - float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); -#endif - -bool led_update_user(led_t led_state) { - #ifdef AUDIO_ENABLE - static uint8_t caps_state = 0; - if (caps_state != led_state.caps_lock) { - led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off); - caps_state = led_state.caps_lock; - } - #endif - return true; -} -``` - -### `led_update_*` 関数のドキュメント - -* キーボード/リビジョン: `bool led_update_kb(led_t led_state)` -* キーマップ: `bool led_update_user(led_t led_state)` - -## `host_keyboard_led_state()` - -最後に受信した LED の状態を `led_t` として取得するためにこの関数を呼びます。これは、`led_update_*` の外部から、例えば [`matrix_scan_user()`](#matrix-scanning-code) の中で LED の状態を読み取るのに便利です。 - -## 物理的な LED の状態の設定 - -一部のキーボードの実装は、物理的な LED の状態を設定するための便利なメソッドを提供しています。 - -### Ergodox キーボード - -Ergodox の実装は、個々の LED をオンあるいはオフにするために `ergodox_right_led_1`/`2`/`3_on`/`off()` と、インデックスによってそれらをオンあるいはオフにするために `ergodox_right_led_on`/`off(uint8_t led)` を提供します。 - -さらに、LED の明度を指定することができます。全ての LED に同じ明度を指定するなら `ergodox_led_all_set(uint8_t n)` を使い、個別の LED の明度を指定するなら `ergodox_right_led_1`/`2`/`3_set(uint8_t n)` を使い、LED のインデックスを指定して明度を指定するには `ergodox_right_led_set(uint8_t led, uint8_t n)` を使います。 - -Ergodox キーボードは、最低の明度として `LED_BRIGHTNESS_LO` を、最高の輝度(これはデフォルトです)として `LED_BRIGHTNESS_HI` も定義しています。 - # キーボードの初期化コード キーボードの初期化プロセスには幾つかのステップがあります。何をしたいかによって、どの関数を使うべきかに影響します。 @@ -347,7 +247,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { } ``` -特定のレイヤーの状態を確認するには、 `IS_LAYER_ON_STATE(state, layer)` と `IS_LAYER_OFF_STATE(state, layer)` マクロを使います。 +特定のレイヤーの状態を確認するには、`IS_LAYER_ON_STATE(state, layer)` と `IS_LAYER_OFF_STATE(state, layer)` マクロを使います。 `layer_state_set_*` 関数の外では、グローバルなレイヤー状態を確認するために `IS_LAYER_ON(layer)` と `IS_LAYER_OFF(layer)` マクロを使えます。 diff --git a/docs/ja/feature_led_indicators.md b/docs/ja/feature_led_indicators.md new file mode 100644 index 000000000000..307603f0a4c3 --- /dev/null +++ b/docs/ja/feature_led_indicators.md @@ -0,0 +1,119 @@ +# LED インジケータ + + + +QMK は HID 仕様で定義された5つの LED の読み取りメソッドを提供します: + +* Num Lock +* Caps Lock +* Scroll Lock +* Compose +* Kana + +ロック LED の状態を取得するには3つの方法があります: +* `config.h` で設定オプションを指定する +* `bool led_update_kb(led_t led_state)` あるいは `_user(led_t led_state)` を実装する、または +* `led_t host_keyboard_led_state()` を呼び出す + +!> `host_keyboard_led_state()` は `led_update_user()` が呼ばれる前に新しい値を既に反映している場合があります。 + +LED の状態を `uint8_t` として提供する2つの非推奨の関数があります: + +* `uint8_t led_set_kb(uint8_t usb_led)` と `_user(uint8_t usb_led)` +* `uint8_t host_keyboard_leds()` + +## 設定オプション + +インジケータを設定するには、`config.h` で以下の `#define` をします: + +| 定義 | 既定値 | 説明 | +|-----------------------|------------|----------------------------------| +| `LED_NUM_LOCK_PIN` | *定義なし* | `Num Lock` LED を制御するピン | +| `LED_CAPS_LOCK_PIN` | *定義なし* | `Caps Lock` LED を制御するピン | +| `LED_SCROLL_LOCK_PIN` | *定義なし* | `Scroll Lock` LED を制御するピン | +| `LED_COMPOSE_PIN` | *定義なし* | `Compose` LED を制御するピン | +| `LED_KANA_PIN` | *定義なし* | `Kana` LED を制御するピン | +| `LED_PIN_ON_STATE` | `1` | LED が "オン" の時のインジケータピンの状態 - high の場合は`1`、low の場合は`0` | + +独自のキーボードを設計しているわけではない限り、通常は上記の設定オプションを変更する必要はありません。 + +## `led_update_*()` + +設定オプションが十分な柔軟性を提供しない場合は、提供される API フックにより LED の挙動の独自の制御ができます。これらの関数はこれら5つの LED のいずれかの状態が変化すると呼ばれます。LED の状態を構造体のパラメータとして受け取ります。 + +慣例により、`led_update_kb()` にそのコードを実行するようフックさせるために `led_update_user()` から `true` を返し、`led_update_kb()` でコードを実行したくない場合は `false` を返します。 + +以下はいくつかの例です: + +- レイヤー表示のような何かのために LED を使うために LED を上書きする + - `_kb()` 関数を実行したくないので、`false` を返します。これはレイヤーの挙動を上書きするためです。 +- LED がオンあるいはオフになった時に音楽を再生する。 + - `_kb` 関数を実行したいので、`true` を返します。これはデフォルトの LED の挙動に追加されます。 + +?> `led_set_*` 関数は `bool` の代わりに `void` を返すため、キーボードの LED 制御を上書きすることができません。従って、代わりに `led_update_*` を使うことをお勧めします。 + +### `led_update_kb()` の実装例 + +```c +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + // writePin は 1 でピンを high に、0 で low に設定します。 + // この例では、ピンは反転していて、 + // low/0 は LED がオンになり、high/1 は LED がオフになります。 + // この挙動は、LED がピンと VCC の間にあるか、ピンと GND の間にあるかどうかに依存します。 + writePin(B0, !led_state.num_lock); + writePin(B1, !led_state.caps_lock); + writePin(B2, !led_state.scroll_lock); + writePin(B3, !led_state.compose); + writePin(B4, !led_state.kana); + } + return res; +} +``` + +### `led_update_user()` の実装例 + +この不完全な例は Caps Lock がオンまたはオフになった場合に音を再生します。また LED の状態を保持する必要があるため、`true` を返します。 + +```c +#ifdef AUDIO_ENABLE + float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); + float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); +#endif + +bool led_update_user(led_t led_state) { + #ifdef AUDIO_ENABLE + static uint8_t caps_state = 0; + if (caps_state != led_state.caps_lock) { + led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off); + caps_state = led_state.caps_lock; + } + #endif + return true; +} +``` + +### `led_update_*` 関数のドキュメント + +* キーボード/リビジョン: `bool led_update_kb(led_t led_state)` +* キーマップ: `bool led_update_user(led_t led_state)` + +## `host_keyboard_led_state()` + +最後に受信した LED の状態を `led_t` として取得するためにこの関数を呼びます。これは、`led_update_*` の外部から、例えば [`matrix_scan_user()`](#matrix-scanning-code) の中で LED の状態を読み取るのに便利です。 + +## 物理的な LED の状態の設定 + +一部のキーボードの実装は、物理的な LED の状態を設定するための便利なメソッドを提供しています。 + +### Ergodox キーボード + +Ergodox の実装は、個々の LED をオンあるいはオフにするために `ergodox_right_led_1`/`2`/`3_on`/`off()` と、インデックスによってそれらをオンあるいはオフにするために `ergodox_right_led_on`/`off(uint8_t led)` を提供します。 + +さらに、LED の明度を指定することができます。全ての LED に同じ明度を指定するなら `ergodox_led_all_set(uint8_t n)` を使い、個別の LED の明度を指定するなら `ergodox_right_led_1`/`2`/`3_set(uint8_t n)` を使い、LED のインデックスを指定して明度を指定するには `ergodox_right_led_set(uint8_t led, uint8_t n)` を使います。 + +Ergodox キーボードは、最低の明度として `LED_BRIGHTNESS_LO` を、最高の輝度(これはデフォルトです)として `LED_BRIGHTNESS_HI` も定義しています。 From 340fc9dce3ab00f911e978f1f246d8523eb2efec Mon Sep 17 00:00:00 2001 From: umi <57262844+umi-umi@users.noreply.github.com> Date: Wed, 6 Jan 2021 14:08:21 +0900 Subject: [PATCH 114/140] [Docs] Japanese translation of feature_rawhid.md (#10858) * add feature_rawhid.md translation * update files based on comments * update files based on comments * update files based on comments --- docs/ja/feature_rawhid.md | 74 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 docs/ja/feature_rawhid.md diff --git a/docs/ja/feature_rawhid.md b/docs/ja/feature_rawhid.md new file mode 100644 index 000000000000..c99c3fd8d874 --- /dev/null +++ b/docs/ja/feature_rawhid.md @@ -0,0 +1,74 @@ +# Raw HID + + + +Raw HID は、HID インタフェースを介して QMK とホストコンピュータ間の双方向通信を可能にします。これには、キーマップをその場で切り替えたり、RGB LED の色とモードを変更したりなど、多くの潜在的な使用方法があります。 + +キーボードで raw HID を機能させるには、2つの主要なコンポーネントがあります。 + +## キーボードファームウェア + +ファームウェアの実装はとても簡単です。 +`rules.mk` に以下を追加します: + +```make +RAW_ENABLE = yes +``` + +`keymap.c` に `"raw_hid.h"` を include し、以下を実装します: + +```C +void raw_hid_receive(uint8_t *data, uint8_t length) { + // ここにコードを書きます。data はホストから受信したパケットです。 +} +``` + +`"raw_hid.h"` ヘッダは、キーボードからホストにパケットを送信できる `void raw_hid_send(uint8_t *data, uint8_t length);` も宣言します。例として、全てのデータをホストに返すことで、ホストアプリケーションを構築する時のデバッグに使うこともできます。 + +```C +void raw_hid_receive(uint8_t *data, uint8_t length) { + raw_hid_send(data, length); +} +``` + +`raw_hid_receive` はホストから最大長 `RAW_EPSIZE` の可変サイズのパケットを受信することができます。一方、`raw_hid_send` はパケットを厳密に `RAW_EPSIZE` の長さで送信するため、長さ `RAW_EPSIZE` のデータを使う必要があります。 + +ホスト側での作業を進める前に、raw 対応のファームウェアを書き込むようにしてください。 + +## ホスト (Windows/macOS/Linux) + +これは幾つかの掘り下げが必要になるため、より複雑な部分です。 + +ホストコンピュータを raw HID を使ってキーボードに接続するには、キーボードについての4つの情報が必要です。 + +1. Vendor ID +2. Product ID +3. Usage Page +4. Usage + +前半の2つは、キーボードのメインディレクトリにあるキーボードの `config.h` で、`VENDOR_ID` と `PRODUCT_ID` で簡単に見つかります。 + +後半の2つは、キーボードのメインディレクトリにあるキーボードの `config.h` で、値を再定義することで上書きすることができます: `#define RAW_USAGE_PAGE 0xFF60` と `#define RAW_USAGE_ID 0x61`。 + +デフォルトでは、**Usage Page** は `0xFF60` で、**Usage** は `0x61` です。 + +### ホストの構築 + +独自に作成したくない場合は、利用可能な HID 実装ライブラリがある任意の言語を使ってホストを構築することができます。人気のある言語でよく使われるライブラリは以下の通りです: + +* Node: [node-hid](https://github.com/node-hid/node-hid)。 +* C: [hidapi](https://github.com/libusb/hidapi)。 +* Java: [purejavahidapi](https://github.com/nyholku/purejavahidapi) と [hid4java](https://github.com/gary-rowe/hid4java)。 +* Python: [pyhidapi](https://pypi.org/project/hid/)。 + +これは完全なクロスプラットフォームのリストではありませんが、最初に始めるのに十分なはずです。raw HID を使うための特別な要件は無いため、どの HID ライブラリでも動作するはずです。 + +これで、キーボードへの HID インタフェースを開くために必要な4つの情報全てが揃いました。必要なのは、ライブラリの利用可能な関数を使って ID パラメータを使ってデバイスを開くことだけです。 + +Vendor ID と Product ID はデバイスを開くために実際には必要ないことに注意してください。それらは接続した多くの HID デバイスから特定のデバイスをフィルターするためだけに使われます。多くのライブラリでは、代わりに製品名と製造元名を使ってデバイスを開くオプションがあります。`node-hid` が代表的な例です。これは USB ハブが組み込まれているデバイスや、同じ製品名または同じ製造元の複数のインタフェースがある特別な HID インタフェースで問題になります。Product ID と Vendor ID を合わせると単一のインタフェースの固有名を作成できるため、この問題を防げます。したがって、ライブラリで必要が無い場合でも、この問題を防ぐためにそれらを使うことをお勧めします。 +ただし、Vendor ID や Product ID と異なり、Usage Page と Usage は通信を成功させるために必要です。 + +言うまでもなく、使っているライブラリに関係なく、終了したらインタフェースを必ず閉じる必要があります。オペレーティングシステムと特定の環境によっては、明示的に接続が閉じられていない場合、後で他のクライアントまたは同じクライアントの他のインスタンスに接続しなおした時に問題が発生する可能性があります。 From 115aa95788cb4c25b307f5c191e51df326d05e6e Mon Sep 17 00:00:00 2001 From: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Tue, 5 Jan 2021 21:44:19 -0800 Subject: [PATCH 115/140] [Keyboard] Add TMKL PCB (#11173) * add * update * update indicator LED * Update keyboards/mechlovin/tmkl/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/mechlovin/tmkl/readme.md Co-authored-by: Ryan Co-authored-by: vuhopkep Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/mechlovin/tmkl/config.h | 61 +++++++++++++ keyboards/mechlovin/tmkl/info.json | 89 +++++++++++++++++++ .../mechlovin/tmkl/keymaps/default/keymap.c | 35 ++++++++ .../mechlovin/tmkl/keymaps/default/readme.md | 1 + keyboards/mechlovin/tmkl/keymaps/via/keymap.c | 52 +++++++++++ .../mechlovin/tmkl/keymaps/via/readme.md | 1 + keyboards/mechlovin/tmkl/keymaps/via/rules.mk | 1 + keyboards/mechlovin/tmkl/readme.md | 18 ++++ keyboards/mechlovin/tmkl/rules.mk | 17 ++++ keyboards/mechlovin/tmkl/tmkl.c | 17 ++++ keyboards/mechlovin/tmkl/tmkl.h | 35 ++++++++ 11 files changed, 327 insertions(+) create mode 100644 keyboards/mechlovin/tmkl/config.h create mode 100644 keyboards/mechlovin/tmkl/info.json create mode 100644 keyboards/mechlovin/tmkl/keymaps/default/keymap.c create mode 100644 keyboards/mechlovin/tmkl/keymaps/default/readme.md create mode 100644 keyboards/mechlovin/tmkl/keymaps/via/keymap.c create mode 100644 keyboards/mechlovin/tmkl/keymaps/via/readme.md create mode 100644 keyboards/mechlovin/tmkl/keymaps/via/rules.mk create mode 100644 keyboards/mechlovin/tmkl/readme.md create mode 100644 keyboards/mechlovin/tmkl/rules.mk create mode 100644 keyboards/mechlovin/tmkl/tmkl.c create mode 100644 keyboards/mechlovin/tmkl/tmkl.h diff --git a/keyboards/mechlovin/tmkl/config.h b/keyboards/mechlovin/tmkl/config.h new file mode 100644 index 000000000000..e36470a9bdda --- /dev/null +++ b/keyboards/mechlovin/tmkl/config.h @@ -0,0 +1,61 @@ +/* +Copyright 2020 Team Mechlovin' + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4D4C // ML +#define PRODUCT_ID 0xC601 // Commissions 60v1 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Team Mechlovin +#define PRODUCT TMKL + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { A8, A4, A5, A3, A2, A1, } +#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A0, C15, B4, B5, B3, C13, C14 } + +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B8 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 3 + +#define BACKLIGHT_LEVELS 3 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN B9 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE \ No newline at end of file diff --git a/keyboards/mechlovin/tmkl/info.json b/keyboards/mechlovin/tmkl/info.json new file mode 100644 index 000000000000..5d32c59236bc --- /dev/null +++ b/keyboards/mechlovin/tmkl/info.json @@ -0,0 +1,89 @@ +{ + "keyboard_name": "tmkl", + "maintainer": "Team Mechlovin", + "width": 15, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (B0,B6)", "x":0, "y":0}, + {"label":"K01 (B0,B7)", "x":1.25, "y":0}, + {"label":"K02 (B0,C0)", "x":2.25, "y":0}, + {"label":"K03 (B0,C1)", "x":3.25, "y":0}, + {"label":"K04 (B0,C2)", "x":4.25, "y":0}, + {"label":"K05 (B0,C3)", "x":5.5, "y":0}, + {"label":"K06 (B0,C4)", "x":6.5, "y":0}, + {"label":"K07 (B0,C5)", "x":7.5, "y":0}, + {"label":"K08 (B0,C6)", "x":8.5, "y":0}, + {"label":"K09 (B0,C7)", "x":9.75, "y":0}, + {"label":"K0A (B0,D0)", "x":10.75, "y":0}, + {"label":"K0B (B0,D1)", "x":11.75, "y":0}, + {"label":"K0C (B0,D2)", "x":12.75, "y":0}, + {"label":"K0D (B0,B0)", "x":14, "y":0}, + {"label":"K10 (B1,B6)", "x":0, "y":1}, + {"label":"K11 (B1,B7)", "x":1, "y":1}, + {"label":"K12 (B1,C0)", "x":2, "y":1}, + {"label":"K13 (B1,C1)", "x":3, "y":1}, + {"label":"K14 (B1,C2)", "x":4, "y":1}, + {"label":"K15 (B1,C3)", "x":5, "y":1}, + {"label":"K16 (B1,C4)", "x":6, "y":1}, + {"label":"K17 (B1,C5)", "x":7, "y":1}, + {"label":"K18 (B1,C6)", "x":8, "y":1}, + {"label":"K19 (B1,C7)", "x":9, "y":1}, + {"label":"K1A (B1,D0)", "x":10, "y":1}, + {"label":"K1B (B1,D1)", "x":11, "y":1}, + {"label":"K1C (B1,D2)", "x":12, "y":1}, + {"label":"K1D (B1,B0)", "x":13, "y":1}, + {"label":"K2D (B2,B0)", "x":14, "y":1}, + {"label":"K20 (B2,B6)", "x":0, "y":2, "w":1.5}, + {"label":"K21 (B2,B7)", "x":1.5, "y":2}, + {"label":"K22 (B2,C0)", "x":2.5, "y":2}, + {"label":"K23 (B2,C1)", "x":3.5, "y":2}, + {"label":"K24 (B2,C2)", "x":4.5, "y":2}, + {"label":"K25 (B2,C3)", "x":5.5, "y":2}, + {"label":"K26 (B2,C4)", "x":6.5, "y":2}, + {"label":"K27 (B2,C5)", "x":7.5, "y":2}, + {"label":"K28 (B2,C6)", "x":8.5, "y":2}, + {"label":"K29 (B2,C7)", "x":9.5, "y":2}, + {"label":"K2A (B2,D0)", "x":10.5, "y":2}, + {"label":"K2B (B2,D1)", "x":11.5, "y":2}, + {"label":"K2C (B2,D2)", "x":12.5, "y":2}, + {"label":"K3C (B3,D2)", "x":13.5, "y":2, "w":1.5}, + {"label":"K30 (B3,B6)", "x":0, "y":3, "w":1.75}, + {"label":"K31 (B3,B7)", "x":1.75, "y":3}, + {"label":"K32 (B3,C0)", "x":2.75, "y":3}, + {"label":"K33 (B3,C1)", "x":3.75, "y":3}, + {"label":"K34 (B3,C2)", "x":4.75, "y":3}, + {"label":"K35 (B3,C3)", "x":5.75, "y":3}, + {"label":"K36 (B3,C4)", "x":6.75, "y":3}, + {"label":"K37 (B3,C5)", "x":7.75, "y":3}, + {"label":"K38 (B3,C6)", "x":8.75, "y":3}, + {"label":"K39 (B3,C7)", "x":9.75, "y":3}, + {"label":"K3A (B3,D0)", "x":10.75, "y":3}, + {"label":"K3B (B3,D1)", "x":11.75, "y":3}, + {"label":"K3D (B3,B0)", "x":12.75, "y":3, "w":2.25}, + {"label":"K40 (B4,B6)", "x":0, "y":4, "w":2.25}, + {"label":"K41 (B4,B7)", "x":2.25, "y":4}, + {"label":"K42 (B4,C0)", "x":3.25, "y":4}, + {"label":"K43 (B4,C1)", "x":4.25, "y":4}, + {"label":"K44 (B4,C2)", "x":5.25, "y":4}, + {"label":"K45 (B4,C3)", "x":6.25, "y":4}, + {"label":"K46 (B4,C4)", "x":7.25, "y":4}, + {"label":"K47 (B4,C5)", "x":8.25, "y":4}, + {"label":"K48 (B4,C6)", "x":9.25, "y":4}, + {"label":"K49 (B4,C7)", "x":10.25, "y":4}, + {"label":"K4A (B4,D0)", "x":11.25, "y":4}, + {"label":"K4B (B4,D1)", "x":12.25, "y":4, "w":1.75}, + {"label":"K4C (B4,D2)", "x":14, "y":4}, + {"label":"K50 (B5,B6)", "x":0, "y":5, "w":1.5}, + {"label":"K51 (B5,B7)", "x":1.5, "y":5}, + {"label":"K52 (B5,C0)", "x":2.5, "y":5, "w":1.5}, + {"label":"K56 (B5,C4)", "x":4, "y":5, "w":7}, + {"label":"K5A (B5,D0)", "x":11, "y":5, "w":1.5}, + {"label":"K5B (B5,D1)", "x":12.5, "y":5}, + {"label":"K5C (B5,D2)", "x":13.5, "y":5, "w":1.5} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/mechlovin/tmkl/keymaps/default/keymap.c b/keyboards/mechlovin/tmkl/keymaps/default/keymap.c new file mode 100644 index 000000000000..e39051d9b4c5 --- /dev/null +++ b/keyboards/mechlovin/tmkl/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2020 Team Mechlovin' + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_SPC, KC_SPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/mechlovin/tmkl/keymaps/default/readme.md b/keyboards/mechlovin/tmkl/keymaps/default/readme.md new file mode 100644 index 000000000000..a0d7e3a74230 --- /dev/null +++ b/keyboards/mechlovin/tmkl/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for TMKL diff --git a/keyboards/mechlovin/tmkl/keymaps/via/keymap.c b/keyboards/mechlovin/tmkl/keymaps/via/keymap.c new file mode 100644 index 000000000000..43289a05124a --- /dev/null +++ b/keyboards/mechlovin/tmkl/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2020 Team Mechlovin' + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_SPC, KC_SPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; diff --git a/keyboards/mechlovin/tmkl/keymaps/via/readme.md b/keyboards/mechlovin/tmkl/keymaps/via/readme.md new file mode 100644 index 000000000000..fd0973245933 --- /dev/null +++ b/keyboards/mechlovin/tmkl/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for tmkl diff --git a/keyboards/mechlovin/tmkl/keymaps/via/rules.mk b/keyboards/mechlovin/tmkl/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/mechlovin/tmkl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/mechlovin/tmkl/readme.md b/keyboards/mechlovin/tmkl/readme.md new file mode 100644 index 000000000000..f428fd917247 --- /dev/null +++ b/keyboards/mechlovin/tmkl/readme.md @@ -0,0 +1,18 @@ +# tmkl + +![tmkl](https://i.imgur.com/CrdsxfMl.png) + +A PCB for Private +* Keyboard Maintainer: [Team Mechlovin'](https://github.com/mechlovin) +* Hardware Supported: TMKL rev.1, STM32F303 +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make mechlovin/tmkl:default + +Flashing example for this keyboard: + + make mechlovin/tmkl:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/mechlovin/tmkl/rules.mk b/keyboards/mechlovin/tmkl/rules.mk new file mode 100644 index 000000000000..2673ab3c99e7 --- /dev/null +++ b/keyboards/mechlovin/tmkl/rules.mk @@ -0,0 +1,17 @@ +# MCU name +MCU = STM32F303 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow diff --git a/keyboards/mechlovin/tmkl/tmkl.c b/keyboards/mechlovin/tmkl/tmkl.c new file mode 100644 index 000000000000..22c4d3f0b873 --- /dev/null +++ b/keyboards/mechlovin/tmkl/tmkl.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Team Mechlovin' + * + * 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 . + */ + +#include "tmkl.h" \ No newline at end of file diff --git a/keyboards/mechlovin/tmkl/tmkl.h b/keyboards/mechlovin/tmkl/tmkl.h new file mode 100644 index 000000000000..d31f61012a97 --- /dev/null +++ b/keyboards/mechlovin/tmkl/tmkl.h @@ -0,0 +1,35 @@ +/* Copyright 2020 Team Mechlovin' + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D,\ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3C, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K5B, K5C, K5D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, KC_NO, K4B, K4C, K4D }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, K5C, K5D }, \ +} From 11599bea934749d6894b403ed75951861917388a Mon Sep 17 00:00:00 2001 From: KgOfHedgehogs Date: Wed, 6 Jan 2021 07:52:51 +0200 Subject: [PATCH 116/140] [Keymap] Add jian/keymaps/left_hand (#11196) * Add jian/keymaps/left_hand * Add jian/rev2/readme.md * Remove mod tap on mirrored layer * Add GPL2+ license header * Add gb version to readme --- keyboards/jian/keymaps/left_hand/config.h | 22 +++++++ keyboards/jian/keymaps/left_hand/keymap.c | 71 +++++++++++++++++++++++ keyboards/jian/keymaps/left_hand/rules.mk | 2 + keyboards/jian/readme.md | 1 + keyboards/jian/rev2/readme.md | 1 + keyboards/jian/rev2/rev2.h | 19 ++++++ 6 files changed, 116 insertions(+) create mode 100644 keyboards/jian/keymaps/left_hand/config.h create mode 100644 keyboards/jian/keymaps/left_hand/keymap.c create mode 100644 keyboards/jian/keymaps/left_hand/rules.mk create mode 100644 keyboards/jian/rev2/readme.md diff --git a/keyboards/jian/keymaps/left_hand/config.h b/keyboards/jian/keymaps/left_hand/config.h new file mode 100644 index 000000000000..4d9cb17cac58 --- /dev/null +++ b/keyboards/jian/keymaps/left_hand/config.h @@ -0,0 +1,22 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ +#pragma once + +#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/jian/keymaps/left_hand/keymap.c b/keyboards/jian/keymaps/left_hand/keymap.c new file mode 100644 index 000000000000..d2518a253521 --- /dev/null +++ b/keyboards/jian/keymaps/left_hand/keymap.c @@ -0,0 +1,71 @@ + /* Copyright 2020 KGOH + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum jian_layers { + _DFLT_L, + _DFLT_R, + _RAIS_L, + _RAIS_R, + _LOWR_L, + _LOWR_R, + _ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_DFLT_L] = LAYOUT_symmetric_left( + KC_LSFT, LGUI_T(KC_GRV), KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, + LT(_RAIS_L, KC_BSPC), LT(_DFLT_R, KC_SPC), LT(_LOWR_L, KC_ENT) +), +[_DFLT_R] = LAYOUT_symmetric_right( + KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, + LT(_LOWR_R, KC_ESC), _______, LT(_RAIS_R, KC_DEL) +), +[_RAIS_L] = LAYOUT_symmetric_left( + _______, LGUI_T(KC_CAPS), KC_SLCK, KC_HOME, KC_PSCR, KC_PGUP, KC_VOLU, + LCTL_T(KC_APP), KC_INS, KC_LEFT, KC_UP, KC_RGHT, KC_MUTE, + _______, KC_PAUS, KC_END, KC_DOWN, KC_PGDN, KC_VOLD, + _______, LT(_RAIS_R, KC_TAB) , LT(_ADJUST, KC_ESC) +), +[_RAIS_R] = LAYOUT_symmetric_left( + KC_RSFT, KC_RGUI, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, + KC_RCTL, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F11, + KC_LALT, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F12, + LT(_ADJUST, KC_DEL), _______, _______ +), +[_LOWR_L] = LAYOUT_symmetric_left( + _______, _______, XXXXXXX, KC_7, KC_8, KC_9, KC_0, + _______, KC_GRV, KC_4, KC_5, KC_6, KC_MINS, + _______, KC_0, KC_1, KC_2, KC_3, KC_EQL, + LT(_ADJUST, KC_DEL), LT(_LOWR_R, KC_TAB), _______ +), +[_LOWR_R] = LAYOUT_symmetric_left( + _______, _______, XXXXXXX, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + _______, KC_TILD, KC_DLR, KC_PERC, KC_CIRC, KC_UNDS, + _______, KC_LPRN, KC_EXLM, KC_AT, KC_HASH, KC_PLUS, + _______, _______, LT(_ADJUST, KC_ESC) +), +[_ADJUST] = LAYOUT_symmetric_left( + RESET, DEBUG, XXXXXXX, BL_INC, RGB_VAI, RGB_HUD, RGB_HUI, + XXXXXXX, XXXXXXX, BL_DEC, RGB_VAD, RGB_SAD, RGB_SAI, + XXXXXXX, BL_BRTG, BL_TOGG, RGB_TOG, RGB_RMOD,RGB_MOD, + _______, _______, _______ +) +}; diff --git a/keyboards/jian/keymaps/left_hand/rules.mk b/keyboards/jian/keymaps/left_hand/rules.mk new file mode 100644 index 000000000000..7756f0835980 --- /dev/null +++ b/keyboards/jian/keymaps/left_hand/rules.mk @@ -0,0 +1,2 @@ +AUTO_SHIFT_ENABLE = yes +EXTRAKEY_ENABLE = yes diff --git a/keyboards/jian/readme.md b/keyboards/jian/readme.md index 7258e31c1a27..cb68cfdd1649 100644 --- a/keyboards/jian/readme.md +++ b/keyboards/jian/readme.md @@ -6,6 +6,7 @@ You can assemble the keyboard without a mounting plate. Jian also supports RGB LED underglow (with a strip like WS2812B) and single color in-switch LED backlight. Each half can work standalone. +Last GB version is the rev2. * Keyboard Maintainer: [KGOH](https://github.com/KGOH) * Hardware Supported: Jian PCB rev1, rev2, Pro Micro diff --git a/keyboards/jian/rev2/readme.md b/keyboards/jian/rev2/readme.md new file mode 100644 index 000000000000..d02c35e960a7 --- /dev/null +++ b/keyboards/jian/rev2/readme.md @@ -0,0 +1 @@ +This is GB revision diff --git a/keyboards/jian/rev2/rev2.h b/keyboards/jian/rev2/rev2.h index 9dfb7240b137..d71fc8495d08 100644 --- a/keyboards/jian/rev2/rev2.h +++ b/keyboards/jian/rev2/rev2.h @@ -37,3 +37,22 @@ {K20, K21, K22, K23, K24, K25 }, \ {XXX, XXX, K32, K33, K34, K35 } \ } + +#define LAYOUT_symmetric_left LAYOUT_symmetric + +#define LAYOUT_symmetric_right( \ + K04, K03, K02, K12, K01, K00, K20, \ + K05, K14, K13, K22, K11, K10, \ + K15, K24, K23, K33, K32, K21, \ + K35, K25, K34 \ +) \ +{ \ + {K00, K01, K02, K03, K04, K05 }, \ + {K10, K11, K12, K13, K14, K15 }, \ + {K20, K21, K22, K23, K24, K25 }, \ + {XXX, XXX, K32, K33, K34, K35 }, \ + {K00, K01, K02, K03, K04, K05 }, \ + {K10, K11, K12, K13, K14, K15 }, \ + {K20, K21, K22, K23, K24, K25 }, \ + {XXX, XXX, K32, K33, K34, K35 } \ +} From 634eac82e8b94cf3cf85e957ca54bb9e559409fd Mon Sep 17 00:00:00 2001 From: Taylore101 Date: Wed, 6 Jan 2021 12:40:33 -0500 Subject: [PATCH 117/140] [Keyboard] Adding "Bigmac" 5x17 handwired by Taylore101 (#11204) * Adding bigmac handwired by taylore101 * Adding bigmac handwired by taylore101 * Updated Big Mac pin layout * Updated files from kbfirmware to newer qmk. Thanks drashna * Updated config file to have product and manufacturer info. Thanks again drashna * Update readme.md added missing picture of board layout * Update keyboards/handwired/bigmac/readme.md Co-authored-by: Drashna Jaelre Co-authored-by: Taylor Graves Co-authored-by: Taylor Graves Co-authored-by: Drashna Jaelre --- keyboards/handwired/bigmac/bigmac.c | 20 ++++ keyboards/handwired/bigmac/bigmac.h | 36 +++++++ keyboards/handwired/bigmac/config.h | 49 ++++++++++ keyboards/handwired/bigmac/info.json | 95 +++++++++++++++++++ .../handwired/bigmac/keymaps/default/keymap.c | 28 ++++++ keyboards/handwired/bigmac/readme.md | 6 ++ keyboards/handwired/bigmac/rules.mk | 25 +++++ 7 files changed, 259 insertions(+) create mode 100644 keyboards/handwired/bigmac/bigmac.c create mode 100644 keyboards/handwired/bigmac/bigmac.h create mode 100644 keyboards/handwired/bigmac/config.h create mode 100644 keyboards/handwired/bigmac/info.json create mode 100644 keyboards/handwired/bigmac/keymaps/default/keymap.c create mode 100644 keyboards/handwired/bigmac/readme.md create mode 100644 keyboards/handwired/bigmac/rules.mk diff --git a/keyboards/handwired/bigmac/bigmac.c b/keyboards/handwired/bigmac/bigmac.c new file mode 100644 index 000000000000..b8815a1c4e9b --- /dev/null +++ b/keyboards/handwired/bigmac/bigmac.c @@ -0,0 +1,20 @@ +/* Copyright 2020 Taylore101 + * + * 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 . + */ + +#include "bigmac.h" + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/handwired/bigmac/bigmac.h b/keyboards/handwired/bigmac/bigmac.h new file mode 100644 index 000000000000..7e782e433de2 --- /dev/null +++ b/keyboards/handwired/bigmac/bigmac.h @@ -0,0 +1,36 @@ +/* Copyright 2020 Taylore101 + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, \ + K40, K41, K43, K45, K46, K47, K48, K49, K4B, K4D, K4E, K4F, K4G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G }, \ + { K40, K41, KC_NO, K43, KC_NO, K45, K46, K47, K48, K49, KC_NO, K4B, KC_NO, K4D, K4E, K4F, K4G }, \ +} + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/handwired/bigmac/config.h b/keyboards/handwired/bigmac/config.h new file mode 100644 index 000000000000..db2ec2a5b729 --- /dev/null +++ b/keyboards/handwired/bigmac/config.h @@ -0,0 +1,49 @@ +/* Copyright 2020 Taylore101 + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1010 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Taylore101 +#define PRODUCT BigMac + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 17 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { F0, F1, C7, D5, B7 } +#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4, D3, D2, D1, D0, D4, C6, D7, E6, B4 } + +#define DIODE_DIRECTION COL2ROW + + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/handwired/bigmac/info.json b/keyboards/handwired/bigmac/info.json new file mode 100644 index 000000000000..65501db119f9 --- /dev/null +++ b/keyboards/handwired/bigmac/info.json @@ -0,0 +1,95 @@ +{ + "keyboard_name": "BigMac", + "url": "", + "maintainer": "Taylore101", + "width": 19, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (F0,B6)", "x":0, "y":0, "w":1.5}, + {"label":"K01 (F0,B2)", "x":1.5, "y":0}, + {"label":"K02 (F0,B3)", "x":2.5, "y":0}, + {"label":"K03 (F0,B1)", "x":3.5, "y":0}, + {"label":"K04 (F0,F7)", "x":4.5, "y":0}, + {"label":"K05 (F0,F6)", "x":5.5, "y":0}, + {"label":"K06 (F0,F5)", "x":7, "y":0}, + {"label":"K07 (F0,F4)", "x":8, "y":0}, + {"label":"K08 (F0,D3)", "x":9, "y":0}, + {"label":"K09 (F0,D2)", "x":10.5, "y":0}, + {"label":"K0A (F0,D1)", "x":11.5, "y":0}, + {"label":"K0B (F0,D0)", "x":12.5, "y":0}, + {"label":"K0C (F0,D4)", "x":13.5, "y":0}, + {"label":"K0D (F0,C6)", "x":14.5, "y":0}, + {"label":"K0E (F0,D7)", "x":15.5, "y":0}, + {"label":"K0F (F0,E6)", "x":16.5, "y":0}, + {"label":"K0G (F0,B4)", "x":17.5, "y":0, "w":1.5}, + {"label":"K10 (F1,B6)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (F1,B2)", "x":1.5, "y":1}, + {"label":"K12 (F1,B3)", "x":2.5, "y":1}, + {"label":"K13 (F1,B1)", "x":3.5, "y":1}, + {"label":"K14 (F1,F7)", "x":4.5, "y":1}, + {"label":"K15 (F1,F6)", "x":5.5, "y":1}, + {"label":"K16 (F1,F5)", "x":7, "y":1}, + {"label":"K17 (F1,F4)", "x":8, "y":1}, + {"label":"K18 (F1,D3)", "x":9, "y":1}, + {"label":"K19 (F1,D2)", "x":10.5, "y":1}, + {"label":"K1A (F1,D1)", "x":11.5, "y":1}, + {"label":"K1B (F1,D0)", "x":12.5, "y":1}, + {"label":"K1C (F1,D4)", "x":13.5, "y":1}, + {"label":"K1D (F1,C6)", "x":14.5, "y":1}, + {"label":"K1E (F1,D7)", "x":15.5, "y":1}, + {"label":"K1F (F1,E6)", "x":16.5, "y":1}, + {"label":"K1G (F1,B4)", "x":17.5, "y":1, "w":1.5}, + {"label":"K20 (C7,B6)", "x":0, "y":2, "w":1.5}, + {"label":"K21 (C7,B2)", "x":1.5, "y":2}, + {"label":"K22 (C7,B3)", "x":2.5, "y":2}, + {"label":"K23 (C7,B1)", "x":3.5, "y":2}, + {"label":"K24 (C7,F7)", "x":4.5, "y":2}, + {"label":"K25 (C7,F6)", "x":5.5, "y":2}, + {"label":"K26 (C7,F5)", "x":7, "y":2}, + {"label":"K27 (C7,F4)", "x":8, "y":2}, + {"label":"K28 (C7,D3)", "x":9, "y":2}, + {"label":"K29 (C7,D2)", "x":10.5, "y":2}, + {"label":"K2A (C7,D1)", "x":11.5, "y":2}, + {"label":"K2B (C7,D0)", "x":12.5, "y":2}, + {"label":"K2C (C7,D4)", "x":13.5, "y":2}, + {"label":"K2D (C7,C6)", "x":14.5, "y":2}, + {"label":"K2E (C7,D7)", "x":15.5, "y":2}, + {"label":"K2F (C7,E6)", "x":16.5, "y":2, "w":1.5}, + {"label":"K2G (C7,B4)", "x":18, "y":2}, + {"label":"K30 (D5,B6)", "x":0, "y":3, "w":1.5}, + {"label":"K31 (D5,B2)", "x":1.5, "y":3}, + {"label":"K32 (D5,B3)", "x":2.5, "y":3}, + {"label":"K33 (D5,B1)", "x":3.5, "y":3}, + {"label":"K34 (D5,F7)", "x":4.5, "y":3}, + {"label":"K35 (D5,F6)", "x":5.5, "y":3}, + {"label":"K36 (D5,F5)", "x":7, "y":3}, + {"label":"K37 (D5,F4)", "x":8, "y":3}, + {"label":"K38 (D5,D3)", "x":9, "y":3}, + {"label":"K39 (D5,D2)", "x":10.5, "y":3}, + {"label":"K3A (D5,D1)", "x":11.5, "y":3}, + {"label":"K3B (D5,D0)", "x":12.5, "y":3}, + {"label":"K3C (D5,D4)", "x":13.5, "y":3}, + {"label":"K3D (D5,C6)", "x":14.5, "y":3}, + {"label":"K3E (D5,D7)", "x":15.5, "y":3, "w":1.5}, + {"label":"K3F (D5,E6)", "x":17, "y":3}, + {"label":"K3G (D5,B4)", "x":18, "y":3}, + {"label":"K40 (B7,B6)", "x":0, "y":4, "w":1.5}, + {"label":"K41 (B7,B2)", "x":1.5, "y":4, "w":1.5}, + {"label":"K43 (B7,B1)", "x":3, "y":4, "w":1.5}, + {"label":"K45 (B7,F6)", "x":4.5, "y":4, "w":2}, + {"label":"K46 (B7,F5)", "x":7, "y":4}, + {"label":"K47 (B7,F4)", "x":8, "y":4}, + {"label":"K48 (B7,D3)", "x":9, "y":4}, + {"label":"K49 (B7,D2)", "x":10.5, "y":4, "w":2}, + {"label":"K4B (B7,D0)", "x":12.5, "y":4, "w":1.5}, + {"label":"K4D (B7,C6)", "x":14, "y":4, "w":1.5}, + {"label":"K4E (B7,D7)", "x":16, "y":4}, + {"label":"K4F (B7,E6)", "x":17, "y":4}, + {"label":"K4G (B7,B4)", "x":18, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/handwired/bigmac/keymaps/default/keymap.c b/keyboards/handwired/bigmac/keymaps/default/keymap.c new file mode 100644 index 000000000000..f2eec1b5c412 --- /dev/null +++ b/keyboards/handwired/bigmac/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2020 Taylore101 + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_NO, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_7, KC_8, KC_9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_4, KC_5, KC_6, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_1, KC_2, KC_3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_0, KC_NO, KC_SPC, KC_RGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/handwired/bigmac/readme.md b/keyboards/handwired/bigmac/readme.md new file mode 100644 index 000000000000..1c5ff4efdff3 --- /dev/null +++ b/keyboards/handwired/bigmac/readme.md @@ -0,0 +1,6 @@ +# BIGMAC + +![BIGMAC](https://i.imgur.com/Jm6P8Ovl.png) + +A hand wired 5x17 ortholinear with a macro/num pad in the center +Made by Taylore101 on github / thetlj on reddit diff --git a/keyboards/handwired/bigmac/rules.mk b/keyboards/handwired/bigmac/rules.mk new file mode 100644 index 000000000000..14b22efbdb00 --- /dev/null +++ b/keyboards/handwired/bigmac/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# generated by KBFirmware JSON to QMK Parser +# https://noroadsleft.github.io/kbf_qmk_converter/ From 748b3ac82a478c112d20a31af298a2f4956b0916 Mon Sep 17 00:00:00 2001 From: Barabas Date: Wed, 6 Jan 2021 17:50:11 +0000 Subject: [PATCH 118/140] [Keymap] Added my lily58 keymap (#11258) * added my keymap * Tidy up Add readme, run clang-format, remove some comments * Fixed some formatting issues * Update after reading PR checklist Add GPL header to keymap.c, remove backslash in LAYOUT macro * Use integer constants for switch labels * Remove unneeded code, remove F-keys from raise layer * Use program memory for some text on OLED * Fixed left over debug code * tidy up config.h and rules.mk Remove all unused defines from config.h, and remove options which are the same as the keyboard level make file. Enabled command to be able to toggle NKRO. --- keyboards/lily58/keymaps/barabas/config.h | 25 +++ keyboards/lily58/keymaps/barabas/keymap.c | 192 +++++++++++++++++++++ keyboards/lily58/keymaps/barabas/readme.md | 6 + keyboards/lily58/keymaps/barabas/rules.mk | 6 + 4 files changed, 229 insertions(+) create mode 100644 keyboards/lily58/keymaps/barabas/config.h create mode 100644 keyboards/lily58/keymaps/barabas/keymap.c create mode 100644 keyboards/lily58/keymaps/barabas/readme.md create mode 100644 keyboards/lily58/keymaps/barabas/rules.mk diff --git a/keyboards/lily58/keymaps/barabas/config.h b/keyboards/lily58/keymaps/barabas/config.h new file mode 100644 index 000000000000..c57f19e53795 --- /dev/null +++ b/keyboards/lily58/keymaps/barabas/config.h @@ -0,0 +1,25 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2020 Barabas Raffai + +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 . +*/ + +#pragma once + +#define MASTER_LEFT +#define USE_SERIAL_PD2 diff --git a/keyboards/lily58/keymaps/barabas/keymap.c b/keyboards/lily58/keymaps/barabas/keymap.c new file mode 100644 index 000000000000..ca23a59c23a3 --- /dev/null +++ b/keyboards/lily58/keymaps/barabas/keymap.c @@ -0,0 +1,192 @@ +/* +Copyright 2020 Barabas Raffai + +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 . +*/ +#include QMK_KEYBOARD_H + +extern uint8_t is_master; + +enum layer_number { + _QWERTY = 0, + _GAME, + _LOWER, + _RAISE, + _ADJUST, +}; + +/* clang-format off */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | | | | | | | | | | | | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + +[_QWERTY] = LAYOUT( + KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_ENT, MO(_RAISE), KC_BSPC, KC_RGUI +), + + /* game layer adds the number row back */ + +[_GAME] = LAYOUT( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +), +/* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | _ | + | { | } | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ +[_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, _______ +), +/* RAISE + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | GAME | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | |-------. ,-------| Left | Down | Up |Right | | | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * | | | | | | |-------| |-------| + | - | = | [ | ] | \ | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + +[_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_GAME), + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_ADJUST] = LAYOUT( \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______ +) +}; +/* clang-format on */ + +// Setting ADJUST layer RGB back to default +void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + layer_on(layer3); + } else { + layer_off(layer3); + } +} + +// SSD1306 OLED update loop, make sure to enable OLED_DRIVER_ENABLE=yes in rules.mk +#ifdef OLED_DRIVER_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) return OLED_ROTATION_180; // flips the display 180 degrees if offhand + return rotation; +} + +const char *read_logo(void); +void set_keylog(uint16_t keycode, keyrecord_t *record); +const char *read_keylog(void); +const char *read_keylogs(void); + +# define RAISE_MASK (1 << _RAISE) +# define LOWER_MASK (1 << _LOWER) +# define GAME_MASK (1 << _GAME) +void write_layer_state(void) { + switch (layer_state & (~GAME_MASK)) { + case (RAISE_MASK | LOWER_MASK): + oled_write_P(PSTR("Adjust"), false); + break; + case RAISE_MASK: + oled_write_P(PSTR("Raise"), false); + break; + case LOWER_MASK: + oled_write_P(PSTR("Lower"), false); + break; + case 0: + oled_write_P(PSTR("Default"), false); + break; + default: + oled_write_P(PSTR("Undef-"), false); + { + char s[3]; + itoa(layer_state, s, 16); + oled_write(s, false); + } + break; + } + + if (layer_state & GAME_MASK) { + oled_write_P(PSTR(" + Game"), false); + } + + oled_advance_page(true); +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + write_layer_state(); + oled_write_ln(read_keylog(), false); + oled_write_ln(read_keylogs(), false); + } else { + oled_write(read_logo(), false); + } +} +#endif // OLED_DRIVER_ENABLE + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { +#ifdef OLED_DRIVER_ENABLE + set_keylog(keycode, record); +#endif + } + return true; +} diff --git a/keyboards/lily58/keymaps/barabas/readme.md b/keyboards/lily58/keymaps/barabas/readme.md new file mode 100644 index 000000000000..db87722c0e7c --- /dev/null +++ b/keyboards/lily58/keymaps/barabas/readme.md @@ -0,0 +1,6 @@ +# Barabas' Lily58 Layout + +Changes from the default layout: +- Add a layer to toggle number row. I keep missing when stretching up here, + trying to get used to the Raise layer instead. +- [Vim](https://www.vim.org/) style arrow keys. diff --git a/keyboards/lily58/keymaps/barabas/rules.mk b/keyboards/lily58/keymaps/barabas/rules.mk new file mode 100644 index 000000000000..8b1d516b71d2 --- /dev/null +++ b/keyboards/lily58/keymaps/barabas/rules.mk @@ -0,0 +1,6 @@ +NKRO_ENABLE = yes +COMMAND_ENABLE = yes + +SRC += ./lib/rgb_state_reader.c \ + ./lib/logo_reader.c \ + ./lib/keylogger.c \ From 515cea4b787ffc4b043e6569d3b6e67247e06f0f Mon Sep 17 00:00:00 2001 From: Damien Date: Wed, 6 Jan 2021 18:50:50 +0100 Subject: [PATCH 119/140] [Keymap] Dbroqua alps64 poker (#11254) * [Apple M5120] First iteration * Cleaned apple_m5120 files * Changes requested by PR * Update keyboards/apple_m5120/iso/rules.mk Co-authored-by: Ryan * Update keyboards/apple_m5120/iso/keymaps/default/keymap.c Co-authored-by: Ryan * Added dbroqua keymap for ALPS64 * Removed other keyboard * Added volume keys * Added licence * Update keyboards/alps64/keymaps/dbroqua/keymap.c Co-authored-by: dbroqua Co-authored-by: Ryan --- keyboards/alps64/keymaps/dbroqua/keymap.c | 61 +++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 keyboards/alps64/keymaps/dbroqua/keymap.c diff --git a/keyboards/alps64/keymaps/dbroqua/keymap.c b/keyboards/alps64/keymaps/dbroqua/keymap.c new file mode 100644 index 000000000000..164d76f89a4f --- /dev/null +++ b/keyboards/alps64/keymaps/dbroqua/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2020 Damien Broqua + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty + * ,-----------------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | + * |-----------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + * |-----------------------------------------------------------------------------------------+ + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-----------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl |LGUI | LAlt | Space | RAlt | FN | RCtrl | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_all( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, MO(1), KC_RCTL + ), + + /* FN Layer (Based on Poker 3 FN layout) + * ,-----------------------------------------------------------------------------------------. + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | Calc| PgUp| Up | PgDn|PrtSc|Scrlk|Pause| | + * |-----------------------------------------------------------------------------------------+ + * | | Vol-| Vol+| Mute| | | Home| Left| Down|Right| Ins | Del | | + * |-----------------------------------------------------------------------------------------+ + * | | App | | | | | End | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | + * `-----------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, KC_DEL, _______, + _______, _______, KC_APP, _______, _______, _______, _______, KC_END, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; From bca88177d3b85696b98b0758c76fb20de6013485 Mon Sep 17 00:00:00 2001 From: Erkki Halinen Date: Wed, 6 Jan 2021 19:53:04 +0200 Subject: [PATCH 120/140] [Keyboard] Add Louhi keyboard (#11244) * Add Louhi QMK config * Modify info.json layout * change compile and flash examples * Tweak layout, change picture * Change pictures to Imgur hosted * Update keyboards/pohjolaworks/louhi/louhi.h Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/louhi.h Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/info.json Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/info.json Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/readme.md Co-authored-by: Joel Challis * Update keyboards/pohjolaworks/louhi/rules.mk Co-authored-by: Ryan * Update keyboards/pohjolaworks/louhi/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/pohjolaworks/louhi/readme.md Co-authored-by: Ryan Co-authored-by: Erkki Halinen Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/pohjolaworks/louhi/config.h | 150 ++++++++++++++++++ keyboards/pohjolaworks/louhi/info.json | 15 ++ .../louhi/keymaps/default/keymap.c | 57 +++++++ .../louhi/keymaps/default/readme.md | 5 + keyboards/pohjolaworks/louhi/louhi.c | 17 ++ keyboards/pohjolaworks/louhi/louhi.h | 59 +++++++ keyboards/pohjolaworks/louhi/readme.md | 21 +++ keyboards/pohjolaworks/louhi/rules.mk | 23 +++ 8 files changed, 347 insertions(+) create mode 100644 keyboards/pohjolaworks/louhi/config.h create mode 100644 keyboards/pohjolaworks/louhi/info.json create mode 100644 keyboards/pohjolaworks/louhi/keymaps/default/keymap.c create mode 100644 keyboards/pohjolaworks/louhi/keymaps/default/readme.md create mode 100644 keyboards/pohjolaworks/louhi/louhi.c create mode 100644 keyboards/pohjolaworks/louhi/louhi.h create mode 100644 keyboards/pohjolaworks/louhi/readme.md create mode 100644 keyboards/pohjolaworks/louhi/rules.mk diff --git a/keyboards/pohjolaworks/louhi/config.h b/keyboards/pohjolaworks/louhi/config.h new file mode 100644 index 000000000000..a10d053b44d8 --- /dev/null +++ b/keyboards/pohjolaworks/louhi/config.h @@ -0,0 +1,150 @@ +/* +Copyright 2020 Erkki Halinen + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5057 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Pohjola Works +#define PRODUCT Louhi + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 7 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D3, D2, D1, D0, D7, C6, B4, E6 } +#define MATRIX_COL_PINS { D4, B6, F4, F5, F6, F7, B1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Encoder pins */ +#define ENCODERS_PAD_A { B2 } +#define ENCODERS_PAD_B { B3 } + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN B5 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 14 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +//# define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/pohjolaworks/louhi/info.json b/keyboards/pohjolaworks/louhi/info.json new file mode 100644 index 000000000000..40de4505d4dd --- /dev/null +++ b/keyboards/pohjolaworks/louhi/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Louhi", + "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/pohjolaworks/louhi", + "maintainer": "ErkHal", + "width": 13, + "height": 4, + "layouts": { + "LAYOUT_7u_space": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"\u00c5", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Enter", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Up", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"x":3, "y":3, "w":7}, {"label":"Left", "x":10, "y":3}, {"label":"Down", "x":11, "y":3}, {"label":"Left", "x":12, "y":3}] + }, + "LAYOUT_all": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"\u00c5", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Enter", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Up", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"label":"Space", "x":5, "y":3}, {"label":"Space", "x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"Left", "x":10, "y":3}, {"label":"Down", "x":11, "y":3}, {"label":"Right", "x":12, "y":3}] + } + } +} diff --git a/keyboards/pohjolaworks/louhi/keymaps/default/keymap.c b/keyboards/pohjolaworks/louhi/keymaps/default/keymap.c new file mode 100644 index 000000000000..ee334a249b10 --- /dev/null +++ b/keyboards/pohjolaworks/louhi/keymaps/default/keymap.c @@ -0,0 +1,57 @@ +/* Copyright 2020 Erkki Halinen + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _LOWER, + _RAISE, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = LAYOUT_7u_space( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_NUHS, KC_ENT, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LT(RAISE, KC_PGUP), KC_RSFT, + KC_LSFT, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, LT(LOWER, KC_PGDN), KC_DEL +), + +[_LOWER] = LAYOUT_7u_space( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_ENT, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, KC_RSFT, + _______, _______, _______, _______, _______, _______, _______ +), + +[_RAISE] = LAYOUT_7u_space( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_ENT, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, KC_RSFT, + KC_VOLU, KC_MPLY, KC_MNXT, _______, _______, _______, _______ +) +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } +} diff --git a/keyboards/pohjolaworks/louhi/keymaps/default/readme.md b/keyboards/pohjolaworks/louhi/keymaps/default/readme.md new file mode 100644 index 000000000000..58708a2a429f --- /dev/null +++ b/keyboards/pohjolaworks/louhi/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# The default keymap for Louhi + +Base layer + +![Default layout](https://i.imgur.com/FBR3Xpg.png) diff --git a/keyboards/pohjolaworks/louhi/louhi.c b/keyboards/pohjolaworks/louhi/louhi.c new file mode 100644 index 000000000000..d5bb648b6241 --- /dev/null +++ b/keyboards/pohjolaworks/louhi/louhi.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Erkki Halinen + * + * 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 . + */ + +#include "louhi.h" diff --git a/keyboards/pohjolaworks/louhi/louhi.h b/keyboards/pohjolaworks/louhi/louhi.h new file mode 100644 index 000000000000..661bee895865 --- /dev/null +++ b/keyboards/pohjolaworks/louhi/louhi.h @@ -0,0 +1,59 @@ +/* Copyright 2020 Erkki Halinen + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06 }, \ + { k10, k11, k12, k13, k14, k15, KC_NO }, \ + { k20, k21, k22, k23, k24, k25, k26 }, \ + { k30, k31, k32, k33, k34, k35, KC_NO }, \ + { k40, k41, k42, k43, k44, k45, k46 }, \ + { k50, k51, k52, k53, k54, k55, KC_NO }, \ + { k60, k61, k62, k63, k64, k65, k66 }, \ + { k70, k71, k72, k73, k74, k75, KC_NO } \ +} + +#define LAYOUT_7u_space( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, \ + k60, k70, k61, k63, k65, k75, k66 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06 }, \ + { k10, k11, k12, k13, k14, k15, KC_NO }, \ + { k20, k21, k22, k23, k24, k25, k26 }, \ + { k30, k31, k32, k33, k34, k35, KC_NO }, \ + { k40, k41, k42, k43, k44, k45, k46 }, \ + { k50, k51, k52, k53, k54, k55, KC_NO }, \ + { k60, k61, KC_NO, k63, KC_NO, k65, k66 }, \ + { k70, KC_NO, KC_NO, KC_NO, KC_NO, k75, KC_NO } \ +} diff --git a/keyboards/pohjolaworks/louhi/readme.md b/keyboards/pohjolaworks/louhi/readme.md new file mode 100644 index 000000000000..d2169523bb19 --- /dev/null +++ b/keyboards/pohjolaworks/louhi/readme.md @@ -0,0 +1,21 @@ +# Louhi + +![Louhi](https://i.imgur.com/bsXOscK.png) + +4x13u Orthogonal keyboard with few bottom row layouts and encoder support. + +Encoder supported ONLY in one of the two spots at a time. + +* Keyboard Maintainer: [ErkHal](https://github.com/erkhal) +* Hardware Supported: Louhi PCB (All revisions) +* Hardware Availability: Coming soon to [Pohjola Works](https://pohjola.works) + +Make example for this keyboard (after setting up your build environment): + + make pohjolaworks/louhi:default + +Flashing example for this keyboard: + + make pohjolaworks/louhi:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/pohjolaworks/louhi/rules.mk b/keyboards/pohjolaworks/louhi/rules.mk new file mode 100644 index 000000000000..8b8bacdcf5e8 --- /dev/null +++ b/keyboards/pohjolaworks/louhi/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes From bf959d79dc7a37e94fc368bb8d3a4ca52421faad Mon Sep 17 00:00:00 2001 From: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Wed, 6 Jan 2021 09:58:55 -0800 Subject: [PATCH 121/140] [Keyboard] add joypad keyboard (#11283) * add joypad * add joypad keymaps * change pid * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Update keyboards/handwired/swiftrax/joypad/joypad.h Co-authored-by: Joel Challis * Update keyboards/handwired/swiftrax/joypad/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/handwired/swiftrax/joypad/keymaps/default/keymap.c Co-authored-by: Ryan * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Swiftrax Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/handwired/swiftrax/joypad/config.h | 52 +++++++++++++++++++ keyboards/handwired/swiftrax/joypad/info.json | 12 +++++ keyboards/handwired/swiftrax/joypad/joypad.c | 16 ++++++ keyboards/handwired/swiftrax/joypad/joypad.h | 33 ++++++++++++ .../swiftrax/joypad/keymaps/default/keymap.c | 36 +++++++++++++ .../swiftrax/joypad/keymaps/via/keymap.c | 51 ++++++++++++++++++ .../swiftrax/joypad/keymaps/via/rules.mk | 1 + keyboards/handwired/swiftrax/joypad/readme.md | 13 +++++ keyboards/handwired/swiftrax/joypad/rules.mk | 23 ++++++++ 9 files changed, 237 insertions(+) create mode 100644 keyboards/handwired/swiftrax/joypad/config.h create mode 100644 keyboards/handwired/swiftrax/joypad/info.json create mode 100644 keyboards/handwired/swiftrax/joypad/joypad.c create mode 100644 keyboards/handwired/swiftrax/joypad/joypad.h create mode 100644 keyboards/handwired/swiftrax/joypad/keymaps/default/keymap.c create mode 100644 keyboards/handwired/swiftrax/joypad/keymaps/via/keymap.c create mode 100644 keyboards/handwired/swiftrax/joypad/keymaps/via/rules.mk create mode 100644 keyboards/handwired/swiftrax/joypad/readme.md create mode 100644 keyboards/handwired/swiftrax/joypad/rules.mk diff --git a/keyboards/handwired/swiftrax/joypad/config.h b/keyboards/handwired/swiftrax/joypad/config.h new file mode 100644 index 000000000000..da326086bfdd --- /dev/null +++ b/keyboards/handwired/swiftrax/joypad/config.h @@ -0,0 +1,52 @@ +/* +Copyright 2020 Swiftrax + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEA68 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Swiftrax +#define PRODUCT Joypad + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS { C6, B3, B0, B1, D6, D5 } +#define MATRIX_COL_PINS { C7, B4, D0, C2 } + +#define ENCODERS_PAD_A { C5 } +#define ENCODERS_PAD_B { C4 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/*EEPROM for via*/ +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/handwired/swiftrax/joypad/info.json b/keyboards/handwired/swiftrax/joypad/info.json new file mode 100644 index 000000000000..a2bdd864d109 --- /dev/null +++ b/keyboards/handwired/swiftrax/joypad/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Joypad", + "url": "https://github.com/swiftrax", + "maintainer": "swiftrax", + "width": 4, + "height": 6.25, + "layouts": { + "LAYOUT_ortho_6x4": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":0, "y":2.25}, {"x":1, "y":2.25}, {"x":2, "y":2.25}, {"x":3, "y":2.25}, {"x":0, "y":3.25}, {"x":1, "y":3.25}, {"x":2, "y":3.25}, {"x":3, "y":3.25}, {"x":0, "y":4.25}, {"x":1, "y":4.25}, {"x":2, "y":4.25}, {"x":3, "y":4.25}, {"x":0, "y":5.25}, {"x":1, "y":5.25}, {"x":2, "y":5.25}, {"x":3, "y":5.25}] + } + } +} diff --git a/keyboards/handwired/swiftrax/joypad/joypad.c b/keyboards/handwired/swiftrax/joypad/joypad.c new file mode 100644 index 000000000000..60ef82246257 --- /dev/null +++ b/keyboards/handwired/swiftrax/joypad/joypad.c @@ -0,0 +1,16 @@ +/* Copyright 2020 swiftrax + * + * 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 . + */ +#include "joypad.h" \ No newline at end of file diff --git a/keyboards/handwired/swiftrax/joypad/joypad.h b/keyboards/handwired/swiftrax/joypad/joypad.h new file mode 100644 index 000000000000..f2ba34525e13 --- /dev/null +++ b/keyboards/handwired/swiftrax/joypad/joypad.h @@ -0,0 +1,33 @@ +/* Copyright 2020 swiftrax + * + * 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 . + */ +#pragma once + +#include "quantum.h" +#define LAYOUT_ortho_6x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43, \ + K50, K51, K52, K53 \ +) { \ + {K00, K01, K02, K03}, \ + {K10, K11, K12, K13}, \ + {K20, K21, K22, K23}, \ + {K30, K31, K32, K33}, \ + {K40, K41, K42, K43}, \ + {K50, K51, K52, K53} \ +} diff --git a/keyboards/handwired/swiftrax/joypad/keymaps/default/keymap.c b/keyboards/handwired/swiftrax/joypad/keymaps/default/keymap.c new file mode 100644 index 000000000000..c5fd1b7d4e2b --- /dev/null +++ b/keyboards/handwired/swiftrax/joypad/keymaps/default/keymap.c @@ -0,0 +1,36 @@ + /* Copyright 2020 swiftrax + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_ortho_6x4( + KC_MUTE, KC_F13 , KC_F14 , KC_F15 , + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7 , KC_P8 , KC_P9 , KC_PPLS, + KC_P4 , KC_P5 , KC_P6 , KC_PPLS, + KC_P1 , KC_P2 , KC_P3 , KC_PENT, + KC_P0 , KC_P0 , KC_PDOT, KC_PENT), + +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } +} diff --git a/keyboards/handwired/swiftrax/joypad/keymaps/via/keymap.c b/keyboards/handwired/swiftrax/joypad/keymaps/via/keymap.c new file mode 100644 index 000000000000..11a2e0125eca --- /dev/null +++ b/keyboards/handwired/swiftrax/joypad/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 swiftrax + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_ortho_6x4( + KC_MUTE, KC_F13 , KC_F14 , KC_F15 , + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7 , KC_P8 , KC_P9 , KC_PPLS, + KC_P4 , KC_P5 , KC_P6 , KC_PPLS, + KC_P1 , KC_P2 , KC_P3 , KC_PENT, + KC_P0 , KC_P0 , KC_PDOT, KC_PENT), + +[1] = LAYOUT_ortho_6x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[2] = LAYOUT_ortho_6x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } +} diff --git a/keyboards/handwired/swiftrax/joypad/keymaps/via/rules.mk b/keyboards/handwired/swiftrax/joypad/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/handwired/swiftrax/joypad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/handwired/swiftrax/joypad/readme.md b/keyboards/handwired/swiftrax/joypad/readme.md new file mode 100644 index 000000000000..6f773f8026bb --- /dev/null +++ b/keyboards/handwired/swiftrax/joypad/readme.md @@ -0,0 +1,13 @@ +# Joypad + +Numberpad with 1 encoder + +* Keyboard Maintainer: Swiftrax +* Hardware Supported: Joypad PCB +* Hardware Availability: https://github.com/swiftrax + +Make example for this keyboard (after setting up your build environment): + + make handwired/swiftrax/joypad:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/swiftrax/joypad/rules.mk b/keyboards/handwired/swiftrax/joypad/rules.mk new file mode 100644 index 000000000000..c86285502262 --- /dev/null +++ b/keyboards/handwired/swiftrax/joypad/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes From b7b82d509bfccd69c6507761f03910f34b4366cb Mon Sep 17 00:00:00 2001 From: Craig Gardner <40006110+LeafCutterLabs@users.noreply.github.com> Date: Wed, 6 Jan 2021 10:00:05 -0800 Subject: [PATCH 122/140] [Keyboard] add support for bigknob (#11291) * add support for bigknob Add support for bigknob macropad * corrected files * Apply suggestions from code review Co-authored-by: Joel Challis * corrected tap dance * Update config.h * correct image link * Apply suggestions from code review Co-authored-by: Ryan * added GPL headers * Update readme.md Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/leafcutterlabs/bigknob/bigknob.c | 17 ++++++ keyboards/leafcutterlabs/bigknob/bigknob.h | 27 +++++++++ keyboards/leafcutterlabs/bigknob/config.h | 58 +++++++++++++++++++ keyboards/leafcutterlabs/bigknob/info.json | 12 ++++ .../bigknob/keymaps/default/keymap.c | 55 ++++++++++++++++++ keyboards/leafcutterlabs/bigknob/readme.md | 15 +++++ keyboards/leafcutterlabs/bigknob/rules.mk | 24 ++++++++ 7 files changed, 208 insertions(+) create mode 100644 keyboards/leafcutterlabs/bigknob/bigknob.c create mode 100644 keyboards/leafcutterlabs/bigknob/bigknob.h create mode 100644 keyboards/leafcutterlabs/bigknob/config.h create mode 100644 keyboards/leafcutterlabs/bigknob/info.json create mode 100644 keyboards/leafcutterlabs/bigknob/keymaps/default/keymap.c create mode 100644 keyboards/leafcutterlabs/bigknob/readme.md create mode 100644 keyboards/leafcutterlabs/bigknob/rules.mk diff --git a/keyboards/leafcutterlabs/bigknob/bigknob.c b/keyboards/leafcutterlabs/bigknob/bigknob.c new file mode 100644 index 000000000000..0a4d173e5784 --- /dev/null +++ b/keyboards/leafcutterlabs/bigknob/bigknob.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Craig Gardner + * + * 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 . + */ + +#include "bigknob.h" diff --git a/keyboards/leafcutterlabs/bigknob/bigknob.h b/keyboards/leafcutterlabs/bigknob/bigknob.h new file mode 100644 index 000000000000..ddd3aa4ae002 --- /dev/null +++ b/keyboards/leafcutterlabs/bigknob/bigknob.h @@ -0,0 +1,27 @@ +/* Copyright 2021 Craig Gardner + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_1x5( \ + k01, k02, k03, k04, k05\ + ) { \ + { k01, k02, k03, k04, k05 } \ +} + +#define LAYOUT LAYOUT_ortho_1x5 \ No newline at end of file diff --git a/keyboards/leafcutterlabs/bigknob/config.h b/keyboards/leafcutterlabs/bigknob/config.h new file mode 100644 index 000000000000..5f958293cd8a --- /dev/null +++ b/keyboards/leafcutterlabs/bigknob/config.h @@ -0,0 +1,58 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCEEB +#define PRODUCT_ID 0x0007 +#define DEVICE_VER 0x0001 +#define MANUFACTURER leafcutterlabs +#define PRODUCT bigKNOB +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 5 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * NO_DIODE = switches are directly connected to AVR pins + * +*/ + +// Srating with closest to USB port +#define DIRECT_PINS { \ + { B7, D4, D6, F6, F7} \ +} +#define UNUSED_PINS + +/* rotary encoder 1,2,3 closest to usb port is 0*/ +#define ENCODERS_PAD_A { D0} +#define ENCODERS_PAD_B { D2} +#define ENCODER_RESOLUTION 4 //default/suggested + +/* ws2812 RGB LED */ +#define RGB_DI_PIN C7 //D3 - underglow C7 - backlight +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 5 // Number of LEDs diff --git a/keyboards/leafcutterlabs/bigknob/info.json b/keyboards/leafcutterlabs/bigknob/info.json new file mode 100644 index 000000000000..697edebbefdd --- /dev/null +++ b/keyboards/leafcutterlabs/bigknob/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "bigknob", + "url": "", + "maintainer": "qmk", + "width": 5, + "height": 1, + "layouts": { + "LAYOUT_ortho_1x5": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}] + } + } +} diff --git a/keyboards/leafcutterlabs/bigknob/keymaps/default/keymap.c b/keyboards/leafcutterlabs/bigknob/keymaps/default/keymap.c new file mode 100644 index 000000000000..999d3c434766 --- /dev/null +++ b/keyboards/leafcutterlabs/bigknob/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2021 Craig Gardner + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +#define _MAIN 0 + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } +} + +enum { + TD_RGB = 0 +}; + +void dance_rgb_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + tap_code(KC_MNXT); + } else if (state->count == 2) { + rgblight_toggle(); + } else if (state->count == 3) { + rgblight_step(); + } +} + +//All tap dance functions would go here. Only showing this one. +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_RGB] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_rgb_finished, NULL) +}; + +// +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //buttion closest to usb is first + [_MAIN] = LAYOUT( + KC_MUTE, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_STOP, TD(TD_RGB) + ) +}; diff --git a/keyboards/leafcutterlabs/bigknob/readme.md b/keyboards/leafcutterlabs/bigknob/readme.md new file mode 100644 index 000000000000..d67a1858b5af --- /dev/null +++ b/keyboards/leafcutterlabs/bigknob/readme.md @@ -0,0 +1,15 @@ +# bigknob + +A 4 key Macropad with Rotary Encoder based on Atmega32u4. + +![](https://i.imgur.com/Px3EpOUl.jpg) + +* Keyboard Maintainer: [LeafCutterLabs](https://github.com/LeafCutterLabs) +* Hardware Supported: Atmega32u4 +* Hardware availability: Case files are available [here](https://github.com/LeafCutterLabs/bigKNOB) + +Make example for this keyboard (after setting up your build environment): + + make leafcutterlabs/bigknob:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/leafcutterlabs/bigknob/rules.mk b/keyboards/leafcutterlabs/bigknob/rules.mk new file mode 100644 index 000000000000..5993a2c1cf0f --- /dev/null +++ b/keyboards/leafcutterlabs/bigknob/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # Enable rotary encoders +TAP_DANCE_ENABLE = yes \ No newline at end of file From 8b735d35aa94ece9b03de14ad1c74e4e883fe211 Mon Sep 17 00:00:00 2001 From: Jay Greco Date: Wed, 6 Jan 2021 10:03:06 -0800 Subject: [PATCH 123/140] [Keymap] Update NIBBLE ISO keymap (#11295) --- keyboards/nullbitsco/nibble/keymaps/iso/keymap.c | 10 +++++----- keyboards/nullbitsco/nibble/nibble.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/nullbitsco/nibble/keymaps/iso/keymap.c b/keyboards/nullbitsco/nibble/keymaps/iso/keymap.c index 46f246d6ee72..7e78b1f63811 100644 --- a/keyboards/nullbitsco/nibble/keymaps/iso/keymap.c +++ b/keyboards/nullbitsco/nibble/keymaps/iso/keymap.c @@ -24,7 +24,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MA] = LAYOUT_iso( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TILD, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, KC_F13, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_F14, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, KC_F15, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, @@ -68,7 +68,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { } break; - + } return true; } @@ -100,7 +100,7 @@ void change_RGB(bool clockwise) { } else { rgblight_step_reverse(); } - } + } } void encoder_update_kb(uint8_t index, bool clockwise) { @@ -113,7 +113,7 @@ void encoder_update_kb(uint8_t index, bool clockwise) { tap_code(KC_VOLU); } else { tap_code(KC_VOLD); - } + } } } @@ -125,4 +125,4 @@ void matrix_init_user(void) { void matrix_scan_user(void) { // Scan and parse keystrokes from remote keyboard, if connected (see readme) matrix_scan_remote_kb(); -} \ No newline at end of file +} diff --git a/keyboards/nullbitsco/nibble/nibble.h b/keyboards/nullbitsco/nibble/nibble.h index f6537b8b3178..b974edaba5c4 100644 --- a/keyboards/nullbitsco/nibble/nibble.h +++ b/keyboards/nullbitsco/nibble/nibble.h @@ -51,7 +51,7 @@ #define LAYOUT_iso( \ K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1G, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K1F, K2F, K2G, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, K1F, K2G, \ K31, K32, K01, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, K3G, \ K41, K42, K43, K44, K47, K4A, K4B, K4C, K4D, K4F, K4G \ ) { \ From 832a6e150a7c774d10580881d7f2081d19b93f95 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Wed, 6 Jan 2021 10:04:43 -0800 Subject: [PATCH 124/140] [Keymap] Xyverz's crkbd keymap (#11299) * Initial commit for my Corne keyboard layout. * Updates to Corne, etc. Finished working on primary layout for Corne keyboard. Cleaned up some comments for my 4x12 Ortho layout. * Changes for crkbd layout * Fixed the config.h to reflect using ee_hands * Added RGB configs to crkbd/corne layout Co-authored-by: Ian Sterling <503326@MC02YT9K9LVCF.tld> --- keyboards/crkbd/keymaps/xyverz/config.h | 56 +++++ keyboards/crkbd/keymaps/xyverz/keymap.c | 204 +++++++++++++++++++ keyboards/crkbd/keymaps/xyverz/rules.mk | 2 + layouts/community/ortho_4x12/xyverz/keymap.c | 4 +- 4 files changed, 264 insertions(+), 2 deletions(-) create mode 100644 keyboards/crkbd/keymaps/xyverz/config.h create mode 100644 keyboards/crkbd/keymaps/xyverz/keymap.c create mode 100644 keyboards/crkbd/keymaps/xyverz/rules.mk diff --git a/keyboards/crkbd/keymaps/xyverz/config.h b/keyboards/crkbd/keymaps/xyverz/config.h new file mode 100644 index 000000000000..3390396807a8 --- /dev/null +++ b/keyboards/crkbd/keymaps/xyverz/config.h @@ -0,0 +1,56 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +#define USE_SERIAL_PD2 + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 300 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 300 + + +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + #define RGBLIGHT_ANIMATIONS + #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif + +#ifdef RGB_MATRIX_ENABLE + #define RGBLED_NUM 54 // Number of LEDs + #define DRIVER_LED_TOTAL RGBLED_NUM +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/xyverz/keymap.c b/keyboards/crkbd/keymaps/xyverz/keymap.c new file mode 100644 index 000000000000..c1777f202350 --- /dev/null +++ b/keyboards/crkbd/keymaps/xyverz/keymap.c @@ -0,0 +1,204 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> + +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layer_names { + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum planck_keycodes { + DVORAK = SAFE_RANGE, + LOWER, + RAISE, + ADJUST +}; + +// Adding macros to make the keymaps below much easier to read. +#define DELGUI GUI_T(KC_DEL) +#define ALTENT ALT_T(KC_ENT) +#define SCLNCTL CTL_T(KC_SCLN) +#define QUEALT ALT_T(KC_Q) +#define VEEALT ALT_T(KC_V) +#define ZEDCTL CTL_T(KC_Z) +#define ADJUST MO(_ADJUST) +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define MACLOCK LGUI(LCTL(KC_Q)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DVORAK] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_SCLN, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, SCLNCTL, QUEALT, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, VEEALT, ZEDCTL, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + LOWER, KC_BSPC, DELGUI, KC_ENT, KC_SPC, RAISE + //`--------------------------' `--------------------------' + + ), + + [_LOWER] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_HOME, KC_PGUP, XXXXXXX, KC_PLUS, KC_LCBR, KC_RCBR, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, KC_DEL, MACLOCK, _______, KC_INS, _______ + //`--------------------------' `--------------------------' + ), + + [_RAISE] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PIPE, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_HOME, KC_PGUP, XXXXXXX, KC_EQL, KC_LBRC, KC_RBRC, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, KC_DEL, MACLOCK, _______, KC_INS, _______ + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_master) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +#define L_BASE 0 +#define L_LOWER 2 +#define L_RAISE 4 +#define L_ADJUST 8 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("Layer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_ln_P(PSTR("Default"), false); + break; + case L_LOWER: + oled_write_ln_P(PSTR("Lower"), false); + break; + case L_RAISE: + oled_write_ln_P(PSTR("Raise"), false); + break; + case L_ADJUST: + case L_ADJUST|L_LOWER: + case L_ADJUST|L_RAISE: + case L_ADJUST|L_LOWER|L_RAISE: + oled_write_ln_P(PSTR("Adjust"), false); + break; + } +} + + +char keylog_str[24] = {}; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', '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', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); +} + +void oled_render_keylog(void) { + oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_master) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} +#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/keymaps/xyverz/rules.mk b/keyboards/crkbd/keymaps/xyverz/rules.mk new file mode 100644 index 000000000000..ed8a77f81972 --- /dev/null +++ b/keyboards/crkbd/keymaps/xyverz/rules.mk @@ -0,0 +1,2 @@ +OLED_DRIVER_ENABLE = no +RGB_MATRIX_ENABLE = yes \ No newline at end of file diff --git a/layouts/community/ortho_4x12/xyverz/keymap.c b/layouts/community/ortho_4x12/xyverz/keymap.c index 19e0e291e3e9..9872a43414a1 100644 --- a/layouts/community/ortho_4x12/xyverz/keymap.c +++ b/layouts/community/ortho_4x12/xyverz/keymap.c @@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Caps | | Mute | Vol- | Vol+ | | | _ | + | { | } | | | + * | Caps | | Mute | Vol- | Vol+ | | | | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | Prev | Play | Next | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Caps | | Mute | Vol- | Vol+ | | | - | = | [ | ] | \ | + * | Caps | | Mute | Vol- | Vol+ | | | | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | Prev | Play | Next | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| From 581368596ed724bd96ca1792c143e12670c11572 Mon Sep 17 00:00:00 2001 From: Jane Bernhardt Date: Thu, 7 Jan 2021 12:05:55 -0600 Subject: [PATCH 125/140] name change --- keyboards/butterstick/butterstick.c | 2 +- keyboards/ergotaco/readme.md | 2 +- keyboards/georgi/readme.md | 2 +- keyboards/gergo/readme.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/butterstick/butterstick.c b/keyboards/butterstick/butterstick.c index 6c00bbe5dfda..431e93fa12ed 100644 --- a/keyboards/butterstick/butterstick.c +++ b/keyboards/butterstick/butterstick.c @@ -1,4 +1,4 @@ -/* Copyright 2019 Jeremy Bernhardt +/* Copyright 2019 Jane Bernhardt * * 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 diff --git a/keyboards/ergotaco/readme.md b/keyboards/ergotaco/readme.md index 3021168db429..40077e2a8dca 100644 --- a/keyboards/ergotaco/readme.md +++ b/keyboards/ergotaco/readme.md @@ -4,7 +4,7 @@ It's a Taco with a side of HASL. A 12 key fiesta of a board. -Keyboard Maintainer: [Jeremy Bernhardt](https://github.com/germ) +Keyboard Maintainer: [Jane Bernhardt](https://github.com/germ) Hardware Supported: ErgoTaco Hardware Availability: [gboards.ca](http://gboards.ca) diff --git a/keyboards/georgi/readme.md b/keyboards/georgi/readme.md index d86994883648..247219b9345c 100644 --- a/keyboards/georgi/readme.md +++ b/keyboards/georgi/readme.md @@ -6,7 +6,7 @@ A compact 20% (12x2) Split Keyboard for steno and QWERTY. [More info on qmk.fm](http://qmk.fm/georgi/) -Keyboard Maintainer: [Jeremy Bernhardt](https://github.com/germ) +Keyboard Maintainer: [Jane Bernhardt](https://github.com/germ) Hardware Supported: Georgi Hardware Availability: [gboards.ca](http://gboards.ca) diff --git a/keyboards/gergo/readme.md b/keyboards/gergo/readme.md index 8fefcfe8d31e..3436090b27ec 100644 --- a/keyboards/gergo/readme.md +++ b/keyboards/gergo/readme.md @@ -6,7 +6,7 @@ A compact 50% (14x4) Split Keyboard compatible with i2c modules and a trackball. [More info on qmk.fm](http://qmk.fm/gergo/) -Keyboard Maintainer: [Jeremy Bernhardt](https://github.com/germ) +Keyboard Maintainer: [Jane Bernhardt](https://github.com/germ) Hardware Supported: Gergo (Kit, Partial, Ready) Hardware Availability: [gboards.ca](http://gboards.ca) From 985b8cab7ca7103aee2b83696824683bd5159888 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 8 Jan 2021 06:39:38 +1100 Subject: [PATCH 126/140] [Keyboard] JM60 refactor (#11421) --- keyboards/jm60/config.h | 114 +++++++++++++++++---- keyboards/jm60/info.json | 78 +++++++++++++++ keyboards/jm60/jm60.c | 3 +- keyboards/jm60/jm60.h | 45 +++------ keyboards/jm60/keymaps/default/keymap.c | 71 ++++++------- keyboards/jm60/keymaps/poker3/keymap.c | 43 ++++---- keyboards/jm60/led.c | 24 ----- keyboards/jm60/matrix.c | 128 ------------------------ keyboards/jm60/readme.md | 24 ++--- keyboards/jm60/rules.mk | 29 +++--- 10 files changed, 261 insertions(+), 298 deletions(-) create mode 100644 keyboards/jm60/info.json delete mode 100644 keyboards/jm60/led.c delete mode 100644 keyboards/jm60/matrix.c diff --git a/keyboards/jm60/config.h b/keyboards/jm60/config.h index f490037f6ed1..2409142e097c 100644 --- a/keyboards/jm60/config.h +++ b/keyboards/jm60/config.h @@ -15,39 +15,105 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 -#define DEVICE_VER 0x0001 +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 #define MANUFACTURER JMWS -#define PRODUCT JM60 RGB Keyboard(QMK) -#define DESCRIPTION QMK keyboard firmware for JM60 RGB Keyboard +#define PRODUCT JM60 /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 -/* number of backlight levels */ -//#define BACKLIGHT_LEVELS 1 - -//#define LED_BRIGHTNESS_LO 100 -//#define LED_BRIGHTNESS_HI 255 - -/* define if matrix has ghost */ +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B11, B10, B2, B1, B0 } +#define MATRIX_COL_PINS { A15, C10, C11, C12, D2, B3, B4, B5, B6, B7, B8, B9, A2, A3 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# define RGBLIGHT_HUE_STEP 8 +//# define RGBLIGHT_SAT_STEP 8 +//# define RGBLIGHT_VAL_STEP 8 +//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +//# define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE - +#define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + /* * Feature disable options * These options are also useful to firmware size reduction. @@ -63,7 +129,11 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION -#endif +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/jm60/info.json b/keyboards/jm60/info.json new file mode 100644 index 000000000000..2cc2ce4e37c1 --- /dev/null +++ b/keyboards/jm60/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "JM60", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 2.75}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/jm60/jm60.c b/keyboards/jm60/jm60.c index 3c8b43db9da9..d8fe9cecc11f 100644 --- a/keyboards/jm60/jm60.c +++ b/keyboards/jm60/jm60.c @@ -14,4 +14,5 @@ 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 . */ -#include QMK_KEYBOARD_H + +#include "jm60.h" diff --git a/keyboards/jm60/jm60.h b/keyboards/jm60/jm60.h index f83b94f902a9..bea4451a04ba 100644 --- a/keyboards/jm60/jm60.h +++ b/keyboards/jm60/jm60.h @@ -14,40 +14,23 @@ 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 . */ -#ifndef JM60_H -#define JM60_H + +#pragma once #include "quantum.h" -// readability #define XXX KC_NO -/* Satan GH60 ANSI layout - * ,-----------------------------------------------------------. - * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | - * |-----------------------------------------------------------| - * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | - * |-----------------------------------------------------------| - * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2c| 2d | - * |-----------------------------------------------------------| - * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3b| 3d | - * |-----------------------------------------------------------| - * | 40 | 41 | 42 | 46 | 4a | 4b | 4c | 4d | - * `-----------------------------------------------------------' - */ -#define KEYMAP_ANSI( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, k2d, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3b, k3d, \ - k40, k41, k42, k46, k4a, k4b, k4c, k4d \ -) \ -{ \ - {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ - {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ - {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, XXX, k2c, k2d}, \ - {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, XXX, k3b, XXX, k3d}, \ - {k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \ +#define LAYOUT_60_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2C, k2D, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3B, k3D, \ + k40, k41, k42, k46, k4A, k4B, k4C, k4D \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, XXX, k2C, k2D }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, XXX, k3B, XXX, k3D }, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, k4C, k4D } \ } - -#endif diff --git a/keyboards/jm60/keymaps/default/keymap.c b/keyboards/jm60/keymaps/default/keymap.c index 6ca04c505674..0940d7efce2b 100644 --- a/keyboards/jm60/keymaps/default/keymap.c +++ b/keyboards/jm60/keymaps/default/keymap.c @@ -1,44 +1,39 @@ #include QMK_KEYBOARD_H - -// Used for SHIFT_ESC -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _BL 0 -#define _FL 1 +enum layer_names { + _BL, + _FL +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BL: (Base Layer) Default Layer - * ,-----------------------------------------------------------. - * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | - * |-----------------------------------------------------------| - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | - * `-----------------------------------------------------------' - */ -[_BL] = KEYMAP_ANSI( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSLS, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \ - KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, MO(_FL),KC_RCTL), + /* Keymap _BL: (Base Layer) Default Layer + * ,-----------------------------------------------------------. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | + * `-----------------------------------------------------------' + */ + [_BL] = LAYOUT_60_ansi( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL + ), - /* Keymap _FL: Function Layer - */ -[_FL] = KEYMAP_ANSI( - KC_GRV, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET, \ - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, BL_INC,BL_TOGG, \ - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ - _______,_______,_______, _______, _______,_______,_______,_______), + /* Keymap _FL: Function Layer + */ + [_FL] = LAYOUT_60_ansi( + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) }; - diff --git a/keyboards/jm60/keymaps/poker3/keymap.c b/keyboards/jm60/keymaps/poker3/keymap.c index 07f432dcd883..72e64bbcc5e9 100644 --- a/keyboards/jm60/keymaps/poker3/keymap.c +++ b/keyboards/jm60/keymaps/poker3/keymap.c @@ -1,31 +1,24 @@ #include QMK_KEYBOARD_H -// Used for SHIFT_ESC -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _BL 0 -#define _FL 1 +enum layer_names { + _BL, + _FL +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BL: (Base Layer) Default Layer - */ -[_BL] = KEYMAP_ANSI( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSLS, \ - MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \ - KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, MO(_FL),KC_RCTL), + [_BL] = LAYOUT_60_ansi( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL + ), - /* Keymap _FL: Function Layer - */ -[_FL] = KEYMAP_ANSI( - KC_GRV, KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_F12,KC_DEL, \ - _______,KC_MPRV,KC_MPLY,KC_MNXT,_______,_______,_______,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR, KC_SLCK, KC_PAUS,_______, \ - KC_CAPS,_______,KC_VOLD,KC_VOLU,KC_MUTE,_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,KC_DEL,_______, \ - _______,KC_APP,_______,_______,_______,_______,KC_END,_______,_______,_______,_______,_______, \ - _______,_______,_______, _______, _______,_______,_______,_______), + [_FL] = LAYOUT_60_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, _______, + KC_CAPS, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL, _______, + _______, KC_APP, _______, _______, _______, _______, KC_END, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/jm60/led.c b/keyboards/jm60/led.c deleted file mode 100644 index 4ce0b3e26981..000000000000 --- a/keyboards/jm60/led.c +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright 2012 Jun Wako - -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 . -*/ - -#include - -#include "led.h" - - -void led_set(uint8_t usb_led) { -} diff --git a/keyboards/jm60/matrix.c b/keyboards/jm60/matrix.c deleted file mode 100644 index e19d4f02b1cc..000000000000 --- a/keyboards/jm60/matrix.c +++ /dev/null @@ -1,128 +0,0 @@ -#include -#include -#include -#include -#include "timer.h" -#include "wait.h" -#include "print.h" -#include "matrix.h" - - -/* - * JM60 - * Column pins are input with internal pull-down. Row pins are output and strobe with high. - * Key is high or 1 when it turns on. - * - * col: { PTA15, PTC10, PTC11, PTC12, PTD2, PTB3, PTB4, PTB5, PTB6, PTB7, PTB8, PTB9, PTA2, PTA3 } - * row: { PTB11, PTB10, PTB2, PTB1, PTB0} - */ -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; -static bool debouncing = false; -static uint16_t debouncing_time = 0; - - -void matrix_init(void) -{ -//debug_matrix = true; - /* Column(sense) */ - palSetPadMode(GPIOA, 15, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOC, 10, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOC, 11, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOC, 12, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOD, 2, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOB, 3, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOB, 4, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOB, 5, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOB, 6, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOB, 7, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOB, 8, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOB, 9, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOA, 2, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOA, 3, PAL_MODE_INPUT_PULLDOWN); - - /* Row(strobe) */ - palSetPadMode(GPIOB, 11, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 10, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 1, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 0, PAL_MODE_OUTPUT_PUSHPULL); - - memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(matrix_debouncing, 0, MATRIX_ROWS * sizeof(matrix_row_t)); -} - -uint8_t matrix_scan(void) -{ - for (int row = 0; row < MATRIX_ROWS; row++) { - matrix_row_t data = 0; - - // strobe row - switch (row) { - case 0: palSetPad(GPIOB, 11); break; - case 1: palSetPad(GPIOB, 10); break; - case 2: palSetPad(GPIOB, 2); break; - case 3: palSetPad(GPIOB, 1); break; - case 4: palSetPad(GPIOB, 0); break; - } - - wait_us(20); // need wait to settle pin state - - // read col data: { PTA15, PTC10, PTC11, PTC12, PTD2, PTB3, PTB4, PTB5, PTB6, PTB7, PTB8, PTB9, PTA2, PTA3 } - data = ((palReadPort(GPIOA) & 0x8000UL) >> 15) | // 0 - ((palReadPort(GPIOC) & 0x1C00UL) >> 9) | // 1, 2, 3 - ((palReadPort(GPIOD) & 0x0004UL) << 2) | // 4 - ((palReadPort(GPIOB) & 0x03F8UL) << 2) | // 5, 6, 7, 8, 9, 10, 11 - ((palReadPort(GPIOA) & 0x000CUL) << 10); // 12, 13 - - // un-strobe row - switch (row) { - case 0: palClearPad(GPIOB, 11); break; - case 1: palClearPad(GPIOB, 10); break; - case 2: palClearPad(GPIOB, 2); break; - case 3: palClearPad(GPIOB, 1); break; - case 4: palClearPad(GPIOB, 0); break; - } - - if (matrix_debouncing[row] != data) { - matrix_debouncing[row] = data; - debouncing = true; - debouncing_time = timer_read(); - } - } - - if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { - for (int row = 0; row < MATRIX_ROWS; row++) { - matrix[row] = matrix_debouncing[row]; - } - debouncing = false; - } - return 1; -} - -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & (1< Date: Fri, 8 Jan 2021 11:12:50 +0900 Subject: [PATCH 127/140] [Keyboard] Add Sparrow62 (#11387) * add sparrow62 * fix split hand pin * fix default keymap back space * add via firmware * add 74th keymap fix for coding style * Update keyboards/sparrow62/readme.md Co-authored-by: Joel Challis * Update keyboards/sparrow62/keymaps/74th/keymap.c Co-authored-by: Ryan * Update keyboards/sparrow62/keymaps/74th/keymap.c Co-authored-by: Ryan * fix typo * remove macro for LOCK Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/sparrow62/config.h | 49 +++++++++++ keyboards/sparrow62/keymaps/74th/config.h | 23 +++++ keyboards/sparrow62/keymaps/74th/keymap.c | 85 +++++++++++++++++++ keyboards/sparrow62/keymaps/default/config.h | 23 +++++ keyboards/sparrow62/keymaps/default/keymap.c | 57 +++++++++++++ keyboards/sparrow62/keymaps/via/config.h | 23 +++++ keyboards/sparrow62/keymaps/via/keymap.c | 88 ++++++++++++++++++++ keyboards/sparrow62/keymaps/via/rules.mk | 1 + keyboards/sparrow62/readme.md | 17 ++++ keyboards/sparrow62/rules.mk | 22 +++++ keyboards/sparrow62/sparrow62.c | 18 ++++ keyboards/sparrow62/sparrow62.h | 54 ++++++++++++ 12 files changed, 460 insertions(+) create mode 100644 keyboards/sparrow62/config.h create mode 100644 keyboards/sparrow62/keymaps/74th/config.h create mode 100644 keyboards/sparrow62/keymaps/74th/keymap.c create mode 100644 keyboards/sparrow62/keymaps/default/config.h create mode 100644 keyboards/sparrow62/keymaps/default/keymap.c create mode 100644 keyboards/sparrow62/keymaps/via/config.h create mode 100644 keyboards/sparrow62/keymaps/via/keymap.c create mode 100644 keyboards/sparrow62/keymaps/via/rules.mk create mode 100644 keyboards/sparrow62/readme.md create mode 100644 keyboards/sparrow62/rules.mk create mode 100644 keyboards/sparrow62/sparrow62.c create mode 100644 keyboards/sparrow62/sparrow62.h diff --git a/keyboards/sparrow62/config.h b/keyboards/sparrow62/config.h new file mode 100644 index 000000000000..4b8460c2f803 --- /dev/null +++ b/keyboards/sparrow62/config.h @@ -0,0 +1,49 @@ +/* +Copyright 2020 Atsushi Morimoto @74th + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xDA74 +#define PRODUCT_ID 0x7461 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Atsushi_Morimoto_74th +#define PRODUCT sparrow62 + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +// wiring of each half +#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 } + +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D2 +#define SPLIT_HAND_PIN F4 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/sparrow62/keymaps/74th/config.h b/keyboards/sparrow62/keymaps/74th/config.h new file mode 100644 index 000000000000..15eb08ed7a3f --- /dev/null +++ b/keyboards/sparrow62/keymaps/74th/config.h @@ -0,0 +1,23 @@ +/* + * Copyright 2020 Atsushi Morimoto @74th + * + * 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 . + */ + +#pragma once + +/* Select hand configuration */ + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 180 diff --git a/keyboards/sparrow62/keymaps/74th/keymap.c b/keyboards/sparrow62/keymaps/74th/keymap.c new file mode 100644 index 000000000000..baf44fdeefef --- /dev/null +++ b/keyboards/sparrow62/keymaps/74th/keymap.c @@ -0,0 +1,85 @@ +/* +Copyright 2020 Atsushi Morimoto @74th + +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 . +*/ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _QWERTY = 0, + _FN, +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOCK, + ESC_MHEN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + // /-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------. + // | ` | 1 | 2 | 3 | 4 | 5 | | 7 | 8 | 9 | 0 | - | = | + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, + // |-------+-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------+-------| + // | ` | Q | W | E | R | T | 6 | | 6 | Y | U | I | O | P | = | + KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_6, KC_6, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + // |Ctr(TAB| A | S | D | F | G | [ | | ] | H | J | K | L | ; : | ' " | + CTL_T(KC_TAB),KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + // |Sft(ESC| Z | X | C | V | B | [ | | ] | N | M | , < | . > | / ? | \ | | + SFT_T(KC_ESC),KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_BSLS, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + // | ESC |Alt(TAB|Sf(Eisu|Ctl(SPC| |Ctl(ENT| FN |GU(Kana| BS | + ESC_MHEN, ALT_T(KC_TAB), SFT_T(KC_MHEN), CTL_T(KC_SPC), CTL_T(KC_ENT), MO(_FN), GUI_T(KC_HENK), KC_BSPC + // \-------+-------+-------+-------/ \-------+-------+-------+-------/ + ), + + [_FN] = LAYOUT( + // /-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------. + // | Lock |CMD+F1 |Sft+F2 |CMD+F3 |CMD+F4 |CMD+F5 | |CMD+F6 |CMD+F7 |CMD+F8 |CMD+F9 | | | + C(G(KC_Q)),LCMD(KC_F1),SCMD(KC_F2),LCMD(KC_F3),LCMD(KC_F4),LCMD(KC_F5),LCMD(KC_F6),LCMD(KC_F7),LCMD(KC_F8),LCMD(KC_F9),_______,_______, + // |-------+-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------+-------| + // | ESC | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + // | ~ | ! | @ | # | $ | % | ^ | | ^ | & | * | | PrSC | PrSC2 | PrSC3 | + KC_GRV, KC_EXLM, KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC, KC_CIRC,KC_AMPR,KC_ASTR,_______,KC_PSCREEN,LALT(KC_PSCREEN),LSFT(KC_PSCREEN), + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + // | | | | | | | | | | ← | ↓ | ↑ | → | HOME | END | + _______,_______,_______,_______,_______,_______,_______, _______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME,KC_END, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + // | ESC |Alt(TAB|Sf(Eisu|Ctl(SPC| | | FN | RAlt | DEL | + _______,_______,_______,_______, _______,_______,_______,KC_DEL + // \-------+-------+-------+-------/ \-------+-------+-------+-------/ + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case ESC_MHEN: + tap_code(KC_INT5); + tap_code(KC_ESC); + return false; + } + } + return true; +} diff --git a/keyboards/sparrow62/keymaps/default/config.h b/keyboards/sparrow62/keymaps/default/config.h new file mode 100644 index 000000000000..15eb08ed7a3f --- /dev/null +++ b/keyboards/sparrow62/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* + * Copyright 2020 Atsushi Morimoto @74th + * + * 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 . + */ + +#pragma once + +/* Select hand configuration */ + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 180 diff --git a/keyboards/sparrow62/keymaps/default/keymap.c b/keyboards/sparrow62/keymaps/default/keymap.c new file mode 100644 index 000000000000..af3deee49001 --- /dev/null +++ b/keyboards/sparrow62/keymaps/default/keymap.c @@ -0,0 +1,57 @@ +/* +Copyright 2020 Atsushi Morimoto @74th + +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 . +*/ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _QWERTY = 0, + _FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + // /-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------. + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, + // |-------+-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------+-------| + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_6, KC_6, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_Y, KC_Y, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT,KC_SLSH,KC_BSLS, + // \-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------/ + KC_ESC, KC_LALT,KC_LGUI, KC_SPC, KC_ENT, MO(_FN),KC_RALT,KC_BSPC + // \-------+-------+-------+-------/ \-------+-------+-------+-------/ + ), + + [_FN] = LAYOUT( + // /-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------. + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + // |-------+-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______, KC_F6, KC_F6, _______,_______,_______,_______,_______,_______, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,KC_PGDN,KC_PGUP,_______,_______,_______,KC_PSCR, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,KC_LEFT,KC_DOWN, KC_UP, KC_RGHT,KC_HOME, KC_END, + // \-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------/ + _______,_______,_______,_______, _______,_______,_______, KC_DEL + // \-------+-------+-------+-------/ \-------+-------+-------+-------/ + ) +}; diff --git a/keyboards/sparrow62/keymaps/via/config.h b/keyboards/sparrow62/keymaps/via/config.h new file mode 100644 index 000000000000..15eb08ed7a3f --- /dev/null +++ b/keyboards/sparrow62/keymaps/via/config.h @@ -0,0 +1,23 @@ +/* + * Copyright 2020 Atsushi Morimoto @74th + * + * 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 . + */ + +#pragma once + +/* Select hand configuration */ + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 180 diff --git a/keyboards/sparrow62/keymaps/via/keymap.c b/keyboards/sparrow62/keymaps/via/keymap.c new file mode 100644 index 000000000000..ca39ada243f6 --- /dev/null +++ b/keyboards/sparrow62/keymaps/via/keymap.c @@ -0,0 +1,88 @@ +/* +Copyright 2020 Atsushi Morimoto @74th + +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 . +*/ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _QWERTY = 0, + _FN, + _L2, + _L3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + // /-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------. + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, + // |-------+-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------+-------| + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_6, KC_6, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_Y, KC_Y, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT,KC_SLSH,KC_BSLS, + // \-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------/ + KC_ESC, KC_LALT,KC_LGUI, KC_SPC, KC_ENT, MO(_FN),KC_RALT,KC_BSPC + // \-------+-------+-------+-------/ \-------+-------+-------+-------/ + ), + + [_FN] = LAYOUT( + // /-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------. + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + // |-------+-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______, KC_F6, KC_F6, _______,_______,_______,_______,_______,_______, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,KC_PGDN,KC_PGUP,_______,_______,_______,KC_PSCR, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,KC_LEFT,KC_DOWN, KC_UP, KC_RGHT,KC_HOME, KC_END, + // \-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------/ + _______,_______,_______,_______, _______,_______,_______, KC_DEL + // \-------+-------+-------+-------/ \-------+-------+-------+-------/ + ), + + [_L2] = LAYOUT( + // /-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------. + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + // |-------+-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______, + // \-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------/ + _______,_______,_______,_______, _______,_______,_______,_______ + // \-------+-------+-------+-------/ \-------+-------+-------+-------/ + ), + + [_L3] = LAYOUT( + // /-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------. + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + // |-------+-------+-------+-------+-------+-------+-------\ /-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______, + // |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______, + // \-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------/ + _______,_______,_______,_______, _______,_______,_______,_______ + // \-------+-------+-------+-------/ \-------+-------+-------+-------/ + ), + +}; diff --git a/keyboards/sparrow62/keymaps/via/rules.mk b/keyboards/sparrow62/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/sparrow62/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/sparrow62/readme.md b/keyboards/sparrow62/readme.md new file mode 100644 index 000000000000..ff1a8988daa3 --- /dev/null +++ b/keyboards/sparrow62/readme.md @@ -0,0 +1,17 @@ +# Sparrow62 + +Sparrow62 inspired from Lily58. + +* Keyboard Maintainer: [Atsushi Morimoto](https://github.com/74th) +* Hardware Availability: https://booth.pm/ja/items/2525427 +* Build Guide: https://github.com/74th/sparrow62-buildguide + +Make example for this keyboard (after setting up your build environment): + + make sparrow62:default + +Flashing example for this keyboard: + + make sparrow62:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/sparrow62/rules.mk b/keyboards/sparrow62/rules.mk new file mode 100644 index 000000000000..9f762382b069 --- /dev/null +++ b/keyboards/sparrow62/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +SPLIT_KEYBOARD = yes diff --git a/keyboards/sparrow62/sparrow62.c b/keyboards/sparrow62/sparrow62.c new file mode 100644 index 000000000000..3fc7f62bdf0b --- /dev/null +++ b/keyboards/sparrow62/sparrow62.c @@ -0,0 +1,18 @@ +/* +Copyright 2020 Atsushi Morimoto @74th + +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 . +*/ + +#include "sparrow62.h" diff --git a/keyboards/sparrow62/sparrow62.h b/keyboards/sparrow62/sparrow62.h new file mode 100644 index 000000000000..15722f1da0e9 --- /dev/null +++ b/keyboards/sparrow62/sparrow62.h @@ -0,0 +1,54 @@ +/* +Copyright 2020 Atsushi Morimoto @74th + +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 . +*/ + +#pragma once + +#include "quantum.h" + +/* + * /-----+-----+-----+-----+-----+-----\ /-----+-----+-----+-----+-----+-----\ + * | L06 | L05 | L04 | L03 | L02 | L01 | | R01 | R02 | R03 | R04 | R05 | R06 | + * |-----+-----+-----+-----+-----+-----+-----\ /-----+-----+-----+-----+-----+-----+-----| + * | L16 | L15 | L14 | L13 | L12 | L11 | L00 | | R00 | R11 | R12 | R13 | R14 | R15 | R16 | + * |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----| + * | L26 | L25 | L24 | L23 | L22 | L21 | L10 | | R10 | R21 | R22 | R23 | R24 | R25 | R26 | + * |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----| + * | L36 | L35 | L34 | L33 | L32 | L31 | L20 | | R20 | R31 | R32 | R33 | R34 | R35 | R36 | + * \-----+-----+---+-----+-----+-----+-----+-/ \-+-----+-----+-----+-----+---+-----+-----/ + * | L43 | L42 | L41 | L30 | | R30 | R41 | R42 | R43 | + * \-----+-----+-----+-----/ \-----+-----+-----+-----/ + */ + +#define LAYOUT( \ + L06, L05, L04, L03, L02, L01, R01, R02, R03, R04, R05, R06, \ + L16, L15, L14, L13, L12, L11, L00, R00, R11, R12, R13, R14, R15, R16, \ + L26, L25, L24, L23, L22, L21, L10, R10, R21, R22, R23, R24, R25, R26, \ + L36, L35, L34, L33, L32, L31, L20, R20, R31, R32, R33, R34, R35, R36, \ + L43, L42, L41, L30, R30, R41, R42, R43 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { KC_NO, L41, L42, L43, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, R06 }, \ + { R10, R11, R12, R13, R14, R15, R16 }, \ + { R20, R21, R22, R23, R24, R25, R26 }, \ + { R30, R31, R32, R33, R34, R35, R36 }, \ + { KC_NO, R41, R42, R43, KC_NO, KC_NO, KC_NO } \ + } From b609a07b45ccb1954054f85b8fdd53e03c76de90 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 8 Jan 2021 02:26:39 +0000 Subject: [PATCH 128/140] Implement matrix_io_delay abstraction for Drop boards (#11472) --- keyboards/massdrop/alt/matrix.c | 8 +++++++- keyboards/massdrop/ctrl/matrix.c | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/keyboards/massdrop/alt/matrix.c b/keyboards/massdrop/alt/matrix.c index 3141155712a2..f635f37f2322 100644 --- a/keyboards/massdrop/alt/matrix.c +++ b/keyboards/massdrop/alt/matrix.c @@ -22,6 +22,10 @@ along with this program. If not, see . #include "clks.h" #include +#ifndef MATRIX_IO_DELAY +# define MATRIX_IO_DELAY 1 +#endif + matrix_row_t mlatest[MATRIX_ROWS]; matrix_row_t mlast[MATRIX_ROWS]; matrix_row_t mdebounced[MATRIX_ROWS]; @@ -32,6 +36,8 @@ uint8_t col_ports[] = { MATRIX_COL_PORTS }; uint8_t col_pins[] = { MATRIX_COL_PINS }; uint32_t row_masks[2]; //NOTE: If more than PA PB used in the future, adjust code to accomodate +__attribute__((weak)) void matrix_io_delay(void) { wait_us(MATRIX_IO_DELAY); } + __attribute__ ((weak)) void matrix_init_kb(void) { matrix_init_user(); @@ -95,7 +101,7 @@ uint8_t matrix_scan(void) { PORT->Group[col_ports[col]].OUTSET.reg = 1 << col_pins[col]; //Set col output - wait_us(1); //Delay for output + matrix_io_delay(); //Delay for output scans[PA] = PORT->Group[PA].IN.reg & row_masks[PA]; //Read PA row pins data scans[PB] = PORT->Group[PB].IN.reg & row_masks[PB]; //Read PB row pins data diff --git a/keyboards/massdrop/ctrl/matrix.c b/keyboards/massdrop/ctrl/matrix.c index f3529fe72a9f..713fb89f64d6 100644 --- a/keyboards/massdrop/ctrl/matrix.c +++ b/keyboards/massdrop/ctrl/matrix.c @@ -22,6 +22,10 @@ along with this program. If not, see . #include "clks.h" #include +#ifndef MATRIX_IO_DELAY +# define MATRIX_IO_DELAY 1 +#endif + matrix_row_t mlatest[MATRIX_ROWS]; matrix_row_t mlast[MATRIX_ROWS]; matrix_row_t mdebounced[MATRIX_ROWS]; @@ -32,6 +36,8 @@ uint8_t col_ports[] = { MATRIX_COL_PORTS }; uint8_t col_pins[] = { MATRIX_COL_PINS }; uint32_t row_masks[2]; //NOTE: If more than PA PB used in the future, adjust code to accomodate +__attribute__((weak)) void matrix_io_delay(void) { wait_us(MATRIX_IO_DELAY); } + __attribute__ ((weak)) void matrix_init_kb(void) { matrix_init_user(); @@ -95,7 +101,7 @@ uint8_t matrix_scan(void) { PORT->Group[col_ports[col]].OUTSET.reg = 1 << col_pins[col]; //Set col output - wait_us(1); //Delay for output + matrix_io_delay(); //Delay for output scans[PA] = PORT->Group[PA].IN.reg & row_masks[PA]; //Read PA row pins data scans[PB] = PORT->Group[PB].IN.reg & row_masks[PB]; //Read PB row pins data From 6d9b4c7b4f5de5631955e57b9706f90072971bcb Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 8 Jan 2021 19:09:28 +0000 Subject: [PATCH 129/140] Suggest 'QMK MSYS' as the default windows platform (#11321) * Suggest 'QMK MSYS' as the default windows platform * Review comments --- docs/newbs_getting_started.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index 4609275d0b4f..e03562f00f32 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -41,6 +41,19 @@ We've tried to make QMK as easy to set up as possible. You only have to prepare ### ** Windows ** +QMK maintains a Bundle of MSYS2, the CLI and all necessary dependencies. It also provides a handy `QMK MSYS` terminal shortcut to boot you directly into the correct environment. + +#### Prerequisites + +You will need to install `QMK MSYS`. The latest release is available at https://msys.qmk.fm/. + +Alternatively, if you'd like to manually install msys2, the following section will walk you through the process. + +
+ Manual Install + +?> Ignore the following steps if you use `QMK MSYS`. + #### Prerequisites You will need to install MSYS2, Git and Python. Follow the installation instructions on https://www.msys2.org. @@ -59,6 +72,8 @@ Install the QMK CLI by running: python3 -m pip install qmk +
+ ### ** macOS ** QMK maintains a Homebrew tap and formula which will automatically install the CLI and all necessary dependencies. From 19e2bb272ebb0035165d77f0bb3a9828bc6526c1 Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Fri, 8 Jan 2021 22:28:35 +0100 Subject: [PATCH 130/140] Added Odelia (#11362) * add odelia keyboard * Update readme.md * Update info.json --- keyboards/odelia/config.h | 43 ++++++++++ keyboards/odelia/info.json | 99 +++++++++++++++++++++++ keyboards/odelia/keymaps/default/keymap.c | 35 ++++++++ keyboards/odelia/keymaps/via/keymap.c | 51 ++++++++++++ keyboards/odelia/keymaps/via/rules.mk | 1 + keyboards/odelia/odelia.c | 17 ++++ keyboards/odelia/odelia.h | 40 +++++++++ keyboards/odelia/readme.md | 17 ++++ keyboards/odelia/rules.mk | 22 +++++ 9 files changed, 325 insertions(+) create mode 100644 keyboards/odelia/config.h create mode 100644 keyboards/odelia/info.json create mode 100644 keyboards/odelia/keymaps/default/keymap.c create mode 100644 keyboards/odelia/keymaps/via/keymap.c create mode 100644 keyboards/odelia/keymaps/via/rules.mk create mode 100644 keyboards/odelia/odelia.c create mode 100644 keyboards/odelia/odelia.h create mode 100644 keyboards/odelia/readme.md create mode 100644 keyboards/odelia/rules.mk diff --git a/keyboards/odelia/config.h b/keyboards/odelia/config.h new file mode 100644 index 000000000000..10803b81a1dc --- /dev/null +++ b/keyboards/odelia/config.h @@ -0,0 +1,43 @@ +/* +Copyright 2020 kb-elmo + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6BE3 +#define PRODUCT_ID 0xA129 +#define DEVICE_VER 0x0001 +#define MANUFACTURER InterpolKeeb +#define PRODUCT Odelia + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 10 + +/* Keyboard Matrix Assignments */ + +#define MATRIX_ROW_PINS {B3, B7, B1, B2, B0, F4, F0, F1, D4, B6} +#define MATRIX_COL_PINS {B5, B4, D7, D6, E6, D0, D1, D2, D3, D5} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/odelia/info.json b/keyboards/odelia/info.json new file mode 100644 index 000000000000..98076b0610ba --- /dev/null +++ b/keyboards/odelia/info.json @@ -0,0 +1,99 @@ +{ + "keyboard_name": "odelia", + "url": "", + "maintainer": "kb-elmo", + "width": 21, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":10.5, "y":0}, + {"x":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0}, + {"x":14.5, "y":0}, + {"x":15.5, "y":0, "w":2}, + {"x":17.5, "y":0}, + {"x":19, "y":0}, + {"x":20, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2.5, "y":1, "w":1.5}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + {"x":15, "y":1}, + {"x":16, "y":1, "w":1.5}, + {"x":17.5, "y":1}, + {"x":19, "y":1}, + {"x":20, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2.5, "y":2, "w":1.75}, + {"x":4.25, "y":2}, + {"x":5.25, "y":2}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2}, + {"x":8.25, "y":2}, + {"x":9.25, "y":2}, + {"x":10.25, "y":2}, + {"x":11.25, "y":2}, + {"x":12.25, "y":2}, + {"x":13.25, "y":2}, + {"x":14.25, "y":2}, + {"x":15.25, "y":2, "w":2.25}, + {"x":17.5, "y":2}, + {"x":19, "y":2}, + {"x":20, "y":2}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2.5, "y":3, "w":2.25}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":8.75, "y":3}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3}, + {"x":11.75, "y":3}, + {"x":12.75, "y":3}, + {"x":13.75, "y":3}, + {"x":14.75, "y":3, "w":1.75}, + {"x":16.5, "y":3}, + {"x":17.5, "y":3}, + {"x":19, "y":3}, + {"x":20, "y":3}, + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4}, + {"x":5, "y":4, "w":1.5}, + {"x":6.5, "y":4, "w":7}, + {"x":13.5, "y":4, "w":1.5}, + {"x":15.5, "y":4}, + {"x":16.5, "y":4}, + {"x":17.5, "y":4}, + {"x":19, "y":4}, + {"x":20, "y":4} + ] + } + } +} diff --git a/keyboards/odelia/keymaps/default/keymap.c b/keyboards/odelia/keymaps/default/keymap.c new file mode 100644 index 000000000000..a2ef94cff96c --- /dev/null +++ b/keyboards/odelia/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TRNS, KC_TRNS, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, KC_TRNS, KC_TRNS, + KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_TRNS, KC_TRNS, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_TRNS, KC_TRNS, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS + ), + + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/odelia/keymaps/via/keymap.c b/keyboards/odelia/keymaps/via/keymap.c new file mode 100644 index 000000000000..31230fe6f42e --- /dev/null +++ b/keyboards/odelia/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TRNS, KC_TRNS, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, KC_TRNS, KC_TRNS, + KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_TRNS, KC_TRNS, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_TRNS, KC_TRNS, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS + ), + + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/odelia/keymaps/via/rules.mk b/keyboards/odelia/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/odelia/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/odelia/odelia.c b/keyboards/odelia/odelia.c new file mode 100644 index 000000000000..97cf8b49bee6 --- /dev/null +++ b/keyboards/odelia/odelia.c @@ -0,0 +1,17 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#include "odelia.h" diff --git a/keyboards/odelia/odelia.h b/keyboards/odelia/odelia.h new file mode 100644 index 000000000000..e8d0d2c478f5 --- /dev/null +++ b/keyboards/odelia/odelia.h @@ -0,0 +1,40 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_all(\ + k10, k00, k11, k01, k12, k02, k13, k03, k14, k04, k15, k05, k16, k06, k17, k07, k18, k08, k19, \ + k30, k20, k31, k21, k32, k22, k33, k23, k34, k24, k35, k25, k36, k26, k37, k27, k38, k28, k39, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k58, k48, k59, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, k67, k78, k68, k79, \ + k80, k90, k81, k91, k82, k93, k86, k96, k87, k98, k88, k99 \ +) { \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, ___}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, ___}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39}, \ + {k40, k41, k42, k43, k44, k45, k46, k47, k48, ___}, \ + {k50, k51, k52, k53, k54, k55, k56, ___, k58, k59}, \ + {k60, k61, k62, k63, k64, k65, k66, k67, k68, ___}, \ + {k70, k71, k72, k73, k74, k75, k76, ___, k78, k79}, \ + {k80, k81, k82, ___, ___, ___, k86, k87, k88, ___}, \ + {k90, k91, ___, k93, ___, ___, k96, ___, k98, k99} \ +} diff --git a/keyboards/odelia/readme.md b/keyboards/odelia/readme.md new file mode 100644 index 000000000000..7b0eec8eb860 --- /dev/null +++ b/keyboards/odelia/readme.md @@ -0,0 +1,17 @@ +# Odelia + +65% with two macro clusters + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Odelia PCB +* Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make odelia:default + +Flashing example for this keyboard: + + make odelia:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/odelia/rules.mk b/keyboards/odelia/rules.mk new file mode 100644 index 000000000000..5c0d8f307c54 --- /dev/null +++ b/keyboards/odelia/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 1be7485fa4d757ffef19611fc7ec04176280571c Mon Sep 17 00:00:00 2001 From: Pascal Pfeil Date: Fri, 8 Jan 2021 23:16:21 +0100 Subject: [PATCH 131/140] VIA Support: LFKPad (#11461) * VIA Support: LFKPad * Condense two mostly redundant rules.mk files * Set BOOTMAGIC_ENABLE to lite as advised by VIA tutorial --- keyboards/lfkeyboards/lfkpad/config.h | 4 +- .../lfkpad/keymaps/default/rules.mk | 42 -------------- .../lfkeyboards/lfkpad/keymaps/via/keymap.c | 56 +++++++++++++++++++ .../lfkeyboards/lfkpad/keymaps/via/readme.md | 1 + .../lfkeyboards/lfkpad/keymaps/via/rules.mk | 2 + keyboards/lfkeyboards/lfkpad/rules.mk | 4 +- 6 files changed, 64 insertions(+), 45 deletions(-) delete mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/via/keymap.c create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/via/readme.md create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/via/rules.mk diff --git a/keyboards/lfkeyboards/lfkpad/config.h b/keyboards/lfkeyboards/lfkpad/config.h index 05de35c0a7d8..a705e1c6518f 100644 --- a/keyboards/lfkeyboards/lfkpad/config.h +++ b/keyboards/lfkeyboards/lfkpad/config.h @@ -20,8 +20,8 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 +#define VENDOR_ID 0x4C46 // LF +#define PRODUCT_ID 0x3231 // 21 #define DEVICE_VER 0x0001 #define MANUFACTURER LFKeyboards #define PRODUCT LFKPad 21 diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk b/keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk deleted file mode 100644 index db54d61e5ba0..000000000000 --- a/keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk +++ /dev/null @@ -1,42 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# - -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not qmk base -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -TAP_DANCE_ENABLE = no - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled -WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms - - - - -# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired -# # -# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight -# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB -# # -# # Set to B, C or D -# LFK_REV = D - -# ifeq ($(LFK_REV), B) -# MCU = atmega32u4 -# else -# MCU = at90usb1286 -# endif -# OPT_DEFS += -DLFK_REV_$(LFK_REV) -# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\" diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/via/keymap.c b/keyboards/lfkeyboards/lfkpad/keymaps/via/keymap.c new file mode 100644 index 000000000000..374f00fb130f --- /dev/null +++ b/keyboards/lfkeyboards/lfkpad/keymaps/via/keymap.c @@ -0,0 +1,56 @@ +/* +Copyright 2020 Pascal Pfeil +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_numpad_6x4( + KC_ESC, KC_TAB, KC_PEQL, MO(1), + KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ), + + /* RGB */ + [1] = LAYOUT_numpad_6x4( + RGB_SAI, RGB_VAI, RGB_HUI, _______, + RGB_SAD, RGB_VAD, RGB_HUD, _______, + RGB_M_X, RGB_M_G, RGB_MOD, + RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_RMOD, + RGB_M_P, RGB_M_B, RGB_M_R, + XXXXXXX, XXXXXXX, RGB_TOG + ), + + /* VIA wants four keymaps */ + [2] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ), + + /* VIA wants four keymaps */ + [3] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ), +}; diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/via/readme.md b/keyboards/lfkeyboards/lfkpad/keymaps/via/readme.md new file mode 100644 index 000000000000..bafbae872e17 --- /dev/null +++ b/keyboards/lfkeyboards/lfkpad/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA compatible keymap for the LFKPad 21 diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/via/rules.mk b/keyboards/lfkeyboards/lfkpad/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/lfkeyboards/lfkpad/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/lfkeyboards/lfkpad/rules.mk b/keyboards/lfkeyboards/lfkpad/rules.mk index 0e723f2f4db6..996d822f3a17 100644 --- a/keyboards/lfkeyboards/lfkpad/rules.mk +++ b/keyboards/lfkeyboards/lfkpad/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug @@ -30,6 +30,8 @@ MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +UNICODE_ENABLE = no # Unicode +TAP_DANCE_ENABLE = no ISSI_ENABLE = yes # If the I2C pullup resistors aren't installed this must be disabled WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan() isn't run every 250ms From 06a6b23e60efd259566421a33401adf3ce79b346 Mon Sep 17 00:00:00 2001 From: Erkki Halinen Date: Sat, 9 Jan 2021 00:19:35 +0200 Subject: [PATCH 132/140] Update available pohjolaworks/louhi layouts and RGB config(#11466) --- keyboards/pohjolaworks/louhi/config.h | 2 +- keyboards/pohjolaworks/louhi/info.json | 7 +++++-- keyboards/pohjolaworks/louhi/louhi.h | 16 ++++++++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/keyboards/pohjolaworks/louhi/config.h b/keyboards/pohjolaworks/louhi/config.h index a10d053b44d8..c790ddfbb2fd 100644 --- a/keyboards/pohjolaworks/louhi/config.h +++ b/keyboards/pohjolaworks/louhi/config.h @@ -66,7 +66,7 @@ along with this program. If not, see . # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_LIMIT_VAL 230 /* The maximum brightness level */ //# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ /*== all animations enable ==*/ //# define RGBLIGHT_ANIMATIONS diff --git a/keyboards/pohjolaworks/louhi/info.json b/keyboards/pohjolaworks/louhi/info.json index 40de4505d4dd..0772f6534423 100644 --- a/keyboards/pohjolaworks/louhi/info.json +++ b/keyboards/pohjolaworks/louhi/info.json @@ -6,10 +6,13 @@ "height": 4, "layouts": { "LAYOUT_7u_space": { - "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"\u00c5", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Enter", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Up", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"x":3, "y":3, "w":7}, {"label":"Left", "x":10, "y":3}, {"label":"Down", "x":11, "y":3}, {"label":"Left", "x":12, "y":3}] + "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k10", "x":1, "y":0}, {"label":"k01", "x":2, "y":0}, {"label":"k11", "x":3, "y":0}, {"label":"k02", "x":4, "y":0}, {"label":"k12", "x":5, "y":0}, {"label":"k03", "x":6, "y":0}, {"label":"k13", "x":7, "y":0}, {"label":"k04", "x":8, "y":0}, {"label":"k14", "x":9, "y":0}, {"label":"k05", "x":10, "y":0}, {"label":"k15", "x":11, "y":0}, {"label":"k06", "x":12, "y":0}, {"label":"k20", "x":0, "y":1}, {"label":"k30", "x":1, "y":1}, {"label":"k21", "x":2, "y":1}, {"label":"k31", "x":3, "y":1}, {"label":"k22", "x":4, "y":1}, {"label":"k32", "x":5, "y":1}, {"label":"k23", "x":6, "y":1}, {"label":"k33", "x":7, "y":1}, {"label":"k24", "x":8, "y":1}, {"label":"k34", "x":9, "y":1}, {"label":"k25", "x":10, "y":1}, {"label":"k35", "x":11, "y":1}, {"label":"k26", "x":12, "y":1}, {"label":"k40", "x":0, "y":2}, {"label":"k50", "x":1, "y":2}, {"label":"k41", "x":2, "y":2}, {"label":"k51", "x":3, "y":2}, {"label":"k42", "x":4, "y":2}, {"label":"k52", "x":5, "y":2}, {"label":"k43", "x":6, "y":2}, {"label":"k53", "x":7, "y":2}, {"label":"k44", "x":8, "y":2}, {"label":"k54", "x":9, "y":2}, {"label":"k45", "x":10, "y":2}, {"label":"k55", "x":11, "y":2}, {"label":"k46", "x":12, "y":2}, {"label":"k60", "x":0, "y":3}, {"label":"k70", "x":1, "y":3}, {"label":"k61", "x":2, "y":3}, {"label":"k63", "x":3, "y":3, "w":7}, {"label":"k65", "x":10, "y":3}, {"label":"k75", "x":11, "y":3}, {"label":"k66", "x":12, "y":3}] }, "LAYOUT_all": { - "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"\u00c5", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Enter", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Up", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"label":"Space", "x":5, "y":3}, {"label":"Space", "x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"Left", "x":10, "y":3}, {"label":"Down", "x":11, "y":3}, {"label":"Right", "x":12, "y":3}] + "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k10", "x":1, "y":0}, {"label":"k01", "x":2, "y":0}, {"label":"k11", "x":3, "y":0}, {"label":"k02", "x":4, "y":0}, {"label":"k12", "x":5, "y":0}, {"label":"k03", "x":6, "y":0}, {"label":"k13", "x":7, "y":0}, {"label":"k04", "x":8, "y":0}, {"label":"k14", "x":9, "y":0}, {"label":"k05", "x":10, "y":0}, {"label":"k15", "x":11, "y":0}, {"label":"k06", "x":12, "y":0}, {"label":"k20", "x":0, "y":1}, {"label":"k30", "x":1, "y":1}, {"label":"k21", "x":2, "y":1}, {"label":"k31", "x":3, "y":1}, {"label":"k22", "x":4, "y":1}, {"label":"k32", "x":5, "y":1}, {"label":"k23", "x":6, "y":1}, {"label":"k33", "x":7, "y":1}, {"label":"k24", "x":8, "y":1}, {"label":"k34", "x":9, "y":1}, {"label":"k25", "x":10, "y":1}, {"label":"k35", "x":11, "y":1}, {"label":"k26", "x":12, "y":1}, {"label":"k40", "x":0, "y":2}, {"label":"k50", "x":1, "y":2}, {"label":"k41", "x":2, "y":2}, {"label":"k51", "x":3, "y":2}, {"label":"k42", "x":4, "y":2}, {"label":"k52", "x":5, "y":2}, {"label":"k43", "x":6, "y":2}, {"label":"k53", "x":7, "y":2}, {"label":"k44", "x":8, "y":2}, {"label":"k54", "x":9, "y":2}, {"label":"k45", "x":10, "y":2}, {"label":"k55", "x":11, "y":2}, {"label":"k46", "x":12, "y":2}, {"label":"k60", "x":0, "y":3}, {"label":"k70", "x":1, "y":3}, {"label":"k61", "x":2, "y":3}, {"label":"k71", "x":3, "y":3}, {"label":"k62", "x":4, "y":3}, {"label":"k72", "x":5, "y":3}, {"label":"k63", "x":6, "y":3}, {"label":"k73", "x":7, "y":3}, {"label":"k64", "x":8, "y":3}, {"label":"k74", "x":9, "y":3}, {"label":"k65", "x":10, "y":3}, {"label":"k75", "x":11, "y":3}, {"label":"k66", "x":12, "y":3}] + }, + "LAYOUT_2x_2u": { + "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k10", "x":1, "y":0}, {"label":"k01", "x":2, "y":0}, {"label":"k11", "x":3, "y":0}, {"label":"k02", "x":4, "y":0}, {"label":"k12", "x":5, "y":0}, {"label":"k03", "x":6, "y":0}, {"label":"k13", "x":7, "y":0}, {"label":"k04", "x":8, "y":0}, {"label":"k14", "x":9, "y":0}, {"label":"k05", "x":10, "y":0}, {"label":"k15", "x":11, "y":0}, {"label":"k06", "x":12, "y":0}, {"label":"k20", "x":0, "y":1}, {"label":"k30", "x":1, "y":1}, {"label":"k21", "x":2, "y":1}, {"label":"k31", "x":3, "y":1}, {"label":"k22", "x":4, "y":1}, {"label":"k32", "x":5, "y":1}, {"label":"k23", "x":6, "y":1}, {"label":"k33", "x":7, "y":1}, {"label":"k24", "x":8, "y":1}, {"label":"k34", "x":9, "y":1}, {"label":"k25", "x":10, "y":1}, {"label":"k35", "x":11, "y":1}, {"label":"k26", "x":12, "y":1}, {"label":"k40", "x":0, "y":2}, {"label":"k50", "x":1, "y":2}, {"label":"k41", "x":2, "y":2}, {"label":"k51", "x":3, "y":2}, {"label":"k42", "x":4, "y":2}, {"label":"k52", "x":5, "y":2}, {"label":"k43", "x":6, "y":2}, {"label":"k53", "x":7, "y":2}, {"label":"k44", "x":8, "y":2}, {"label":"k54", "x":9, "y":2}, {"label":"k45", "x":10, "y":2}, {"label":"k55", "x":11, "y":2}, {"label":"k46", "x":12, "y":2}, {"label":"k60", "x":0, "y":3}, {"label":"k70", "x":1, "y":3}, {"label":"k61", "x":2, "y":3}, {"label":"k71", "x":3, "y":3}, {"label":"k62", "x":4, "y":3, "w":2}, {"label":"k63", "x":6, "y":3, "w":2}, {"label":"k64", "x":8, "y":3}, {"label":"k74", "x":9, "y":3}, {"label":"k65", "x":10, "y":3}, {"label":"k75", "x":11, "y":3}, {"label":"k66", "x":12, "y":3}] } } } diff --git a/keyboards/pohjolaworks/louhi/louhi.h b/keyboards/pohjolaworks/louhi/louhi.h index 661bee895865..4bdb6eadb5be 100644 --- a/keyboards/pohjolaworks/louhi/louhi.h +++ b/keyboards/pohjolaworks/louhi/louhi.h @@ -57,3 +57,19 @@ { k60, k61, KC_NO, k63, KC_NO, k65, k66 }, \ { k70, KC_NO, KC_NO, KC_NO, KC_NO, k75, KC_NO } \ } + +#define LAYOUT_2x_2u( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, \ + k60, k70, k61, k71, k62, k63, k64, k74, k65, k75, k66 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06 }, \ + { k10, k11, k12, k13, k14, k15, KC_NO }, \ + { k20, k21, k22, k23, k24, k25, k26 }, \ + { k30, k31, k32, k33, k34, k35, KC_NO }, \ + { k40, k41, k42, k43, k44, k45, k46 }, \ + { k50, k51, k52, k53, k54, k55, KC_NO }, \ + { k60, k61, k62, k63, k64, k65, k66 }, \ + { k70, k71, KC_NO, KC_NO, k74, k75, KC_NO } \ +} From 95a1496ebced72887a23367d72ba2587fabbb27f Mon Sep 17 00:00:00 2001 From: Toban Wiebe Date: Fri, 8 Jan 2021 16:37:42 -0800 Subject: [PATCH 133/140] Fix AUR package name (#11416) On Arch, `qmk` is now in the official repos, whereas only `qmk-git` is in AUR. --- docs/newbs_getting_started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index e03562f00f32..10a5130505cf 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -116,9 +116,9 @@ On Arch-based distros you can install the CLI from the official repositories (NO sudo pacman -S qmk -You can also try the `qmk` package from AUR: +You can also try the `qmk-git` package from AUR: - yay -S qmk + yay -S qmk-git ### ** FreeBSD ** From d54289db58d56b6ee0abd5510ddb693b5c0478c4 Mon Sep 17 00:00:00 2001 From: Monksoffunk Date: Sat, 9 Jan 2021 15:46:15 +0900 Subject: [PATCH 134/140] Add VIA keymap for Zinc (#9299) * Add VIA keymap * Update Document files Update readme of VIA keymaps * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/rules.mk * Update keyboards/zinc/keymaps/via/rules.mk * Update keyboards/zinc/keymaps/via/rules.mk * Update keyboards/zinc/keymaps/via/rules.mk * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Add copyright license header --- keyboards/zinc/keymaps/via/config.h | 41 +++++ keyboards/zinc/keymaps/via/keymap.c | 203 ++++++++++++++++++++++++ keyboards/zinc/keymaps/via/readme_en.md | 115 ++++++++++++++ keyboards/zinc/keymaps/via/readme_jp.md | 149 +++++++++++++++++ keyboards/zinc/keymaps/via/rules.mk | 113 +++++++++++++ 5 files changed, 621 insertions(+) create mode 100644 keyboards/zinc/keymaps/via/config.h create mode 100644 keyboards/zinc/keymaps/via/keymap.c create mode 100644 keyboards/zinc/keymaps/via/readme_en.md create mode 100644 keyboards/zinc/keymaps/via/readme_jp.md create mode 100644 keyboards/zinc/keymaps/via/rules.mk diff --git a/keyboards/zinc/keymaps/via/config.h b/keyboards/zinc/keymaps/via/config.h new file mode 100644 index 000000000000..233977feaf3c --- /dev/null +++ b/keyboards/zinc/keymaps/via/config.h @@ -0,0 +1,41 @@ +/* +This is the c configuration file for the keymap + +Copyright 2018 monksoffunk +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 + +#define RGBLIGHT_LAYERS + +// place overrides here +// Selection of RGBLIGHT MODE to use. +#if defined(LED_ANIMATIONS) + #define RGBLIGHT_ANIMATIONS +// #define RGBLIGHT_EFFECT_BREATHINGtt +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#endif diff --git a/keyboards/zinc/keymaps/via/keymap.c b/keyboards/zinc/keymaps/via/keymap.c new file mode 100644 index 000000000000..7c961c710db9 --- /dev/null +++ b/keyboards/zinc/keymaps/via/keymap.c @@ -0,0 +1,203 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +#ifdef RGBLIGHT_ENABLE +//Following line allows macro to read current RGB settings + +// Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore! +const rgblight_segment_t PROGMEM capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {12, 1, HSV_RED} // Light 4 LEDs, starting with LED 6 +); +// Light LEDs 9 & 10 in cyan when keyboard layer 1 is active +const rgblight_segment_t PROGMEM lower_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {24, 6, HSV_GOLDENROD} +); +// Light LEDs 11 & 12 in purple when keyboard layer 2 is active +const rgblight_segment_t PROGMEM raise_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {54, 6, HSV_GOLDENROD} +); + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( + capslock_layer, + lower_layer, + raise_layer +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = rgb_layers; +} +#endif + +extern uint8_t is_master; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST, + _ADJUST2 +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + KANA, + EISU, + ADJUST, + RGBRST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc |ADJUST| Win | Alt |LOWER |Space | | Space| RAISE| Left | Down | Up | Right| + * `-----------------------------------------' `-----------------------------------------' + */ + [_QWERTY] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_ESC, MO(_ADJUST), KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | - | _ | + | { | } | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | Home | End | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------' `-----------------------------------------' + */ + [_LOWER] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, _______, _______, _______, _______, _______, KC_MINS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | | F12 | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------' `-----------------------------------------' + */ + [_RAISE] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | | Reset|RGBRST|Aud on|Audoff| | | |Qwerty|Colemk|Dvorak| | Ins | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | |RGB ON| HUE+ | SAT+ | VAL+ | Mac | | Win | - | = |Print |ScLock|Pause | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |MODE R| MODE | HUE- | SAT- | VAL- | | | | | | |PageUp| | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | EISU | EISU | EISU | | KANA | KANA | Home |PageDn|PageUp| End | + * `-----------------------------------------' `-----------------------------------------' + */ + [_ADJUST] = LAYOUT_ortho_4x12( + _______, RESET, RGBRST, _______, _______, _______, _______, QWERTY, _______, _______, _______, KC_INS, + _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SLCK, KC_PAUS, + RGB_RMOD,RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, EISU, EISU, EISU, KANA, KANA, KANA, KC_HOME, KC_PGDN, KC_END + ), + + [_ADJUST2] = LAYOUT_ortho_4x12( + _______, RESET, RGBRST, _______, _______, _______, _______, QWERTY, _______, _______, _______, KC_INS, + _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SLCK, KC_PAUS, + RGB_RMOD,RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, EISU, EISU, EISU, KANA, KANA, KANA, KC_HOME, KC_PGDN, KC_END + ) +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case EISU: + if (record->event.pressed) { + if(keymap_config.swap_lalt_lgui==false){ + register_code(KC_LANG2); + } else { + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LANG2); + } + return false; + case KANA: + if (record->event.pressed) { + if(keymap_config.swap_lalt_lgui==false){ + register_code(KC_LANG1); + } else { + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LANG1); + } + return false; + case RGBRST: +#ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + } +#endif + break; + } + return true; +} + + + +layer_state_t layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST2); +#ifdef RGBLIGHT_LAYERS + // Both layers will light up if both kb layers are active + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); +#endif + return state; +} + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} diff --git a/keyboards/zinc/keymaps/via/readme_en.md b/keyboards/zinc/keymaps/via/readme_en.md new file mode 100644 index 000000000000..c49a434162f2 --- /dev/null +++ b/keyboards/zinc/keymaps/via/readme_en.md @@ -0,0 +1,115 @@ +# The VIA Zinc Layout +## layout + +### Qwerty + +``` + ,-----------------------------------------. ,-----------------------------------------. + | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Esc | Fn | Alt | Win |Lower |Space | | Space| Raise| Left | Down | Up | Right| + `------------------------------------------ ------------------------------------------' +``` + +### Lower +``` + ,-----------------------------------------. ,-----------------------------------------. + | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | - | _ | + | { | } | | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | | Home | End | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-----------------------------------------' `-----------------------------------------' +``` + +### RAISE +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | | F12 | | | | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-----------------------------------------' `-----------------------------------------' +``` + +### Adjust +``` + ,-----------------------------------------. ,-----------------------------------------. + | | Reset|RGBRST|Aud on|Audoff| | | |Qwerty|Colemk|Dvorak| | Ins | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | |RGB ON| HUE+ | SAT+ | VAL+ | Mac | | Win | - | = |Print |ScLock|Pause | + |------+------+------+------+------+------| |------+------+------+------+------+------| + |MODE R|RGBMOD| HUE- | SAT- | VAL- | | | | | | |PageUp| | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | EISU | EISU | EISU | | KANA | KANA | KANA | Home |PageDn| End | + `-----------------------------------------' `-----------------------------------------' +``` + +### Adjust2 (Lower + Raise) +``` + ,-----------------------------------------. ,-----------------------------------------. + | | Reset|RGBRST|Aud on|Audoff| | | |Qwerty|Colemk|Dvorak| | Ins | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | |RGB ON| HUE+ | SAT+ | VAL+ | Mac | | Win | - | = |Print |ScLock|Pause | + |------+------+------+------+------+------| |------+------+------+------+------+------| + |MODE R|RGBMOD| HUE- | SAT- | VAL- | | | | | | |PageUp| | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | EISU | EISU | EISU | | KANA | KANA | KANA | Home |PageDn| End | + `-----------------------------------------' `-----------------------------------------' +``` +## Compile + +go to qmk top directory. + +``` +$ cd qmk_firmware +``` +make with `zinc:` + +``` +$ make zinc:default +``` + +To make and flash with `:flash` + +``` +$ make zinc:default:flash +``` + + +## Customize + +You can customize from the command line. + +``` +# Zinc keyboard 'default' keymap: convenient command line option +make ZINC= zinc:defualt +# option= back | under | both | cont | na | ios +# ex. +# make ZINC=under zinc:via +# make ZINC=under,ios zinc:via +# make ZINC=back zinc:via +# make ZINC=back,na zinc:via +# make zinc:via +``` + +Or edit `qmk_firmware/keyboards/zinc/rev1/keymaps/~/rules.mk` directly. + +``` +# Zinc keyboard customize +LED_BACK_ENABLE = no # LED backlight (Enable SK6812mini backlight) +LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight) +LED_BOTH_ENABLE = no # LED backlight and underglow +LED_RGB_CONT = no # LED continuous backlight or/and underglow between left Zinc and right Zinc +LED_ANIMATIONS = yes # LED animations +IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) +``` diff --git a/keyboards/zinc/keymaps/via/readme_jp.md b/keyboards/zinc/keymaps/via/readme_jp.md new file mode 100644 index 000000000000..a929eb07dd91 --- /dev/null +++ b/keyboards/zinc/keymaps/via/readme_jp.md @@ -0,0 +1,149 @@ +# The VIA Zinc Layout +## 配列 + +### Qwerty配列 + +``` + ,-----------------------------------------. ,-----------------------------------------. + | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Esc | Fn | Alt | Win |Lower |Space | | Space| Raise| Left | Down | Up | Right| + `------------------------------------------ ------------------------------------------' +``` + + ### Lower +``` + ,-----------------------------------------. ,-----------------------------------------. + | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | - | _ | + | { | } | | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | | Home | End | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-----------------------------------------' `-----------------------------------------' +``` + +### RAISE +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | | F12 | | | | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-----------------------------------------' `-----------------------------------------' +``` + +### Adjust +``` + ,-----------------------------------------. ,-----------------------------------------. + | | Reset|RGBRST|Aud on|Audoff| | | |Qwerty|Colemk|Dvorak| | Ins | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | |RGB ON| HUE+ | SAT+ | VAL+ | Mac | | Win | - | = |Print |ScLock|Pause | + |------+------+------+------+------+------| |------+------+------+------+------+------| + |MODE R|RGBMOD| HUE- | SAT- | VAL- | | | | | | |PageUp| | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | EISU | EISU | EISU | | KANA | KANA | KANA | Home |PageDn| End | + `-----------------------------------------' `-----------------------------------------' +``` + +### Adjust2 (Lower + Raise) +``` + ,-----------------------------------------. ,-----------------------------------------. + | | Reset|RGBRST|Aud on|Audoff| | | |Qwerty|Colemk|Dvorak| | Ins | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | |RGB ON| HUE+ | SAT+ | VAL+ | Mac | | Win | - | = |Print |ScLock|Pause | + |------+------+------+------+------+------| |------+------+------+------+------+------| + |MODE R|RGBMOD| HUE- | SAT- | VAL- | | | | | | |PageUp| | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | | EISU | EISU | EISU | | KANA | KANA | KANA | Home |PageDn| End | + `-----------------------------------------' `-----------------------------------------' +``` +※AdjustとAdjust2は同じものが入っています。このデータの冗長化は、VIA Configuratorでの変更を容易にするために実装を単純化する必要があったためです。Adjust2はLowerとRaiseの同時押しの際に有効になるレイヤーです + + +## コンパイルの仕方 + +コンパイルは、qmk_firmware のトップディレクトリで行います。 + +``` +$ cd qmk_firmware +``` +qmk_firmwareでは各キーボードのコンパイルは、`<キーボード名>:<キーマップ名>`という指定で行います。 + +``` +$ make zinc:via +``` + +キーボードへの書き込みまで同時に行うには下記のように`:avrdude`を付けます。 + +``` +$ make zinc:via:avrdude +``` + +コンパイル結果と中間生成物を消去したい場合は以下のようにします。 + +``` +$ make zinc:via:clean +``` + +## カスタマイズ + +コマンドラインからオプションを指定してビルドすることが出来ます。 +ただしVIAキーマップではオプションなしでbothが指定されますので、ほとんどの場合はオプション記述なしでmake zinc:viaとします。 + +``` +# Zinc keyboard 'via' keymap: convenient command line option +make ZINC= zinc:via +# option= back | under | both | cont | na | ios +# ex. +# make ZINC=under zinc:via +# make ZINC=under,ios zinc:via +# make ZINC=back zinc:via +# make ZINC=back,na zinc:via +# make zinc:via +``` + +あるいは`qmk_firmware/keyboards/zinc/rev1/keymaps/~/rules.mk` の以下の部分を直接編集して機能を有効化してください。 + +``` +# Zinc keyboard customize +LED_BACK_ENABLE = no # LED backlight (Enable SK6812mini backlight) +LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight) +LED_BOTH_ENABLE = yes # LED backlight and underglow +LED_RGB_CONT = yes # LED continuous backlight or/and underglow between left Zinc and right Zinc +LED_ANIMATIONS = yes # LED animations +IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) +``` + +## RGB backlight を有効にする + +rules.mk の下記の部分を編集して no を yes に変更してください。 +``` +LED_BACK_ENABLE = yes # LED backlight (Enable SK6812mini backlight) +``` +※VIAキーマップではオプションなしでbothが指定されます + +## RGB Underglow を有効にする + +rules.mk の下記の部分を編集して no を yes に変更してください。 +``` +LED_UNDERGLOW_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.) +``` +※VIAキーマップではオプションなしでbothが指定されます + +## iPad/iPhoneサポートを有効にする。 + +rules.mk の下記の部分を編集して no を yes に変更してください。 +RBG Underglow や RGBバックライトの輝度を抑えて、iPad, iPhone にも接続できるようになります。 + +``` +IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) +``` diff --git a/keyboards/zinc/keymaps/via/rules.mk b/keyboards/zinc/keymaps/via/rules.mk new file mode 100644 index 000000000000..0ea4be9c04cd --- /dev/null +++ b/keyboards/zinc/keymaps/via/rules.mk @@ -0,0 +1,113 @@ +VIA_ENABLE = yes +EXTRAKEY_ENABLE = yes + +define ZINC_CUSTOMISE_MSG + $(info Zinc customize) + $(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE)) + $(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE)) + $(info - LED_BOTH_ENABLE=$(LED_BOTH_ENABLE)) + $(info - LED_RGB_CONT=$(LED_RGB_CONT)) + $(info - RGB_MATRIX=$(RGB_MATRIX)) + $(info - LED_ANIMATION=$(LED_ANIMATIONS)) + $(info - IOS_DEVICE_ENABLE=$(IOS_DEVICE_ENABLE)) +endef + +# Zinc keyboard customize +LED_BACK_ENABLE = no # LED backlight (Enable SK6812mini backlight) +LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight) +LED_BOTH_ENABLE = yes # LED backlight and underglow +LED_RGB_CONT = yes # LED continuous backlight or/and underglow between left Zinc and right Zinc +RGB_MATRIX = no # RGB LED Matrix +RGB_MATRIX_SPLIT_RIGHT = no # RGB Matrix for RIGHT Hand +LED_ANIMATIONS = yes # LED animations +IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) +LTO_ENABLE = no # if firmware size over limit, try this option + +#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE. +#### Do not enable these with audio at the same time. + +### Zinc keyboard 'default' keymap: convenient command line option +## make ZINC= zinc:defualt +## option= back | under | both | cont | matrix | na | ios +## ex. +## make ZINC=under zinc:defualt +## make ZINC=under,ios zinc:defualt +## make ZINC=back zinc:default +## make ZINC=back,na zinc:default +## make ZINC=back,ios zinc:default + +ifneq ($(strip $(ZINC)),) + ifeq ($(findstring back,$(ZINC)), back) + LED_BACK_ENABLE = yes + endif + ifeq ($(findstring under,$(ZINC)), under) + LED_UNDERGLOW_ENABLE = yes + endif + ifeq ($(findstring both,$(ZINC)), both) + LED_BOTH_ENABLE = yes + endif + ifeq ($(findstring cont,$(ZINC)), cont) + LED_RGB_CONT = yes + endif + ifeq ($(findstring matrix,$(ZINC)), matrix) + RGB_MATRIX = yes + endif + ifeq ($(findstring right,$(ZINC)), right) + RGB_MATRIX_SPLIT_RIGHT = yes + endif + ifeq ($(findstring na,$(ZINC)), na) + LED_ANIMATIONS = no + endif + ifeq ($(findstring ios,$(ZINC)), ios) + IOS_DEVICE_ENABLE = yes + endif + $(eval $(call ZINC_CUSTOMISE_MSG)) + $(info ) +endif + +ifeq ($(strip $(LED_BACK_ENABLE)), yes) + RGBLIGHT_ENABLE = yes + ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) + OPT_DEFS += -DRGBLED_BOTH + $(info LED_BOTH_ENABLE option is enabled instead of LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE) + else + OPT_DEFS += -DRGBLED_BACK + endif +else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) + RGBLIGHT_ENABLE = yes +else + RGBLIGHT_ENABLE = no +endif + +ifeq ($(strip $(LED_BOTH_ENABLE)), yes) + RGBLIGHT_ENABLE = yes + OPT_DEFS += -DRGBLED_BOTH +endif + +ifeq ($(strip $(LED_RGB_CONT)), yes) + OPT_DEFS += -DRGBLED_CONT +endif + +ifeq ($(strip $(RGB_MATRIX)), yes) + RGBLIGHT_ENABLE = no + RGB_MATRIX_ENABLE = WS2812 +endif + +ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) + OPT_DEFS += -DIOS_DEVICE_ENABLE +endif + +ifeq ($(strip $(LED_ANIMATIONS)), yes) +# OPT_DEFS += -DRGBLIGHT_ANIMATIONS + OPT_DEFS += -DLED_ANIMATIONS + +endif + +ifeq ($(strip $(RGB_MATRIX_SPLIT_RIGHT)), yes) + OPT_DEFS += -DRGB_MATRIX_SPLIT_RIGHT +endif + +# Uncomment these for debugging +# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE)) +# $(info -- OPT_DEFS=$(OPT_DEFS)) +# $(info ) From 0500a2e0f1496c181a423b223fa1e942f85e0cf6 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 9 Jan 2021 10:15:15 -0800 Subject: [PATCH 135/140] Add 96% ANSI Community Layouts (#11453) --- .../default/96_ansi/default_96_ansi/keymap.c | 43 +++++++ layouts/default/96_ansi/info.json | 118 +++++++++++++++++ layouts/default/96_ansi/layout.json | 6 + layouts/default/96_ansi/readme.md | 3 + .../default/96_iso/default_96_iso/keymap.c | 43 +++++++ layouts/default/96_iso/info.json | 119 ++++++++++++++++++ layouts/default/96_iso/layout.json | 6 + layouts/default/96_iso/readme.md | 3 + layouts/default/readme.md | 41 +++++- 9 files changed, 380 insertions(+), 2 deletions(-) create mode 100644 layouts/default/96_ansi/default_96_ansi/keymap.c create mode 100644 layouts/default/96_ansi/info.json create mode 100644 layouts/default/96_ansi/layout.json create mode 100644 layouts/default/96_ansi/readme.md create mode 100644 layouts/default/96_iso/default_96_iso/keymap.c create mode 100644 layouts/default/96_iso/info.json create mode 100644 layouts/default/96_iso/layout.json create mode 100644 layouts/default/96_iso/readme.md diff --git a/layouts/default/96_ansi/default_96_ansi/keymap.c b/layouts/default/96_ansi/default_96_ansi/keymap.c new file mode 100644 index 000000000000..70c4841db184 --- /dev/null +++ b/layouts/default/96_ansi/default_96_ansi/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 QMK + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Scr│Pse│Vo-│Vo+│Mut│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ 7 │ 8 │ 9 │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤ + │ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │  Enter │ 4 │ 5 │ 6 │   │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ + * │ Shift  │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │ ↑ │ 1 │ 2 │ 3 │   │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┤Ent│ + * │Ctrl│GUI │Alt │         Space          │Alt│GUI│Ctl│ ← │ ↓ │ → │ 0 │ . │   │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_96_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_VOLD, KC_VOLU, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; diff --git a/layouts/default/96_ansi/info.json b/layouts/default/96_ansi/info.json new file mode 100644 index 000000000000..1c7678a18d9e --- /dev/null +++ b/layouts/default/96_ansi/info.json @@ -0,0 +1,118 @@ +{ + "keyboard_name": "96% ANSI layout", + "url": "", + "maintainer": "qmk", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT_96_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":16, "y":0}, + {"x":17, "y":0}, + {"x":18, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1, "w":2}, + {"x":15, "y":1}, + {"x":16, "y":1}, + {"x":17, "y":1}, + {"x":18, "y":1}, + + {"x":0, "y":2, "w":1.5}, + {"x":1.5, "y":2}, + {"x":2.5, "y":2}, + {"x":3.5, "y":2}, + {"x":4.5, "y":2}, + {"x":5.5, "y":2}, + {"x":6.5, "y":2}, + {"x":7.5, "y":2}, + {"x":8.5, "y":2}, + {"x":9.5, "y":2}, + {"x":10.5, "y":2}, + {"x":11.5, "y":2}, + {"x":12.5, "y":2}, + {"x":13.5, "y":2, "w":1.5}, + {"x":15, "y":2}, + {"x":16, "y":2}, + {"x":17, "y":2}, + {"x":18, "y":2, "h":2}, + + {"x":0, "y":3, "w":1.75}, + {"x":1.75, "y":3}, + {"x":2.75, "y":3}, + {"x":3.75, "y":3}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":8.75, "y":3}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3}, + {"x":11.75, "y":3}, + {"x":12.75, "y":3, "w":2.25}, + {"x":15, "y":3}, + {"x":16, "y":3}, + {"x":17, "y":3}, + + {"x":0, "y":4, "w":2.25}, + {"x":2.25, "y":4}, + {"x":3.25, "y":4}, + {"x":4.25, "y":4}, + {"x":5.25, "y":4}, + {"x":6.25, "y":4}, + {"x":7.25, "y":4}, + {"x":8.25, "y":4}, + {"x":9.25, "y":4}, + {"x":10.25, "y":4}, + {"x":11.25, "y":4}, + {"x":12.25, "y":4, "w":1.75}, + {"x":14, "y":4}, + {"x":15, "y":4}, + {"x":16, "y":4}, + {"x":17, "y":4}, + + {"x":18, "y":4, "h":2}, + {"x":0, "y":5, "w":1.25}, + {"x":1.25, "y":5, "w":1.25}, + {"x":2.5, "y":5, "w":1.25}, + {"x":3.75, "y":5, "w":6.25}, + {"x":10, "y":5}, + {"x":11, "y":5}, + {"x":12, "y":5}, + {"x":13, "y":5}, + {"x":14, "y":5}, + {"x":15, "y":5}, + {"x":16, "y":5}, + {"x":17, "y":5} + ] + } + } +} diff --git a/layouts/default/96_ansi/layout.json b/layouts/default/96_ansi/layout.json new file mode 100644 index 000000000000..4de89df686de --- /dev/null +++ b/layouts/default/96_ansi/layout.json @@ -0,0 +1,6 @@ +[{a:7},"","","","","","","","","","","","","","","","","","",""], +["","","","","","","","","","","","","",{w:2},"","","","",""], +[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"","","","",{h:2},""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},"","","",""], +[{w:2.25},"","","","","","","","","","","",{w:1.75},"","","","","",{h:2},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","","","","",""] diff --git a/layouts/default/96_ansi/readme.md b/layouts/default/96_ansi/readme.md new file mode 100644 index 000000000000..8543655610d2 --- /dev/null +++ b/layouts/default/96_ansi/readme.md @@ -0,0 +1,3 @@ +# 96_ansi + + LAYOUT_96_ansi diff --git a/layouts/default/96_iso/default_96_iso/keymap.c b/layouts/default/96_iso/default_96_iso/keymap.c new file mode 100644 index 000000000000..4bdfe29e77da --- /dev/null +++ b/layouts/default/96_iso/default_96_iso/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 QMK + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Scr│Pse│Vo-│Vo+│Mut│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │     │ 7 │ 8 │ 9 │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┼───┼───┤ + │ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │    │ 4 │ 5 │ 6 │   │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┼───┼───┼───┤ + * │Sft │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │ ↑ │ 1 │ 2 │ 3 │   │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┤Ent│ + * │Ctrl│GUI │Alt │         Space          │Alt│GUI│Ctl│ ← │ ↓ │ → │ 0 │ . │   │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_96_iso( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_VOLD, KC_VOLU, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; diff --git a/layouts/default/96_iso/info.json b/layouts/default/96_iso/info.json new file mode 100644 index 000000000000..26219a68111d --- /dev/null +++ b/layouts/default/96_iso/info.json @@ -0,0 +1,119 @@ +{ + "keyboard_name": "96% ISO layout", + "url": "", + "maintainer": "qmk", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT_96_iso": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":16, "y":0}, + {"x":17, "y":0}, + {"x":18, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1, "w":2}, + {"x":15, "y":1}, + {"x":16, "y":1}, + {"x":17, "y":1}, + {"x":18, "y":1}, + + {"x":0, "y":2, "w":1.5}, + {"x":1.5, "y":2}, + {"x":2.5, "y":2}, + {"x":3.5, "y":2}, + {"x":4.5, "y":2}, + {"x":5.5, "y":2}, + {"x":6.5, "y":2}, + {"x":7.5, "y":2}, + {"x":8.5, "y":2}, + {"x":9.5, "y":2}, + {"x":10.5, "y":2}, + {"x":11.5, "y":2}, + {"x":12.5, "y":2}, + {"x":15, "y":2}, + {"x":16, "y":2}, + {"x":17, "y":2}, + {"x":18, "y":2, "h":2}, + + {"x":0, "y":3, "w":1.75}, + {"x":1.75, "y":3}, + {"x":2.75, "y":3}, + {"x":3.75, "y":3}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":8.75, "y":3}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3}, + {"x":11.75, "y":3}, + {"x":12.75, "y":3}, + {"x":13.75, "y":2, "w":1.25, "h":2}, + {"x":15, "y":3}, + {"x":16, "y":3}, + {"x":17, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4}, + {"x":2.25, "y":4}, + {"x":3.25, "y":4}, + {"x":4.25, "y":4}, + {"x":5.25, "y":4}, + {"x":6.25, "y":4}, + {"x":7.25, "y":4}, + {"x":8.25, "y":4}, + {"x":9.25, "y":4}, + {"x":10.25, "y":4}, + {"x":11.25, "y":4}, + {"x":12.25, "y":4, "w":1.75}, + {"x":14, "y":4}, + {"x":15, "y":4}, + {"x":16, "y":4}, + {"x":17, "y":4}, + {"x":18, "y":4, "h":2}, + + {"x":0, "y":5, "w":1.25}, + {"x":1.25, "y":5, "w":1.25}, + {"x":2.5, "y":5, "w":1.25}, + {"x":3.75, "y":5, "w":6.25}, + {"x":10, "y":5}, + {"x":11, "y":5}, + {"x":12, "y":5}, + {"x":13, "y":5}, + {"x":14, "y":5}, + {"x":15, "y":5}, + {"x":16, "y":5}, + {"x":17, "y":5} + ] + } + } +} diff --git a/layouts/default/96_iso/layout.json b/layouts/default/96_iso/layout.json new file mode 100644 index 000000000000..b11afc251852 --- /dev/null +++ b/layouts/default/96_iso/layout.json @@ -0,0 +1,6 @@ +[{a:7},"","","","","","","","","","","","","","","","","","",""], +["","","","","","","","","","","","","",{w:2},"","","","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"","","","",{h:2},""], +[{w:1.75},"","","","","","","","","","","","","",{x:1.25},"","",""], +[{w:1.25},"","","","","","","","","","","","",{w:1.75},"","","","","",{h:2},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","","","","",""] diff --git a/layouts/default/96_iso/readme.md b/layouts/default/96_iso/readme.md new file mode 100644 index 000000000000..c4dc7f6e90d3 --- /dev/null +++ b/layouts/default/96_iso/readme.md @@ -0,0 +1,3 @@ +# 96_iso + + LAYOUT_96_iso diff --git a/layouts/default/readme.md b/layouts/default/readme.md index 96f9c8e0d488..eca77e693061 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -440,6 +440,43 @@ LAYOUT_tkl_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### 96% Form Factor + +``` +LAYOUT_96_ansi +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ +``` + +``` +LAYOUT_96_iso +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┼───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ +``` + + ### Fullsize Form Factor ``` @@ -483,7 +520,7 @@ LAYOUT_fullsize_iso ``` LAYOUT_alice - ┌───┐  ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───────┐ + ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┴┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -498,7 +535,7 @@ LAYOUT_alice ``` LAYOUT_alice_split_bs - ┌───┐  ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ From 3dc5e5af388fce6bd2619730c221be3ac71286dd Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 9 Jan 2021 12:08:34 -0800 Subject: [PATCH 136/140] tunks/ergo33: info.json fixes (#11488) * tunks/ergo33: info.json fixes Fix layout macro reference and key sequence. * fix make command in readme --- keyboards/tunks/ergo33/info.json | 6 +++--- keyboards/tunks/ergo33/readme.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/tunks/ergo33/info.json b/keyboards/tunks/ergo33/info.json index 0d4f00b940e8..c921484fab35 100644 --- a/keyboards/tunks/ergo33/info.json +++ b/keyboards/tunks/ergo33/info.json @@ -4,13 +4,13 @@ "width": 9, "height": 6, "layouts": { - "LAYOUT_all": { + "LAYOUT": { "layout": [ {"x": 0, "y": 0}, {"x": 1, "y": 0}, {"x": 2, "y": 0.4}, {"x": 3, "y": 0.3}, {"x": 4, "y": 0.4}, {"x": 5, "y": 0.5}, {"x": 6, "y": 0.5}, {"x": 0, "y": 1}, {"x": 1, "y": 1}, {"x": 2, "y": 1.4}, {"x": 3, "y": 1.3}, {"x": 4, "y": 1.4}, {"x": 5, "y": 1.5}, {"x": 6, "y": 1.5}, {"x": 0, "y": 2}, {"x": 1, "y": 2}, {"x": 2, "y": 2.4}, {"x": 3, "y": 2.3}, {"x": 4, "y": 2.4}, {"x": 5, "y": 2.5}, {"x": 6, "y": 2.5}, - {"x": 0, "y": 3}, {"x": 1, "y": 3}, {"x": 2, "y": 3.4}, {"x": 3, "y": 3.3}, {"x": 4, "y": 3.4}, {"x": 5, "y": 3.5}, {"x": 6, "y": 3.5}, {"x": 8, "y": 3.5}, - {"x": 0, "y": 4}, {"x": 1, "y": 4}, + {"x": 0, "y": 3}, {"x": 1, "y": 3}, {"x": 2, "y": 3.4}, {"x": 3, "y": 3.3}, {"x": 4, "y": 3.4}, {"x": 5, "y": 3.5}, {"x": 6, "y": 3.5}, + {"x": 0, "y": 4}, {"x": 1, "y": 4}, {"x": 8, "y": 3.5}, {"x": 4.7, "y": 4.7}, {"x": 5.8, "y": 4.7}, {"x": 6.8, "y": 4.8} ] } diff --git a/keyboards/tunks/ergo33/readme.md b/keyboards/tunks/ergo33/readme.md index d825ef3af87b..7fcc36859abe 100644 --- a/keyboards/tunks/ergo33/readme.md +++ b/keyboards/tunks/ergo33/readme.md @@ -11,7 +11,7 @@ A one-handed 33-key keypad for gaming, macros etc. Make example for this keyboard (after setting up your build environment): - make ergo33:default + make tunks/ergo33:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From c85e2a8822e2b671e4d781f487902c79465e866a Mon Sep 17 00:00:00 2001 From: Koichi Katano <36572567+kkatano@users.noreply.github.com> Date: Sun, 10 Jan 2021 10:30:26 +0900 Subject: [PATCH 137/140] Update Bakeneko60 readme (#11483) --- keyboards/bakeneko60/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/bakeneko60/readme.md b/keyboards/bakeneko60/readme.md index 9d8b2d3a2e3d..18b9d3c4d21c 100644 --- a/keyboards/bakeneko60/readme.md +++ b/keyboards/bakeneko60/readme.md @@ -1,10 +1,10 @@ # Bakeneko 60 -An open source O-ring gasket mount keyboard +A simple 60% keyboard * Keyboard Maintainer: [kkatano](https://github.com/kkatano) * Hardware Supported: Bakeneko 60 -* Hardware Availability: [Open source on GitHub](https://github.com/kkatano/bakeneko-60-pcb) +* Hardware Availability: [Open source on GitHub](https://github.com/kkatano/bakeneko-60) Make example for this keyboard (after setting up your build environment): From 6caef353a52e41336a2e76b8d260126d3b570e1b Mon Sep 17 00:00:00 2001 From: Koichi Katano <36572567+kkatano@users.noreply.github.com> Date: Sun, 10 Jan 2021 10:31:06 +0900 Subject: [PATCH 138/140] Update Bakeneko65 readme (#11485) --- keyboards/bakeneko65/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/bakeneko65/readme.md b/keyboards/bakeneko65/readme.md index f16c0757d89f..87960d2f1596 100644 --- a/keyboards/bakeneko65/readme.md +++ b/keyboards/bakeneko65/readme.md @@ -1,10 +1,10 @@ # Bakeneko 65 -An open source O-ring gasket mount keyboard +A simple 65% keyboard * Keyboard Maintainer: [kkatano](https://github.com/kkatano) * Hardware Supported: Bakeneko 65 -* Hardware Availability: [Open source on GitHub](https://github.com/kkatano/bakeneko-65-pcb) +* Hardware Availability: [Open source on GitHub](https://github.com/kkatano/bakeneko-65) Make example for this keyboard (after setting up your build environment): From 9d10c66cf08a97145a3a9caccd1092d1df3b226b Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Sat, 9 Jan 2021 23:00:12 -0500 Subject: [PATCH 139/140] Correct descriptions of rgblight functions (#11429) --- docs/feature_rgblight.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 762056b34320..5455bb0bc5b3 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -368,14 +368,14 @@ rgblight_sethsv(HSV_GREEN, 2); // led 2 |`rgblight_increase_hue_noeeprom()` |Increase the hue for effect range LEDs. This wraps around at maximum hue (not written to EEPROM) | |`rgblight_decrease_hue()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue | |`rgblight_decrease_hue_noeeprom()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue (not written to EEPROM) | -|`rgblight_increase_sat()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation | -|`rgblight_increase_sat_noeeprom()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation (not written to EEPROM) | -|`rgblight_decrease_sat()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation | -|`rgblight_decrease_sat_noeeprom()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation (not written to EEPROM) | -|`rgblight_increase_val()` |Increase the value for effect range LEDs. This wraps around at maximum value | -|`rgblight_increase_val_noeeprom()` |Increase the value for effect range LEDs. This wraps around at maximum value (not written to EEPROM) | -|`rgblight_decrease_val()` |Decrease the value for effect range LEDs. This wraps around at minimum value | -|`rgblight_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This wraps around at minimum value (not written to EEPROM) | +|`rgblight_increase_sat()` |Increase the saturation for effect range LEDs. This stops at maximum saturation | +|`rgblight_increase_sat_noeeprom()` |Increase the saturation for effect range LEDs. This stops at maximum saturation (not written to EEPROM) | +|`rgblight_decrease_sat()` |Decrease the saturation for effect range LEDs. This stops at minimum saturation | +|`rgblight_decrease_sat_noeeprom()` |Decrease the saturation for effect range LEDs. This stops at minimum saturation (not written to EEPROM) | +|`rgblight_increase_val()` |Increase the value for effect range LEDs. This stops at maximum value | +|`rgblight_increase_val_noeeprom()` |Increase the value for effect range LEDs. This stops at maximum value (not written to EEPROM) | +|`rgblight_decrease_val()` |Decrease the value for effect range LEDs. This stops at minimum value | +|`rgblight_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This stops at minimum value (not written to EEPROM) | |`rgblight_sethsv(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 | |`rgblight_sethsv_noeeprom(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) | From acdcc622028a7c8e6ec086a5da2bff67fd137445 Mon Sep 17 00:00:00 2001 From: Matthias Bertschy Date: Sun, 10 Jan 2021 05:01:09 +0100 Subject: [PATCH 140/140] [Keymap] Add new atreus keymap to planck keyboard (#11420) --- keyboards/planck/keymaps/atreus/config.h | 55 +++++ keyboards/planck/keymaps/atreus/keymap.c | 239 ++++++++++++++++++++++ keyboards/planck/keymaps/atreus/readme.md | 9 + keyboards/planck/keymaps/atreus/rules.mk | 1 + 4 files changed, 304 insertions(+) create mode 100644 keyboards/planck/keymaps/atreus/config.h create mode 100644 keyboards/planck/keymaps/atreus/keymap.c create mode 100644 keyboards/planck/keymaps/atreus/readme.md create mode 100644 keyboards/planck/keymaps/atreus/rules.mk diff --git a/keyboards/planck/keymaps/atreus/config.h b/keyboards/planck/keymaps/atreus/config.h new file mode 100644 index 000000000000..c83a0279dace --- /dev/null +++ b/keyboards/planck/keymaps/atreus/config.h @@ -0,0 +1,55 @@ +/* Copyright 2015-2017 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 . + */ + +#pragma once + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 + diff --git a/keyboards/planck/keymaps/atreus/keymap.c b/keyboards/planck/keymaps/atreus/keymap.c new file mode 100644 index 000000000000..b78a7017e574 --- /dev/null +++ b/keyboards/planck/keymaps/atreus/keymap.c @@ -0,0 +1,239 @@ +/* Copyright 2015-2017 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 . + */ + +#include QMK_KEYBOARD_H +#include "muse.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Default layer + * ,-----------------------------------------------------------------------------------. + * | 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 | , | . | / | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | Tab | GUI | Shift| Bksp | Ctrl | Alt |Space | Fun | - | ' |Enter | + * `-----------------------------------------------------------------------------------' + */ +[0] = LAYOUT_ortho_4x12( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_BSLS, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_MINS, KC_QUOT, KC_ENT), +/* Function layer + * ,-----------------------------------------------------------------------------------. + * | ! | @ | Up | $ | % | | | PgUp | 7 | 8 | 9 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ( | Left | Down |Right | ) | | | PgDn | 4 | 5 | 6 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | [ | ] | # | { | } | ^ | & | * | 1 | 2 | 3 | + | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Upper| Ins | | | | | | | | . | 0 | = | + * `-----------------------------------------------------------------------------------' + */ +[1] = LAYOUT_ortho_4x12( + KC_EXLM, KC_AT, KC_UP, KC_DLR, KC_PERC, KC_NO, KC_NO, KC_PGUP, KC_7, KC_8, KC_9, KC_BSPC, KC_LPRN, KC_LEFT, KC_DOWN, KC_RGHT, KC_RPRN, KC_NO, KC_NO, KC_PGDN, KC_4, KC_5, KC_6, KC_NO, KC_LBRC, KC_RBRC, KC_HASH, KC_LCBR, KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR, KC_1, KC_2, KC_3, KC_PLUS, TG(2), KC_INS, KC_LGUI, KC_LSFT, KC_DEL, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL), +/* Upper layer + * ,-----------------------------------------------------------------------------------. + * | Ins | Home | | End | PgUp | | | Up | F7 | F8 | F9 | F10 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | | | | PgDn | | | Down | F4 | F5 | F6 | F11 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Vol+ | | | | | | | F1 | F2 | F3 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Vol- | | | | | | | |PrtSc |ScrLk | Play | + * `-----------------------------------------------------------------------------------' + */ +[2] = LAYOUT_ortho_4x12( + KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_NO, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12, KC_NO, KC_VOLD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), KC_PSCR, KC_SLCK, KC_MPLY) +}; + +#ifdef AUDIO_ENABLE + float plover_song[][2] = SONG(PLOVER_SOUND); + float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + #ifdef KEYBOARD_planck_rev5 + writePinLow(E6); + #endif + } else { + unregister_code(KC_RSFT); + #ifdef KEYBOARD_planck_rev5 + writePinHigh(E6); + #endif + } + return false; + break; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); + #endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +void encoder_update(bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); + #else + tap_code(KC_PGDN); + #endif + } else { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); + #else + tap_code(KC_PGUP); + #endif + } + } +} + +void dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: { +#ifdef AUDIO_ENABLE + static bool play_sound = false; +#endif + if (active) { +#ifdef AUDIO_ENABLE + if (play_sound) { PLAY_SONG(plover_song); } +#endif + layer_on(_ADJUST); + } else { +#ifdef AUDIO_ENABLE + if (play_sound) { PLAY_SONG(plover_gb_song); } +#endif + layer_off(_ADJUST); + } +#ifdef AUDIO_ENABLE + play_sound = true; +#endif + break; + } + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + } + } +} + +void matrix_scan_user(void) { +#ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } else { + if (muse_counter) { + stop_all_notes(); + muse_counter = 0; + } + } +#endif +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} diff --git a/keyboards/planck/keymaps/atreus/readme.md b/keyboards/planck/keymaps/atreus/readme.md new file mode 100644 index 000000000000..81940642c57b --- /dev/null +++ b/keyboards/planck/keymaps/atreus/readme.md @@ -0,0 +1,9 @@ +![Layout Image](https://imgur.com/G9TNUzy.png) + +# Keyboardio Atreus layout for Planck + +This is the same layout as the new Atreus from Keyboardio (the one with 44 keys, so not the atreus v1). +There are 4 unused keys in the center as the Planck has 48 keys. +It is mostly for people with a Planck to try this new layout before buying. + +More details here: https://shop.keyboard.io/products/keyboardio-atreus diff --git a/keyboards/planck/keymaps/atreus/rules.mk b/keyboards/planck/keymaps/atreus/rules.mk new file mode 100644 index 000000000000..dcf16bef3994 --- /dev/null +++ b/keyboards/planck/keymaps/atreus/rules.mk @@ -0,0 +1 @@ +SRC += muse.c